ipfw 與 nat 外部ip 重導的問題 - BBS
By Puput
at 2008-01-31T19:51
at 2008-01-31T19:51
Table of Contents
※ 引述《rightflow (交大再見,畢業了...)》之銘言:
: ※ 引述《starlition ()》之銘言:
: : 這兩行改成下面這一行試試看
: : ${fwcmd} add 1020 divert natd ip from 192.168.0.0/16 to any via fxp0
: 這是內部 ip 連出去時 就卡在 SYN 回不來XD...
: tcp4 0 0 192.168.0.97.51484 10.0.0.1.25 SYN_SENT
弟的推測情況如下,如有不對的地方還請其他先進與大大更正與指教。
正常狀況:
a. SYN
Client -------------> 10.0.0.1 port 25 ---------------> 192.168.0.5 port 25
SIP: Client 封包會轉成 SIP: Client
DIP: 10.0.0.1 DIP: 192.168.0.5
b. SYN+ACK(注意箭頭)
Client <------------- 10.0.0.1 port 25 <--------------- 192.168.0.5 port 25
SIP: 10.0.0.1 封包會轉成 SIP: 192.168.0.5
DIP: Client DIP: Client
問題在這裡:
如果 redirect 的優先權比 nat 大..
在上述的圖所看到的 Client 將會帶 192.168.0.97
SYN 階段的 DIP 是 10.0.0.1
但是在 SYN+ACK 階段因為 192.168.0.0/16 的關係,192.168.0.5 就直接丟給 97,
封包的 SIP 並不是 10.0.0.1,而是 192.168.0.5
所以三向交握根本不會建立。
--
: ※ 引述《starlition ()》之銘言:
: : 這兩行改成下面這一行試試看
: : ${fwcmd} add 1020 divert natd ip from 192.168.0.0/16 to any via fxp0
: 這是內部 ip 連出去時 就卡在 SYN 回不來XD...
: tcp4 0 0 192.168.0.97.51484 10.0.0.1.25 SYN_SENT
弟的推測情況如下,如有不對的地方還請其他先進與大大更正與指教。
正常狀況:
a. SYN
Client -------------> 10.0.0.1 port 25 ---------------> 192.168.0.5 port 25
SIP: Client 封包會轉成 SIP: Client
DIP: 10.0.0.1 DIP: 192.168.0.5
b. SYN+ACK(注意箭頭)
Client <------------- 10.0.0.1 port 25 <--------------- 192.168.0.5 port 25
SIP: 10.0.0.1 封包會轉成 SIP: 192.168.0.5
DIP: Client DIP: Client
問題在這裡:
如果 redirect 的優先權比 nat 大..
在上述的圖所看到的 Client 將會帶 192.168.0.97
SYN 階段的 DIP 是 10.0.0.1
但是在 SYN+ACK 階段因為 192.168.0.0/16 的關係,192.168.0.5 就直接丟給 97,
封包的 SIP 並不是 10.0.0.1,而是 192.168.0.5
所以三向交握根本不會建立。
--
Tags:
BBS
All Comments
Related Posts
FreeBSD的squid error
By Charlotte
at 2008-01-31T19:36
at 2008-01-31T19:36
FreeBSD的squid error
By Jacob
at 2008-01-31T19:16
at 2008-01-31T19:16
ipfw 與 nat 外部ip 重導的問題
By Heather
at 2008-01-31T18:00
at 2008-01-31T18:00
ipfw 與 nat 外部ip 重導的問題
By Zenobia
at 2008-01-31T16:28
at 2008-01-31T16:28
FreeBSD的squid error
By Selena
at 2008-01-31T16:22
at 2008-01-31T16:22