-
Notifications
You must be signed in to change notification settings - Fork 142
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
求教tcp判断NAT类型的理论依据是什么? #120
Comments
关于 UDP,RFC3489 中有配有流程图: RFC 中确实没有对 TCP 进行分类,并且在 RFC5389 中废弃了原定的 UDP 分类。
所以 Natter 的 TCP NAT 分类,是根据原先 RFC3489 中对 UDP 的 NAT 分类,类推而来的。 |
理论上TCP的NAT分类和UDP的NAT分类应该保持一致,但是一些场景下出现不一致的情况。比如TCP_NAT结果是NAT3 (port_restricted)而UDP_NAT结果是NAT4(symmtric)。是不是表明无法直接通过类推UDP的方式来进行TCP检测? |
理论上 TCP 和 UDP 的 NAT 情况会出现不一致。例如 OpenWRT 中常用的一个内核模块 Chion82/netfilter-full-cone-nat ,这个模块只实现了 UDP 的 Fullcone NAT,那么检测 TCP 结果就是 NAT 3,UDP 为 NAT 1。 同样的,ISP 处的 CGNAT 也会有类似情形。如果怀疑检测结果不准,可以用 stunclient 等工具手动测试。 |
了解到三个RFC标准,发现并没有使用TCP判断NAT类型的具体说明。
RFC3489
RFC5389
RFC8489
The text was updated successfully, but these errors were encountered: