已解决问题
NAT下行穿越的问题  (进入论坛模式)
提问者:edmond98   |  提问时间:2011-10-19 16:36
一个终端,在NAT后面,从IPA, PortA向有服务器B发送包,目的地址:IPB, PortB 这时,从服务器B上,抓包,看到收到经过NAT的包,源地址IPC, PortC,目的地址:IPB, PortB,IPC应该就是最后一次NAT的网关地址,PortC为相应翻译后的隐射端口


问:这时候,是不是从服务器B上的任一程序,或者从其它任一公网IP,向IPC, PortC发包,都会最终送达终端IPA, PortA上?



Src-A:A Src-C:C
Dst-B:B ------> GW -> Dst-B:B ----->Server B


Src-B : B Src-B : B
Dst-A:A <------ GW <- Dst-C:C <---???--Server B ??能通么?

也就是NAT网关,做下行地址翻译时候,会不会对源地址源端口进行检查?也就是只有源地址来自IPB,PortB的目的地址IPC, PortC,才会被转发给内网的终端?


另,NAT翻译对应端口的生存周期一般多少?
关闭所有答案回应     最佳答案
TCP不用说,只说UDP
首先回传包的目的地址和端口必须是NAT打洞包的源地址和端口,任何NAT都必须这样
其实回传包的源地址和端口则不同NAT各不相同,不合规格就会过滤掉。有三种情况:
1。有的NAT要求回传包的源地址和端口必须是打洞包的目的地址和端口,也就是要进行IP和端口过滤。
2。有的NAT只要求IP地址一致,端口可以不同。叫IP过滤
3。还有的NAT不要求

BTW,运营商的好像是第一种:)
回应该答案 (0)  |  回答时间:2011-10-20 14:34
其他答案 ( 2 条 )
不会。这个不是这样的楼主的理解有问题。首先IPA经过NAT以后serverB是不能主动对IPA发送数据包的,只能被动的响应ipa的要求。然后数据包在C上的时候是需要检查端口号的,以确定这个数据包是发送给哪个IP的
 |  回应该答案 (0)  |  回答者:myimmortal1986   |  2011-10-20 00:35
上面说的事PAT的情况,如果是1对1的映射,那么发给C的数据包会达到A
 |  回应该答案 (0)  |  回答者:myimmortal1986   |  2011-10-20 00:38