IP路由协议疑难解析(txt+pdf+epub+mobi电子书下载)


发布时间:2020-09-19 10:34:48

点击下载

作者:[美]Zaheer Aziz Johnson Liu Abe Martey Faraz Shamim 著

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

IP路由协议疑难解析

IP路由协议疑难解析试读:

前言

随着Internet的极速发展,网络工程师在网络的构建、维护和排障方面所要付出的努力也将成倍增长。由于网络故障的排除工作是一项需要项目经验积累的实用性技能,因此为了满足快速增长的Internet的运维需求,降低网络技术的学习难度,让网络工程师尽快掌握各种排障技能,就成为了重中之重。IP路由技术是Internet技术的基石,能否尽快排除IP路由协议故障将成为降低网络停运时间的关键。降低网络停运时间也随着由Internet承担的关键性应用程序的增多而变得倍加重要。本书将细述如何排除网络故障,也会深入探讨维护网络完整性的诀窍。

本书向读者提供了排除IP路由协议故障的独门秘籍,侧重于例举典型的IP路由协议故障场景,同时会详尽展示排障方法。本书集Cisco TAC团队多年排障经验之大成,提供的排障方法涉及BGP、OSPF、IGRP、EIGRP、IS-IS、RIP和PIM等IP路由协议,首先会介绍上述每一种路由协议的基本概念,随后会顺着网络工程师接手解决各种IP路由协议故障时的思路,一步步地给出排障过程。本书能让读者全面掌握各种IP路由协议的排障技能和相关实战经验,还能帮助读者顺利通过CCIE考试,成为货真价实的CCIE。读者对象

本书的读者水平应为中级以上,本书假设读者已对构建IP网络时用到的各种IP路由技术,以及其他相关协议和技术都有着一般性的了解。

本书的读者对象应该是负责保障网络高可用性的网络管理员、网络运维工程师,以及准备参加CCIE考试的考生。本书的组织结构

本书设计灵活,读者既可从头到尾通读,也可根据工作需要,在章、节之间自由翻阅。● 第1章,“理解IP路由选择”——本章介绍了IP路由协议的基本概

念,重点关注以下主题:● IP编址概念;● 静态路由和动态路由;● 动态路由;● 路由协议的管理距离;● 路由器快速转发。

本书其余章节则是以两章为一组,每组针对一种具体的路由协议。每组中的第一章会介绍相关路由协议的基本概念,第二章则介绍符合实战要求的排障方法。以下列出了本书其余各章的具体内容:● 第2章,“理解RIP路由协议”——本章重点关注排除RIP故障所

要必备的相关基本概念,主要包括以下内容:● 度量;● 计时器;● 水平分割;● 含毒性逆转的水平分割;● RIP-1数据包格式;● RIP的运作方式;● RIP为什么不支持非连续网络;● RIP为什么不支持可变长子网掩码;● RIP与默认路由;● RIP协议的扩展功能;● 兼容性问题。● 第3章,“排除RIP故障”——本章提供了各种排除RIP常见故障

的方法,主要包括以下内容:● 排除RIP路由安装故障;● 排除RIP路由通告故障;● 排除RIP中的路由汇总故障;● 解决RIP路由重分发问题;● 解决与RIP有关的按需拨号(DDR)路由问题;● 排除与RIP有关的路由翻动问题。● 第4章,“理解EIGRP路由协议”——本章重点关注排除EIGRP

故障所要必备的相关基本概念,主要包括以下内容:● 度量;● EIGRP邻居关系;● 扩散更新算法DUAL;● DUAL有限状态机;● EIGRP可靠传输协议;● EIGRP数据包格式;● EIGRP的运作方式;● EIGRP路由汇总;● EIGRP查询过程;● EIGRP与默认路由;● 运行EIGRP时的非等代价负载均衡。● 第5章,“排除EIGRP故障”——本章提供了各种排除EIGRP常

见故障的方法,主要包括以下内容:● 排除EIGRP邻居关系建立故障;● 排除EIGRP路由通告故障;● 排除EIGRP路由安装故障;● 排除EIGRP路由翻动故障;● 排除EIGRP路由汇总故障;● 排除与EIGRP有关的路由重分发故障;● 排除与EIGRP有关的拨号备份故障;● EIGRP错误消息。● 第6章,“理解OSPF路由协议”——本章重点关注排除OSPF故

障所要必备的相关基本概念,主要包括以下内容:● OSPF数据包;● OSPF LSA;● OSPF区域;● OSPF介质类型;● OSPF邻接状态。● 第7章,“排除OSPF故障”——本章提供了各种排除OSPF常见

故障的方法,主要包括以下内容:● 排除OSPF邻居关系建立故障;● 排除OSPF路由通告故障;● 排除OSPF路由安装故障;● 排除与OSPF有关的路由重分发故障;● 排除OSPF路由汇总故障;● 排除CPUHOG故障;● 排除与OSPF有关的按需拨号路由(DDR)故障;● 排除SPF计算及路由翻动故障;● 常见OSPF错误消息。● 第8章,“理解IS-IS路由协议”——本章重点关注排除IS-IS故障

所要必备的相关基本概念,主要包括以下内容:● IS-IS路由协议入门;● IS-IS路由协议概念;● IS-IS链路状态数据库;● 配置IS-IS路由协议,路由IP数据包。● 第9章,“排除IS-IS故障”——本章提供了各种排除IS-IS常见故

