在现在的网络中,IP地址分为公网IP和私有IP地址。公网IP是在Internet使用的IP地址,而私有IP地址是在局域网中使用的IP地址。 

由于我们目前使用的IP V4协议的限制,现在IP地址的数量是有限的。

这样,我们就不能为居于网中的每一台计算机分配一个公网IP。

所以,在局域网中的每台计算机就只能使用私有IP地址了,如我们常见的192.168.0.*,就是私有IP地址。 

 

IANA 保留地址

IANA 就是指(Internet Assigned Numbers Authority) ,Internet号分配机构,负责对IP地址分配规划以及对TCP/UDP公共服务的端口定义。

国际互联网代理成员管理局(IANA)是在国际互联网中使用的IP 地址、域名和许多其它参数的管理机构。

IP地址、自治系统成员以及许多顶级和二级域名分配的日常职责由国际互联网注册中心(IR)和地区注册中心承担。

端口号可以分为三个范围:“已知端口”、“注册端口”以及“动态和/或专用端口”。

1)“已知端口”是从 0 到 1023 的端口。

2)“注册端口”是从 1024 到 49151 的端口。

3)“动态和/或专用端口”是从 49152 到 65535 的端口。理论上,不应为服务分配这些端口。

 

“已知端口”由 IANA 分配,并且在大多数系统中只能由系统(或根)进程或有特权的用户所执行的程序使用。TCP [RFC793] 中使用的端口用于命名进行长期对话的逻辑连接末端。为了向未知的呼叫方提供服务,系统定义了一个服务联系端口。

联系端口有时也称为“已知端口”。为了尽可能利用这些端口,UDP [RFC768] 使用了同样的端口分配。分配的端口只使用了一小部分可用的端口号。很多年以来,分配的端口一直处在 0-255 的范围内。最近,由 IANA 管理的已分配端口的范围扩展到了 0-1023。 

 

“注册端口”由 IANA 列出,并且在大多数系统上可以由普通用户进程或普通用户所执行的程序使用。TCP [RFC793] 中使用的端口用于命名进行长期对话的逻辑连接末端。为了向未知的呼叫方提供服务,系统定义了一个服务联系端口。

IANA 会注册这些端口的使用情况,从而向社区提供方便。为了尽可能利用这些端口,UDP [RFC768] 使用了同样的端口分配。“注册端口”的范围为 1024-49151。

在IP地址范围内,非路由地址IANA(InternetAssignedNumbersAuthority)将一部分地址保留作为私人IP地址空间,专门用于内部局域网使用,这些地址如下表:

类IP地址范围网络数

A 10.0.0.0---10.255.255.255(长度相当于1个A类IP地址)

B 172.16.0.0---172.31.255.255(长度相当于16个连续的B类IP地址)

C 192.168.0.0---192.168.255.255(长度相当于256个连续的C类IP地址)

这些地址是不会被Internet分配的,因此它们在Internet上也从来不会被路由,虽然它们不能直接和Internet网连接,但仍旧可以被用来和Internet通讯,我们可以根据需要来选用适当的地址类,在内部局域网中大胆地将这些地址当作公用IP地址一样地使用。在Internet上,那些不需要与Internet通讯的设备,如打印机、可管理集线器等也可以使用这些地址,以节省IP地址资源。

 

特殊IP地址(保留IP地址)

就像我们每个人都有一个身份证号码一样,网络里的每台电脑(更确切地说,是每一个设备的网络接口)都有一个IP地址用于标示自己。我们可能都知道这些地址由四个字节组成,用点分十进制表示以及它们的A,B,C分类等,然而,在总数大约为四十多亿个可用IP 地址里,你知道下面一些常见的有特殊意义地址吗?

1、0.0.0.0

严格说来,0.0.0.0已经不是一个真正意义上的IP地址了。它表示的是这样一个集合:所有不清楚的主机和目的网络

这里的“不清楚”是指在本机的路由表里没有特定条目指明如何到达。对本机来说,它就是一个“收容所”,所有不认识的“三无”人员,一律送进去。如果你在网络设置中设置了缺省网关,那么Windows系统会自动产生一个目的地址为0.0.0.0的缺省路由。

 

2、255.255.255.255

限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机

如果翻译成人类的语言,应该是这样:“这个房间里的所有人都注意了!”这个地址不能被路由器转发。

 

3、127.0.0.1

本机地址,主要用于测试。用汉语表示,就是“我自己”。在Windows系统中,这个地址有一个别名“Localhost”。寻址这样一个地址,是不能把它发到网络接口的。除非出错,否则在传输介质上永远不应该出现目的地址为“127.0.0.1”的数据包。

 

4、224.0.0.1

