——IPv4编址、CIDR与路由选择)
引言计算机网络网络层一——服务模型、路由算法与IPv4数据报在上篇文章中我们介绍了网络层的功能是什么以及数据报应该如何传输在本期我们将了解IPv4地址怎样进行划分路由器怎样根据地址选择路由IP地址分类A类地址网络号位数8主机号位数24网络号范围0000 0001 ~ 0111 1110(1~126)网络号0000 0000 表示网络地址、本机网络或默认路由 0111 1111 特殊用途网络号数量2^7 - 2单个网络最大主机数2^24 - 2(去除全0和全1)B类地址网络号位数16主机号位数16网络号范围1000 0000 0000 0001 ~ 1011 1111 1111 1111128.1.x.x~191.255.x.x)网络号1000 0000 0000 0000 (128.0)网络号数量2^14 - 1单个网络最大主机数2 ^ 16 - 2(去除全0和全1)C类地址网络号位数24主机号位数8网络号范围1100 0000 0000 0000 0000 0001 ~ 1101 1111 1111 1111 1111 1111192.0.1 ~ 223.255.255网络号1100 0000 0000 0000 0000 192.0早期/考试不可分配网络号数量2^21 - 1单个网络最大主机数 2^8 - 2(去除全0和全1)特殊IP地址在本地网络中表示网络地址、本机地址在路由表中表示默认路由(0.0.0.0)通常在LAN中进行广播使用该地址表示网络中的所有主机(255.255.255.255)在发送方不知道主机号的情况下用于本地软件回环测试称为回环地址(127.x.x.x)私有地址有一部分地址保留用于内部网络称为私有地址。这部分地址不会被公共互联网分配不会与公共地址重复。这些地址无法在公共互联网使用因为路由器不对目标地址是私有地址的分组进行转发子网划分简介将一个地址块划分成几部分将一个大的网络分割成多个小的子网供多个内部网络使用但对于外部世界仍然像单个网络一样这样可以更好的管理和利用地址空间避免浪费通过分割子网可以限制广播域的范围减少网络中的广播流量提升效率通过将不同的部门或区域划分到不同的子网可以更好的控制流量减少潜在的安全风险CIDR翻译成中文就是无分类域间路由选择CIDR是一种新的IP地址划分方法是一种更灵活的IP地址分配法它打破了传统的A、B、C类IP地址的限制CIDR使用一个斜杠跟网络前缀长度来表示IP地址和网络的关系子网掩码常见的3类IP地址子网掩码网络中的主机被分配IP地址的同时还会制定子网掩码通过将IP地址和子网掩码两者进行按位与操作可以得到IP地址所属的网络地址网络号CIDR无分类编址子网掩码上图演示的是三类IP地址对应的子网掩码除了常见的三类IP地址之外我们还会遇到现代CIDR无分类编址该类型的子网掩码相对于前面三种更为直观一般会直接写在IP地址后面形如192.24.12.0/22这就是一个CIDR无分类编址子网掩码其子网掩码的位数为22位判断路由能否匹配当前IP地址在进行网络数据传送时当数据在面临多个路由器时应该如何选择下一条的路由和后续的路由地址对应的判断公式为目的IP 该路由器的子网掩码 该路由的网络地址如果计算出来的结果相等这就说明这条路由能够匹配目的的IP网络前缀网络前缀是指IP地址前的若干位由/n指定长度用于路由匹配例如192.168.1.130/26这表示前26位是网络前缀后六位是主机部分。其中网络前缀是指前26位网络地址是192.168.1.128主机部分是后6位在这里还有一个类似的概念需要辨析那就是网络号网络号指的是一个网络的编号或者标识。在CIDR中网络号通常就是指网络前缀所标识的值所以在很多情况下这两个概念会被混用。但是网络前缀还强调了长度例如192.168.1.0/24 192.168.1.0/25虽然前面的十进制数相同但是前缀长度不同表示的网络范围也不同路由选择路由选择是指主机或者路由器根据数据报的IP地址从路由表中选择一条合适的路径并确定下一跳的路由器和数据报发送接口它解决的问题是当目的主机不在当前网络中时数据接下来应该交给谁一台路由器通常只决定”下一跳“不会一次规划数据报经过的全部路由器路由聚合简介路由聚合也叫路由汇总是指将多个连续、具有相同高位前缀的小网络合并成一个更大范围的CIDR网络并用一条汇总路由表示例如下面四条路由192.24.12.0/24 192.24.13.0/24 192.24.14.0/24 192.24.15.0/24可以聚合成192.24.12.0/22于是子路由不必分别保存或通告四条路由只需要使用一条汇总路由原理路由聚合的核心是找出多个网络地址在二进制形势下共同的连续前缀将四个网络地址的第三个字节转换为二进制12 00001100 13 00001101 14 00001110 15 00001111排列在一起192.24.00001100.00000000 192.24.00001101.00000000 192.24.00001110.00000000 192.24.00001111.00000000 └──────┘ 公共前缀第三个字节中前6位相同0000 11前两个字节已有16位相同所以共同前缀长度为22位。将公共前缀之后的位全部置零得到192.24.12.0/22特性CIDR往往更适合路由聚合这是因为CIDR可以明确携带的前缀长度因此路由器能够更准确的知道聚合地址块的范围最长匹配前缀简介最长路由匹配前缀是路由器查询路由表时使用的基本规则如果一个目的IP地址同时匹配多条路由就选网络前缀最长地址范围最具体的那一条例如/24 的前缀比 /22长 /22 的前缀比 /16长 /16 的前缀比 /0长因此当出现多条路由同时匹配路径时/24 优先于 /22 /22 优先于 /16 /16 优先于 /0示例假设路由表中同时有192.24.12.0/22 192.24.15.0/24 0.0.0.0/0这几个网络的范围是路由表示范围192.24.12.0/22192.24.12.0~192.24.15.255192.24.15.0/24192.24.15.0~192.24.15.2550.0.0.0/0所有IPv4地址他们是一层套一层的关系0.0.0.0/0 └── 192.24.12.0/22 └── 192.24.15.0/24所以目的地址192.24.15.2同时处于这三个范围内为什么我们会优先选择24因为/24的范围更小描述的更加精确/0 中国 /22 某个城市 /24 某条街道如果我们知道了一个人位于某条街道那么我们就没必要到全中国的各个角落去找他总结后续我还会继续分享相关的网路层学习笔记敬请期待