障的方法,主要包括以下内容:● 排除IS-IS邻接关系建立故障;● 排除IS-IS路由更新故障;● 路由器生成的与IS-IS路由协议有关的错误消息;● CLNS ping及 traceroute命令;● 案例分析:ISDN配置故障。● 第10章,“理解PIM协议”——本章重点关注排除PIM故障所要

必备的相关基本概念,主要包括以下内容:● IGMPv1/v2及逆向路径转发(RPF)的基本原理;● PIM密集模式;● PIM稀疏模式;● IGMP和PIM数据包的格式。● 第11章,“排除PIM故障”——本章提供了各种排除PIM常见故

障的方法,主要包括以下内容:● 排除IGMP加入故障;● 排除PIM密集模式故障;● 排除PIM稀疏模式故障。● 第12章,“理解BGP-4路由协议”——本章重点关注排除BGP-4

故障所要必备的相关基本概念,主要包括以下内容:● BGP-4路由协议的规范及功能;● 邻居关系;● 通告路由;● 同步;● 接收路由;● 策略控制;● 组建高可扩展性的IBGP网络(BGP路由反射器及BGP联盟);● 最优路径计算。● 第13章,“排除BGP故障”——本章提供了各种排除BGP常见故

障的方法,主要包括以下内容:● 排除BGP邻居关系建立故障;● 排除BGP路由通告/生成及接收故障;● 排除BGP路由未“进驻”路由表故障;● 排除与BGP路由反射器部署有关的故障;● 排除因BGP路由策略所导致的流量出站故障;● 排除小型BGP网络中的流量负载均衡故障;● 排除因BGP路由策略所导致的流量入站故障;● 排除BGP最优路由计算故障;● 排除BGP路由过滤故障。书中所用图标命令语法惯例

本书命令语法遵循的惯例与IOS命令手册使用的惯例相同。命令手册对这些惯例的描述如下。● 粗体字表示照原样输入的命令和关键字,在实际的设置和输出(非常规命令语法)中,粗体字表示命令由用户手动输入(如 show命令)。● 斜体字表示用户应提供的具体值参数。● 竖线(|)用于分隔可选的、互斥的选项。● 方括号([])表示任选项。● 花括号({})表示必选项。● 方括号中的花括号([{}])表示必须在任选项中选择一个。序

坐在Cisco公司K座3楼的办公室里,我正在阅读一封Cisco Press的Kathy Trace发给我的电子邮件,信中问我是否有兴趣写一本网络技术书籍。她说她曾读过我在Cisco CCO上发表的有关网络技术的心得体会,她觉得我很有“前途”,也想把我培养成Cisco Press的技术作者。我对这事儿很感兴趣,自言自语道“太棒了,那就这么着吧!”但应该选择什么样题材呢?

我首先想到的就是OSPF。Johnson刚好在我前排就坐,我问他:“嘿,Johnson,想和我一起写本书么?”他回应道:“写书?”我说:“是的,写书,你是怎么想的?”他考虑了片刻,点头道:“好吧!那写点什么呢?Cisco Press出过的网络技术书籍虽然涵盖了IP路由协议的方方面面,但还有一个主题尚未涉及,那就是如何排除IP路由协议故障。”

显而易见,Johnson的想法跟他的老婆有关。每当Johnson的老婆上班时间给他打电话时,Johnson总会因为忙着解决客户的网络故障而让她久等。于是,Johnson的老婆(她的名字刚好也叫Cisco)给他出了个主意,那就是让他写一本以排除路由协议故障为主题的书,授人以渔,让客户的工程师读过之后能自行排除网络故障。有了这本书,Cisco TAC一定会少接不少CASE,这样的话,Johnson在上班时间就有空接老婆电话了。

这个想法实在是太妙了!此前还没有谁写过这种题材的书呢。我马上又打电话给正在华盛顿参加IETF第46次会议的Zaheer,告诉他我们写书的意图。他欣然接受了我们的邀请。我们随即成立了一个由三名Cisco TAC工程师组成的作者团队。在过去三、四年间,我们三人都在TAC处理与路由协议有关的各种网络故障,而我们当中的每个人都至少精通一到两种IP路由协议。顶头上司Raja Sundaram也常说“我希望你们三人能分别专攻一种路由协议,并成为该领域内的顶尖高手!”我最擅长的路由协议是OSPF,Johnson则精通EIGRP和多播路由协议,而Zaheer擅长的是BGP。很快,我们就意识到,还疏忽了一种非常重要的路由协议:IS-IS。我们几个对IS-IS的认知,还远达不到去著书立说,教读者如何排除其故障的水平。因此,Zaheer建议,与IS-IS有关的内容由Abe Martey来完成。Abe当时已答应为Cisco Press写一本以IS-IS为主题的书,但他还是被我们的热情所打动,同意加入我们这个作者团队。

开始相关章节的写作时,我们就立志要把本书写成一本能帮助网管人员解决各种IP路由协议故障的书籍,而许多网管人员也渴望在市面上能买到这样的书。书中的内容都是取自过去二十多年来,我们为各行各业的客户排除IP路由协议故障时所积累的实战经验。我们想让本书成为“一站式”的IP路由协议排障手册和参考指南。为此,在设计本书的章节时,我们不但为各种路由协议设立了一章“故障排除”,还添加了一章“理解协议”,以帮助读者回顾相关路由协议的原理。本书同样可以作为CCIE认证考试的备考书籍。本书向读者传授的是如何解决网络中发生的各种IP路由协议故障。本书不可能虑及所有故障场景,但所提供的故障排除思路和技巧有助于帮助读者排除网络中发生的常见故障。Syed Faraz Shamim致谢

Faraz Shamim:

