路由器后的源UDP端口

路由器后的源UDP端口,udp,port,router,nat,Udp,Port,Router,Nat,我有两个网络,通过NAT/路由器连接 网络A(带有路由器192.168.0.1)中的PC(A,192.168.0.2)向另一个网络B(带有路由器10.0.0.1)中的PC(B,10.0.0.2)发送UDP数据包。 在网络A中,数据包具有源ip/端口192.168.0.2:2000和dst 10.0.0.2:5000, 在网络B中,它变成了src ip/端口10.0.0.1:6000(因为6000是免费的,无论出于什么原因,只是为了举例)和dst 10.0.0.2:5000 现在,PC A从源ip

我有两个网络,通过NAT/路由器连接

网络A(带有路由器192.168.0.1)中的PC(A,192.168.0.2)向另一个网络B(带有路由器10.0.0.1)中的PC(B,10.0.0.2)发送UDP数据包。 在网络A中,数据包具有源ip/端口192.168.0.2:2000和dst 10.0.0.2:5000, 在网络B中,它变成了src ip/端口10.0.0.1:6000(因为6000是免费的,无论出于什么原因,只是为了举例)和dst 10.0.0.2:5000

现在,PC A从源ip/端口192.168.0.2:2000向网络B中的另一台PC发送另一个udp数据包。 网络A中的源端口相同,但网络B中的源端口是否也相同(本例中为6000)? 我想是的,但我不确定

它是否也取决于dst ip/端口? 如果否,是否意味着1台pc,甚至网络A中的1个src端口,可以使用网络B中的所有“路由器端口”? (我希望至少需要65536个网络A src端口才能填满网络B中的“路由器端口”)


我所说的“路由器端口”是指哈希表条目,因此,如果PC B发送到A(通过路由器端口6000),数据包将被发送。

这很复杂。这取决于路由器的配置。可以使用几种类型的NAT。 -静态NAT -动态NAT -和端口重定向(与NAT不同)

通常路由器从局域网(a)到广域网(B)进行NAT,端口重定向用于从B到a的流量

因为UDP没有建立套接字,路由器应该执行几种策略来映射UDP数据包。这就是路由器使用端口6000的原因

通常路由器不使用A中的源端口作为B中的源端口,可能是您可以配置的,但不推荐使用,因为该信息(端口)对NAT很有用,路由器可能(默认情况下)使用配对ip端口在网络之间映射数据包

已知路由器模型有助于获得更具体的答案

您可以在此处查看有关使用iptables的linux NAT可能性的更多信息:

如果linux可以做到这一点,路由器也应该做到,但这取决于型号