본문 바로가기
FortiGate/Firewall

FortiGate를 통과하는 트래픽의 통신 장애 처리

by 에티버스이비티 2021. 1. 5.

FortiGate 를 통하여 통신하는 트래픽의 통신장애가 발생한 경우 이를 트러블 슈팅 하는 방법이다.

아래의 다이어그램에서 PC1 → PC2로의 통신 장애가 발생할 경우 여러 단계를 통해 장애 발생 원인을 파악하고, 장애를 제거한다.

 

Step 1 : Routing Table 확인

FortiGate의 라우팅 설정과 port1, port2 인터페이스 IP 및 NetMask 설정이 올바르게 되었는지 확인한다.

FGT# get router info routing-table all

 

ARP 테이블을 확인하여, 다이렉트로 연결된 PC1의 IP에 대한 MAC address가 정확한지?

port2의 Router에 대한 MAC address가 정확한지 확인한다.

FGT# get sys arp

 

 

Step 2 : 방화벽 정책 확인

PC1에서 PC2로의 통신 장애이므로, PC1에서 PC2로의 통신에 대한 방화벽 정책이 올바른지 확인한다.

방화벽 정책에 서비스가 특정되어 있다면 해당 서비스가 open 되었는지 주의해야 한다.

특히 VIP의 port forwarding을 사용한 경우 mapped port(호스트의 실제 port)가 정책에서 open 되어야 한다. 

 

 

Step 3 : Packet Sniffer

Packet sniffer를 통해 PC1에서의 Packet이 FortiGate의 port1까지 도착하는지?

도착했다면 port2를 통해 PC2로 내보냈는지?

내보낸 Packet에 대한 응답이 port2를 통해 잘 들어 오는지?

port2를 통해 들어온 응답이 port1을 통해 나갔는지를 확인한다.

FGT# diagnose sniffer packet any "host <PC1> and host <PC2>" 4

 

port1을 통해 packet이 오질 않는다면, PC1의 default gateway 및 netmask 설정을 확인해야 한다.

port1으로 들어왔는데 port2를 통해 나가지 않는 경우 다음단계인 debug flow를 통해 왜 drop 되었는지 확인 한다.

port2를 통해 내보냈는데 응답이 오지 않는다면, PC2와 FortiGate사이에 다른 방화벽이 있어 차단되는지, PC2에서 해당 목적지 port를 이용한 서비스가 정상적으로 동작하지 않는지 등을 확인한다.

 

 

Step 4 : Debug flow

FortiGate 내부에서 Drop 된다면 왜 Drop 되었는지 Debug를 통해 확인한다.

diag debug enable
diag debug flow filter add <PC1>   or    diag debug flow filter add <PC2>
diag debug flow show console enable
diag debug flow trace start 100          <== this will display 100 packets for this flow
diag debug enable

 

차단 된 경우 아래 처럼 디버그 결과가 표시된다.

id=20085 trace_id=319 func=resolve_ip_tuple_fast line=2825 msg="vd-root received a packet(proto=6, 192.168.129.136:2854->192.168.96.153:1863) from port3."
id=20085 trace_id=319 func=resolve_ip_tuple line=2924 msg="allocate a new session-013004ac"
id=20085 trace_id=319 func=vf_ip4_route_input line=1597 msg="find a route: gw-192.168.150.129 via port1"
id=20085 trace_id=319 func=fw_forward_handler line=248 msg=" Denied by forward policy check"

 

차단된 경우 표시되는 error Message  설명

Denied by forward policy check” : 방화벽 정책이 없거나 deny 정책이 적용됨

“Denied by end point ip filter check” : ip address 격리 조치된 경우 차단됨

exceeded shaper limit, drop” : Traffic shapping 설정으로 제한이 걸려 drop 된 경우

Reverse path check fail, drop” : 라우팅 관련하여 source IP가 잘못된 인터페이스로 들어온 경우(RPF check)

“Iprope_in_check() check failed, drop : source 혹은 destination IP가 FortiGate가 가진 IP에 대한 drop 인 경우. 위 다이어그램처럼 PC1, PC2의 IP가 FortiGate가 가질수 없는 IP라면, 해당 IP를 VIP 또는 IP Pool에서 사용하는지 확인 할 것.

댓글