실습 구성도는 위와 같습니다.
이번 실습에서 사용자의 역할을 하는 제 로컬 PC의 IP는 175.119.165.7입니다.
이 IP를 잘 기억해주세요!
이제 테스트를 위해 라우팅 테이블을 설정해주겠습니다.
각 서브넷에 할당되는 라우팅 테이블들은 나와있는대로 설정해주시면 됩니다.
그런데 구성도의 위쪽을 보면 Ingress Routing Table이라는게 있습니다.
이 라우팅 테이블은 IGW에 적용되며, 인터넷 게이트웨이를 통해 들어오는 패킷이 특정 IP를 Destination으로 가지고 있을때, 원하는 대상에게 패킷을 전달할 수 있습니다.
우리는 10.0.2.170으로 가는 패킷을 Endpoint로 전송하여 먼저 GWLB와 어플라이언스를 통과하도록 만들어 줄 예정입니다.
Ingress Routing Table의 경우 엣지 연결 탭에서 설정할 수 있습니다.
엣지 연결 편집 화면에서 원하는 인터넷 게이트웨이를 선택해주면 됩니다.
이번 실습에서는 WEB-IGW를 선택하겠습니다.
다음은 방화벽을 설정해주겠습니다.
Fortinet 방화벽 인스턴스의 IP를 확인해줍시다.
이번 실습에서는 3.35.219.151의 IP를 받았습니다.
이 화면에서 인스턴스 ID를 복사해둡시다.
방화벽에 최초 접속시 인스턴스 ID를 입력해 로그인을 하고 비밀번호를 변경해야 합니다.
위에서 복사한 인스턴스 ID를 이용해 비밀번호를 변경해줍시다.
비밀번호 변경 후 먼저 ssh를 통해 방화벽에 접속해줍시다.
Geneve 프로토콜의 통신을 확인하기 위해 인터페이스를 설정해주겠습니다.
edit "awsgeneve"
set interface "port1" # 방화벽의 사설 IP(192.168.2.94 인터페이스)
set type ppp
set remote-ip 192.168.1.102 # GWLB의 인터페이스
set next
end
인터페이스를 설정했으니 방화벽 정책을 생성해주겠습니다.
방화벽 웹 콘솔 화면에서 Policy&Objects탭의 Firewall Policy 화면에서 Create New버튼을 선택해 새로운 정책을 생성합니다.
생성한 awsgeneve를 통해 패킷이 흐를 수 있도록 정책을 적용하겠습니다.
먼저 기본적으로 존재하는 인터페이스인 port1(192.168.2.94)을 통해 주고받는 트래픽을 확인해보겠습니다.
ssh를 통해 방화벽에 접속해줍시다.
diagnose sniffer packet port1 "port not 443“
port1을 통해 흐르는 트래픽을 보기 위해 패킷 스니퍼 명령어를 입력해주겠습니다.
그 다음 GWLB에서 F/W로 패킷이 전달되도록 실습 2에서 생성한 웹서버에 접근을 시도해봅니다.
명령어를 입력하니 위와 같은 화면이 나왔습니다.
화면을 자세히 보시면 192.168.1.102 즉 GWLB에서 192.168.2.94 F/W로 6081/UDP 즉 GENEVE 프로토콜을 통한 통신이 이루어지고 있는것을 확인할 수 있습니다.
이번엔 awsgeneve를 통해 F/W에서 웹서버버로 가는 요청이 전달되고 있는지 확인해보겠습니다.
diagnose sniffer packet awsgeneve "port not 443"
awsgeneve 인터페이스를 흐르는 트래픽을 확인하면 10.0.2.170 즉 WEB서버로 전달되는 트래픽이 보입니다.
Source IP를 보면 현재 실습을 진행하고 있는 175.119.165.7 IP를 출발지로 하는 패킷들이 보이는데
이를 통해 GENEVE 프로토콜이 Source IP를 변경하지 않고 어플라이언스까지 패킷을 전달해준 것을 확인할 수 있습니다.
그럼 실습을 마치겠습니다.