感谢真主,感谢你给我著书立说的机会,我希望本书能够帮助读者解决有关IP路由协议的故障。

感谢我的顶头上司Sronivas,以及前任领导兼师傅Andrew Maximov在我写作本书期间所给予的关照。特别要感谢Bob Vigil,他恩准我在RIP章节中采用由他编写的某些演讲素材。还要感谢Alex Zinin,他帮助我明确了本书涉及的某些OSPF概念。要感谢本书的其他几位作者Zaheer Aziz、Abe Martey和Johnson Liu,感谢你们在交稿期来临之际对我喋喋不休的包容。最后要感谢Cisco Press的Chris Cleveland和Amy Lewis,感谢二位能一次次容忍我们推迟交稿。

Zaheer Aziz:

感谢上帝赐予我完成本书的动力。

我要真心感谢我的妻子,感谢你对我的支持、宽容以及对于我长期致力于写作本书的理解。感谢我所效力的Cisco公司的弹性工作制,特别要感谢我的顶头上司Srinivas Vegesna,感谢你们让我工作、著书两不误。还要感谢Faraz Shamim(本书第一作者),感谢你从San Jose打电话邀我合著本书,当时我正在Washington出席1999年IETF第46次会议。感谢Moiz Moizuddin,感谢你独立审阅了我所著章节技术方面的内容。我要感谢我的师傅Syed Khalid Raza,感谢你在技术上对我的栽培,是你把我引入了BGP这扇门。最后,我要感谢促成本书出版的Cisco Press,尤其要感谢Christopher Cleveland和Brain Morgan,二位的建议不仅大大提高了本书的质量,还使得本书的写作过程更为顺利。

Johnson Liu:

我要感谢我在Cisco公司的朋友和同仁,感谢你们陪我一起加班加点,排除IP路由协议故障。你们的敬业精神和专业技能都无可挑剔。特别要感谢我的顶头上司Andrew Maximow和Raja Sundaram,感谢二位在我为Cisco公司效力的那些年里所给予的关照。最后,要感谢本书的技术编辑,感谢你们为提高本书的质量所提出的宝贵建议,以及所付出的努力。

Abe Martey:

首先,我要向本书的其他几位作者兼我的同僚Faraz、Johnson和Zaheer表示诚挚的感谢,感谢你们构思了这样一个题材,并邀我参与其中。我们都曾在CiscoTAC下辖的路由协议团队共事,在这里,我们都学到了丰富的IP路由协议排障经验。我们谨通过本书向非Cisco公司的网络工程师分享我们的排障经验。

自加盟Cisco公司以来,许多TAC工程师、研发工程师,以及我在TAC的直接和非直接领导不但对我关照有加,而且还在技术上给予我大量的指导和帮助。我要对这个培养出大量优秀人才的摇篮致以崇高的敬意。没有Cisco公司培养出的这些人才,Internet将达不到今天这样的规模。我还要感谢许多其他同事(人名太多,无法一一列出),感谢多年来你们无私分享的与网络技术有关的点点滴滴。

在我的职业生涯里,我与世界各地的许多网络从业人员都建立了良常好的个人关系,其中有一些是Cisco公司的客户,而另外一些则是通过IETF、NANOG、IEEE以及其他网络技术会议和论坛所结识。我要真心感谢你们所分享的知识和经验,以及你们对网络技术未来发展的专业见解和设想。

我还要向Cisco Press的编辑Amy Lewis、Chris Cleveland,以及一干技术审稿人表示最诚挚的感谢,感谢你们为本书的出版所给予的帮助。最后要感谢我的几位家人,感谢你们在本书写作期间给我的支持与鼓励。● ● ● ●

本书侧重于讲解如何排除与Cisco路由器有关的IP路由协议故障。为此,后文将介绍为人所熟知的几种IP路由协议,例如:

开放式最短路径优先(OSPF)协议;

集成的中间系统到中间系统(IS-IS)协议;

边界网关协议(BGP);

协议无关多播(PIM)路由协议。第1章理解IP路由选择

本章会介绍IP路由选择相关知识,侧重于讲解基本概念,如IP编址及IP路由协议的分类等。此外,还会概述路由协议的实现与配置,同时涉及路由过滤和路由重分发。

TCP/IP(传输控制协议/Internet协议)协议族是Internet信息交换的根基(底层技术)。TCP/IP也使用类似于开放系统互联(Open System Intenconnection,OSI)参考模型的分层方法,来实现计算机间的通信,但其层数却低于7。图1-1并排显示了OSI参考模型和TCP/IP栈,标出了两种协议栈之间相对应的层次。图1-1 OSI参考模型和TCP/IP协议栈

IP运行在TCP/IP族的Internet层,对应于OSI参考模型的网络层。IP层可提供无连接数据传输服务,即先将信息分割为数据单元(俗称数据包[packet]或数据报[datagram]),然后再从网络的一端传送至另一端。数据报交付服务模型的本质是,在网络的两个端点之间传递数据时,无需预先建立端点间的永久数据传输路径。在基于包交换的网络中,传输任一数据包时,沿途的每一台路由器都会针对通往目的网络的最佳路径,独立执行本机转发决策。路由器会根据转发信息(既可以通过路由协议动态获悉,也可以是人工录入的静态路由条目)来做出数据包的转发决策。

编址是数据转发过程中的重要一环。只要是定向通信,都有信源和信宿。有了编址,进行定向通信时,信源可“定位”信宿,信宿亦可识别信源。之所以说编址在数据报交付操作模式中尤为重要,是因为数据报每次在同一源、目端之间传输时,途经的中间节点都不固定,IP数据包的转发就是如此。

