引子
同事微信上丢过来一条消息。服务无法访问了, http://10.200.48.106:9100/ 。 我说,你在哪? 他说,在家。 我说,你没登录VPN。 他说,我再试试。过了一会儿,他说,访问正常了,但为什么要登录VPN? 我说,10开头的IP是私有IP,仅能在公司内网访问。他说,我如何知道哪些IP是私有 IP? 我说,看下文。
IPv4编址现状
IPv4(Internet Protocol version 4,网际协议版本4)使用 4 字节(32位)数值进行编址,这些位被分为4段,每一段8位,也就是1个字节。常用点分十进制表示,例如 8.8.8.8, 192.168.100.101等。
IPv4使用4个字节编址,理论上最多可以提供232(约42.9亿)个IP地址。貌似非常多,其实不然。全局IP地址的全球性管理机构为互联网号码分配局(IANA),其下有五个局域网际网络注册管理机构(RIR)。截止目前,IP地址即将耗尽,详细可参考文献1。1993年,互联网工程任务组(IETF)推出网络地址转换(NAT)与无类别域间路由(CIDR)。这些过渡方案减缓了IP 耗尽的发生速度,最终的解决方案仍需要转换到IPv6。本文仅讲解 IPv4 编址。
分类网络
IP地址由网络地址(Network Address)和主机地址(Host Address)两部分组成。网络地址唯一标识一个网络,主机地址唯一标识网络中的设备。根据网络规模对网络进行分类,分为 A、B、C、D、E五类网络,一般常用的是前3种,因此下面主要介绍 A、B、C三类网络。
A 类网络
- 网络地址占1个字节(8位),其中第1个字节的第1个比特永远为0。主机地址占3个字节(24位)。以1个字节一组可表示为 网络.主机.主机.主机, 可认为默认子网掩码为 255.0.0.0。
- 网络个数有多少个? 第1个字节网络地址范围 00000000 ~ 01111111,即 0 ~ 127。网络个数27=128个。但其中0为默认路由保留,127为环回测试保留,实际可用 A 类网络共 128-2=126 个。
- 每个网络主机个数有多少个?主机地址占3字节,共计 224=16777216 个。其中主机地址全0与全1分别为网络与广播保留,实际可用为 16777214 个,超过1600万个。
- A 类网络 IP 地址举例: 8.8.8.8, 10.1.100.101
B 类网络
- 网络地址占2个字节(16位),其中第1个字节的第1个比特永远为1,第2个比特永远为0。主机地址占2个字节(16位)。以1个字节一组可表示为 网络.网络.主机.主机, 可认为默认子网掩码为 255.255.0.0。
- 网络个数有多少个? 第1个字节网络地址范围 10000000 ~ 10111111,即 128 ~ 191。网络个数214=16384个。实际可用 B 类网络共 16384 个。
- 每个网络主机个数有多少个?主机地址占2字节,共计 216=65536 个。其中主机地址全0与全1分别为网络与广播保留,实际可用为 65534 个,超过6万个。
- B 类网络 IP 地址举例: 114.114.114.114, 172.16.100.101
C 类网络
- 网络地址占3个字节(24位),其中第1个字节的前2个比特永远为1,第3个比特永远为0。主机地址占1个字节(8位)。以1个字节一组可表示为 网络.网络.网络.主机, 可认为默认子网掩码为 255.255.255.0。
- 网络个数有多少个? 第1个字节网络地址范围 11000000 ~ 11011111,即 192 ~ 223。网络个数221=2097152个。实际可用 C 类网络共 2097152 个,超过200万个。
- 每个网络主机个数有多少个?主机地址占1字节,共计 28=256 个。其中主机地址全0与全1分别为网络与广播保留,实际可用为 254 个。
- C 类网络 IP 地址举例: 192.168.100.101
D、E 类网络
- D 类网络用于组播地址。第1个字节网络地址范围 224 ~ 239。
- E 类网络用于科研保留。第1个字节网络地址范围 240 ~ 247。
分类网络总结表
| 分类 | 第1个字节前缀 | 网络地址比特/主机地址比特 | 第1个字节范围 | 网络数 | 主机数 |
|---|---|---|---|---|---|
| A类 | 0 | 8 / 24 | 0 ~ 127 | 27-2=126 | 27-2=126 |
| B类 | 10 | 16 / 16 | 128 ~ 191 | 214=16384 | 216-2=65534 |
| C类 | 110 | 24 / 8 | 192 ~ 223 | 221=2097152 | 28-2=254 |
| D类 | 1110 | N/A | 224 ~ 239 | N/A | N/A |
| E类 | 11110 | N/A | 240 ~ 247 | N/A | N/A |
特殊用途的 IP
某些 IP 地址为特殊用途而保留,不能将之分配给设备。详细可参考文献1。
| 地址说明 | 用途 |
|---|---|
| 0.0.0.0 | 默认路由 |
| 255.255.255.255 | 任意网络所有主机广播 |
| 主机地址全0 | 例如192.168.100.0 表示网络地址 |
| 主机地址全1 | 例如192.168.100.255 此192.168.100网络中所有主机广播 |
| 127.0.0.1 ~ 127.255.255.254 | 环回(本地主机)测试本机 IP 协议栈 |
私有 IP 地址
- 专用网络是指遵守RFC 1918(IPv4)使用私有IP地址空间的网络。
- 私有IP无法直接连接互联网,需要使用网络地址转换(Network Address Translator,NAT)或者代理服务器 (Proxy Server)来实现。
- 私有IP一方面为局域网提供了一定的安全性,另一方面也节省了宝贵的 IP 地址空间。例如利用专用网络,整个公司甚至仅需一个公网 IP 即可满足全公司访问互联网的需求。
- RFC1918规定,私有 IP 无法在互联网上进行全局路由,仅能用于局域网中。
- RFC1918规定,私有 IP 包括1个 A 类网络(10.0.0.0/8), 16个 B 类网络(172.16.0.0/12),256个 C 类网络(192.168.0.0/16)
私有 IP 总结表
| 类别 | 网络个数 | IP 区段 | IP数量 | CIDR(子网掩码) |
|---|---|---|---|---|
| A 类 | 1 | 10.0.0.0 ~ 10.255.255.255 | 16777216 | 10.0.0.0/8(255.0.0.0) |
| B 类 | 16 | 172.16.0.0 ~ 172.31.255.255 | 1048576 | 172.16.0.0/12(255.240.0.0) |
| C 类 | 256 | 192.168.0.0 ~ 192.168.255.255 | 65536 | 10.0.0.0/8(255.255.0.0) |
总结
至此,聪明的你应该对 IPv4编址有了清晰的认识吧? 最后考考你,下面哪些 IP 地址是私有 IP 呢?
- 10.10.10.10
- 172.10.10.10
- 172.20.10.10
- 192.168.10.10
- 192.192.10.10