IP 地址作为互联网协议体系中的关键要素,发挥着不可替代的作用,如同网络世界中的 “基石”,为每一台接入网络的设备提供了独一无二的身份标识,是实现数据在网络中有序传输和精准路由的基础。无论是大型企业的全球化业务布局,还是个人用户的日常网络活动,都离不开 IP 地址的支持。
1. IP地址定义
IP 地址(Internet Protocol Address)是互联网协议地址,它是为互联网上的每一台网络设备分配的一个逻辑地址,用于在网络中唯一标识设备以及进行数据的传输和路由。
IP 地址是一个 32 位(IPv4)或 128 位(IPv6)的二进制数,通常以点分十进制(IPv4)或冒号十六进制(IPv6)的形式表示。在网络通信中,IP 地址就像设备的 “身份证号码”,确保数据包能够准确无误地从源设备传输到目标设备。
虽然IPv6正在逐步推广,但是常见的IP地址依然是IPv4格式的。所以这里主要还是对IPv4格式的IP地址进行了解。
为了方便记忆IP地址,就将组成计算机的IP地址的32位二进制分成四段,每段8位,中间用小数点隔开,然后将每八位二进制转换成十进制数。IP 地址分为网络位和主机位,通过子网掩码来确定。
子网掩码也是一个 32 位的二进制数,与 IP 地址相对应。子网掩码中连续的 1 表示网络位,连续的 0 表示主机位。通过将 IP 地址与子网掩码进行按位与运算,就可以得到网络地址,从而确定网络位。
2. IP地址分类
IPv4 地址根据网络规模等因素分为 A、B、C、D、E 五类。
IPv4地址根据网络规模等因素分为A、B、C、D、E五类,以下是以表格形式呈现的具体介绍:
类别 | 地址范围 | 首位标识 | 网络位/主机位 | 可用网段数量 | 网段可用主机数量 | 注意点 |
---|---|---|---|---|---|---|
A类 | 1.0.0.0 - 127.255.255.255 | 0 | 1字节/3字节 | 2 7 − 2 = 126 2^7 -2 =126 27−2=126 | 2 24 − 2 = 16777214 2^{24} -2 =16777214 224−2=16777214 | 默认子网掩码为255.0.0.0 ,一般用于大型网络。 |
B类 | 128.0.0.0 - 191.255.255.255 | 10 | 2字节/2字节 | 2 14 = 16384 2^{14} =16384 214=16384 | 2 16 − 2 = 65534 2^{16} -2 =65534 216−2=65534 | 默认子网掩码为255.255.0.0 ,一般用于中型规模网络。 |
C类 | 192.0.0.0 - 223.255.255.255 | 110 | 3字节/1字节 | 2 21 = 2097152 2^{21} =2097152 221=2097152 | 2 8 − 2 = 254 2^{8} -2 =254 28−2=254 | 默认子网掩码为255.255.255.0 ,一般用于小型网络。 |
D类 | 224.0.0.0 - 239.255.255.255 | 1110 | 无特定网络位与主机位划分 | - | - | 一种组播地址,用来标识一组主机。 主要用于多播通信,如视频会议、网络电视等应用中,可将数据同时发送到多个接收者。 |
E类 | 240.0.0.0 - 255.255.255.255 | 1111 | 保留 | - | - | 保留地址,暂时未分配特定用途。通常用于科研和实验等特殊场合。 |
A类地址中缺少的2个网段是
0.0.0.0/8
和127.0.0.0/8
。
- 0.0.0.0 表示所有不清楚的主机和目的网络,是一个特殊的未指定地址,通常保留用于默认路由或一些特殊用途;
- 主机端︰DHCP分配过程中,用0.0.0.0表示本机,比如主机DHCP Discover广播报文源目地址和端口是0.0.0.0:68-255.255.255.255:67。
- 服务器端:0.0.0.0本机所有IPv4地址,如果某主机有两个IP地址,该主机一个服务监听的地址是0.0.0.0,那么通过两个IP地址都能够访问该服务。
- 路由∶0.0.0.0表示默认路由,即当路由表中没有找到完全匹配路由的时候所对应的路由。
- 127.0.0.0网段属于环回地址网段,主要用于本地主机进行自我测试和通信。最常见的127.0.0.1被称为本地回环地址。
网段可用主机数量中缺少的2个地址是主机部分全 0 和全 1 的地址。(2进制表示时)
- 地址的主机部分全为 0 时,表示的是整个网络的网络地址,也被称为网络号,用来标识一个特定的网络。如192.168.1.0。
- 主机地址全为 1 的 IP 地址被用作广播地址。如192.168.1.255。
- 其他的一些特殊地址
一些网段地址专门为组织内部使用而保留,不会在公网上出现。
- A 类私有地址:
10.0.0.0 - 10.255.255.255
,即10.0.0.0/8
- B 类私有地址:
172.16.0.0 - 172.31.255.255
,即172.16.0.0/12
- C 类私有地址:
192.168.0.0 - 192.168.255.255
,即192.168.0.0/16
B 类地址中的169.254.0.0~169.254.255.255
是保留地址。当设备设置为自动获取 IP 地址(DHCP)但无法找到可用的 DHCP 服务器时,就会从 这个范围内临时获取一个 IP 地址进行使用。
3. 子网掩码
子网掩码是一个 32 位的二进制数字,通常用点分十进制表示,其作用是将 IP 地址划分为网络地址和主机地址两部分。子网掩码中,对应 IP 地址网络部分的位设为 1,对应主机部分的位设为 0。通过将 IP 地址与子网掩码进行逻辑与运算,可得到网络地址,从而确定设备所在的网络。
- 子网掩码的表示方法
子网掩码有两种常见的表示方法,即点分十进制表示法和 CIDR 表示法。
- 点分十进制表示法:即将 32 位二进制数分成 4 个字节,每个字节用十进制数表示,中间用点号分隔。例如,255.0.0.0、255.255.0.0、255.255.255.0 等都是常见的点分十进制表示的子网掩码。
- CIDR(无类别域间路由) 表示法:在 IP 地址后面加上 “/”,再跟上子网掩码中网络位的位数。例如,192.168.1.0/24,其中 “/24” 表示子网掩码中前 24 位为网络位,即子网掩码为 255.255.255.0。
- 子网掩码的工作方式
子网掩码通过与 IP 地址进行逻辑与运算来确定网络地址和判断网络通信范围。在网络通信中,设备会将自己的 IP 地址和子网掩码进行逻辑与运算,得到自己所在的网络地址。
例如,IP 地址为 172.16.122.204,子网掩码为 255.255.0.0,将它们转换为二进制进行逻辑与运算,得到172.16.0.0的网络号。
当主机之间进行通信时,两台主机各自的IP地址与其中一台主机的子网掩码进行And与运算(两个IP与同一个掩码进行运算),如果结果如果相同,则说明这两台主机是处于同一个网段,这样两台主机可以实现正常通信;如果结果不同,说明两个IP是在不同的网段中,相互通信需要路由进行转发。
也就是说,相同的网络号的IP之间可以直接相互通信,不同的则需要依靠路由器转发。
- 子网掩码的分类
子网掩码主要根据使用方式分为缺省子网掩码和自定义子网掩码。
- 缺省子网掩码:是根据IP地址的类别自动分配的子网掩码,未进行子网划分时使用的默认设置。示例:A 类地址的默认子网掩码是 255.0.0.0,B 类地址的默认子网掩码是 255.255.0.0,C 类地址的默认子网掩码是 255.255.255.0。
- 自定义子网掩码:是网络管理员根据实际网络需求,对默认子网掩码进行修改和定制得到的子网掩码。通过自定义子网掩码,可以将一个网络划分为多个更小的子网,以满足不同部门、区域或业务的需求。
4. IP子网划分
子网划分是将一个大的 IP 网络划分成多个较小的子网的过程。它通过改变子网掩码,从原来的主机位中借用若干位作为子网位,从而将一个大的网络划分为多个更小的子网,每个子网可以独立管理和分配 IP 地址。
- 子网划分一般步骤
- 确定要划分多少子网以及每个子网所需的主机数量。 根据网络的实际情况,比如企业的部门数量、不同功能区域的数量等,确定需要划分的子网数量。然后根据每个子网中预计连接的设备数量,确定出子网段的可用IP数量。
- 确定所需保留的主机位数。 每个子网所需的主机数量,确定子网段需要保留的主机位数。主机位数和子网可用IP数量之间的关系是:
可用IP数量 = 2的n次方 - 2
(n 为主机位数)。例如,子网需要支撑60台主机,因为2的6次方 -2= 62 > 60
,所以至少需要保留 6 位主机位。- 确定新的子网掩码。 根据保留的主机位数,修改原来的子网掩码。例如,对于一个 C 类网络,默认子网掩码是
255.255.255.0/24
,如果保留 6 位主机位,那么新的子网掩码就是255.255.255.192/26
,因为原来的 24 位网络位加上借用的 2 位子网位,总共是 26 位网络位。- 确定子网范围。
- 网络地址(网络号):将 IP 地址与新的子网掩码进行逻辑与运算,得到每个子网的网络地址。
- 广播地址:广播地址是每个子网中主机位全为 1 的地址。
- 可用 IP 地址范围:可用 IP 地址范围是介于网络地址和广播地址之间的地址。
- IP子网划分举例
待分配网段:192.168.1.0/24。
部门 A 有 50 台设备。
部门 B 有 20 台设备。
部门 C 有 10 台设备。
部门 D 有 5 台设备。
给各个部门分配合适网段地址。
根据要求得知需要划分4个网段,每个部门的设备数量为每个网段的期望可用IP数量,计算得到每个子网段的主机位数,进而确定网段子网掩码。
部门 | 设备数量 | 主机位计算式子 | 主机位 | 对应掩码 |
---|---|---|---|---|
部门A | 50 | 2 5 − 2 = 30 < 50 < 2 6 − 2 = 62 2^5-2=30 < 50 < 2^6-2=62 25−2=30<50<26−2=62 | 6位 | /26 |
部门B | 20 | 2 4 − 2 = 14 < 20 < 2 5 − 2 = 30 2^4-2=14 < 20 < 2^5-2=30 24−2=14<20<25−2=30 | 5位 | /27 |
部门C | 10 | 2 3 − 2 = 6 < 10 < 2 4 − 2 = 14 2^3-2=6 < 10 < 2^4-2=14 23−2=6<10<24−2=14 | 4位 | /28 |
部门D | 5 | 2 2 − 2 = 2 < 5 < 2 3 − 2 = 6 2^2-2=2 < 5 < 2^3-2=6 22−2=2<5<23−2=6 | 3位 | /29 |
根据得到的网段对应掩码对待分配网段192.168.1.0/24
进行划分。
部门 | 掩码 | 网络地址(网络号) | 广播地址 | 可用IP范围 |
---|---|---|---|---|
部门 A | /26 | 192.168.1.0/26 | 192.168.1.63 | 192.168.1.1 - 192.168.1.62 |
部门 B | /27 | 192.168.1.64/27 | 192.168.1.95 | 192.168.1.65 - 192.168.1.94 |
部门 C | /28 | 192.168.1.96/28 | 192.168.1.111 | 192.168.1.97 - 192.168.1.110 |
部门 D | /29 | 192.168.1.112/29 | 192.168.1.119 | 192.168.1.113 - 192.168.1.118 |
经过上述分配后,还剩下 192.168.1.120 - 192.168.1.255
这些地址可用于未来扩展或者分配给其他部门。
- 补充
按照传统子网划分规则,主机位为 1 位的 /31 子网没有可用的主机地址。因为在常规概念里,网络地址(主机位全为 0)和广播地址(主机位全为 1)不能作为主机地址使用。
但后来,RFC 3021 对 /31 子网进行了重新定义,允许在点到点链路中使用 /31 子网。在点到点连接的场景下,比如两个路由器之间通过一条专线直接相连,或者是两个数据中心之间建立的专用链路,这种连接只需要两个设备进行通信,正好可以使用 /31 子网中的两个地址分别分配给链路两端的设备。此时,不再区分网络地址和广播地址,两个地址都可以作为可用的主机地址来使用,从而有效地节省了 IPv4 地址资源。
所以在一般情况下,子网掩码到
/30
就是极限了。
5. IP超网合并
超网合并,也称为无类别域间路由(CIDR)聚合,是一种将多个连续的小网络合并成一个较大网络的技术,有助于减少路由表的条目数量,提高路由效率。
例如,原本是四个不同的子网段,正常情况下在路由器上的路由表中会有四条下连网段的路由条目,并且会把它通告给其他路由器。通过实施CIDR技术,我们可以在企业的路由器上把这四条路由10.24.0.0/24,10.24.1.0/24,10.24.2.0/24,10.24.3.0/24汇聚成一条路由10.24.0.0/22。这样,企业路由器只需通告10.24.0.0/22这一条路由,大大减小了路由表的规模。
- 超网合并的前提条件
- 连续的 IP 地址块。 用于合并的小网络 IP 地址必须是连续的,也就是在数值上相邻。比如,192.168.0.0 - 192.168.7.0 这样连续的地址范围才有可能进行合并。
- 存在共同前缀。 这些连续的 IP 地址块要有一定数量的相同前缀位。共同前缀位的多少决定了超网的大小,共同前缀位越多,超网就越小;反之,超网就越大。
- 超网合并的一般步骤
- 确定需要进行超网合并的小网络。 确定需要进行超网合并的小网络,这些小网络的 IP 地址必须是连续的,也就是在数值上相邻。将这些连续的 IP 地址块整理出来,记录每个网络的地址和子网掩码,方便后续进行分析和处理。
- IP地址转换为二进制表示。 将收集到的每个 IP 地址和对应的子网掩码转换为 32 位的二进制形式。因为在二进制层面更容易找出它们的共同前缀。
- 找出共同前缀。 对转换后的二进制 IP 地址进行逐位比较,从左到右找出所有地址中相同的二进制位,这些相同的位就是共同前缀。统计共同前缀的位数,这个位数将决定超网的子网掩码。
- 确定超网地址和子网掩码。 超网地址是由共同前缀后面补 0 得到的。子网掩码由共同前缀的位数决定,用 CIDR 表示法表示为 “/ 共同前缀位数”。
- IP超网合并举例
将192.168.0.0/24和192.168.1.0/24 两个C类网络合并。
# 192.168.0.0/24的二进制显示:
11000000 10101000 00000000 00000000
# 192.168.1.0/24的二进制显示:
11000000 10101000 00000001 00000000
将转化成二进制的网段进行逐位对比,找到相同的二进制位,统计这些共同前缀23位。
继而得到超网的网络地址和子网掩码。
# 超网网络地址
11000000 10101000 00000000 00000000
192.168.0.0
# 超网子网掩码
11111111 11111111 11111110 00000000
255.255.254.0
/23
总之,IP 地址作为互联网的基础组成部分,其重要性不言而喻。无论是 IP 地址的分类、子网掩码的运用,还是子网的划分,每一个知识点都相互关联,共同构建起了网络通信的基础框架。随着互联网技术的不断发展,对 IP 地址的理解和掌握将有助于我们更好地应对各种网络挑战。