老实说,我认为你不明白这个问题
我也不明白你的问题,这可能是因为我相信你在不正确的假设下运作。
让我说清楚 - 您的提供商并不关心您尝试 NAT 遍历以使您的 Skype 通话更好。如果他们不是第 1 层,他们关心的是赚钱、最大限度地减少中断并降低他们的运输成本。基本上就是这样。您所指的“大型”或“运营商级”路由器与 NAT 或“选择端口”几乎没有关系。即使是直接位于您家中路由器(或 Winn Dixie)上游的路由器,也不关心 NAT。NAT 的全部意义在于您的终端设备不知道它正在被 NAT,并且运营商的边缘路由器不在乎 - 他们看到他们分配给您的目标 IP 地址和源 IP 地址,并且他们希望尽快将这些数据包从他们的网络中取出。正如 Ron 所说,NAT 是为地址保存/保存和“移动性”而设计的,因此运营商网络边缘的客户可以充分利用分配的地址空间。您所指的大多数“大型”路由器并未部署在生产网络中,其设计考虑涉及执行任何类型的 NAT,它们是根据其 FIB/RIB 容量、端口密度、可用接口类型、TCAM 实现的大小,背板速度等。关于端口选择的指责不一定要针对运营商及其设备,
因此,如果您的问题是,“为什么客户不选择容易猜到的端口?” (或者说顺序端口),答案是许多实现在选择临时端口时就是这样做的:“取最后一个当前使用的端口,添加一个,获取新的临时端口”
但是,您需要了解选择临时端口不仅是客户端必须关心的事情 - 在以下情况下会发生“冲突”(有些简化和做作):
CLIENT_IP:EPH_PORT <----FIN---- WEBSERVER:80
CLIENT_IP:EPH_PORT --FIN/ACK--> WEBSERVER:80
CLIENT_IP:EPH_PORT <----ACK---- WEBSERVER:80
所以现在客户端的连接状态消失了,网络服务器的 TCP 会话处于FIN_WAIT. 如果客户端使用“下一个可用 + 1”临时端口标准,并使用之前用于连接同一网络服务器的相同临时端口,而前一个会话仍在FIN_WAIT网络服务器上,则会出现问题。
关于阻止除 80 和 443 之外的所有出站设备,这又取决于管理边缘设备的人,而不是运营商。运营商根本不这样做。如果我感觉自己是一个非常谨慎或偏执的管理员,并且我在一个高度公共的地方管理网络基础设施/WiFi,我可能会做同样的事情。
NAT 不是一种安全手段。然而,正如您所注意到的,为 NAT 选择的临时端口可能并且有时会被混淆以用于安全措施;如果攻击者有办法轻松猜测传输层流中使用的下一个临时端口,他们实际上可以做恶事。