如前所述,在IP数据报服务基础设施的内部,信息在设备之间传递之前,会被首先分割为数据包。每个数据包都由IP报头、传输层(TCP或UDP)报头和有效荷载组成,有效荷载就是原始信息的一部分。每个IP数据包都是自包含的,会沿着一条转发路径(由“一串”网络设备构成),独立转发至最终目的网络。

网络中的路由器会依靠动态路由协议或人工录入的静态路由信息,以数据流的形式将数据报转发至既定目的网络。无论数据包的目的地址为何,数据转发路径中的每台设备都只关心数据包的流出接口以及本机确立(或由特殊的转发策略指明)的通往目的网络的最优路径。IP数据包的转发机制通常也称为基于目的地址的逐跳(hop-by-hop)转发机制。这就是说,在正常情况下,数据转发链路沿途的每一跳路由器都会根据目的IP地址来转发数据包。不过,新型路由器还可依托特殊的路由策略,来控制数据包的转发,比如,根据源IP地址,执行IP流量的转发。

目的节点会将归属于同一个数据流的数据包重组为原始数据信息。IP编址将在下一节“IP编址概念”中再做讨论。

在无连接的网络中,根据三层地址(IP地址)在节点间转发数据包的过程称为路由选择。路由器是指具备路由选择功能的专用网络设备。

对穿梭于互联网络中的数据包来说,路由器到底是如何做出转发决策(如何转发、发往何处)的呢?路由器做出转发决策的方法多种多样。既可以在路由器上提前配置预先确立的路径信息(亦称设置静态路由);也可以让路由器运行特殊的应用程序,依靠其来自动学习并“分享”路由信息,这些在前文都已提及。后一种获取及传播路由信息的方法称为动态路由选择。1.1 IP编址的概念

编址是IP协议的关键。在图1-1所示的TCP/IP协议栈中,有一个通向底层(物理层和数据链路层)的网络接口层,IP协议的介质无关性就仰仗于该层。IP协议之所以能被人们广泛接受,介质无关性可能是重要原因之一。IP有自己的一套编址方案,独立于用来互连网络设备的局域网(LAN)或广域网(WAN)介质,这也暗合其介质无关性的架构。因此,IP可成功地运行在由各种各样的介质所组成的网络基础设施之上。IP协议栈的这种灵活性,兼之其简单性,也是促使该协议得到广泛使用的主要原因。

IP编址的原理是,为网络设备的每个网络接口(网卡)分配地址(即基于链路的地址分配方法),并不是为整台设备分配单一地址(即基于主机的地址分配方法)。设备的各个接口与名为子网络(或子网)的网络链路相连,并设有子网地址。接口的IP地址从其直连链路的子网地址空间中分配。基于链路的地址分配方法的优点是,路由器只需跟踪IP路由表中的IP子网,就能够汇总路由信息,而无需追踪到网络中的每台主机。这在诸如以太网之类的广播链路网络环境中会非常高效,在此类网络环境中,会同时连接多台设备。在运行IP的以太网络中,还会利用地址解析协议(Address Resolution Protocol,ARP)将直连主机的IP地址解析为相应的数据链路层地址。

目前,IP地址分为两类:IPv4地址和IPv6地址。在IPv6未得到正式启用之前,目前在用的IPv4地址用32 位来表示。确切说来,32位32编址方案可提供多达2(4 294 967 295)个独一无二的主机地址。随着全球Internet规模的不断扩张,32位的IPv4编址方案已不能满足未来的发展,于是,128位的IPv6编址方案应运而生。在IPv4网络环境中排除IP路由协议故障是本书的主要内容。因此,本章只讨论IPv4编址结构及相关概念,但其中的大多数内容仍适用于IPv6。稍后几节将讨论下列与IPv4编址有关的主题:● IPv4地址类别;● 私有IPv4地址空间;● IPv4子网划分和可变长子网掩码;● 无类别域间路由。1.1.1 IPv4地址类别

如前所述,IPv4地址的32位编址方案可容纳大量的主机地址。但是,IP编址方案基于链路,要求网络链路与一组IP地址相关联,而与链路直连的主机则设有具体的IP地址。这组IP地址称为地址前缀,俗称IP网络号(IP network number)。

起初,定义IP网络号时,可以说是壁垒森严——有严格的类别之分。对IP地址进行分类,其目的是要“划分”出能够支持各种数量级主机的IP地址组,从而提高IP地址空间的分配效率。这样一来,IP地址就可以根据链路上的主机数量“专类专用”。对IP地址进行分类的另外一项好处是,可使地址分配过程更为简单,更容易控制。

IP地址分为A、B、C、D、E等5大类,由IP地址第一字节的几个最高位来定义和区分。每类地址都含若干IPv4地址子网,每个子网均可容纳一定数量的主机。表1-1所列为5类IPv4地址。表1-1 IP地址分类和表示地址首子节置首字节十进制以点分十进制表示的主机类别位方式表示方式地址分配范围A0xxxxxxx1~1271.0.0.1~126.255.255.254128.0.0.1~191.255.255.B10xxxxxx128~191255.254192.0.0.1~223.255.255.C110xxxxx192~223254224.0.0.1~239.255.255.D1110xxxx224~239254240.0.0.1~255.255.255.E11110xxx240~255255

由表1-1可知,IP地址首字节的置位方式不同,与之相对应的地址类别以及地址范围也有所不同。

