第07章路由协议原理及配置V50.docx

上传人:b****5 文档编号:11740033 上传时间:2023-03-31 格式:DOCX 页数:52 大小:2.84MB
下载 相关 举报
第07章路由协议原理及配置V50.docx_第1页
第1页 / 共52页
第07章路由协议原理及配置V50.docx_第2页
第2页 / 共52页
第07章路由协议原理及配置V50.docx_第3页
第3页 / 共52页
第07章路由协议原理及配置V50.docx_第4页
第4页 / 共52页
第07章路由协议原理及配置V50.docx_第5页
第5页 / 共52页
点击查看更多>>
下载资源
资源描述

第07章路由协议原理及配置V50.docx

《第07章路由协议原理及配置V50.docx》由会员分享,可在线阅读,更多相关《第07章路由协议原理及配置V50.docx(52页珍藏版)》请在冰豆网上搜索。

第07章路由协议原理及配置V50.docx

第07章路由协议原理及配置V50

第7章路由协议原理及配置

7.1培训目标

本章首先介绍路由和路由表的概念和作用,然后介绍静态路由的配置、动态路由协议引入和距离矢量路由协议原理,最后,介绍RIP和OSPF路由协议的原理和配置。

通过本章内容的学习,我们应该掌握路由和路由表的概念和作用,应该会配置静态路由和缺省路由,并知道它们的应用场合。

应该能叙述动态路由协议的引入原因和动态路由协议的原理,以及距离矢量路由协议的原理。

会配置RIP路由协议,会使用RIP的监控和维护命令,并能排除RIP路由协议的简单故障。

掌握OSPF路由协议的基本原理和常用的配置命令。

7.2

路由及路由表

7.2.1什么是路由

路由器提供了将异构网互联的机制,实现将一个数据包从一个网络发送到另一个网络。

路由就是指导IP数据包发送的路径信息。

在互联网中进行路由选择要使用路由器,路由器只是根据所收到的数据报头的目的地址选择一个合适的路径(通过某一个网络),将数据包传送到下一个路由器,路径上最后的路由器负责将数据包送交目的主机。

数据包在网络上的传输就好像是体育运动中的接力赛一样,每一个路由器只负责自己本站数据包通过最优的路径转发,通过多个路由器一站一站的接力将数据包通过最优最佳路径转发到目的地,当然有时候由于实施一些路由策略数据包通过的路径并不一定是最佳路由。

根据路由的目的地不同,可以划分为:

●子网路由:

目的地为子网

●主机路由:

目的地为主机

另外,根据目的地与该路由器是否直接相连,又可分为:

●直接路由:

目的地所在网络与路由器直接相连

●间接路由:

目的地所在网络与路由器不是直接相连

7.2.2

通过路由表进行选路

路由器转发数据包的关键是路由表。

每个路由器中都保存着一张路由表,表中每条路由项都指明数据包到某子网或某主机应通过路由器的哪个物理端口发送,然后就可到达该路径的下一个路由器,或者不再经过别的路由器而传送到直接相连的网络中的目的主机。

路由表中包含了下列关键项:

•目的地址(Destination):

用来标识IP包的目的地址或目的网络。

•网络掩码(Mask):

与目的地址一起来标识目的主机或路由器所在的网段的地址。

将目的地址和网络掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。

例如:

目的地址为8.0.0.0,掩码为255.0.0.0的主机或路由器所在网段的地址为8.0.0.0。

掩码由若干个连续“1”构成,既可以用点分十进制表示,也可以用掩码中连续“1”的个数来表示。

•输出接口(Interface):

说明IP包将从该路由器哪个接口转发。

•下一跳IP地址(Nexthop):

说明IP包所经由的下一个路由器的接口地址。

7.2.3

路由表中路由的来源

在路由表中有一个Protocol字段:

指明了路由的来源,即路由是如何生成的。

路由的来源主要有3种:

•链路层协议发现的路由(Direct)

开销小,配置简单,无需人工维护,只能发现本接口所属网段拓扑的路由。

•手工配置的静态路由(Static)

静态路由是一种特殊的路由,它由管理员手工配置而成。

