如果isp在分配ip给个人的时候,用了nat导致有一些用户的公网ip一致,那这些用户是通过什么方式来区分的?


过去IP地址还充足的时候,运营商用PAT(Port Address Translation)可以把用户的私网IP多对一地翻译成一个公网IP,然后以埠号来区分他们。

不过自从IANA在2011年二月宣布IPv4地址枯竭后,世界各地ISP目前普遍用的是CGN(Carrier Grade NAT,运营商级NAT),也叫NAT444,就是用户的私网IP在运营商那边被翻译两次,第一次被翻译成私网IP(这个私网IP是运营商自己的),第二次再被翻译成公网IP。如果你发现自己的公网IP是10.X.X.X,192.168.X.X或者100.64-127.x.x(因为ISP第一次翻译时使用的私网IP有可能和用户本身使用的私网IP冲突,因此IETF于2012年4月发布的RFC 6598专门为CGN预留了一个「共享地址空间」,即100.64.0.0/10),那么「恭喜」你,你的ISP为你提供的是有很多弊端的CGN。


不同用户经运营商NAT之后,会存在一部分用户在访问公网时候是使用同一个公网IP地址进行访问。 NAT设备自己会保存一份NAT地址映射表,将公网地址的不同埠与你访问出网的源地址及源埠形成对应关系,这样就可以区分不同用户了。


正常情况下没有可能


分配的公网ip不会发送给用户,用户收到的是私有ip。同一系统下分配给用户的私有ip不会重复,运营商以此来区分用户,并维护公网ip和私有ip的地址埠映射表


你家里的多个设备时使用了同一个公网地址对吧。那么,你这么多设备是怎么使用同一个地址的呢?怎么区分?

划一个内网,接上去不就行了?


公网IP是不会重复的,你说的nat是:

内网机器(使用内网IP)通过同一个公网IP访问公网的方案。

简单说就是,内网把请求数据包交给nat路由器,路由器把数据包的内网IP替换成公网IP扔出去,收到响应再把IP改回内网机器IP扔回去。

具体你可以搜索NAT原理就知道了。

很多ISP,比如移动也是给用户分配内网IP,通过NAT上网。


公用IP不可能重复。


推荐阅读:
相关文章