頁面目錄
前言:
FortiGate allow traffic redirect 可以讓封包從同一介面上進出(例如:流量透過 LAN 介面進入,然後也透過LAN 介面離開),以下範例說明。
環境說明:
FortiOS版本:After 6.0
架構圖:

FortiGate設定:
FortiGate allow traffic redirect有enable和disable兩個選項。
config system global
set allow-traffic-redirect [ enable | disable ]
end
enable
流量將透過同一介面進行雙向轉送,無需防火牆策略且不會產生流量session與log為隱式允許。
啟用 traffic redirect後使用debug flow指令確認流量找到路由後不須policy設定直接通過。
id=65308 trace_id=905221 func=init_ip_session_common line=6490 msg=”allocate a new session-0001d3a2″
id=65308 trace_id=905221 func=iprope_dnat_check line=5568 msg=”in-[Lan], out-[]”
id=65308 trace_id=905221 func=iprope_dnat_tree_check line=836 msg=”len=0″
id=65308 trace_id=905221 func=iprope_dnat_check line=5593 msg=”result: skb_flags-02000000, vid-0, ret-no-match, act-accept, flag-00000000″
id=65308 trace_id=905221 func=vf_ip_route_input_common line=2615 msg=”find a route: flag=05000000 gw-172.16.4.254 via Lan”
id=65308 trace_id=905221 func=__if_queue_push_xmit line=395 msg=”send out via dev-a, dst-mac-ac:71:2e:6f:3c:40″
id=65308 trace_id=905222 func=print_pkt_detail line=6278 msg=”vd-root:0 received a packet(proto=6, 172.16.4.206:49961->162.241.224.74:443) tun_id=0.0.0.0 from Lan. flag [.], seq 4156383256, ack 2768839629, win 255″



disable
必須存在允許此流量的防火牆政策(來源介面和目標介面相同)。如果不存在允許政策,則流量將匹配隱式拒絕策略並被丟棄。
id=65308 trace_id=906173 func=__iprope_check_one_policy line=2429 msg=”policy-0 is matched, act-drop“
id=65308 trace_id=906173 func=__iprope_fwd_check line=867 msg=”after iprope_captive_check(): is_captive-0, ret-matched, act-drop, idx-0″
id=65308 trace_id=906173 func=iprope_fwd_auth_check line=896 msg=”after iprope_captive_check(): is_captive-0, ret-matched, act-drop, idx-0″
id=65308 trace_id=906173 func=fw_forward_handler line=839 msg=”Denied by forward policy check (policy 0)“




小提示:
1.FortiOS自 7.4.10、7.6.5 和 8.0.0 版本起allow-traffic-redirect 和 ipv6-allow-traffic-redirect 的預設值已從 enable 更改為 disable。
2.FortiGate-VM的單臂(one-arm)流量,建議將allow-traffic-redirect和ipv6-allow-traffic-redirect設定為disable。
3.對於TCP流量,必須在policy中關閉anti-replay,這樣TCP流量就不會被當成重複流量丟棄。
關閉policy的anti-replay
config firewall policy
edit <policy_id>
set anti-replay disable
next
end