通过静态路由的配置可建立一个互通的网络,但这种配置问题在于:

当一个网络故障发生后,静态路由不会自动修正,必须有管理员的介入。

静态路由无开销,配置简单,适合简单拓扑结构的网络。

•动态路由协议发现的路由(RIP、OSPF……)

当网络拓扑结构十分复杂时,手工配置静态路由工作量大而且容易出现错误,这时就可用动态路由协议,让其自动发现和修改路由,无需人工维护,但动态路由协议开销大,配置复杂。

7.2.4

路由优先级

到相同的目的地,不同的路由协议(包括静态路由)可能会发现不同的路由,但并非这些路由都是最优的。

事实上,在某一时刻,到某一目的地的当前路由仅能由唯一的路由协议来决定。

这样,各路由协议(包括静态路由)都被赋予了一个优先级,这样,当存在多个路由信息源时,具有较高优先级(数值越小表明优先级越高)的路由协议发现的路由将成为最优路由,并被加入路由表中。

不同厂家的路由器对于各种路由协议优先级的规定各不相同。

华为3ComQuidway路由器的缺省优先级如下表所示。

其中:

0表示直接连接的路由,255表示任何来自不可信源端的路由。

路由协议或路由种类

相应路由的优先级

DIRECT

0

OSPF

10

STATIC

60

RIP

100

IBGP

130

OSPFASE

150

EBGP

170

UNKNOWN

255

除了直接路由(DIRECT)外,各动态路由协议的优先级都可根据用户需求,手工进行配置。

另外,每条静态路由的优先级都可以不相同。

7.2.5

路由权

路由权(Cost)表示到达这条路由所指的目的地址的代价,通常路由权值会受到线路延迟、带宽、线路占有率、线路可信度、跳数、最大传输单元等因素的影响,不同的动态路由协议会选择其中的一种或几种因素来计算权值(如RIP只用跳数来计算权值)。

该路由权值只在同一种路由协议内有比较意义,不同的路由协议之间的路由权值没有可比性,也不存在换算关系。

静态路由的权值为0。

7.3

静态路由及配置

7.3.1静态路由配置

在组网结构比较简单的网络中,只需配置静态路由就可以使路由器正常工作,仔细设置和使用静态路由可以改进网络的性能,并可为重要的应用保证带宽。

还有一种静态路由类型为称为接口静态路由,它用于表示那些直接连接到路由器接口上的目的网络。

接口静态路由优先级是0,这意味着它是直接连接网络的路由。

静态路由还有如下的属性:

•可达路由:

正常的路由都属于这种情况,即路由器将去往该目的地的IP报文送往下一跳,这是静态路由的一般用法。

•目的地不可达的路由:

当到某一目的地的静态路由具有“reject”属性时,任何去往该目的地的IP报文都将被丢弃,并且通过ICMP消息通知源主机目的地不可达。

•目的地为黑洞的路由:

当到某一目的地的静态路由具有“blackhole”属性时,任何去往该目的地的IP报文都将被丢弃。

同“reject”的区别是不向源主机发送任何消息。

其中各参数的解释如下:

(1)ip-address、mask、masklen:

目的IP地址和掩码

IP地址为点分十进制格式,掩码可以用点分十进制表示,也可用掩码长度(即掩码中‘1’的位数)表示。

(2)interface-typeinterface-name、nexthop-address:

发送接口或下一跳地址

在配置静态路由时,可指定发送接口interface-typeinterfacce-name,如Serial2/0;也可指定下一跳地址nexthop-address,如10.0.0.2。

到底是指定发送接口还是指定下一跳地址要视具体情况而定。

实际上,所有的路由项都可以指定下一跳地址。

IP在发送报文时,首先根据报文的目的地址寻找路由表中与之匹配的路由。

只有路由指定了下一跳地址,链路层才能通过下一跳IP地址找到对应的链路层地址,然后按照该地址将报文转发。

但是,是否可以指定发送接口,视具体情况而定:

•对于支持网络地址到链路层地址解析的接口(如以太网口支持ARP),当ip-address和mask(或masklen)指定了一个主机地址,而且该目的地址就在该接口的直接连接网络中,这时可以指定发送接口。

