博客年龄:18年2个月
访问:?
文章:112篇

个人描述

职业:Java软件工程师
         Java高级讲师
msn:szw727@msn.com
个人域名:www.coresun.cn

路由及路由协议介绍

分类:软考 | 标签: 路由   Router   RIP   OSPF   EIGRP  
2010-04-22 12:14 阅读(?)评论(0)
    路由器并不关心要传递数据的具体IP地址,它只是关心数据的目标网络地址。数据包通过路由器的接力传递,最终到达目的地。路由器的核心是路由表,它位于RAM中,包含了所有的最佳到达目标网络的映射,那路由器时怎样知道这些目标网络的呢?通常路由器通过以下三种方式:
1、直连的接口
2、静态路由
3、路由协议
   
RIP是IGP中最先得到广泛应用的协议,它是以metric(跳数)作为距离。RIP的前身是Xerox协议GWINFO,后来的版本封装在1982年伯克利标准发布的BSD中。RIP发展成了因特网路由协议,有些协议则是RIP的变种,如: AppleTalk路由表维护协议(RTMP)和Banyan VINES路由表协议(RIP)。RIP最新的增强版是RIP2规范,RIP在RFC 1058和1723两个文档中定义,RFC 1058(1988)描述了RIP的第一版实现,RFC 1723(1994)是它的更新,允许RIP分组携带更多的信息和安全特性。
   
    RIP是一种分布式的基于距离向量的路由选择协议,采用V-D算法(Vector-Distance,距离向量算法),要求网络中的每一个路由器都要维护从它自己到其它每一个目的网络的距离记录。
1、距离的定义
    从一个路由器到直接连接的网络的距离定义为1(有些早期资料中可能定义为0),从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加1。RIP协议中的距离也可以称为跳数,所以也可以说成每经过一个路由器,跳数就加1。RIP协议认为一个好的路由就是它通过的路由器的数目少,即距离短。RIP协议允许一条路由最多只能包含15个路由器,也就是跳数的值为15,跳数的最大值为16表示网络于不可达,所以RIP协议只适用于小型网络。RIP协议不能在两个网络之间同时使用多条路由,因为RIP协议只会选择一个具有最少路由器的路由(
即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。

2、路由表的建立
    路由器在刚刚开始工作时,只知道直接连接的网络,此距离定义为1,以后每一个路由器也之和数目非常有限的相邻路由器交换并更新路由信息,经过若干次更新后,所有的路由器最终都会指定到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址,但每个路由器的路由表是不同的,因为每个路由器都是从本身开始计算距离的。RIP协议的收敛(convergence)过程较快,
收敛过程--在自治系统中所有节点都得到正确的路由选择信息的过程。

3、距离向量算法
    RIP协议通过距离向量算法发送-接收路由信息,过程如下:
(a)收到相邻路由器(比如地址为X)的一个RIP报文,先修改此RIP报文中的所有项目, 将下一跳字段中的地址都改为X,并将所有的距离字段的值加1。
(b)对修改后的RIP报文中的每一个项目,进行以下检查:若项目中的目的网络不在路  由表中,则将该项目加到路由表中;若下一跳字段给出的路由器地址是同样的,则   将收到的项目替换原路由表中的项目;若收到的项目中的距离小于路由表中的距    离,则进行更新;若距离更大,则什么也不做。
(c)RIP协议每隔30秒定期向外发送一次更新报文。如果路由器经过180秒没有收到来自某一路由器的路由更新报文,则将所有来此此路由器的路由信息标志为不可达(距离标记为16),若在其后240秒内仍未收到更新报文,就将这些路由从路由表中删除。

4、RIP协议的几个个要点
(a)周期性(RIP协议默认为每30秒)地和相邻路由器交换信息
(b)自治系统中的每个路由器都发布路由交换信息(
当前路由器所知道的全部信息)
(c)交换路由信息采用的是广播的方式
(d)路由交换信息报文不要求应答
(e)RIP协议使用运输层的用户数据报UDP进行传送,端口520

5、RIP协议的优缺点
(a)
RIP协议的最大优点就是实现简单,开销较小
(b)当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器,容易产生路由环路问题。
(c)RIP协议限制了网络的规模,它使用的最大距离为15(16表示不可达)
(d)路由器之间交换的路由信息是路由器中的完整的路由表,因而随着网络规模的扩大,开销也就增加

6、解决RIP协议的路由环路问题
1、水平分割(Split Horizon):从一个接口学到的路由不能再从这个接口发出去(毒性逆转除外)
2、毒性逆转(Poison Reverse):当一条路径信息变为无效之后,路由器并不立即将它从路由表中删除而是用16,即用不可达的度量值将它广播出去,缺点增加了路由表的大小
3、触发更新(Trigger Update):得知网络拓扑结构发生改变,不等待发送周期,立刻通告更新后全部的路由表
4、抑制计时(Holddown timer):一条路由信息无效之后,一段时间内这条路由都处于抑制状态,即在一定时间内不再接收关于同一目的地址的路由更新。如果,路由器从一个网段上得知一条路径失效,然后,立即在另一个网段上得知这个路由有效。这个有效的信息往往是不正确的,抑制计时避免了这个问题,而且,当一条链路频繁起停时,抑制计时减少了路由的浮动,增加了网络的稳定性。

二、OSPF
    OSPF(Open Shorttest Path First)
开发表明OSPF协议不是首某一家厂商控制,是公开的
最短路径优先是因为使用了Dijkstra提出的最短路径算法SPF
OSPF只是一个协议的名字,它并不表示其它的路由选择协议不是“最短路径优先”
是分布式的链路状态协议

三个要点
向本自治系统中所有路由器发送信息,使用的方法是洪泛法
洪泛法(flooding):扩散法路由器通过所有的输出端口向所有相邻路由器发送信息,而每一个相邻路由器又再将此信息发往其所有的相邻路由器
发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息
链路状态就是说本路由器都和哪些路由器相邻,以及该链路的度量、费用 距离 时延 带宽等
只有当链路状态发生变化时,路由器才能用洪泛法向所有路由器发送此信息

链路状态数据库
由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库
这个数据库就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步),每一个路由器由此构造路由表
RIP协议路由器只知道下一跳路由器及距离,不知道全网拓扑结构
OSPF的链路状态数据库能较快地进行更新,使各个路由器能及时更新路由表。OSPF的更新过程收敛快是其重要优点