组播地址,注意它和广播的区别。从224.0.0.0到239.255.255.255都是这样的地址。224.0.0.1特指所有主机,224.0.0.2特指所有路由器。这样的地址多用于一些特定的程序以及多媒体程序。如果你的主机开启了IRDP (Internet路由发现协议,使用组播功能)功能,那么你的主机路由表中应该有这样一条路由。

 

5、169.254.x.x

如果你的主机使用了DHCP功能自动获得一个IP地址,那么当你的DHCP服务器发生故障,或响应时间太长而超出了一个系统规定的时间,Wingdows系统会为你分配这样一个地址。如果你发现你的主机IP地址是一个诸如此类的地址,很不幸,十有八九是你的网络不能正常运行了。

 

6、10.x.x.x、172.16.x.x~172.31.x.x、192.168.x.x

私有地址,这些地址被大量用于企业内部网络中。一些宽带路由器,也往往使用192.168.1.1作为缺省地址。私有网络由于不与外部互连,因而可能使用随意的IP地址。保留这样的地址供其使用是为了避免以后接入公网时引起地址混乱。使用私有地址的私有网络在接入Internet时,要使用地址翻译(NAT),将私有地址翻译成公用合法地址。在Internet上,这类地址是不能出现的。

对一台网络上的主机来说,它可以正常接收的合法目的网络地址有三种:本机的IP地址、广播地址、组播地址

 

保留IP、回环IP、私有IP

首地址 尾地址 所属IP分类 无分类掩码 示意
0.0.0.0 0.255.255.255 Class A network 0.x.x.x 0.0.0.0/8 A类保留地址
10.0.0.0 10.255.255.255 Class A network 10.x.x.x 10.0.0.0/8 A类私有地址
100.64.0.0 100.127.255.255 Class B network 100.x.x.x 100.64.0.0/10 64个B类私有地址(运营商)
127.0.0.0 127.255.255.255 Class A network 127.x.x.x 127.0.0.0/8 回环IP,表示本机
128.0.0.0 128.0.255.255 Class B network 128.0.x.x 128.0.0.0/16 保留
169.254.0.0 169.254.255.255 Class B network 169.254.x.x 169.254.0.0/16 DHCP自动分配B类私有IP地址
172.16.0.0 172.31.255.255 172.16.x.x 到 172.31.x.x共16共B类网络 172.16.0.0/12 B类私有地址
191.255.0.0 191.255.255.255 Class B network 191.255.x.x 191.255.0.0/16 C类保留地址
192.0.0.0 192.0.0.255 Class C network 192.0.0.x 192.0.0.0/24 C类保留地址
192.168.0.0 192.168.255.255 256 个C类网络 192.168.0.0/16 C类私有IP
223.255.255.0 223.255.255.255 Class C network 223.255.255.x 223.255.255/24 保留
255.255.255.255 255.255.255.255 Class C network 255.255.255.255 255.255.255.255/32 广播地址

 

计算主机数时,都要扣除全0和全1的主机号,为什么捏?

在一个网络段中主机号全为0(0.0.0.0),代表这个网络段本身,称之为网络号,这个地址是不可以分配给主机;

在一个网络段中主机号全为1(1.1.1.1),是广播地址,你给这个地址发数据包,这个网络内的所有主机都能收到。

 

100.64.0.0/10运营商级(Carrier-grade)NAT保留IP地址

这个 100.64.x.x 开头的IP地址是什么?

搜索维基百科的Reserved IP Address词条才发现原来教科书上介绍的只是部分保留地址,整个保留地址家族的成员还是比较多的,那么100.64打头的IP地址对应地址块为100.64.0.0/10,地址范围为100.64.0.0~100.127.255.255,共包含有4,194,304个IP地址,这个保留地址也是用于内网,但是这个内网不是一般内网而是Carrier-grade NAT,这个英文对应的翻译是“运营商级NAT”。进一步搜索得知2012年4月的 RFC 6598 (IANA-Reserved IPv4 Prefix for Shared Address Space) 将100.64.0.0/10 (Shared Address Space) 地址块,用于给运营商ISP使用:

NetRange:       100.64.0.0 - 100.127.255.255
CIDR:           100.64.0.0/10
OriginAS:
NetName:        SHARED-ADDRESS-SPACE-RFCTBD-IANA-RESERVED
NetHandle:      NET-100-64-0-0-1
Parent:         NET-100-0-0-0-0
NetType:        IANA Special Use

据此可以推断出电信的黑科技实际上是使用了一个类似路由的设备,将我们的网络组织成一个局域网,再通过网址转换NAT技术来实现网络通信,可以这么理解吧,我们以前通过PPPoE拨号获取的是随机分配的公网IP地址,这个IP地址是完全可以被互联网上任何设备访问的无障碍地址,但是现在通过拨号获取的只是一个内网地址,也就是说我们自己的路由器或者电脑拨号连接到了电信运营商的“大路由器”上,再也没有公网IP地址了。

 