•对于点到点接口,指定发送接口即隐含指定了下一跳地址,这时认为与该接口相连的对端接口地址就是路由的下一跳地址。

如串口封装PPP协议,通过PPP协商获取对端的IP地址,这时可以不用指定下一跳地址,只需指定发送接口即可。

•对于NBMA接口(如封装X.25或帧中继的接口、拨号口等),支持点到多点,这时除了配置IP路由外,还需在链路层建立二次路由,即IP地址到链路层地址的映射(如dialerroute、x.25mapip或frmapip等)。

这种情况下配置静态路由就不能指定发送接口,而应配置下一跳IP地址。

(3)value:

优先级

对优先级preference的不同配置,可以灵活应用路由管理策略。

如在配置到达网络目的地的多条路由时,若指定相同优先级,可实现负载分担;若指定不同优先级,则可实现路由备份。

在同一命令中优先级可以多次输入,但只有最后一个有效。

(4)其它参数

属性reject和blackhole分别指明不可达路由和黑洞路由。

7.3.2

静态路由配置示例

在路由器QuidwayA上配置一条到目的网段129.1.0.0/16的静态路由,下一跳地址为路由器QuidwayB的S0/0接口的IP地址10.0.0.2。

如果链路的封装是PPP或HDLC,也可以指定本路由器的转发接口。

静态路由配置命令:

[QuidwayA]iproute-static129.1.0.0255.255.0.010.0.0.2

[QuidwayA]iproute-static129.1.0.01610.0.0.2或

[QuidwayA]iproute-static129.1.0.016Serial0/0或

7.3.3

缺省路由的配置

缺省路由是一种特殊的路由。

简单地说,缺省路由就是在没有找到匹配的路由表入口项时才使用的路由。

即只有当没有合适的路由时,缺省路由才被使用。

在路由表中,缺省路由以到网络0.0.0.0(掩码为0.0.0.0)的路由形式出现。

可通过命令displayiprouting-table的输出看它是否被设置。

如果报文的目的地址不能与路由表的任何入口项相匹配,那么该报文将选取缺省路由。

如果没有缺省路由且报文的目的地址不在路由表中,那么该报文被丢弃的同时,将返回源端一个ICMP报文指出该目的地址或网络不可达。

缺省路由在网络中是非常有用的。

在一个包含上百个路由器的典型网络中,选择动态路由协议可能耗费较大量的带宽资源,使用缺省路由意味着采用适当带宽的链路来替代高带宽的链路以满足大量用户通信的需求。

Internet上大约99.99%的路由器上都存在一条缺省路由!

缺省路由并不一定都是手工配置的静态路由,有时也可以由动态路由协议产生。

比如OSPF路由协议配置了Stub区域的路由器会动态产生一条缺省路由。

7.3.4

路由自环

“路由自环”是指某个报文从一台路由器发出,经过几次转发之后又回到初始的路由器。

原因是其中部分路由器的路由表出现错误。

产生的原因可能是配置静态路由有误,或者是动态路由协议错误地计算路由(虽然这种情况发生的几率很小)。

当产生路由自环时,报文会在几个路由器之间循环转发,直至TTL=0时才被丢弃,极大地浪费了网络资源,因此应该尽量避免“路由自环”的产生。

7.4

动态路由协议概述

7.4.1动态路由协议在协议栈中的位置

所有的动态路由协议在TCP/IP协议栈中都属于应用层的协议。

但是不同的路由协议使用的底层协议不同。

OSPF将协议报文直接封装在IP报文中,协议号89,由于IP协议本身是不可靠传输协议,所以OSPF传输的可靠性需要协议本身来保证。

BGP使用TCP作为传输协议,提高了协议的可靠性,TCP的端口号是179。

RIP使用UDP作为传输协议,端口号520。

7.4.2

路由协议的基本原理

7.4.3

自治系统(AS)

一个AS是一组共享相似的路由策略并在单一管理域中运行的路由器的集合。

一个AS可以是一些运行单个IGP(内部网关协议)协议的路由器集合,也可以是一些运行不同路由选择协议但都属于同一个组织机构的路由器集合。