在这5类地址中,A、B、C 三类属于单播地址,用来实现单一信源与单一信宿之间的通信。D类地址专为IP多播应用而预留,多播是指单一信源与多个信宿之间的通信。E类地址则是出于实验目的而做预留。

为了使各类单播地址(A、B、C类)所能容纳的主机尽可能的多,人们把32位IP地址进一步划分为了网络标识符(网络ID)和主机标识符(主机ID)两个大块,如下所示。● A类地址:8位网络ID,24位主机ID。● B类地址:16位网络ID,16位主机ID。● C类地址:24位网络ID,8位主机ID。

图1-2所示为32位A类地址的划分情况。其首字节中的最高位固定为0,用整个首字节来表示网络ID,随后的3字节表示主机ID。图1-2 A类地址的位分配情况

这一按严格的界限给IP地址分类的理念也称为有类IP地址划分。人们用掩码来“圈定”IP地址中的主机ID和网络ID。IP地址的结构经过多次改进,才进化成了现在这个样子,这些改进也使得IP地址分配在实战中更加高效。本章1.1.3节会对此作详细介绍。

为了易于识别,IP地址使用点分十进制的形式来表示。用点分十进制来表示时,32位IP地址以8位编为一组,每组之间用点号分开。然后,再将每个字节(八位组)转换为等值的十进制数。表1-1中的最后一列所示为各类IP地址类所属地址范围的点分十进制表示。

虽然有类编址的引入使得IPv4地址空间得到了较为充分的利用,但是地址分类界限太过严格也导致了IP地址空间使用效率低下。有鉴于此,有类编址逐渐被更为高效和更加灵活的无类编址取代。

使用无类编址时,任何IP网络号都可以用特定长度的前缀来表示。这一前缀表示法除了更加灵活以外,还可以使得IPv4地址空间得到更为充分的利用。以A类地址这一巨大的有类地址块为例,使用有类编址方案时,一个A类地址块只能分配给一个组织,而采用无类编址方案,则可将其剖成多个小地址块,分配给多个组织;与此相反,无类编址方案还允许对多个C类地址块做聚合处理,而无需“分别对待”。为节省资源,Internet路由器都会对路由表中的路由做地址聚合,这种路由聚合方式称为无类别域间路由(CIDR)。1.1.4节会对此展开深入讨论。1.1.2 IPv4私有地址空间

人们对IPv4单播地址空间的某些地址块进行了预留,并将其指定为私有地址。私有地址空间专为不与公网(Internet)相连的网络而预留。RFC 1918将下列地址块定义为IPv4私有地址:● 10.0.0.0~10.255.255.255;● 172.16.0.0~172.31.255.255;● 192.168.0.0~192.168.255.255。

RFC 1700载有已预留及已分配(Internet相关)参数的通用信[1]息,包括已预留的IP地址信息。使用网络地址转换(Network Address Translation,NAT)技术,启用了IPv4私有地址空间的私有网络仍然可以连接到公网(Internet)。1.1.3 子网划分和可变长子网掩码

CIDR诞生之前,每个有类网络只能分配给一个组织。在组织内部,可用子网划分技术将有类地址块分割为多个小地址块,供同一网域内的不同网段使用。

IP子网划分是指把有类IP地址的某些主机位“并入”网络ID,从而在IP地址类别中引入了另一层级。这一经过扩展的网络ID称为子网号或IP子网。试举一例,可“借用”B类网络地址主机ID字段两字节中的一个,来创建出255个子网,用剩下的那个字节来表示每个子网的主机ID,如图1-3所示。图1-3 B类子网示例

执行IP子网划分时,会对有待分配的有类网络的掩码进行调整,以反映出新创建子网的网络号和主机号。图1-4所示为划分B类地址时,新创建的子网及与之相对应的掩码。掩码中一连串的1和0分别表示网络位和主机位。通常,书写IP地址时,也可以用前缀长度表示法,即指明子网掩码中1的个数。比如,可把172.16.1.0 255.255.255.0写为172.16.1.0/24。图1-4 子网掩码示例

虽然有类编址方案支持子网划分,能够满足地址块之内的高效地址分配需求,但在有类网络环境中,要求所使用的子网掩码一致,这属于硬性规定。VLSM属于更深层次的子网划分,允许同一(主类)网络号“配搭”不同的子网掩码,这样一来,便可根据网域内不同网段的使用方式,更加灵活地分配不同大小的IP地址块。比方说,利用VLSM, 可把B类地址172.16.0.0/16划分为多个子网掩码为24位的“小型”子网,即“借用”了这一B类地址中的8位主机位作为子网位。然后,还可以对新生成的首个子网172.16.1.0/24,做进一步的子网划分,例如,可再次“借用”其8位主机位中的4位作为子网位。于是,便划分出了更小的地址块,如172.16.1.0/28、172.16.1.16/28、172.16.1.32/28等。只有无类网络环境才支持VLSM,在此类网络环境中,运行于路由器上的路由协议及相关路由软件都支持无类编址。图1-5演示了如何用VLSM实施子网划分。图1-5 VLSM示例1.1.4 无类别域间路由

VLSM虽有助于提高已分配地址块的IP地址使用效率,但不能解决为各个组织有效分配IP地址的难题。有许多组织都分配有多个C类网络,而非单个B类网络,这不但会使得有类IP地址块的使用效率极低,而且还导致全球Internet路由表的有类路由条数迅猛增长。如此一来,IP地址很快将会消耗殆尽,于是无类别域间路由(Classless InterDomain Routing,CIDR)技术应运而生。

