从运营商角度来考虑为什么NAT不能搭建服务器?

一句话总结nat4为什么不能搭建服务器“由于nat4只能由内部(即用户侧)发起请求,外部进行的回应才能被运营商设备转发到用户侧,由外部发起的请求并不会被运营商设备转发到用户侧,所以没法到达运营商级别的nat4网络中的用户侧的服务器或客户端,但如果你能使nat服务器的某个端口与你的内网端口绑定,则nat也能做服务器(参考路由器中的端口转发)”
首先先定义一下公网ip:119.1.1.1(子网我也不知道),pppoe获取到的nat的外网ip:100.1.1.1/32,路由器ip:192.168.123.0/24
1、首先要说一下路由器本身就是具有nat功能的,因为如果路由器关闭了nat功能就只有其本身可以跟外界互动,看图
在关闭nat的情况下,内网的数据并不会转发到外网上面,所以关闭了nat功能的路由器只能其本身可以具备访问外网的功能。
2、为什么运营商要选择为家庭宽带提供nat而不是更好的公网ip?
因为公网ip不太够用了,虽然运营商选择了强制更换ip的方案,但是公网的ip还是不够啊!你以为运营商喜欢用nat网?
如果运营商选择了nat网那么根据工信部的规定,需要对用户nat网内的端口转发关系进行存档,出问题了,要求运营商必须交出存档进行备查,所以啊,不要以为内网就可以搞那些东西,运营商对那些人访问了那些ip是有备案的,但是公网ip就简单了,因为只有你一个人用,只用记录这个ip那些时段给了那个人,就完了,根本不管端口不端口的,整个ip都给你了,一定是你干的。
例:假如我搞黄色访问了某个网站127.0.0.1 ,对于运营商来说他可能是100.1.1.1:1356转发到了119.1.1.1:4863上面然后访问127.0.0.1这个不法网站,于是运营商就会记录119.1.1.1:4863在某个时间段跟100.1.1.1:1356是建立关系的,如果127.0.0.1被端了(好可怜,希望多判几年),公安就会发现,丫的119.1.1.1:4863有访问,必须要逮到这个人,弄他丫的,于是就会发现100.1.1.1在这个时间段跟119.1.1.1:4863有关系,就是这个人了,于是你就被逮住了,需要注意运营商同时也会记录100.1.1.1是谁在用,nat的ip时长一般是48小时,所以这个记录就很简单,100.1.1.1在某个时间到某个时间,归谁用,然而nat转发记录就长了,毕竟他记录的是端口,6w多个,还是多人共享的,还保证不卡顿,也是比较厉害的了。
另外对于公网不需要nat问题上面似乎有点歧义,认为公网ip也需要nat转换,再此附上链接,可供参考
3、NAT的原理是什么?
我用个人的观点来描述:首先你的客户端ip:192.168.123.3打算产生一个连接,他的端口号打算用23334,当这个包转给路由器后,路由器会在外网剩余可用的端口号里面分配一个来进行转发,例如将192.168.123.3:23334转换成100.1.1.1:8563上面去。而且由于nat只用关心转换后的端口号的单独性所以可以同时拥有例如192.168.123.3:23334与192.168.123.4:23334的端口,在napt地址中,因为他们会被转发到不同的外网端口上面例如192.168.123.3:23334转换成100.1.1.1:8563然而192.168.123.4:23334会被转换到100.1.1.1:8564上面,所以内部的端口号不用担心冲突,毕竟ip不一样,路由器只用保证外网端口的单独性就可以了。
4、为什么NAT不能搭建服务器
公网ip:119.1.1.1(子网我也不知道),pppoe获取到的nat的外网ip:100.1.1.1/32,路由器ip:192.168.123.0/24,这个是前提是吧
假如你的服务器ip是192.168.123.2,端口号是23334,那么当这个信息发送到路由器后会变成100.1.1.1:23334(路由器设置了端口转发,规则是23334转发到23334),于是这个信息发给了运营商,并记录了下来100.1.1.1:23334转发到了119.1.1.1:5263上面,此时你的端口号已经变了,这是因为运营商的nat转发规则并不是用户控制的(基于对称型NAT功能),这个是文章,感兴趣去看看吧
我摘录了一些
在一对多模型中,按照端口转换的工作方式不同,又可以进行更进一步的划分。为描述方便,以下将IP和端口标记为(nAddr:nPort),其中n代表主机或NAT网关的不同角色。
 
▲ 按照端口转换映射方式分类 2.4.1全锥形NAT 其特点为:一旦内部主机端口对(iAddr:iPort)被NAT网关映射到(eAddr:ePort),所有后续的(iAddr:iPort)报文都会被转换为(eAddr:ePort);任何一个外部主机发送到(eAddr:ePort)的报文将会被转换后发到(iAddr:iPort)。 2.4.2限制锥形NAT 其特点为:一旦内部主机端口对(iAddr:iPort)被映射到(eAddr:ePort),所有后续的(iAddr:iPort)报文都会被转换为(eAddr:ePort);只有 (iAddr:iPort)向特定的外部主机hAddr发送过数据,主机hAddr从任意端口发送到(eAddr:ePort)的报文将会被转发到(iAddr:iPort)。 2.4.3端口限制锥形NAT 其特点为:一旦内部主机端口对(iAddr:iPort)被映射到(eAddr:ePort),所有后续的(iAddr:iPort)报文都会被转换为(eAddr:ePort);只有(iAddr:iPort)向特定的外部主机端口对(hAddr:hPort)发送过数据,由 (hAddr:hPort)发送到(eAddr:ePort)的报文将会被转发到(iAddr:iPort)。 2.4.4对称型NAT 其特点为:NAT网关会把内部主机“地址端口对”和外部主机“地址端口对”完全相同的报文看作一个连接,在网关上创建一个公网“地址端口对”映射进行转换,只有收到报文的外部主机从对应的端口对发送回应的报文,才能被转换。即使内部主机使用之前用过的地址端口对去连接不同外部主机(或端口)时,NAT网关也会建立新的映射关系。 事实上,这些术语的引入是很多混淆的起源。现实中的很多NAT设备是将这些转换方式混合在一起工作的,而不单单使用一种,所以这些术语只适合描述一种工作方式,而不是一个设备。比如,很多NAT设备对内部发出的连接使用对称型NAT方式,而同时支持静态的端口映射,后者可以被看作是全锥型NAT方式。而有些情况下,NAT设备的一个公网地址和端口可以同时映射到内部几个服务器上以实现负载分担,比如一个对外提供WEB服务器的站点可能是有成百上千个服务器在提供HTTP服务,但是对外却表现为一个或少数几个IP地址。
所以基于对称型NAT是无法做服务器业务的,因为他仅支持内部主动发起外部连接,不支持外部主动访问内部的。总之就是请求必须是内部发起,否则就会被丢弃。
例:192.168.123.3:2563被路由器封装成了100.1.1.1:3463,又被运营商封装成了119.1.1.1:2963并记录了该信息,服务器127.0.0.1收到了119.1.1.1:2963的包,并回复了信息,从127.0.0.1的某个端口发向了119.1.1.1:2963,然后运营商的机器发现这个包目的端口号是2963的信息,于是发给了100.1.1.1,此时就会发现,需要119.1.1.1:2963主动申请的信息服务端回复后才会被正确的转发
如果服务端(也有可能是主动申请连接的客户端)打算主动连接119.1.1.1这个网,但是119.1.1.1就会发现119.1.1.1没有对应的映射关系就会丢弃这个包。
点赞
百度已收录