6. 路由选择协议
6.1 路由选择协议概述
-
静态路由选择
⋄ \diamond ⋄ 由人工配置的网络路由、默认路由、特定主机路由、黑洞路由等都属于静态路由。
⋄ \diamond ⋄ 这种人工配置方式简单、开销小,但不能及时适应网络状态(流量、拓扑等)的变化。
⋄ \diamond ⋄ 一般只在小规模网络中采用。 -
动态路由选择
⋄ \diamond ⋄ 路由器通过路由选择协议自动获取路由信息。
⋄ \diamond ⋄ 比较复杂、开销比较大,能较好地适应网络状态的变化。
⋄ \diamond ⋄ 适用于大规模网络。
■ 因特网所采用的路由选择协议的主要特点:
⋄
\diamond
⋄ 自适应: 动态路由选择,能较好地适应网络状态的变化;
⋄
\diamond
⋄ 分布式: 路由器之间交换路由信息;
⋄
\diamond
⋄ 分层次: 将整个因特网划分为许多较小的自治系统AS(Autonomous System)。
因特网采用分层次的路由选择协议,如下图所示。
■ 常见的路由选择协议
■ 路由器的基本结构
6.1.1
1. 以下说法正确的是( D )
A. AS之间使用的路由选择协议属于IGP
B. AS内部使用的路由选择协议属于EGP
C. OSPF协议属于EGP
D. RIP协议属于IGP
分析: AS之间使用的路由选择协议属于EGP; AS内部使用的路由选择协议属于IGP;OSPF协议属于IGP;RIP协议属于IGP。
2. 以下说法错误的是( D )
A. 路由表需要对网络拓扑变化的计算最优化
B. 转发表是从路由表得出的
C. 转发表的结构应当使查找过程最优化
D. 路由器中只有路由表而没有转发表
分析: 路由器对网络中的数据进行处理,其处理依赖于路由表和转发,它们的意义在于体现了通信网络中的“数据在设备中做什么”和“数据离开设备后到哪里去”。
6.2 路由信息协议RIP的基本工作原理
■ 路由信息协议RIP(Routing Information Protocol)是内部网关协议IGP中最先得到广泛使用的协议之一,其相关标准文档为RFC 1058。
■ RIP要求自治系统AS内的每一个路由器都要维护从它自己到AS内其他每一个网络的距离记录。这是一组距离,称为“距离向量D-V(Distance-Vector)”。
■ RIP使用跳数(Hop Count)作为度量(Metric)来衡量到达目的网络的距离。
⋄
\diamond
⋄ 路由器到直连网络的距离定义为1。
⋄
\diamond
⋄ 路由器到非直连网络的距离定义为所经过的路由器数加1。
⋄
\diamond
⋄ 允许一条路径最多只能包含15个路由器。“距离”等于16时相当于不可达。因此,RIP只适用于小型互联网。
■ RIP认为好的路由就是“距离短”的路由,也就是所通过路由器数量最少的路由。
■ 当到达同一目的网络有多条“距离相等”的路由时,可以进行等价负载均衡。
■ RIP包含以下三个要点:
⋄
\diamond
⋄ 和谁交换信息 仅和相邻路由器交换信息
⋄
\diamond
⋄ 交换什么信息 自己的路由表
⋄
\diamond
⋄ 何时交换信息 周期性交换(例如每30秒)
■ RIP的基本工作过程:
1. 路由器刚开始工作时,只知道自己到直连网络的距离为1。
2. 每个路由器相邻路由器周期性地交换并更新路由信息。
3. 若于次交换和更新后,每个路由器都知道到达本AS内各网络的最短距离和下一跳地址,称为收敛。
■RIP的路由条目更新规则:
⋄
\diamond
⋄ 发现了新的网络,添加;
⋄
\diamond
⋄ 到达目的网络,相同下一跳,最新消息,更新;
⋄
\diamond
⋄ 到达目的网络,不同下一跳,新路由优势,更新;
⋄
\diamond
⋄ 到达目的网络,不同下一跳,新路由劣势,不更新;
⋄
\diamond
⋄ 到达目的网络,不同下一跳,等价负载均衡。
■ RIP存在“坏消息传播得慢”的问题
■ “坏消息传播得慢”又称为路由环路或距离无穷计数问题,这是距离向量算法的一个固有问题。可以采取多种措施减少出现该问题的概率或减小该问题带来的危害。
⋄
\diamond
⋄ 限制最大路径距离为15 (16表示不可达);
⋄
\diamond
⋄ 当路由表发生变化时就立即发送更新报文(即“触发更新”),而不仅是周期性发送;
⋄
\diamond
⋄ 让路由器记录收到某特定路由信息的接口,而不让同一路由信息再通过此接口向反方向传送(即“水平分割”)。
6.2.1 课后练习
1. 在RIP中,到某个网络的距离值为16,其意义是( A )
A. 该网络不可达 B. 存在路由环路 C. 该网络为直连网络 D. 到达该网络要经过16次转发
分析: 在RIP中,限制最大路径距离为15 ,16表示不可达。
2. 在RIP中,假设路由器X和路由器K是两个相邻的路由器,X向K说:“我到目的网络Y的距离为N(假设N小于15)”,则收到此信息的K就知道:“若将到网络Y的下一个路由器选为X,则我到网络Y的距离为”( C )
A. N-1 B. N C. N+1 D. 1
分析: RIP协议规定,每经过一个路由器,则距离(跳数)加1。
3. 以下关于RIP的描述中,错误的是( C )
A. RIP是基于距离-向量路由选择算法的 B. RIP路由器仅给相邻路由器发送路由更新报文
C. RIP不会产生路由环路 D. RIP存在“坏消息传播得慢”的问题
分析: RIP会产生路由环路,存在“坏消息传播得慢”的问题。
6.3 开放最短路径优先OSPF的基本工作原理
■ 开放最短路径优先OSPF(Open Shortest Path First),是为克服RIP的缺点在1989年开发出来的。
⋄
\diamond
⋄ “开放”表明OSPF协议不是受某一家厂商控制,而是公开发表的。
⋄
\diamond
⋄ “最短路径优先”是因为使用了Dijkstra提出的最短路径算法 SPF。
■ OSPF是基于链路状态的,而不像RIP那样是基于距离向量的。
■ OSPF采用SPF算法计算路由,从算法上保证了不会产生路由环路。
■ OSPF不限制网络规模,更新效率高,收敛速度快。
■ 链路状态是指本路由器都和哪些路由器相邻,以及相应链路的“代价”(cost)。
⋄
\diamond
⋄ “代价”用来表示费用、距离、时延、带宽,等等。这些都由网络管理人员来决定。
■ OSPF相邻路由器之间通过交互问候(Hello)分组,建立和维护邻居关系。
⋄
\diamond
⋄ Hello分组封装在IP数据报中,发往组播地址224.0.0.5;
⋄
\diamond
⋄ 发送周期为10秒;
⋄
\diamond
⋄ 40秒未收到来自邻居路由器的Hello分组,则认为该邻居路由器不可达。
■ 使用OSPF的每个路由器都会产生链路状态通告LSA(Link State Advertisement)。LSA中包含以下内容:
⋄
\diamond
⋄ 直连网络的链路状态信息
⋄
\diamond
⋄ 邻居路由器的链路状态信息
■ LSA被封装在链路状态更新分组LSU中,采用洪泛法发送。
■ 使用OSPF的每个路由器都有一个链路状态数据库LSDB,用于存储LSA。
■ 通过各路由器洪泛发送封装有自己LSA的LSU分组,各路由器的LSDB最终将达到一致。
■ 使用OSPF的各路由器基于LSDB进行最短路径优先SPF计算,构建出各自到达其他各路由器的最短路径,即构建各自的路由表。
■ OSPF有以下五种分组类型
⋄
\diamond
⋄ 类型1,问候(Hello)分组
用来发现和维护邻居路由器的可达性。
⋄
\diamond
⋄ 类型2,数据库描述(Database Description)分组
向邻居路由器给出自己的链路状态数据库中的所有链路状态项目的摘要信息
⋄
\diamond
⋄ 类型3,链路状态请求(Link State Request)分组
向邻居路由器请求发送某些链路状态项目的详细信息。
⋄
\diamond
⋄ 类型4,链路状态更新(Link State Update)分组
路由器使用这种分组将其链路状态进行洪泛发送,即用洪泛法对全网更新链路状态。
⋄
\diamond
⋄ 类型5,链路状态确认(Link State Acknowledgment)分组
这是对链路状态更新分组的确认分组。
■ OSPF的基本工作过程
■ OSPF在多点接入网络中路由器邻居关系的建立
⋄
\diamond
⋄ 选举指定路由器DR(designated router)和备用的指定路由器BDR(backup designated router)
⋄
\diamond
⋄ 所有的非DR/BDR只与DR/BDR建立邻居关系
⋄
\diamond
⋄ 非DR/BDR之间通过DR/BDR交换信息
■ 为了使OSPF能够用于规模很大的网络,OSPF把一个自治系统再划分为若干个更小的范围,叫做区域(Area)。
6.3.1 课后练习
1. 下列关于OSPF和RIP协议的叙述中,错误的是( D )
A. 在进行路由信息交换时,OSPF协议中的路由器向本自治系统中的所有路由器发送信息,RIP协议中的路由器仅向自己相邻的路由器发送信息
B. 在进行路由信息交换时,OSPF协议中的路由器发送的信息只是链路状态数据库中的部分内容,RIP协议中的路由器发送的信息是整个路由表
C. OSPF协议的任何一个路由器都知道自己所在区域的拓扑结构,RIP协议中的路由器不知道全网的拓扑结构
D. OSPF协议和RIP协议都是基于距离-向量路由选择算法的
分析: OSPF是基于链路状态的,而不像RIP那样是基于距离向量的。
2. 在OSPF协议中,用来建立和维护邻居关系的分组是( A )
A. Hello B. LSU C. LSR D. LSA
分析: 在OSPF协议中,用来建立和维护邻居关系的分组是 Hello。
3. 以下关于OSPF协议的描述中,最准确的是( A )
A. OSPF协议是基于链路状态路由选择算法的
B. OSPF协议是用于自治系统之间的外部网关协议
C. OSPF协议不能根据网络通信情况动态地改变路由
D. OSPF协议只适用于小型网络
分析: 以下关于OSPF协议的描述中,最准确的是OSPF协议是基于链路状态路由选择算法。
4. 以下关于OSPF协议特征的描述中,错误的是( D )
A. OSPF协议将一个自治系统划分成若干域,有一种特殊的域称为主干区域
B. 域之间通过区域边界路由器互联
C. 在自治系统中有4类路由器:区域内路由器、主干路由器、区域边界路由器和自治系统边界路由器
D. 主干路由器不能兼作区域边界路由器
分析: 在OSPF协议中, 主干路由器可以兼作区域边界路由器。
6.4 边界网关协议BGP的基本工作原理
■ 因特网采用分层次的路由选择协议
■ 内部网关协议IGP(例如路由信息协议RIP或开放最短路径优先OSPF)
⋄
\diamond
⋄ 设法使分组在一个自治系统内尽可能有效地从源网络传输到目的网络。
⋄
\diamond
⋄ 无需考虑自治系统外部其他方面的策略。
■ 外部网关协议EGP(例如边界网关协议BGP)
⋄
\diamond
⋄ 在不同自治系统内,度量路由的“代价”(距离,带宽,费用等)可能不同。因此,对于自治系统之间的路由选择,使用“代价”作为度量来寻找最佳路由是不行的。
⋄
\diamond
⋄ 自治系统之间的路由选择必须考虑相关策略(政治,经济,安全等)。
⋄
\diamond
⋄ BGP只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。
■ 在配置BGP时,每个自治系统的管理员要选择至少一个路由器作为该自治系统的“BGP发言人“。
■ 不同自治系统的BGP发言人要交换路由信息,首先必须建立TCP连接,端口号为179。
⋄
\diamond
⋄ 在此TCP连接上交换BGP报文以建立BGP会话
⋄
\diamond
⋄ 利用BGP会话交换路由信息(例如,增加新的路由,或撤销过时的路由,以及报告出错的情况等)
⋄
\diamond
⋄ 使用TCP连接交换路由信息的两个BGP发言人,彼此称为对方的邻站(neighbor)或对等站(peer)
■ BGP发言人除了运行BGP外,还必须运行自己所在自治系统所使用的内部网关协议IGP,例如OSPF或RIP。
■ BGP发言人交换网络可达性的信息(要到达某个网络所要经过的一系列自治系统)。
■ 当BGP发言人互相交换了网络可达性的信息后,各BGP发言人就根据所采用的策略从收到的路由信息中找出到达各自治系统的较好的路由。也就是构造出树形结构、不存在回路的自治系统连通图。
■ BGP适用于多级结构的因特网
■ BGP-4有以下四种报文:
⋄
\diamond
⋄ OPEN(打开)报文: 用来与相邻的另一个BGP发言人建立关系,使通信初始化。
⋄
\diamond
⋄ UPDATE(更新)报文: 用来通告某一路由的信息,以及列出要撤销的多条路由。
⋄
\diamond
⋄ KEEPALIVE(保活)报文: 用来周期性地证实邻站的连通性。
⋄
\diamond
⋄ NOTIFICATION(通知)报文: 用来发送检测到的差错。
例: 直接封装RIP、OSPF、BGP报文的协议分别是( D )
A.TCP、UDP、IP B.TCP、IP、UDP C. UDP、TCP、IP D.UDP、IP、TCP
分析:
6.4.1 课后练习
1. BGP交换的网络可达性信息是( A )
A. 到达某个网络所经过的路径 B. 到达某个网络的下一跳路由器
C. 到达某个网络的链路状态摘要信息 D. 到达某个网络的最短距离及下一跳路由器
分析: BGP交换的网络可达性信息提供了足够的信息来检测路由回路并根据性能优先和策略约束对路由进行决策,是到达某个网络所经过的路径。
2. RIP、OSPF、BGP的路由选择算法分别基于( D )
A. 路径向量 链路状态 距离向量 B. 距离向量 路径向量 链路状态
C. 路径向量 距离向量 链路状态 D. 距离向量 链路状态 路径向量
分析: RIP、OSPF、BGP的路由选择算法分别基于距离向量、链路状态、路径向量。
3. 在BGP协议中,用来周期性证实临站连通性的报文是( C )
A. OPEN B. UPDATE C. KEEPALIVE D. NOTIFICATION
分析: 在BGP协议中,用来周期性证实临站连通性的报文是KEEPALIVE。