CIDR支持任意长度的IP网络号,完全摒弃了有类网络中网络号与主机号“界限分明”的概念。图1-6列举了CIDR的两大优点。打破了地址类别这一概念之后,就可以很方便地用192.168.0.0/16来表示从192.168.0.0到192.168.255.0这样一个个零散的C类地址块。再说具体一点,这就意味着上述256个“老式”的C类地址块可聚合为单一地址块,此类地址块也称为CIDR地址块或超网(supernet)。图1-6 用CIDR实施地址聚合与子网划分示例

CIDR还能非常灵活地支持对(IP地址中的)网络号进行子网划分,划分出来的子网可分配给不同的组织,以实现域间路由信息的交换。比如,可将地址块131.108.0.0/16划分为4个“二级”地址块(131.108.0.0/18、131.108.64.0/18、131.108.128.0/18和131.108.192.0/18),然后,再分配给4个不同的组织。1.2 静态路由和动态路由

可在路由器上手工(静态)设定(用来转发数据包的)路径信息(即静态路由),迫使路由器通过某特定端口或下一跳IP地址,转发匹配(静态路由中所包含的)目的IP地址的数据包。可设置静态路由,来匹配“各式各样”的目的IP网络地址。还有一种让路由器获取路由信息的手段,那就是在其上运行分布式的应用程序,来自动收集,并在路由器间彼此共享路由信息。此类分布式应用程序不仅能自动收集路由信息,还能实时跟踪网络连通性状态,并会尽量提供实时而又有效的路由信息,故称为动态路由协议。

由于静态路由为手工配置,因此一旦(数据包转发)路径发生改变,就需要人为干预,重新配置路由器。与其相比,对网管人员来说,动态路由协议处理路由信息时则要便捷的多。但便捷的代价是配置的复杂性和故障排除的难度。就路由器而言,动态路由协议属于资源密集型,会消耗大量的内存和处理器资源。此外,要想玩转动态路由协议,网管人员在网络设计、路由器配置、配置调优,以及故障排除方面,必需具备丰富的知识储备和实战经验。

虽说静态路由既不会过多占用路由器系统资源,对网管人员的配置技能和故障排除能力也要求甚低,但只要网络规模一大,路由全靠人工添加,则未免不太现实。显而易见,对于目前靠IP网络来开展或提供业务的现代化大型企业和ISP来说,在网络中启用静态路由并非明智之举。静态路由还有一项缺点,那就是在实施复杂的路由策略时,缺乏足够的灵活性。就路由策略的实施而言, BGP、OSPF和IS-IS等动态路由协议所支持的功能性和灵活性是静态路由所无法匹敌的。下一节会深入讨论动态路由协议。1.3 动态路由

上一节简要概述了什么是IP路由选择,指出了在大型网络中启用动态路由协议的必要性。本节将讨论IP路由协议分类及特征。虽然所有路由协议都以收集路由信息,支撑路由器转发数据包为己任,但可根据路由协议所转发的流量类型,将其分为两大类:单播路由协议和多播路由协议。

前文已指出,IP的作用是提供编址方案,以标识网络中的各个子网或不同场所。IP包头中的目的地址即为数据包的“归宿”。IP包发送方的IP地址存储在包头的源IP地址字段内。IP子网(或简称为子网)是一个重要概念,也是理解IP编址概念的先决条件。IP编址的概念已在上一节介绍IP子网时顺带提及。说直白一点,一个IP子网可容纳一组互相连接的网络设备,这些设备的接口IP地址共享同一网络号,并配之以相同子网掩码。

在“IPv4编址类别”一节中已经讨论过了单/多播地址的概念。单播地址空间用来编址网络设备,多播地址空间则是用来明确定义从同一多播应用程序接收信息的一组或多个用户。

对于任一IP单播子网,隶属于其的最后一个地址,如192.168.1.255/24,称为广播地址。可利用该地址同时向子网内的所有节点发送数据,故其也称为定向广播地址。

单播路由协议适用于处理单播网络信息,可让路由器以智能化的方式将IP数据包转发到相应的单播目的地址。就概念而言,多播转发则全然不同于单播转发,路由器要转发多播数据包,需运行特殊的路由选择应用程序。1.3.1 单/多播IP路由选择

在IP网络中,两台设备之间最为常见的通信方式是:向对方的IP地址发送单播流量。一个IP节点(设备)可拥有多个可用接口(网卡),每个接口(每块网卡)所配IP地址,需取自单播IP地址空间。设在(IP设备)接口上的IP地址,则在该接口所处子网内唯一地标识该IP设备。

Cisco路由器还支持secondary逻辑子网的概念。路由器接口除可配置一个primary地址之外,还能配置多个secondary逻辑子网地址。此外,还可在Cisco路由器上激活隧道和loopback接口,来实现IP单播连通性。对于IP单播数据包,路由器会检查包头中的目的IP地址字段,并根据IP路由表所含信息,执行相应转发操作。可在Cisco路由器上执行 show ip route命令,查看其单播IP路由表的内容。

对于多播数据包(包头中的目的字段值来自多播[D类]地址空间),则其潜在的接收者为多个,路由器会按多播数据包的转发流程进行转发。为提高网络资源的利用率,路由器会使用专门的机制来执行多播数据包的转发。若某款应用程序是为了向多处目标发送流量而设计,当通过单播路由技术来转发其流量时,在源端会不必要的重复发送多次流量,从而导致网络资源的浪费。可利用多播路由技术,来避免这一资源浪费情况。多播路由一经启用,路由器将只会在“挂接”了多播接收主机的网络分支(设备)上,进行必要的多播流量复制。

