困惑已久
在NAT转换中,内网IP对应的外网IP会写到映射表中,如果内网多台主机同时访问同一个外网,会分配不同的IP么?如果是不同IP,这些映射表中的条目是否有时效?如果不是,即用同一个外网IP,那返回包是如何转发到内网中各个主机上的?
答:NAT只是对地址进行转换。对端不需要支持NAT.
如果是家用路由器共享的话
比如你发送的报文是src: 192.168.1.100:5000, dst: 100.100.100.100:80
你的路由其的WAN IP是101.101.101.101
你的报文到了路由器这一侧,会找一个没有使用的源端口,比如10000
然后把报文转成src: 101.101.101.101:10000, dst: 100.100.100.100:80, 并且建立192.168.1.100:5000 -> 101.101.101.101:10000的映射表。
然后100.100.100.100:80收到报文,他只知道源是101.101.101.101:10000, 所以回复报文的目的地址是101.101.101.101:1000
路由器收到报文查找映射表,把目的地址再转换成192.168.1.100:5000。
你的第一段写得那种NAT, 并不会根据端口做映射,所以他的映射表是死的,就不能起到共享的功能。