流量到达 FortiGate 后无法转发
2025/10/29大约 2 分钟
流量到达 FortiGate 后无法转发
问题现象
某用户通过 FortiGate 访问 Internet,但发现部分 Internet 服务无法访问,对应的 IP 也无法 Ping 通。
检查防火墙上网策略配置全部正确,路由也无异常。
抓包发现流量到达 FortiGate 后没有转发到 Internet(只有 in,没有 out)。
FortiGate # diagnose sniffer packet any 'host 223.5.5.5' 4 interfaces=[any] filters=[host 223.5.5.5] 0.400011 lan in 192.168.100.178 -> 223.5.5.5: icmp: echo request 1.405165 lan in 192.168.100.178 -> 223.5.5.5: icmp: echo request 2.410579 lan in 192.168.100.178 -> 223.5.5.5: icmp: echo request 3.412497 lan in 192.168.100.178 -> 223.5.5.5: icmp: echo requestDebug Flow 看到该流量查找路由表的出接口为 root,随后被丢弃。
id=65308 trace_id=1 func=print_pkt_detail line=5795 msg="vd-root:0 received a packet(proto=1, 192.168.100.178:65060->223.5.5.5:2048) tun_id=0.0.0.0 from lan. type=8, code=0, id=65060, seq=744." id=65308 trace_id=1 func=init_ip_session_common line=5980 msg="allocate a new session-0000139d, tun_id=0.0.0.0" id=65308 trace_id=1 func=vf_ip_route_input_common line=2611 msg="find a route: flag=80000000 gw-223.5.5.5 via root" id=65308 trace_id=1 func=fw_local_in_handler line=606 msg="iprope_in_check() check failed on policy 0, drop"
问题原因
用户错误的配置了 IPPool 的地址范围为客户端要正常访问的 IP 地址,不论是否为防火墙策略引用。
config firewall ippool edit "IPPool" set startip 223.5.5.5 set endip 223.5.5.5 next end或是用户错误的配置了 VIP 的 extip 地址为客户端要正常访问的 IP 地址,不论是否为防火墙策略引用。
config firewall vip edit "VIP" set extip 223.5.5.5 set mappedip "10.10.2.1" set extintf "wan1" next endVIP 配置中的外部 IP 和 IPPool 中配置的地址范围不能配置为现有网络中其他设备的 IP、FortiGate 的网关 IP,也不能配置为内网客户端正常上网可能访问的 IP 地址。这是由于 FortiGate 配置 VIP 或 IPPool 后,extip、IPPool 地址范围属于 FortiGate 自身的 IP 地址,,所有访问该 IP 的流量经过 FortiGate 时都会被 FortiGate 引流到自身,影响正常的业务。
解决方法
- 遇到以上问题时首先使用 Sniffer 抓包和 Debug Flow 排查,如果显示流量被路由到 root 接口,则有可能是以上配置导致。
- 修改 VIP 中的 extip 或 IPPool 中的地址范围为正确的地址,或删除错误配置的 VIP、IPPool。