OSPF的区域(area)
为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若个干更小的范围,叫做区域。
每一个区域都有一个32bit的区域标识符(用点分十进制表示)
区域不能太大,在一个区域内的路由器最后不超过200个

区域边界路由器:连接区域系统和主干区域系统的路由器
主干路由器:主干区域中的路由器,但同时主干路由器也可能是区域边界路由器
自治系统边界路由器:连接自治系统和自治系统的路由器

划分区域
划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个自治系统,减少了整个网络上的通信量
在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其它区域的网络拓扑的情况
OSPF使用层次结构的区域划分在上层的区域叫做主干区域(backbone area)。主干区域的标识符定为0.0.0.0。主干区域的作用是用来联通其它在下层的区域

OSPF直接使用IP数据报传送
OSPF不用UDP而是直接用IP数据报传送,位置在网络层
OSPF构成的数据报很短,这样做可以减少路由信息的通信量
数据报很短的另一个好处是可以不必将长的数据报分片传送。分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传

OSPF的其它特点
OSPF对不同的链路可根据IP分组的不同服务类型TOS而设置不同的代价。因此,OSPF对于不同类型的业务可计算出不同的路由
如果到同一个目的网络有多条相同代价的路径,那么可以将通信分配给这几条路径,这叫做多路径的负载平衡
所有OSPF路由器之间交换的分组都具有鉴别的功能
支持可变长度的子网划分和无分类编制CIDR
每一个链路状态都带一个32bit的序号,序号越大状态就越新

OSPF分组
24字节首部+类型1至类型5的OSPF分组
首部
0-8比特:版本    8-16比特:类型    16-31比特:分组长度
0-31比特:路由器标识符
0-31比特:区域标识符
0-15比特:校验和    16-31比特:鉴别类型
0-31比特:鉴别
0-31比特:鉴别

版本:现在使用的版本2
类型:5中不同类型数据中某一种
分组长度:
路由器标识符:路由器的IP地址
区域标识符:路由器所在区域的标识符
OSPF的五种分组
类型1:问候分组(Hello):每两个相邻路由器每10秒交换一次,若40秒没收到则认为该相邻路由器不可达
类型2:数据库描述分组(Database Description):
类型3:链路状态请求分组(Link State Request)
类型4:链路状态更新分组(Link State Update):用洪泛法对全网更新链路状态
类型5:链路状态确认分组(Link State Acknowledgment)

OSPF的其它特点:
OSPF还规定每隔一段时间,如30分,要刷新一次数据库中的链路状态
由于一个路由器的链路状态只涉及与相邻路由器的联通状态,因此与整个互联网的规模并无直接联系。因此当互联网规模很大时,OSPF协议要比距离向量协议RIP好得多
OSPF没有“坏消息传得慢”的问题,据统计,其响应网络变化的时间小于100ms

指定路由器
若n个路由器连接在一个以太网上,则每个路由器要向其它n-1个路由器发生链路状态,共有n(n-1)个链路状态信息要传送
多点接入的局域网采用了指定的路由器方法,使广播的信息量大大减少
指定路由器(designed router)代表该局域网上所有的链路向连接到该网络上的各路由器发送状态信息

OSPF支持的三种网络的连接
1、两个路由器之间的点对点连接
2、具有广播功能的局域网
3、无广播功能的广域网

三、BGP
    外部网关协议BGP
BGP是不同自治系统的路由器之间交换路由信息的协议
BGP的较新版本是1995年发表的BGP-4(BGP的第四个版本)
可以将BGP-4简写为BGP

