作者uftea (可爱茶)
看板FreeBSD
标题Re: [问题] ipfw 与 nat 外部ip 重导的问题
时间Thu Jan 31 19:51:29 2008
※ 引述《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
所以三向交握根本不会建立。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.116.86.46
※ 编辑: uftea 来自: 122.116.86.46 (01/31 19:51)