图1-7所示为路由器如何用单播转发方式,将数据包从SRC1(源端)转发给两个单独的接收者RCV1和RCV2。图1-7 使用单播方式来转发多个目的地址的相同流量

在此情形,SRC1将生成两条“一模一样”的数据流,流中数据包的目的地址分别为10.1.1.1和10.1.1.2。RT1和RT2会单独处理每条数据流内的数据包,并送达各自的目的主机。这就大大耗费了这两条数据流沿途路径中的网络资源(带宽资源和路由器处理资源)。若采用多播转发机制,情形将全然不同,如图1-8所示。图1-8 多播转发

多播转发在信息交付方面效率会更高,具体机制是,支持多播转发的路由器只在网络的“分枝路由器”上复制数据包,“分枝路由器”是指有多条链路连接了多播接收主机的路由器。因此,采用多播转发机制时,如图1-8所示,SRC1只会生成一条数据流,流中的数据包由RT1和RT2转发。但只在“分枝路由器”RT2上才会被复制,然后分别发送至多播接收主机RCV1和RCV2。

就运作方式而言,单、多播路由协议截然不同,在支持多播转发的路由器上,需借助一种名为逆向路径转发(Reverse Path Forwarding,RPF)的机制,来建立多播转发状态表项。RPF的作用是:确保多播数据包是从通向多播源的正确路由器接口抵达,这就等于说路由器能够遵循单播路由表,通过多播数据包的接收接口将单播数据包转发至多播源主机(意即路由器能通过多播数据的接收接口与多播源主机建立起单播IP连通性)。

RPF及IP多播路由的原理将在第10章中做深入讨论。

表1-2所列为常用的单、多播路由协议。表1-2 单、多播路由协议单播多播RIP(V1/V2)DVMRPIGRPPIMEIGRPMOSPFOSPFMOSPFIS-ISMSDPBGP