不管是哪种情况,外部世界都将整个AS看作是一个实体。

每个自治系统都有一个唯一的自治系统编号,这个编号是由因特网授权的管理机构IANA分配的。

它的基本思想就是希望通过不同的编号来区分不同的自治系统。

这样,当网络管理员不希望自己的通信数据通过某个自治系统时,这种编号方式就十分有用了。

例如,该网络管理员的网络完全可以访问某个自治系统,但由于它可能是由竞争对手在管理,或是缺乏足够的安全机制,因此,可能要回避它。

通过采用路由协议和自治系统编号,路由器就可以确定彼此间的路径和路由信息的交换方法。

自治系统的编号范围是1到65535,其中1到64511是注册的因特网编号,64512到65535是专用网络编号。

7.4.4

路由协议的分类

按照工作区域,路由协议可以分为IGP和EGP:

•IGP(InteriorGatewayProtocols)内部网关协议

在同一个自治系统内交换路由信息,RIP、OSPF和IS-IS都属于IGP。

IGP的主要目的是发现和计算自治域内的路由信息。

•EGP(ExteriorGatewayProtocols)外部网关协议

用于连接不同的自治系统,在不同的自治系统之间交换路由信息,主要使用路由策略和路由过滤等控制路由信息在自治域间的传播,应用的一个实例是BGP。

按照路由的寻径算法和交换路由信息的方式,路由协议可以分为距离矢量协议(Distant-Vector)和链路状态协议。

距离矢量协议包括RIP和BGP,链路状态协议包括OSPF、IS-IS。

距离矢量路由协议基于贝尔曼-福特算法,使用D-V算法的路由器通常以一定的时间间隔向相邻的路由器发送他们完整的路由表。

接收到路由表的邻居路由器将收到的路由表和自己的路由表进行比较,新的路由或到已知网络但路由权值(Cost)更小的路由都被加入到路由表中。

相邻路由器然后再继续向外广播它自己的路由表(包括更新后的路由)。

距离矢量路由器关心的是到目的网段的距离(Cost)和矢量(方向,从哪个接口转发数据)。

在发送数据前,路由协议计算到目的网段的Cost;在收到邻居路由器通告的路由时,将学到的网段信息和收到此网段信息的接口关联起来,以后有数据要转发到这个网段就使用这个关联的接口。

距离矢量路由协议的优点:

配置简单,占用较少的内存和CPU处理时间。

缺点:

扩展性较差,比如RIP最大跳数不能超过16跳。

链路状态路由协议基于Dijkstra算法,有时被称为最短路径优先算法。

最短路径优先算法提供比RIP等D-V算法更大的扩展性和快速收敛性,但是它的算法耗费更多的路由器内存和处理能力。

D-V算法关心网络中链路或接口的状态(up或down、IP地址、掩码),每个路由器将自己已知的链路状态向该区域的其他路由器通告,这些通告称为链路状态通告(LSA:

LinkStateAdvertisement)。

通过这种方式区域内的每台路由器都建立了一个本区域的完整的链路状态数据库。

然后路由器根据收集到的链路状态信息来创建它自己的网络拓扑图,形成一个到各个目的网段的带权有向图。

链路状态算法使用增量更新的机制,只有当链路的状态发生了变化时才发送路由更新信息,这种方式节省了相邻路由器之间的链路带宽。

部分更新只包含改变了的链路状态信息,而不是整个的路由表。

7.4.5

路由协议之间的互操作

为了在同一个互联网中支持多种路由协议,必须在这些不同的路由协议之间共享路由信息。

例如从RIP学到的路由信息可能需要引入到OSPF协议中去。

这种在不同路由协议中间交换路由信息的过程被称为路由引入。

路由引入可以是单向的(例如将RIP引入OSPF),也可以是双向的(RIP和OSPF互相引入)。

执行路由引入的路由器一般位于不同自治系统或者不同路由域的边界。

由于各路由协议的算法不同,不同的协议可能会发现不同的路由,因此各路由协议之间存在如何共享各自发现结果的问题。

前面我们讲过,不同路由协议之间的花销不存在可比性,也不存在换算关系,所以在引入路由时必须重新设置引入路由的Cost值,或者使用系统默认的数值。

VRP支持将一种路由协议发现的路由引入(import-route)到另一种路由协议中,每种协议都有相应的路由引入机制。

路由协议的相互引入实现了不同路由信息的共享,但同时也带来了一些问题。

使用多种路由协议通常会导致网络管理复杂和额外开销增大。

当路由器将从一个自治系统学到的路由信息再发送回同一自治系统,就有可能会产生路由环路。

另外,由于各路由协议使用不同的度量值来决定最佳路由,所以利用引入的路由信息进行路径选择有可能会导致次最佳路由。

一般情况下,应尽量避免重叠使用路由协议(同一个区域内既使用RIP,又使用OSPF),使用不同路由协议的网络之间要有明确的边界;如果有一台以上的路由器担任路由引入点,应只在一个方向上进行路由引入,以避免路由环路和因收敛时间不一致导致的问题。

如果在一个路由域中只有一台边界路由器,可以使用双向引入。

7.4.6

衡量路由协议的一些性能指标

7.5

距离矢量路由协议概述

7.5.1距离矢量算法基本原理

距离矢量(Distance-Vector,简称D-V)算法(也称Bellman-Ford算法)周期性地将路由表信息的拷贝在路由器之间传送。

当网络拓扑变化时,也会将更新信息及时传送给路由器。

每一个路由器只能接收到网络中相邻路由器的路由表,就如图所示,路由器B接收到相邻路由器A的信息,通过增加一个距离矢量数(例如一个跳数)来增大距离矢量,然后将更新的路由表信息传送给相邻路由器C。

这种逐步过程发生在相邻路由器之间。

距离矢量算法的数学模型如下:

我们用D(i,j)来表示从实体i到j的最佳路由的Cost,i、j可以是系统中的任意一对实体,用d(i,j)来表示单个跳数的花费,也就是从i直接到j的花费,如果i与j不是直接相邻的,则d(i,j)为无穷大。

这样任意两个实体间的最佳Cost可以表示如下:

D(i,i)=0对所有的i

D(i,j)=min[d(i,k)+D(k,j)]i不等于j时

由于我们把非相邻两实体间的d(i,k)定义为无穷大,当表达式中k不是i的相邻主机或路由器时,D(i,j)永远不可能为最小,故我们也可以把k限定为与i相邻。

由此我们可以得出一个基于这个数学模型的计算Cost的简单算法:

实体i接收它的邻居们k发送给它的到目标主机j的距离评价D(k,j),并加上d(i,k),在这里d(i,k)是通过i,k之间网络所需的cost值,接下来i比较来自所需邻居的信息,并选择其中最小的。

可以证明,在拓扑结构不变的情况下该算法在有限时间内收敛于正确的D(i,j)。

距离矢量算法通过上述方法累加网络距离,并维护网络拓扑信息数据库。

使用这种算法,路由器并不能知道整个网络的确切拓扑结构。

某种程度上,距离矢量信息类似十字路口上指向目的地的路标,沿着路标的指向前进,在下一个十字路口,会再看到一个路标,但在这个路标处,距离目的地就近了一些。

只要路径中每下一个路标都能表示到目的地距离的缩短,则这个路径为最优的。

7.5.2

距离矢量协议路由发现

距离矢量协议直接传送各自的路由表信息。

网络中的路由器从自己的邻居路由器得到路由信息,并将这些路由信息连同自己的本地路由信息发送给其他邻居,这样一级级的传递下去以达到全网同步。

每个路由器都不了解整个网络拓扑,它们只知道与自己直接相连的网络情况,并根据从邻居得到的路由信息更新自己的路由表。

距离矢量协议无论是实现还是管理都比较简单,但是它的收敛速度慢,报文量大,占用较多网络开销,并且为避免路由环路需要做各种特殊处理。

7.5.3

距离矢量协议拓扑变化

距离矢量算法要求每个路由器将自己的路由表传送给相邻的路由器。

当路由器接收到更新的路由信息时,首先将更新的信息与原有的路由表中的信息相比较,遇到下述情况之一时,须修改本地路由表(假设RouterA收到RouterB的D-V报文)以反映最新的网络变化:

