1
laminux29 2019-10-09 10:37:10 +08:00 1
它这个协议根本就是错的。
公网 ip <---> 公网 ip,这一条没问题,原理很简单,就像收发邮件一样。一般发邮件,发件人,会在邮件的发件人一栏,写上自己的名字、地址、电话。但是,发件人信息其实是可以不写的,因为只要有收件地址,对方就可以收到邮件。这个协议就是模拟了这个特性。就像很多淘宝发货商,在包裹的发件人信息一栏,不会写具体发件人的位置,而是用店铺名与手机号取代。 公网 IP <---> NAT 子网,这就全错了。 首先,它要求客户端与服务器进行正常通信,那就暴露了客户端的地址。 其次,这个协议的作者,没搞懂 [NAT 打洞] 是怎么回事。NAT 有多种模型,它提的这种方法只对于全锥形 NAT 才有效,但问题是,大部分民用以及低端商用路由器或 NAT 设备,是不支持全锥形 NAT 的。所以协议用全锥形 NAT,对于大部分民用设备是无法通信的。如果改为其他 NAT 模型又必须暴露服务端的地址。 |
2
ganymedenil590 2019-10-09 10:38:04 +08:00 1
真要查 总能识别到的
|
3
asdfjkl OP @laminux29 对于公网 IP <---> NAT 子网,如果允许暴露服务端的地址,是不是其他 NAT 模型也可以正常通信?这种通信模型只能在部分数据包隐藏服务器端的地址?
|
4
asdfjkl OP @ganymedenil590 感谢你的回答。人总是要死的,人类总是要灭绝的。这是个成本与收益的问题,我关心的是如何在可接受成本的前提下提高收益。
|
5
laminux29 2019-10-09 15:22:44 +08:00 1
@asdfjkl 公网 IP 与 NAT 子网通信,理论上来说,只要暴露了服务端地址,那么通信就能成立。但这只是理论上的,就看网络设备商的程序猿会不会偷懒。因为不偷懒的话,NAT 设备还需要涉及到一次地址记录与查找。如果程序猿偷懒,那仍然是无法通信。
而且其实这都不重要,重要的是,暴露了服务端地址,隐藏通信的想法在实际应用中,根本就不可靠。因为网安要求电信的上端仍然有记录设备,会记录当前链路发的包。所以无论包里如何填 IP head,被记录后都能查出是谁发的。具体来说: 家庭光纤或拨号上网用户,上级的 EPON 之类的设备会能够把数据库与线路记下来,存储到电信的网安设备里。 学校或大型单位用户,网安会要求在 NAT 设备与用户之间安装网安设备来记录这些东西。 总之,只要网安想查,这种协议是无法避免被查水表的。 真正想逃避这种检查,只能采用洋葱路由的思路,这种思路的本质是查证成本太高,导致实际上就没办法查。 |
6
cat9life 2019-10-09 15:58:40 +08:00 1
看起来不错...等待更新
|
7
gamexg 2019-10-09 16:26:06 +08:00 1
目前接触到的 isp 都做了防护,伪造的源 ip 的包会被 isp 丢弃掉。
|
8
asdfjkl OP @laminux29 公网 IP 与 NAT 子网通信,感觉和 NAT 打洞一样,只要 NAT 打洞能成功,这样的通信也能成功。而正常的 NAT 打洞感觉还是需要的,比如微信视频之类的(我也不确定)。
网安查,不是我关注的。我想关注的是如果要在中间路由做阻断的话,该怎么识别出哪些是伪造的报文,哪些才是真正的报文。理论上可以伪造任何地址,那岂不是所有地址都有可能遭到阻断? |
10
Themyth 2020-08-29 15:14:09 +08:00
现在无论是国内国外,家宽还是 ISP,99%都屏蔽了 ip spoof,就算它没屏蔽,它的上层路由也会屏蔽的。
|