5.2.12 IP分组的转发(三)
示例:例:某网络拓扑如图所示,从图中我们可以看出该网络拓扑中有两个局域网,由两台路由器,其中路由器R1有两个以太网口,分别是E1和E2连接了两个局域网,R1还有一个广域网的接口L0接了路由器R2,路由器R2的广域网接口L1接入了互联网,此外还有一个以太网口E0连接到了域名解析服务器DNS上,每个接口对应的IP地址都已经给出,对于局域网1、局域网2和路由器R1相连的两个以太网口E1和E2。
要求:结合路由聚合技术,给出R2到局域网1和局域网2的路由。
分析:我们已经知道采用无分类编址最大的好处是可以构成超网(超网:包含有多个C类网络地址的地址块),实现路由聚合,减少路由表的表项,比如202.119.64.0/18的地址块中就包含了 2 6 2^6 26个C类网络地址,在原来传统的路由表中需要为每一个C类网络分配一个路由表项,现在可以用一行来代替传统的64行,换种说法就是把64条路由汇聚成了一条路由,从而大大减少了路由表的行数,提高了查找的速度。
对于路由器R2来说,到达局域网1和局域网2来说应该是两条路由的,但是因为两个地址块中的IP地址是连续的,并且对于路由器R2来说到两个局域网的下一跳也都是一样的,那我们就可以把这两个地址块合并成一个就可以把路由表中的两行变成一行,因为两个地址块中的前24位是一样的(见同专栏5.2.11),第25位一个是零一个是1,本来这两个地址块就是从一个地址块中分出来的,所以说合并以后的地址快是一个/24的地址块,起始地址就是202.118.1.0,子网掩码因为是/24的地址块所以是255.255.255.0,下一跳路由器IP地址当然就是路由器R1与R2连接的接口L0的IP地址,对于R2来说是通过与R1相连的接口L0,所以R2到达局域网1和局域网2的路由表如表所示
目的网络IP地址 | 子网掩码 | 下一跳路由器IP地址 | 接口 |
---|---|---|---|
202.118.1.0 | 255.255.255.0 | 202.118.2.1 | 202.118.2.2 |
为了深入了解路由聚合我们再来举一个路由聚合的示例。
例:求212.10.4.0/24,212.10.5.0/24,212.10.6.0/24,212.10.7.0/24汇聚后的网络地址。
分析:每个地址块中地址数量是 2 8 2^8 28,四个地址块中地址的数量是 4 × 2 8 4\times2^8 4×28,也就是说这四个地址块中地址的数量加在一起是2的整数次幂,从数量上看他们应该是可以合并的,究竟能不能合并还要取决于这几个地址块是否连续(如果不连续路由表中将报文送达该地址块将找不到改地址),确定地址块是否连续的方法是把每个地址块的地址转换为二进制,如表
202.10.4.0/24 | 212.10.00000100.0 |
---|---|
202.10.5.0/24 | 212.10.00000101.0 |
202.10.6.0/24 | 212.10.00000110.0 |
202.10.7.0/24 | 212.10.00000111.0 |
从表中我们可以看出四个地址块中前8+8+6=22位是相同的,而后面的是从全0到全1,也就说明这四个地址块的地址是连续的,如此一来我们就把他们共同的网络前缀部分找到也就是把相同的前22位进行合并,经过合并后就变成了/22的地址块,且该地址块的起始地址是212.10.00000100.0,所以最终合并的结果就是212.10.4.0/22
一、最长前缀匹配
在采用无分类编址的情况下,我们通过路由转发算法(见同专栏5.2.11)找到的匹配项有可能不止一项,因为匹配项中可能存在着小地址块包含在大地址块里面的情况,所以有可能找到的匹配项不止一项。
在多个匹配项中,究竟应该选哪个匹配项对应的下一跳路由器进行转发呢?
这里规定是选择网络前缀最长的匹配项,因为前缀越长,地址块中地址数量越少,这样的路由就越具体。就成为最长前缀匹配。
二、私有地址
IP地址资源是有限的,为了节约地址的使用,IANA保留了三块只能用于专用互联网内部通信的IP地址空间也就是私有地址。
前缀 | 最低地址 | 最高地址 |
---|---|---|
10/8 | 10.0.0.0 | 10.255.255.255 |
172.16/12 | 172.16.0.0 | 172.31.255.255 |
192.168/16 | 192.168.0.0 | 192.168.255.255 |