⑴RouterB的路由表中列出的某表项RouterA的路由表中没有,则RouterA的路由表中须增加相应表项,其目标网络为RouterB路由表中的目标网络,其路径开销为RouterB表项中的路径开销加1(假设以跳数计算路径开销),其下一跳为RouterB;

⑵RouterB的路由表中去往某目标网络的路径开销比RouterA的路由表中去往该目标网络的路径开销减1还小,这说明去往该目标网络若经过RouterB路径开销会更小,则RouterA修改本表项,将下一跳改为RouterB,路径开销为RouterB中的路径开销加1;

⑶RouterA的路由表中去往某目标网络的下一跳为RouterB,而RouterB的路由表中去往该目标网络的路径开销发生了变化,则RouterA中相应表项的路径开销须修改,以RouterB的更新后的路径开销加1取代原来的路径开销;

⑷RouterA的路由表中去往某目标网络的下一跳为RouterB,而RouterB的路由表中不再包含去往该目标网络的路径,则RouterA的路由表中相应路径应删除。

7.6

路由环路问题

7.6.1路由环路产生

由于网络故障可能会引起路径与实际网络拓扑结构不一致而导致网络不能快速收敛,这时,可能会发生路由环路现象。

图中用一个简单的网络结构来说明路由环路的产生。

如上图所示,如果网络11.4.0.0故障,就可能会在路由器之间产生路由环路,下面是产生路由环路的步骤:

●在网络11.4.0.0发生故障之前,所有的路由器都具有正确一致的路由表,网络是收敛的。

在本例中,路径开销用跳数来计算,所以,每条链路的开销是1。

路由器C与网络11.4.0.0直连,跳数为0。

路由器B经过路由器C到达网络11.4.0.0,跳数为1。

路由器A经过路由器B到达网络11.4.0.0,跳数为2。

●当网络11.4.0.0发生故障,路由器C最先收到故障信息,路由器C把网络11.4.0.0设为不可达,并等待更新周期到来通告这一路由变化给相邻路由器。

如果,路由器B的路由更新周期在路由器C之前到来,那么路由器C就会从路由器B那里学习到去往11.4.0.0的新路由(实际上,这一路由已经是错误路由了)。

这样路由器C的路由表中就记录了一条错误路由(经过路由器B,可去往网络11.4.0.0,跳数增加到2)。

●路由器C学习了一条错误信息后,它会把这样的路由信息再次通告给路由器B,根据通告原则,路由器B也会更新这样一条错误路由信息,认为可以通过路由器A去往网络11.4.0.0,跳数增加到3。

●这样,路由器B认为可以通过路由器C去往网络11.4.0.0,路由器C认为可以通过路由器B去往网络11.4.0.0,就形成了环路。

7.6.2

环路补救方案

如上所述,发生路由环路时,路由器去往网络11.4.0.0的跳数会不断的增大,网络无法收敛。

为解决这个问题,我们给跳数定义一个最大值,在RIP路由协议中,允许跳数最大值为16。

在图中,当跳数到达最大值时,网络11.4.0.0被认为是不可达的。

路由器会在路由表中显示网络不可达信息,并不再更新到达网络11.4.0.0的路由。

通过定义最大值,距离矢量路由协议可以解决发生环路时路由权值无限增大的问题,同时也校正了错误的路由信息。

但是,在最大权值到达之前,路由环路还是会存在。

也就是说,以上解决方案只是补救措施,不能避免环路产生,只能减轻路由环路产生的危害。

路由协议的设计者们又提供了诸如水平分割、触发更新等多种避免环路产生几率的方案。

7.6.3

环路避免方案

水平分割是在距离矢量路由协议中最常用的避免环路发生的解决方案之一。

分析产生路由环路的原因,其中一条就是因为路由器将从某个邻居学到的路由信息又告诉了这个邻居。

水平分割的思想就是在路由信息传送过程中,不再把路由信息发送给接收此路由信息的接口上。

如上图所示:

•路由器C告诉路由器B去往网络11.4.0.0的路由,路由器B会把此路由信息传递给路由器A。

同时,也会再传回给路由器C。

网络11.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1