为什么电信要使用这种方式来管理用户上网?

首先我们要知道IPv4地址已经告枯竭,2011年2月4日全球顶级IP地址分配机构IANA分配完了最后5个A级地址块,因此IANA宣告IPv4地址告罄。2011年4月15日,APNIC宣布其剩余的可自由分配的IPv4地址已全部分配完毕,亚太地区进入IPv4地址耗尽阶段。随后几个月,中国各大运营商从APNIC以会员资格申请到了最后的几个C,至此各运营商也陷入了IPv4地址耗尽的困境。由于IPv6技术进展缓慢,为了解决IPv4耗尽对电信企业日益增长的用户对于网络需求的影响,NAT444/NAT44的方案由此诞生。

NAT444/NAT44方案说白了就是将过去每个宽带用户独立分配公网IP的方式改为分配内网IP给每个用户,运营商再对接入的用户统一部署NAT设备,NAT的作用就是将用户网络连接发起的内网IP,以端口连接的形式翻译成公网IP,再对外网资源进行连接。这样做以后,可以实现多个用户共享一个IP地址,在技术实现原理上和我们家用的路由器一样,其中NAT444对应传统宽带用户,NAT44则对应3G或者4G移动上网终端。

这样做的好处显而易见:

首先,延缓了IPv4耗尽对电信业务带来的威胁,并进一步为IPv6技术部署留足时间

其次,是内网保护,所有接入互联网的主机都不再直接接入,而是出于电信NAT设备的保护之下,没有独立的公网IP,所有端对端的远控软件将会失效,比如以前的灰鸽子木马,由于主机丧失了公网IP,灰鸽子反弹的IP地址将是电信NAT设备所使用的公网IP,黑客无法以此定位到中了灰鸽子木马的具体主机,不过这不影响第三方端口转发的远控软件,比如TeamViewer,但是对传统远控软件杀伤力是巨大的。

最后,增强了隐私保护,对于远端的网站通过IP地址跟踪等形式采集用户数据,或者以后台记录IP的形式定位用户身份的行为将不再有效,因为这个IP地址可以同一时间段内被大量用户所使用,所以部分广告商可能需要修改广告跟踪代码的相关逻辑,这边顺带说一句并不意味着处于电信NAT保护的用户可以做违法的事情,比较电信公司不是傻瓜,电信级NAT设备会有日志记录系统,所以处于其下的网络设备的上网流量都是得到有效审计的。

这样做的坏处是什么呢?首先丧失了公网IP让极客们的生活失去了不少乐趣,比如原先通过花生壳动态域名解析服务可以定位到我们家的上网设备,然后可以在上面架设一些服务等,从最原始的网站服务(电信封锁了80端口)到远程私有云存储,甚至是个人V%$#)^PxvzNsf^&等等,现在都不能直接使用了,因为动态域名服务解析的IP地址是电信级NAT设备所使用的公网IP,同时也是若干电信用户所共享的IP地址,NAT并不会转发你的请求到特定的电信用户,所以这些服务都失效了,其实这对于安装远程网络监控的公司或者个人带来的麻烦最大,原来只要配置好动态域名解析就可以在任何地方使用网络进行监控查看,现在都不可以了。其次共用IP地址容易让部分网络服务提供商误杀合法用户,比如一位非法的资源滥用电信用户和你在共享同一个公网IP地址,非法的资源滥用者由于滥用某个网络服务商资源从而被加入黑名单,注意这里只有将你们所共享的公网IP地址加入了黑名单,所以导致你这个合法的用户也不能正常使用该网络服务商所提供的资源了。最后这样做的坏处还有影响到电驴等P2P软件的使用,因为处于内网下导致电驴等软件一直是LowID,影响传输速度。

如何解决此问题?要想重新获取公网IP,最后还是要联系电信运营商,不行只有进行投诉解决了。

后来发现这种现象普遍存在,甚至有电信运营商直接分配172或者10开头的内网IP地址,但这种分配方式容易与用户自己的路由器IP地址冲突,所以还是100.64开头这种好一些,毕竟新设立专用于ISP运营的保留地址,个人网络设备占用的可能性较低。

希望IPv6能够尽快全面推广开,从而解决现在尴尬的局面。

 

 

参考推荐

公共 DNS 服务器 IP 地址

IPv4 与 IPv6 的比较

IP地址段与子网掩码

IPv6 理解的十个误区

网络DNS域名转换成IP地址

2018年中国互联网络发展状况统计报告

常见路由器的默认网关 IP 是 192.168.1.1 的由来

IPv6 地址数量有多少,能够分配到地球上的每一粒尘埃吗

Nginx 限制单个IP的并发连接数/速度防止恶意攻击/蜘蛛爬虫采集

Linux iptables 防火墙常用规则

米扑代理:爬虫代理IP哪家好