- 概述
IP(Internet Protocol,互联网协议)是网络层的一个被路由协议,是一个封装协议或标识协议,它封装了一个非常重要的标识信息就是 IP 地址,IP 地址用来标识网络中的主机。
IP 如今有两个主要的版本,分别是 IPv4 和 IPv6,本文主要讨论 IPv4。32 位的 IPv4 地址通常用点分十进制来表示,128 位的 IPv6 地址通常用冒号分隔的十六进制表示,目的是为了方便书写和传播。但计算机处理信息都是以二进制的方式进行,因此在计算机设备和网络设备上,处理 IPv4 地址的时候,会做
二进制与十进制的互换,处理 IPv6 地址的时候,会做二进制与十六进制的互换。IPv4 最早是在 RFC 760 中定义,后来被 RFC 791 废弃。本文档定义了 IP 报
文的格式和 IP 地址分类等。RFC791 是关于 IPv4 的最新描述,文档等级是互联
网标准(Internet Standard),发布于 1981 年 12 月,链接地址如下:
IANA 负责 IP 地址的分配,IPv4 地址空间分配请参阅:
IANA IPv4 Address Space Registry
IPv6 地址空间分配请参阅:http://www.iana.org/assignments/ipv6-address- space/ipv6-address-space.xhtml。
本文将从网络数学、二进制与十进制的转换、IPv4 地址的分类、子网划分, 超网汇聚几个方面进行论述。旨在对 IPv4 地址有一个全面的了解,并能够熟练地掌握心算法进行二进制和十进制的互换,熟练运用 IPv4 地址划分所用到的两个公式,和超网汇聚的方法。
如果不做特殊说明,本文在提到 IP 时均指 IPv4,IPv6 相关知识由《IPv6 升级研究》专题讨论。
2 计算机中数的表示
(224)10 = 2 * 102 + 2 * 101 + 4 * 100
(110)2 = 1 * 22 + 1 * 21 + 0 * 20
由元素基数,权重,进制组成。
3 网络数学
IPv4 是长度是 32 位,经常用点分十进制表示,比如:192.168.1.1。这样就把 32 位的长度分成了 4 个 8 位组。即,将 32 位的长度分成 4 个段,每个段有 8 个位的长度。
这 4 个段的中的任意一段的权重从高到低表示都可以表 15-01 表示。
位数 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
权重 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
对应十进制 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
表 15-01 二进制十进制心算表
3.1 二进制转换成十进制
1)标出每位二进制数对应的十进制数;
2)将每位二进制个值乘以该位表示的十进制值;
3)将乘积相加。
示例:
将二进制 0101 1010 转换成十进制
值:12864 32 16 8 4 2 1
位: 0 1 0 1 1 0 1 0
= +0 +64 +0 +16 +8 +0 +2 +0 = 90
因此,(0101 1010)2 = (90)10
3.2 十进制转换成二进制
1)如果数字大于或等于二进制数最左边的位值,在该位写下 1,并减去位值;2)依次用余数遍历右边的位值并做相同的操作。
示例:
将十进制 137 转换成对应的二进制
位值:128 64 32 16 8 4 2 1
137 >= 128 ? 是
1
137 – 128 = 9,
9 >= 64 ? 否
0
9 >= 32 ? 否
0
9 >= 16 ? 否
0
9 >= 8 ? 是
1
9 – 8 = 1,
1 >= 4 ? 否
0
1 >= 2 ? 否
0
1 >= 1 ? 是
1
因此,(137)10 = (1000 100l)2
4 IPv4
IPv4(Internet Protocol Version 4)是长度是 32 位,通常用点分十进制表示;有别于 128 位长度,用十六进制表示的 IPv6(Internet Protocol Version 6)。
32 位长度的 IP 地址在计算机中是以二进制来表示的,但是通常以点分十进制来表示。
![](https://i-blog.csdnimg.cn/direct/c8040fae78c2401891d576584d186aa3.png)
图 15-01 点分十进制表示的 IP 地址,引用 CCNA 3.1
图 15-02 IP 地址是由网络位和主机位组成,
引用 CCNA 3.1 表 15-02 IPv4 地址分类表,RFC791
High Order Bits | Format | Class |
0 | 7 bits of net, 24 bits of host | a |
10 | 14 bits of net, 16 bits of host | b |
110 | 21 bits of net, 8 bits of host | c |
111 | escape to extended addressing mode |
表 15-03 五类 IP 地址
地址类 | 范围(第一个八位组的值) | 用途 |
Class A | 0 | 本地接口,未指定或本地所有 |
Class A | 1~126(0000 0001~0111 1110) | 业务地址 |
Class A | 127(0111 1111) | 环回地址,常用于测试 |
Class B | 128~191(1000 0000~1011 1111) | 业务地址 |
Class C | 192~223(1100 0000~1101 1111) | 业务地址 |
Class D | 224~239(1110 0000~1110 1111) | 组播地址,网络协议使用,比如OSPF 中 DR/BDR: 224.0.0.6,DRother:224.0.0.5; VRRP 中的 224.0.0.18 等。 |
Class E | 240~255(1111 0000~1111 1111) | 保留地址,用于研究 |
5 Private IP
因为 IPv4 提供的地址数量相对较少,为了缓解 IPv4 的枯竭,IETF(The Internet Engineering Task Force )开发了 NAT(Network Address
Translators )技术。这一技术需要私有 IP 地址配合才能达到预期效果,私有IP 地址的最新描述是在 RFC 1918 中定义中,RFC 1918 的文档等级是当前最佳实践(Best Current Practice),是关于私有地址的最新描述,链接地址如下:RFC 1918 - Address Allocation for Private Internets
摘录如下:
The Internet Assigned Numbers Authority (IANA) has reserved the following three blocks of the IP address space for private internets:
10.0.0.0 10.255.255.255 (10/8 prefix)
172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
私有 IP 地址和 NAT 技术的应用,有效解决了 IPv4 地址枯竭的问题。
6 网络掩码
用来表示 IP 地址中网络位和主机位的位数,网络地址和子网掩码一起唯一标识网络中的一台主机。网络掩码中的 1 表示网络位,0 表示主机位。其表示方法有二进制表示法、点分十进制表示法和前缀表示法。其中点分十进制表示法和前缀表示法最常见。点分十进制经常出现在电脑上,前缀表示法经常在书写与交流时使用。
6.1 示例
二进制表示法:
1111 1111. 1111 1111. 1111 1111. 1111 0000
十进制表示法: 255.255.255.240
前缀表示法:
/28
7 子网划分
为了更好地利用 IP 地址,需要根据主机数量的不同划分成大小不等的网络。在进行子网切分时经常会用到两个公式。
7.1两个公式
- 7 .2子网划分
- 示例 1
网络管理员拿到一个 192.168.0.0/24 的网络,准备分配给公司的几个部门, 每个部门大概有 10 个桌面终端用户,他会如何分配?
23 - 2 < 10 < 24 - 2
因此,使用/28 掩码的网络比较合适。即网络位是 28 位,主机位是 4 位。这样借给的网络位的位数是 4 位,可用的网络数是:
24 – 2 = 14
每个网络可用的主机数是: 24 – 2 = 14
用来分段的分段片大小是: 24 = 16
多余出来的主机数和网络数可以用在将来升级扩展用。
在这个分配策略下,分出来的每一个网络段的大小是/28,各个网络分别是:
a)第一个网络
网络号:192.168.0.0
第一个可用地址:192.168.0.1
最后一个可用地址:192.168.0.14
广播地址:192.168.0.15
点分十进制掩码:255.255.255.240
b)第二个网络
网络号:192.168.0.16
第一个可用地址:192.168.0.17
最后一个可用地址:192.168.0.30
广播地址:192.168.0.31
点分十进制掩码:255.255.255.240
c)第三个网络
网络号:192.168.0.32
第一个可用地址:192.168.0.33
最后一个可用地址:192.168.0.62
广播地址:192.168.0.63
点分十进制掩码:255.255.255.240
7.2.2示例 2
网络规划师接到任务为某视频监控系统规划 IP 地址,地址段从10.1.0.0/10,分别为 107 个派出所,每个派出所几台到十几台左右主机,每个派出所有十几台到一百多台摄像机不等。
这样的场景涉及到不连续分配。
24 – 2 = 14
25 – 2 = 30
26 – 2 = 62
27 – 2 = 126
派出所内主机使用/27,派出所摄像机使用/25。每一条链路承载的摄像机数量不能太多,一般不会超过 100 台,受限于链路带宽。
通过上面一个例子就可以计算出每一个网络。
7.2.3示例 3
计算网络号是做路由的前提。
请计算出主机 192.168.5.37/27 所属的网络号。
/27 说明是有 27 个网络位,5 个主机位;在第四个 8 位组中,前 3 位是网络位,后 5 位是主机位。
25 = 32 , 26 = 64
32 < 37 < 64
因此,主机 192.168.5.37/27 所属的网络号是:192.168.5.32/27。
8 超网汇聚
我们在做路由通告时,很多非常诱惑的理由会让我们用到超网汇聚。
在做地址规划的时候,我们适当限制网络规模的大小,以便限制广播域的大小。但是在实施和维护时却带来了不便,幸亏我们想到了超网汇聚!可以将多个小的子网汇聚成一个大的超网,从而缩小了路由表的规模,减少了对网络设备的系统资源的消耗;减少路由选择更新的数量和大小,节省带宽;隐藏不必要的细节;加速收敛;降低了维护难度。
8.1汇聚方法
- 将要汇聚的各个子网全部从点分十进制转化为点分二进制;
- 在相同处划线分开;
- 将坚线左侧的点分二进制转变成点分十进制,不相同部分补 0;
- 数相同的二进制位数 n,在点分十进制后面加/n。
8.2计算示例
示例 1
对 172.16.0.0/24~172.16.3.0/24 进行汇总。
172.16.0.0 = 1010 1100.0001 0000.0000 0000.0000 0000
172.16.1.0 = 1010 1100.0001 0000.0000 0001.0000 0000
172.16.2.0 = 1010 1100.0001 0000.0000 0010.0000 0000
172.16.3.0 = 1010 1100.0001 0000.0000 0011.0000 0000
因此汇总后的超网是:172.16.0.0/22。
注意,防止汇总后产后路由黑洞。
路由黑洞,汇聚了不在某个接口方向下的地址,导致到此地址的数据包被路由到错误的地方。简单来说,汇聚后的地址包含了不该包含的网络。如果汇聚产生了路由黑洞,可以通过黑洞路由的办法解决,即将汇聚后不存在的网络指向Null0接口。
9.IP 地址分配规划
9.1原则
(1)尽量按区域分段,方便汇聚
(2)前缀表示法
(3)第 1 个可用地址做网关,第 2 个地址预留
(4)/32 Device ID
(5)/30 互联
(6)服务器独立网段 /27、/26
(7)存储尽量独立网段 /27、/26
(8)操作台独立网段 /28、/27、/29
(9)前端独立网段 /26、/25
(10)前端设备根据区域或汇聚资源规划网段
(11)设备管理地址根据情况分配 IP 地址
(12)互联 Vlan ID 尽量用 2~99
(13)前端 Vlan ID 尽量使用 1000~1999
(14)服务器、存储、操作台 Vlan ID 尽量使用 100~199
9.2总体规划 1
表 19-04 IP 地址总体规划示例 1
Segment of Area | Vlan ID | Description |
10.0.0.0/22 | Area 1 | |
10.0.4.0/22 | Area 2 | |
10.0.8.0/23 | Area 3 | |
10.0.10.0/23 | Area 4 | |
10.0.12.0/24 | Area 5 |
Device ID | Vlan ID | Description |
10.0.0.0/29 | Area 1 | |
10.0.4.0/29 | Area 2 | |
10.0.8.0/29 | Area 3 | |
10.0.10.0/29 | Area 4 | |
10.0.12.0/29 | Area 5 |
Connect i on Net wor | Vlan ID | Description |
10.0.0.8/29 | Area 1 | |
10.0.4.8/29 | Area 2 | |
10.0.8.8/29 | Area 3 | |
10.0.10.8/29 | Area 4 | |
10.0.12.8/29 | Area 5 | |
100.0.0.0/30 | To-PoliceCenter |
Ser ver Net wor k | Vlan ID | Description |
10.0.0.32/27 | Area 1 | |
10.0.4.32/27 | Area 2 | |
10.0.8.32/27 | Area 3 | |
10.0.10.32/27 | Area 4 | |
10.0.12.32/27 | Area 5 |
St or age Net wor k | Vlan ID | Description |
10.0.0.64/27 | Area 1 | |
10.0.4.64/27 | Area 2 | |
10.0.8.64/27 | Area 3 | |
10.0.10.64/27 | Area 4 | |
10.0.12.64/27 | Area 5 |
Ter mi nal Net wor k | Vlan ID | Description |
10.0.0.64/27 | Area 1 | |
10.0.4.64/27 | Area 2 | |
10.0.8.64/27 | Area 3 | |
10.0.10.64/27 | Area 4 | |
10.0.12.64/27 | Area 5 |
I PC Net wor k | Vlan ID | Description |
10.0.0.128/25 | Area 1 | |
10.0.1.0/25 | Area 1 | |
10.0.1.128/25 | Area 1 | |
10.0.4.128/25 | Area 2 | |
10.0.5.0/25 | Area 2 | |
10.0.8.128/25 | Area 3 | |
10.0.10.128/25 | Area 4 | |
10.0.12.128/25 | Area 5 |
9.3 总体规划 2
表 19-05 IP 地址总体规划示例 2
Device ID | Loopback | Description |
10.0.0.1/32 | 0 | Device Name |
10.0.0.2/32 | 0 | Device Name |
10.0.0.3/32 | 0 | Device Name |
10.0.0.4/32 | 0 | Device Name |
10.0.0.5/32 | 0 | Device Name |
Connection Network | Vlan ID | Description |
10.0.0.8/30 | 2 | DeviceA To DeviceB |
10.0.0.12/30 | 3 | DeviceA To DeviceC |
10.0.0.16/30 | 4 | DeviceA To DeviceD |
10.0.0.20/30 | 5 | DeviceA To DeviceE |
10.0.0.24/30 | 6 | DeviceA To DeviceF |
Ser ver Net wor k | Vlan ID | Description |
10.0.0.32/27 | 100 | Area 1 |
10.0.0.64/27 | 100 | Area 2 |
10.0.0.96/27 | 100 | Area 3 |
10.0.0.128/27 | 100 | Area 4 |
10.0.0.160/27 | 100 | Area 5 |
St or age Net wor k | Vlan ID | Description |
10.0.0.192/27 | 101 | Area 1 |
10.0.0.224/27 | 101 | Area 2 |
10.0.1.0/27 | 101 | Area 3 |
10.0.1.32/27 | 101 | Area 4 |
10.0.1.64/27 | 101 | Area 5 |
Ter mi nal Net wor k | Vlan ID | Description |
10.0.1.96/28 | 102 | Area 1 |
10.0.1.112/28 | 102 | Area 2 |
10.0.1.128/28 | 102 | Area 3 |
10.0.1.144/28 | 102 | Area 4 |
10.0.1.160/28 | 102 | Area 5 |
I PC Net wor k | Vlan ID | Description |
10.0.2.0/25 | 1000 | Area 1 |
10.0.2.128/25 | 1001 | Area 2 |
10.0.3.0/25 | 1002 | Area 3 |
10.0.3.128/25 | 1003 | Area 4 |
10.0.4.0/25 | 1004 | Area 5 |