如图,路由器WAN口ip是30.82.22.74
但是不同网站显示ip不同:分别是113.214.173.171、113.214.193.227、183.134.202.1。
30.82.0.0/16属于公网IP号段,这个号段一共包含65536个IP地址,第一个IP地址为30.82.0.0,最后一个IP地址为30.82.255.255。很显然,题主的30.82.22.74属于其中的一员,所以它是公网IP。
既然30.82.22.74为公网IP,为何访问互联网IP地址却不是它?
因为这个IP号段,曾经被某个组织获得,但是由于历史原因没有出现在全球路由表之中。所以这个IP号段的IP报文不能出现在互联网上,需要做完地址翻译(NAT)之后才能进入互联网。
第二个问题,NAT地址翻译可以理解,一对一翻译。为何在访问不同的网站时,将30.82.22.74翻译成113.214.173.171、113.214.193.227、183.134.202.1三个IP地址?
由于30.82.22.74访问不同网站时,网站服务器位于不同的运营商内部。当流量离开本运营商,进入其它运营商时,此时才将30.82.22.74做NAT地址翻译,翻译之后的IP地址取决于该出口的IP地址池,每个地址池都不一样。即使同一个出口的地址池,可能有成百上千之多,所以即使你在不同时间访问同一个网站,翻译之后的IP地址可能都不一样,比如上一次翻译为113.214.173.171,下一次翻译为113.214.193.227。
在黄浦江上坐轮渡过江,在不同码头坐的轮船编号是不一样的。即使每次都在十六铺码头乘轮渡,也无法保证每次都乘同一艘轮渡,而是谁空闲乘谁,NAT地址翻译和坐轮渡是一个原理,找空座坐。
既然运营商可以将32.82.0.0/16公网号段分配给用户,是不是意味着运营商可以将所有的公网IP号段分配给用户,然后再出口做NAT地址翻译?比如群众喜欢的靓号的6.6.0.0/16、8.8.0.0/16?
当然不可以了,如果真是那样,用户访问6.6.0.0/16、8.8.0.0/16服务器的时候,流量永远无法离开运营商的局域网,造成通信障碍。而运营商之所以能够钻空子,是因为互联网上没有IP 地址位于32.82.0.0/16服务器,全球BGP路由表也没有32.82.0.0/16表项存在。给用户造成的幻觉是,仿佛在使用尊贵的VIP公网IP服务。而如果使用10/8、172.16/12、192.168/16等IP地址,用户知晓自己乘坐的原来是廉价私网IP服务,没有一丝一毫的幻觉。
作者|车小胖谈网络|公众号
,