不同自治系统间不使用内部网关协议原因
因特网规模太大,使得自治系统之间路由选择非常困难
对于自治系统之间的路由选择,要寻找最佳路由是很不现实的。自治系统之间不能交换代价信息,只能交换可达性信息
自治系统之间的路由现在必须考虑有关策略
因此边界网关协议BGP只能是力求寻找一条能够到达的目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由

BGP发言人
每一个自治系统的管理员要选择至少一个路由器作为该自治系统的BGP发言人(speaker)
一般说来,两个BGP发言人都是通过一个共享网络连接在一起的,而BGP发言人往往就是BGP边界路由器,但也可以不是BGP边界路由器

BGP交换路由信息
一个BGP发言人与其它自治系统中的BGP发言人要交换路由信息,就要先建立TCP连接,然后在此连接上交换BGP报文以建立BGP会话,利用BGP会话交换路由信息
使用TCP连接能提供可靠的服务,也简化了路由选择协议
使用TCP连接交换路由信息的两个BGP发言人,彼此成为对方的临站或对等站。

BGP协议的特点
BGP协议交换路由信息的节点数量是自治系统的数量级,这比这些自治系统中的网络数少很多
每一个自治系统中的BGP发言人(或边界路由器)的数目是很少的,这样就使得自治系统之间的路由选择不致过分复杂
BGP支持CIDR,因此BGP的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列
BGP刚刚运行时,BGP的邻站交换整个的BGP路由表但以后只需要在发生变化时更新有变化的部分这样做对节省网络带宽和减少路由器的处理开销方面都有好处

BGP-4使用的四种报文
打开报文:用来与相邻的另一个BGP发言人建立关系
更新报文:用来发送某一路由的信息,以及列出要撤销的多条路由
保活报文:用来确认打开报文和周期性地证实邻站关系,每隔30秒发送保活报文
通知报文:用来发送检测到的差错

试题(2007上半年网络工程师试题23)
    BGP协议的作用是___(23)
___
A. 用于自治系统之间的路由器间交换路由信息
B. 用于自治系统内部的路由器间交换路由信息 
C. 用于主干网中路由器之间交换路由信息
D. 用于园区网中路由器之间交换路由信息
答案:A

试题(2007上半年网络工程师试题24)
    关于RIP,以下选项中错误的是___(24)___。
A. RIP使用距离矢量算法计算最佳路由
B. RIP规定的最大跳数为16
C. RIP默认的路由更新周期为30秒
D. RIP是一种内部网关协议
答案:B

试题
(2007下半年网络工程师试题22)
    开放最短路径优先协议(OSPF)采用 ___(22)___ 算法计算最佳路由。
A. Dynamic-Search    B. Bellman-Ford     C. Dijkstra    D. Spanning-Tree
答案:C

试题
(2007下半年网络工程师试题23)
    关于OSPF协议,下列说法错误的是 ___(23)___ 。
A. OSPF的每个区域(Area)运行路由选择算法的一个实例
B. OSPF路由器向各个活动端口组播Hello分组来发现邻居路由器
C. Hello协议还用来选择指定路由器,每个区域选出一个指定路由器
D. OSPF协议默认的路由更新周期为30秒
答案:D

试题(2007下半年网络工程师试题24)
    在RIP协议中,可以采用水平分割法(Split Horizon)解决路由环路问题,下面的说法中正确的是 ___(24)___ 。
A. 把网络分割成不同的区域以减少路由循环
B. 不要把从一个邻居学习到的路由再发送回该邻居
C. 设置邻居之间的路由度量为无限大
D. 路由器必须把整个路由表发送给自己的邻居
答案:B

试题(2007下半年网络工程师试题25)
    关于链路状态协议与距离矢量协议的区别,以下说法中错误的是 ___(25)___ 。
A. 链路状态协议周期性地发布路由信息,而距离矢量协议在网络拓扑发生变化时发布路由信息
B. 链路状态协议由网络内部指定的路由器发布路由信息,而距离矢量协议的所有路由器都发布路由信息
C. 链路状态协议采用组播方式发布路由信息,而距离矢量协议以广播方式发布路由信息
D. 链路状态协议发布的组播报文要求应答,这种通信方式比不要求应答的广播通信可靠
答案:A

试题
(2007下半年网络工程师试题26)
    关于自治系统(Autonomous System,AS),以下说法错误的是 ___(26)___ 。
A. AS是由某一管理部门统一控制的一组网络
B. AS的标识是唯一的16位编号
C. 在AS内部采用相同的路由技术,实现统一的路由策略
D. 如果一个网络要从Internet获取路由信息,可以使用自定义的AS编号
答案:D

试题
(2008上半年网络工程师试题26)
下面有关BGP4协议的描述中,不正确的是(26)
A. BGP4是自治系统之间的路由协议
B. BGP4不支持CIDR技术
C. BGP4把最佳通过加入路由表通告邻居路由器
D. BGP4封装在TCP段中传送
答案:B
  最后修改于 2010-04-22 12:25    阅读(?)评论(0)
 
表  情:
加载中...
 

请各位遵纪守法并注意语言文明