我想在两个对等方之间建立UDP通信,分别为Alice和Bob。Alice位于端口受限锥形NAT后面(这意味着即使目标更改,相同的内部端口也会映射到相同的外部端口),而Bob位于对称NAT后面(这意味着每次选择新目标时,外部端口都会更改,无论内部端口如何,从而使外部端口不可预测)。我中间有一台服务器,我想进行UDP打洞。
我实施了以下策略:
- Bob打开大量端口,并从所有端口向Alice的外部端口发送数据包(他通过服务器获得知道)。 - Alice在随机端口向Bob的NAT发送数据包,直到建立连接。
手头有这两种类型的NAT,我做了一些实验。Bob打开32个端口,Alice每0.1秒发送64个数据包。连接通常在1或2秒内建立,这对我的需求来说足够了。
但是,我想知道是否会遇到一些严格的NAT路由器或防火墙的麻烦。例如,可能会发生这样的情况:路由器不允许内部对等方打开32个端口吗?或者(这听起来更有可能)可能发生这样的情况:看到很多在随机端口上被丢弃的数据包的路由器会将IP列入黑名单,并在一段时间内丢弃所有数据包吗?我读到有时候在DoS攻击的情况下可能会发生这种情况,但我的数据包速率比DoS攻击轻4到6个数量级。
我询问合理的网络配置:原则上我相信可以设置防火墙以这种方式运行。我的主要目标是那些位于标准家庭连接后面的用户,因此我的主要目标是使用NAT的常见互联网提供商。
我实施了以下策略:
- Bob打开大量端口,并从所有端口向Alice的外部端口发送数据包(他通过服务器获得知道)。 - Alice在随机端口向Bob的NAT发送数据包,直到建立连接。
手头有这两种类型的NAT,我做了一些实验。Bob打开32个端口,Alice每0.1秒发送64个数据包。连接通常在1或2秒内建立,这对我的需求来说足够了。
但是,我想知道是否会遇到一些严格的NAT路由器或防火墙的麻烦。例如,可能会发生这样的情况:路由器不允许内部对等方打开32个端口吗?或者(这听起来更有可能)可能发生这样的情况:看到很多在随机端口上被丢弃的数据包的路由器会将IP列入黑名单,并在一段时间内丢弃所有数据包吗?我读到有时候在DoS攻击的情况下可能会发生这种情况,但我的数据包速率比DoS攻击轻4到6个数量级。
我询问合理的网络配置:原则上我相信可以设置防火墙以这种方式运行。我的主要目标是那些位于标准家庭连接后面的用户,因此我的主要目标是使用NAT的常见互联网提供商。