没有公网 IP 的不必迷信 Full-Cone NAT

1 天前
 HawkinsSherpherd

其实有公网 IP 的也不用迷信 Full-Cone NAT ,有是不错,没有也不用强求。

RFC 4787 ( Network Address Translation (NAT) Behavioral Requirements for Unicast UDP )中,定义了使语音,游戏等 UDP 应用正常工作的 NAT 行为要求:

  1. 必须使用 Endpoint-Independent Mapping 的 NAT 映射模式
  2. 建议以“对齐”的方式从 IP 地址池中分配 NAT 地址
  3. 不可为不同的内部 IP:端口组合复用同样的 NAT 地址:端口组合
  4. 建议 NAT 网关以奇偶对称的方式分配端口
    • 奇数的内部端口分配奇数的外部端口,反之亦然
  5. UDP NAT 映射关系的存活时间不可低于两分钟
    • 例外情况:一些运行在公认端口范围( 0-1023 )内的应用
  6. 必须要有出方向的 NAT 映射关系存活时间刷新机制

Full-Cone NAT ( NAT 1 ),Restricted-Cone NAT ( NAT 2 )等术语的定义位于 RFC 3489 ( STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)) 中,它们都具有一个共同的特点:

从 NAT 1 到 NAT 3 ,它们都将相同的内部 IP:端口组合映射到同样的外部 IP:端口组合上,无论访问的外部主机 IP:端口组合如何,符合 Endpoint-Independent Mapping 的定义。它们都满足使语音,游戏等 UDP 应用正常工作的第一则要求。

而 Symmetric NAT ( NAT 4 ),理论和实践中都不满足使语音,游戏等 UDP 应用正常工作的要求:

  1. NAT 4 不对不同的外部主机 IP:端口组合复用 NAT 地址:端口组合,每发起对一个新的外部主机 IP:端口组合的通信都会生成一个不重复的 NAT 地址:端口映射,配合严格的过滤策略,使得隐藏在 NAT 4 之后的端点没有一个对除中转服务器之外的端点确定可用于外部主动连接的 NAT 地址:端口映射组合。
  2. NAT 4 严格的 NAT 过滤策略使现有的 NAT 映射关系无法被复用,即便服务器知道一个存在的外部端点,这个端点也只能给服务器用,不能给其它端点使用。

有的朋友可能会说了,NAT 1 和 NAT 2 理论上也能和 Symmetric NAT 打洞 P2P 通信,所以 Full-Cone NAT 是有意义的:

但这是规范之外的行为,只能与特定类型的用户打洞并不符合规范要求,无情地说,NAT 4 用户能不能打洞是不值得关心的,因为本来就不能。

而且,Full-Cone NAT 具有一定安全风险:

结论:如果只是个臭打游戏的,也没有公网 IP ,只要不是 NAT 4 ,日子都还过得去。

2444 次点击
所在节点    宽带症候群
30 条回复
gaju
1 天前
自从有了收割机 ipv6 ,这些上古牛耕马犁 nat 碰都不碰了
datou
23 小时 32 分钟前
f-nat 也不耽误运营商限制 UDP
TESTFLIGHT2021
22 小时 42 分钟前
现在智能 QOS ,管你 NAT 几
MFWT
22 小时 22 分钟前
> 即便是 NAT 1 也要用些奇技淫巧

我就是奇技淫巧用户,打洞之后用 TCP 直连(具体来说是 Shadowsocks UoT + tun2socks ),因为没有了 UDP 限制,比 UDP 打洞体验好太多
ZE3kr
22 小时 17 分钟前
我用的 Google Fiber 是 NAT Type 2
ZE3kr
22 小时 12 分钟前
测了一下发现蜂窝网络也是 NAT 2
lns103
21 小时 41 分钟前
别的都好说,走服务器 frp 中转,走 ipv6 等,但是 BT/PT 下载做种确实需要一个开放的 v4 端口,有 Full Cone NAT 就还有救
qwvy2g
10 小时 34 分钟前
NAT 行为按照 RFC5780 定义分成出站映射和入站过滤两个部分。Endpoint-Independent Mapping 无论外部主机的目的 IP 和目的端口是什么,只要源 IP 和源端口相同,NAT 都会将所有出方向的报文转换为相同的端口映射出去。Endpoint-Independent FilteringNAT 检查入方向目的 IP 和目的端口时,不关心外部主机的源 IP 或源端口值。按照 RFC5780 定义 Ful Cone NAT=EIM+EIF 。nat 出战和入站策略各有三四种,比如 restricted cone NAT=EIM+ADF ,PortRestrictedCone=EIM+APDF 。这种分开的设置可能在企业出口的防火墙设备上可能会有,普通企业路由器和家用路由器没有这种功能。
ZardCzz
9 小时 7 分钟前
@amyw495062 广东联通吃相太难看了,之前的 NAT1 偷偷改成 NAT4
amyw495062
8 小时 51 分钟前
@ZardCzz 最搞笑的是联通无论怎么搞,也会有一群人无脑捧联通,都已经变成这种烂货了,广东还有一群人推荐装联通,比移动贵还比移动烂也还好意思说联通便宜好用,联通有底气这么搞也就是因为有着这么一群舔狗用户

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1097868

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX