|
|
|
|
公众号矩阵

1.7.2 无类别路由

《TCP/IP路由技术(第2卷)(第2版)》第1章域间路由概念,本章介绍BGP背后的关键概念及其演进过程。本节为大家介绍无类别路由。

作者:夏俊杰 译来源:人民邮电出版社|2017-09-03 19:58

1.7.2 无类别路由

无类别路由主要包括以下两个方面:

无类别可以是路由协议的特性;

无类别可以是路由器的特性。

当今的网络已不再使用“有类别”IP路由协议(包括RIPv1、IGRP以及BGP-4之前的BGP版本)[11]。有类别路由也不再是当今绝大多数路由器的默认选项:IOS从11.3开始就将无类别路由作为默认选项,因而当前所有的IOS版本都是无类别路由。因此,可以在一定程度上将本节的内容视为历史介绍,不过仍然建议读者阅读本节的内容,因为这些知识对于理解最长匹配路由查找机制非常有用。

作为路由信息的一部分,无类别路由协议携带了每个被宣告地址的网络部分的描述信息。通常将网络地址的网络部分称为地址前缀。描述地址前缀时,既可以包含一个地址掩码(也就是指示该地址中有多少个前导比特是前缀比特的长度字段),也可以在更新中仅包含前缀比特(见图1-26)。常见的无类别IP路由协议包括RIP-2、EIGRP、OSPF、集成式IS-IS以及BGP-4[12]。

有类别路由器在路由表中将目的地址记录为主类网络以及这些网络的子网。在执行路由查找时,有类别路由器首先查找主类网络地址,接着再在主类网络地址下的子网列表中查找匹配项。如果没有找到匹配项,那么就会丢弃数据包——即便存在像默认路由一样的路由。汇总与地址聚合技术对于现代网络设计中的CIDR以及扩展性来说必不可少,但对于有类别网络环境来说却是一个问题。

无类别路由器会忽略地址类别,并在路由表中为所有前缀查找“最长匹配”的目的地址。也就是说,对于任何给定的目的地址来说,无类别路由器都会选择匹配了最多地址比特(从左至右)的路由。例1-8中的路由表显示了一些按照可变子网方式划分后的IP网络。如果路由器是无类别路由器,那么该路由器就会尝试为每个目的地址都找到最长匹配项。

例1-8 该路由表包含了多个被可变子网划分后的IP网络

  1. Cleveland#show ip route  
  2. Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP  
  3. D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area  
  4. E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP  
  5. i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default  
  6. Gateway of last resort is 192.168.2.130 to network 0.0.0.0  
  7. O E2 192.168.125.0 [110/20] via 192.168.2.2, 00:11:19, Ethernet0  
  8. O 192.168.75.0 [110/74] via 192.168.2.130, 00:11:19, Serial0  
  9. O E2 192.168.8.0 [110/40] via 192.168.2.18, 00:11:19, Ethernet1  
  10. 192.168.1.0 is variably subnetted, 3 subnets, 3 masks  
  11. O E1 192.168.1.64 255.255.255.192  
  12. [110/139] via 192.168.2.134, 00:11:20, Serial1  
  13. O E1 192.168.1.0 255.255.255.128  
  14. [110/139] via 192.168.2.134, 00:00:34, Serial1  
  15. O E2 192.168.1.0 255.255.255.0  
  16. [110/20] via 192.168.2.2, 00:11:20, Ethernet0  
  17. 192.168.2.0 is variably subnetted, 4 subnets, 2 masks  
  18. C 192.168.2.0 255.255.255.240 is directly connected, Ethernet0 

(待续)

  1. C 192.168.2.16 255.255.255.240 is directly connected, Ethernet1  
  2. C 192.168.2.128 255.255.255.252 is directly connected, Serial0  
  3. C 192.168.2.132 255.255.255.252 is directly connected, Serial1  
  4. O E2 192.168.225.0 [110/20] via 192.168.2.2, 00:11:20, Ethernet0  
  5. O E2 192.168.230.0 [110/20] via 192.168.2.2, 00:11:21, Ethernet0  
  6. O E2 192.168.198.0 [110/20] via 192.168.2.2, 00:11:21, Ethernet0  
  7. O E2 192.168.215.0 [110/20] via 192.168.2.2, 00:11:21, Ethernet0  
  8. O E2 192.168.129.0 [110/20] via 192.168.2.2, 00:11:21, Ethernet0  
  9. O E2 192.168.131.0 [110/20] via 192.168.2.2, 00:11:21, Ethernet0  
  10. O E2 192.168.135.0 [110/20] via 192.168.2.2, 00:11:21, Ethernet0  
  11. O*E2 0.0.0.0 0.0.0.0 [110/1] via 192.168.2.130, 00:11:21, Serial0  
  12. O E2 192.168.0.0 255.255.0.0 [110/40] via 192.168.2.18, 00:11:22, Ethernet1  
  13. Cleveland# 

如果路由器收到一个目的地址为192.168.1.75的数据包,且路由表中存在多个与该地址相匹配的路由项:192.168.0.0/16、192.168.1.0/24、192.168.1.0/25和192.168.1.64/26,那么路由器将会选择192.168.1.64/26作为匹配项(见例1-9)。因为该路由项与目的地址匹配了26个比特:最长匹配。

例1-9 目的地址为192.168.1.75的数据包从接口S1被转发出去

  1. Cleveland#show ip route 192.168.1.75  
  2. Routing entry for 192.168.1.64 255.255.255.192  
  3. Known via "ospf 1", distance 110, metric 139, type extern 1  
  4. Redistributing via ospf 1  
  5. Last update from 192.168.2.134 on Serial1, 06:46:52 ago  
  6. Routing Descriptor Blocks:  
  7. * 192.168.2.134, from 192.168.7.1, 06:46:52 ago, via Serial1  
  8. Route metric is 139, traffic share count is 1 

而目的地址为192.168.1.217的数据包则与192.168.1.64/26或192.168.1.0/25均不匹配。与该地址最长匹配的路由项应该是192.168.1.0/24(见例1-10)。

例1-10 路由器无法将192.168.1.217匹配到更精确的子网,因而将其匹配为网络地址192.168.1.0/24

  1. Cleveland#show ip route 192.168.1.217  
  2. Routing entry for 192.168.1.0 255.255.255.0  
  3. Known via "ospf 1", distance 110, metric 20, type extern 2, forward metric 10  
  4. Redistributing via ospf 1  
  5. Last update from 192.168.2.2 on Ethernet0, 06:48:18 ago  
  6. Routing Descriptor Blocks:  
  7. * 192.168.2.2, from 10.2.1.1, 06:48:18 ago, via Ethernet0  
  8. Route metric is 20, traffic share count is 1 

可以为目的地址192.168.5.3找到的最长匹配项是聚合地址192.168.0.0/16(见例1-11)。

例1-11 由于去往192.168.5.3的数据包无法匹配更精确的子网或网络,因而匹配聚合地址192.168.0.0/16

  1. Cleveland#show ip route 192.168.5.3  
  2. Routing entry for 192.168.0.0 255.255.0.0, supernet  
  3. Known via "ospf 1", distance 110, metric 139, type extern 1  
  4. Redistributing via ospf 1  
  5. Last update from 192.168.2.18 on Ethernet1, 06:49:26 ago  
  6. Routing Descriptor Blocks:  
  7. * 192.168.2.18, from 192.168.7.1, 06:49:26 ago, via Ethernet1  
  8. Route metric is 139, traffic share count is 1 

***,虽然目的地址192.168.1.1与路由表中的任何网络表项都不匹配(见例1-12),但路由器并不会丢弃这些数据包。这是因为例1-8显示的路由表中还包含了一条默认路由(在路由表中表述为gateway of last resort),因而路由器会将这些数据包转发给下一跳路由器192.168.2.130。

例1-12 虽然无法在路由表中找到192.168.1.1的匹配项,但是根据例1-8显示的路由表吗,路由器会将去往该地址的数据包被转发给默认路由的下一跳192.168.2.130(出接口为S0)

  1. Cleveland#show ip route 192.169.1.1  
  2. % Network not in table 

例1-8中的路由表以及相关示例解释了最长匹配路由选择的另一个特性,那就是去往聚合地址的路由并不需要指向聚合地址中的每个成员。图1-27给出了例1-9到例1-12中的相关路由信息。

下面分析一个聚合了全部子网的网络192.168.1.0/24。从图1-27可以看出,去往该网络地址的路由都将从接口E0向外转发数据包,但去往其中两个子网(192.168.1.0/25和192.168.1.64/26)的路由却指向了其他接口——S1。

注:

192.168.1.64/26实际上是192.168.1.0/25的成员,但这两个地址拥有不同的路由(都指向S1),暗示了这两个地址是由不同的上游路由器宣告而来的。

同样,虽然192.168.1.0/24也是聚合地址192.168.0.0/16的成员,但去往较不精确地址的路由是通过接口E1向外转发的,而最不精确路由0.0.0.0/0(是所有其他地址的聚合地址)则是通过接口S0向外转发的。根据最长匹配路由选择原则,去往192.168.1.0/25和192.168.1.64/26的数据包将从接口S1向外转发,而去往网络192.168.1.0/24的其他子网的数据包则从接口E0向外转发。如果数据包的目的地址以192.168开头(192.168.1除外),那么就从接口E1向外转发这些数据包,而那些目的地址不是以192.168开头的数据包则都从接口S0向外转发。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

16招轻松掌握PPT技巧

16招轻松掌握PPT技巧

GET职场加薪技能
共16章 | 晒书包

289人订阅学习

20个局域网建设改造案例

20个局域网建设改造案例

网络搭建技巧
共20章 | 捷哥CCIE

645人订阅学习

WOT2019全球人工智能技术峰会

WOT2019全球人工智能技术峰会

通用技术、应用领域、企业赋能三大章节,13大技术专场,60+国内外一线人工智能精英大咖站台,分享人工智能的平台工具、算法模型、语音视觉等技术主题,助力人工智能落地。
共50章 | WOT峰会

0人订阅学习

读 书 +更多

Java程序设计专家门诊

精选目前国内外最流行的程序设计语言——Java作为本书的选题,并以丰富的内容来解决读者学习该语言时可能遇到的各种问题。以专业的论坛为基...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客