Cisco IOS软件支持以上所有单播路由协议。但在以上所列多播路由协议中,Cisco IOS软件只支持协议无关多播(Protocol Independent Multicast,PIM)路由协议(包括[稀疏模式和密集模式(Sparse Mode/Dense Mode,SM/DM])、多播源发现协议(Mutlicast Source Discovery Protocol,MSDP)以及多协议BGP。

要想在网络中实现对多播流量的路由选择,Internet网关多播协议(Internet Gateway Multicast Protocol,IGMP)必不可缺。运行IOS的Cisco路由器不支持多播OSPF(Multicast OSPF,MOSPF)协议,但具备与运行距离矢量多播路由协议(Distance Vector Mutlicast Routing Protocol,DVMRP)的设备互操作的能力。

写作本书之际,多播路由协议还未在Internet上广泛部署。但是,随着诸如无线电广播、视频流、远程培训、视频会议和游戏等大量基于多播的应用出现,多播在Internet上的流行将指日可待。1.3.2 无类IP路由协议与有类IP路由协议的对比

无类与有类IP路由协议的概念得自于IP编址方案最初的制定方式。

根据有类编址规则,除非在划分IP子网时,明确指定了子网掩码,否则IP网络号就必需配搭“原生态”子网掩码。而早期的路由协议(诸如RIP)也只能用在同一网域内处理含单一类型子网掩码(即“原生态”子网掩码,或位长保持一致的子网掩码)的IP地址。RIP之类的路由协议不能处理含多种类型子网掩码(如VLSM)的IP地址。此类协议统称为有类路由协议(classful protocol)(见表1-3)。有类路由协议之所以不支持VLSM,是由于设计方面的“缺陷”——其路由更新消息中只包含了IP目的网络信息,未包含与之“配套”的子网掩码信息,运行有类路由协议的路由器只能凭简单而又直观的机制,来“凭空臆断”所学路由的目的IP网络配套的子网掩码。

随着Internet在全球范围内的极速蔓延,要求高效利用有限IPv4地址空间的呼声也越来越高。在IP地址“越用越少”的同时,人们又发明了前文介绍过的VLSM和CIDR这样的“无类”技术,来更为有效地分配和使用IPv4地址。人们还对路由协议的功能不断改进,以支持无类IP编址环境,让这些路由协议能在无类网络环境中运行,并识得VLSM型IP地址,且能处理CIDR的路由协议,因此,人们将它们称为无类路由协议(classless routing protocol)。

表1-3所列为各种有类及无类路由协议。RIP-1和IGRP属于有类属于协议,较新的RIP-2、EIGRP、OSPF、IS-IS和BGP都属于无类路由协议。外部网关协议(Exterior Gateway Protocol, EGP)是边界网关协议(Border Gateway Protocol,BGP)的前身,早已“功成身退”,也属于有类路由协议。表1-3 有类及无类IP路由协议有类路由协议无类路由协议RIP-1RIP-2IGRPEIGRPEGPOSPF集成IS-ISBGP1.3.3 内部和外部网关协议

虽然早期的ARPANET(Internet的前身)开发出了多种单播路由协议,但只有路由信息协议(Routing Information Protocol,RIP)仍在广泛使用。作为ARPANET项目的丰硕成果,很多由政府科研机构及各类高校建设的独立网络同样用RIP,来行使行动态路由协议之职。从ARPANET到Internet的演变过程中,也必须要使用更为健壮的路由协议来互连大量“网络孤岛”。为此,外部网关协议(EGP)横空出世。EGP提供了有效机制来互连不同的RIP路由进程域。因此,人们又根据RIP和EGP的“定位”,对两者的功能分别进行了优化。RIP用来执行域内路由选择,EGP则用来执行域间路由选择。后来,EGP逐渐演变为边界网关协议(BGP),而RIP也慢慢被另一些更为健壮的域内路由协议取代。由IETF开发出的开放式最短路径优先(Open Shortest Path First,OSPF)协议是域内路由协议中的佼佼者。OSPF具备RIP所力不能及的诸多特性,比如,高效的度量路由(优劣)的手段、快捷的收敛速度,以及对无类网络环境的支持。因此,还可将动态路由协议分为:内部网关路由协议(用在路由进程域之内的完成路由选择)和外部网关路由协议(在路由进程域之间完成路由选择)。

图1-9所示为两个路由进程域:AS 65001和AS 65002,重叠部分(阴影部分)为各个路由进程域的边界路由器之间的互联区域。用规范的术语来说,路由进程域也称为自治系统(Autonomous System, AS)。一个自治系统是一个受控于单一管理机构的独立路由进程域。图1-9 域内及域间路由选择

如前所述,外部网关协议可让两个路由进程域彼此共享路由信息。BGP协议是用来互连全球Internet中各个自治系统的独一无二的IP域间路由协议,此协议的当前版本号为4。在每个自制系统内,则用内部网关协议来完成路由选择。Internet中的各个自治系统可运行任何一种适用于自己的IGP。除EGP(早已“功成身退”的外部网关协议)和BGP外,其余所有单播路由协议,如IGRP、EIGRP、RIP、OSPF和IS-IS等,都是IGP(见表1-4)。表1-4 IGP和EGP的种类内部网关协议外部网关协议距离矢量协议高级距离矢量协议链路状态协议路径矢量协议RIP-1EIGRPOSPFBGPRIP-2集成IS-ISIGRP

内部网关路由协议(IGRP)为Cisco专有,其度量路由优劣的手段要比RIP“丰富”的多(RIP只能用跳数来度量路由的优劣)。IGRP引入了由以下几种“指标”值组成的复合型路由度量手段:● 带宽;● 延迟;● 可靠性;● 负载;● 最大传输单元(Maximum Transmission Unit,MTU)。

Cisco又进一步将IGRP“改造”为增强型内部网关路由协议(EIGRP)。EIGRP支持一种名为可行后继路由(feasible successor)机制的备份路由机制,故其收敛速度要远快于IGRP。EIGRP路由器可事先安装(通往同一目的网络的)备份路由,一旦优选路由失效,便即刻启用。此外,与IGRP不同,EIGRP还支持VLSM。

OSPF和IS-IS都是在大型IP网络中经常使用的IGP协议。起初,IS-IS只是人们针对无连接网络协议(Connectionless Network Protocol,CLNP)而设计的路由协议,但后来被用来传递IP路由信息,与此同时,IETF也对OSPF协议进行了标准化。OSPF和IS-IS均为链路状态路由协议,而RIP、IGRP和EIGRP都是距离矢量路由协议。

执行路由计算时,OSPF和IS-IS这两种链路状态路由协议使用的都是最短路径优先(Shortest Path First,SPF)算法(得名于其发明人Dijkstra),可在网络发生变化时,快速收敛。

两种协议都支持两级分层式路由选择。OSPF和IS-IS极为相似,所具备的功能几乎相同。两者只是在架构上略有不同,与此有关的内容已超出本书范围。

有意思的是,OSPF专为(路由)IP(数据包)而设计,OSPF协议数据包封装在IP数据包内传递。而IS-IS专为(路由)CLNP(数据包)而设计,支持IP路由只是其“兼项”。IS-IS协议数据包并非封装在IP数据包内传递,而是直接由数据链路层协议封装。

下一节会探讨路由协议的另一种分类形式:距离矢量路由协议和链路状态路由协议。1.3.4 距离矢量路由协议和链路状态路由协议

本节会从另一视角审视路由协议。上一节介绍了路由协议的常规分类:有类路由协议和无类路由协议,顺带点出了IGP和EGP区别。本节会讨论路由协议根据设计和运作的分类情况。表1-4的第二行列出了4类路由协议,有两类较为特殊——距离矢量协议和链路状态协议。由此表可知,这两类路由协议多与IGP有关。

与IGRP相同,EIGRP基本上算是一种距离矢量路由协议,因其具备很多优点,比如,收敛迅速及支持无类路由选择等,所以自成一类,属于高级距离矢量协议。BGP“贵为”域间路由协议,也自成一类,属于路径矢量路由协议,用AS-path属性作为比较路由优劣的重要手段,AS-path属性是指路由在传播过程中所途经的自制系统的编号列表。

RIPv1/v2及IGRP因使用Bellman-Ford算法作为路由计算方法,故属于距离矢量协议。Bellman-Ford算法在图论中用来计算有向图中两个顶点间的最短距离。有向图是指通过有向链路互联的点的集合(如网络中的节点和链路)。运行距离矢量路由协议的路由器,会用Bellman-Ford算法来确定通向网络中所有已知节点的最短路径。

OSPF和集成IS-IS都是链路状态协议,用最短路径优先算法(Dijkstra算法)来计算路由。与Bellman-Ford算法相同,Dijkstra算法是另外一种用来计算有向图中两点间的最短距离的方法。

EIGRP未步其前身IGRP的后尘,使用的不是Bellman-Ford算法,而是用Cisco公司的专利算法——扩散更新算法(Diffusing Update Algorithm,DUAL),来优化路由计算。

路由协议用来执行路由计算的算法类型,对路由协议本身的运行效率及收敛速度有极大的影响。以下内容将讨论距离矢量路由协议和链路状态路由协议的基本概念和运作原理。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载