最近刚刚学到ip这里,查了下自己手机移动卡的ip的106.17.184.169,是公网ip,但是这个ip会经常变动。自己电脑是移动的校园网,查了下ip036.157.103.90又是一个公网ip,我自己一个人就用了两个公网ip,全球只有40亿公网ip,是怎样才够用的呢?
很早之前我们就听说了IPv4已经不够分配了,全球太多接入互联网的设备了,但是直到今日,我们依然还是在使用IPv4,哪怕IPv6已经铺开了,但是使用率非常之低。为什么IPv4还一直够用呢?因为一个技术,就是NAT
NAT
NAT全称网络地址转换(Network Address Translation),也叫做网络掩蔽、IP掩蔽。90年代中期,NAT作为一种解决IPv4地址短缺以避免保留IP地址困难的方案而流行起来。其主要的功能就是尽量使同个区域(同一栋楼、同个小区…)的设备使用尽可能少的公网IP,一起共用公网IP,这样就能减少公网IP的消耗
无NAT网络
首先来看看这个无NAT的网络,这个时候所有设备都是直接接入公网,都有分配公网IP。如图所示现在有四个子网,每个子网需要255个IP,那么针对这一区域的网络至少需要保留或申请1000个公网IP,如果大家都如这样,那么可想而知IPv4大量被耗尽,且不一定能完全利用(利用率低)
带NAT的网络
再来看看有NAT的网络,通过NAT的转换,我们可以看出不管私网里有多少个IP端,在对外出口处只需要保留或申请255个公网IP即可(掩码255.0.0.0),这样私网里的所有设备都可以一起共用这255个公网IP,简单说就是有需要的分配,没用的时候归还公网IP
NAT主要分为:
- 静态NAT(Static NAT)
- 动态NAT(Dynamic NAT)
- 端口NAT(PAT),端口多路复用(Overload)
静态NAT
静态NAT:将内部私有IP和公网IP地址一对一绑定,这样公网IP地址不会变,主要用于一些需要实现外部网络对内部网络的指定设备(如服务器)的访问
动态NAT
动态NAT:保留多个公网IP,采用动态的方式分配给内部网络的设备(设备接入随机分配公网IP,设备断开就将公网IP放回池中,因此每次使用的公网IP会一直变化)
端口NAT(PAT)
端口NAT(PAT):将中小型网络隐藏在一个公网IP后面,修改外出数据包的源端口并进行端口转换(端口地址转换,Port Address Translation),端口多路复用(Port Multiplexing)。这样内部的设备都是用同一个IP接入互联网
实际分析
我们来看看实际情况
我的电脑现在IPv4地址是10.0.1.212,也就是我们所说的内网IP,我们上路由器看看
我采用PPPoE在我自己的路由器而不是光猫上面进行拨号(为了玩IPv6),路由器的WAN口IP是100.64.251.27,这个IP段其实也是保留地址之一,ISP拿来用于NAT
所以实际上我们能获取到的IP地址其实都不是公网IP,公网IP可以直接在线网站查询。值得一提的是这边获取的IPv6都是公网IPv6,都是在外面可以直接连接的,这就是差别
总结
所以,目前IPv4确实已经不够用了,但是因为有了NAT技术(平时运营商拉的宽带主要还是采用PAT)的存在,所以才能一直撑到现在,NAT的存好有好有坏,让IPv4能撑得更久,但是也严重阻碍了向IPv6推进的进程了。