IP路由详解.docx
《IP路由详解.docx》由会员分享,可在线阅读,更多相关《IP路由详解.docx(41页珍藏版)》请在冰豆网上搜索。
IP路由详解
IP路由详解
©周晓彬
目录
RIP2
路由聚合3
路由防环3
OSPF3
ospf特性如下:
3
OSPF有五种类型的协议报文:
3
LSA类型4
hello报文在不同链路上的发送:
4
区域划分5
总结:
6
各区域特性:
7
ospf中路由器的分类7
聚合路由7
路由类型:
7
ospf支持的网络类型:
8
NBMA网络原则8
NBMA和P2MP的区别:
8
邻居和邻接区别9
ospf邻居状态9
缺省路由的发布9
IS-IS10
BGP12
BGP协议具有如下特点:
12
前缀列表-----默认拒绝12
地址前缀列表的应用13
RIP
RIP是一种更较为简单的内部网关协议IGP,用于规模小的网络中,是一种距离矢量算法的协议,通过UDP报文进行路由信息交换,端口号520。
路由器与它直连网络的跳数是0,通过一个路由器可达的网络的跳数为1,R1----R2----R3,R1去往R3的路由,在R2的出口+1。
RIP度量取0-15。
RIP防止路由环路,RIP支持水平分割和毒性反转功能。
RIP-1,只支持以广播方式发布协议报文
RIP-2,支持外部路由标记,报文中携带掩码信息,支持路由聚合和CIDR;支持使用组播更新报文224.0.0.9,支持验证,MD5和明文。
RIPNG支持IPV6,利用UDP521端口接收和发送报文,组播地址:
FF02:
:
9,前缀长度128比特;源地址使用前缀FE80:
:
/10的链路本地地址作为源地址发送RIPNG路由信息更新报文。
RIP-1发送和接收V1广播报文,
RIP-2默认组播,配置成广播后,发送V2广播报文,接收V1和V2的广播报文,-----启用rip-v2后,路由聚合自动开启
没有配置版本,发送V1广播报文,接收V1和V2的广播报文。
RIP报文:
信息发布由update定时器控制,默认每30S发送一次。
每一条路由表项对应两个定时器:
超时定时器和垃圾收集定时器。
当学到一条路由并安装到路由表中时,超时定时器启动。
如果在默认180秒后没有收到邻居发来的更新报文,则把该路由的度量值置为16;并启动垃圾收集定时器,如果在默认120秒内仍然没有收到更新报文,定时器超时后在路由中删除该表项。
路由器启动RIP后,便会向相邻的路由器发送请求报文(requestmessage)。
1---如果配置的为RIP-2组播,则请求报文发往组播地址224.0.0.9;如果配置为RIP-1,路由则需要按照RIP出策略发布。
路由需要与接口上配置的掩码进行比较后才能发布,具体的路由出策略是:
–当要发布的路由地址和接口的ip地址在同一自然网段内,并且掩码位相同,则按照此掩码位发送;若掩码位不同,则按照自然掩码发送;
–如果该路由与发送接口ip地址不在同一自然网段,则按照自然掩码聚合后发布。
2---相邻的路由器收到请求报文后,响应该请求,回送包含本报文(responsemessage),并进行路由计算;如果配置为RIP-1,需要按照接口的入策略对路由进行过滤:
-接收的路由同样需要与接口上配置的掩码进行比较。
如果该路由与接收接口的ip地址属于同一自然网段,则按接口的掩码位接收该路由;
-如果该路由与接收接口的ip地址不属于同一自然网段,则按照自然网段接收。
如果本的路由表中不存在相同网段的直连子网路由,则接收该路由。
路由器收到邻居路由器响应报文后,修改本地路由表。
可以见VRP5.6ip路由参数,47页
路由聚合
----使能路由聚合时需注意接口上不能使能水平分割
路由防环
是一种基于D-V算法的路由协议,由于它向邻居通告的是自己的路由表,所以存在
路由循环的可能性。
通过以下机制来避免路由环路的产生:
计数到无穷():
将开销值等于16时定义为不可达(infinity),在路由环路发生时,当某条路由的开销值计算到16时,该路由被认为是不可达路由。
水平分割():
从某个接口学到的路由,不会从该接口再发回给邻居路由器。
这样不但减少了带宽消耗,还可以防止路由循环。
默认是开启的。
毒性反转():
从某个接口学到路由后,将该路由的开销设置为(不可达),并从原接口发回邻居路由器。
利用这种方式,可以清除对方路由表
中的无用信息。
rippoison-reverse
OSPF是基于链路状态的内部网关协议,用IP报文直接封装协议报文,协议号为89。
ospf分为5种报文:
hello报文、dd报文、lsr报文、lsu报文和lsack报文。
OSPF中对路由信息的描述都是封装在lsa中发布出去的。
ospf特性如下:
------适应范围广:
支持大规模网络,最多可支持几百台路由器。
------支持掩码:
由于OSPF报文中携带掩码信息,所以OSPF协议不受自然掩码的限制,对VLSM提供很好的支持。
------快速收敛:
在网络的拓扑结构发生变化后立即发送更新报文,使这一变化在自治系统
------无自环:
由于OSPF根据收集到的链路状态用最短路径树算法计算路由,从算法本不会生成自环路由。
------区域划分:
允许自治系统的网络被划分成区域来管理,区域间传送的路由信息被进一抽象,从而减少了占用的网络带宽。
------等价路由:
支持到同一目的地址的多条等价路由。
------路由分级:
使用4类不同的路由,按优先顺序来说分别是:
区域内路由、区域间路由、第一类外部路由、第二类外部路由
------支持验证:
支持基于区域和接口的报文验证,以保证报文交互的安全性。
------组播发送:
在某些类型的链路上以组播地址发送协议报文,减少对其他设备的干扰。
OSPF有五种类型的协议报文:
hello报文:
周期性发送,用来发现和维持ospf邻居关系。
______以太网和NBMA需要选举DR______
DD报文(databasedescriptionpacket):
描述了本地lsdb的摘要信息,用于两台路由器进行数据库同步。
lsr报文(linkstaterequestpacket):
向对方请求所需的lsa。
只有在双方成功开始交换DD报文后才会向对方发出LSR报文。
lsu报文(linkstateupdatepacket):
向对方发送其所需要的lsa或者泛洪自己更新的lsa。
lsack报文(linkstateacknowledgmentpacket):
用来对收到的lsa进行确认。
LSA类型
OSPF中对路由信息的描述都是封装在lsa中发布出去的,常用的lsa有以下几种类型:
RouterLSA(type1):
每个路由器都会产生,描述了路由器的链路状态和花费,在所属的区域内传播。
NetworkLSA(type2):
由广播网或者NBMA网络中的DR产生,描述本网段的链路状态,在所属的区域内传播。
NetworkSummaryLSA(type3):
由ABR产生,描述区域内某个网段的路由,并通告给其他相关区域。
ASBRSummaryLSA(type4):
由ABR产生,描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。
AS-External-LSA(type5):
由ASBR产生,描述到AS外部的路由,通告到所有的区域(除了Stub区域和NSSA区域)。
NSSALSA(type7):
由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。
hello报文在不同链路上的发送:
在广播链路上,报文hellointerval发送往组播地址;
在虚连接链路上,hello报文以单播形式每hellointerval发送到对端;
在P2P链路上,hello报文每hellointerval发送往组播地址;
在P2MP链路上,hello报文以组播形式每hellointerval发送到每个单独的邻居由器,其他报文以单播;
在NBMA链路上,hello报文以单播发送。
其他具体规则如下:
–DR、BDR、有能力成为DR的路由器会每隔hellointerval发送hello报文给每个邻居;
–hello报文发送的间隔取决于邻居的状态:
只有当邻居的状态为down时,发送间隔为pollinterval;其它情况为hellointerval。
说明
缺省情况下,报文的时间间隔的值为10秒;
P2MP,NBMA类型接口发送hello报文的时间间隔的值为30秒,NBMA网络上发送pollinterval缺省间隔为120秒
I:
1比特当发送连续多个DD报文时,如果这是第1个DD报文,则置为1,否则置为0。
M(more):
1比特当发送连续多个DD报文时,如果这是最后一个DD报文,则置为0。
否则置为1,表示后面还有其他的DD报文。
--11--01--01--01--01--00--
LSR:
两台路由器互相交换过DD报文之后,知道对端的路由器有哪些LSA是本地lsdb
所缺少的和哪些lsa是已经失效的,这时需要发送lsr报文(linkstaterequest)向对方请求所需的lsa。
内容包括所需要的lsa的摘要。
lstype(lsa的类型号),lsastateID和advertistingrouter可以标示唯一的一个LSA,当2个LSA一样时,需要根据LSA中的LS序列号,校验以及老化时间来判断LSA的新旧。
LSU:
用来向对端路由器发送其所需要的LSA或者泛洪自己更新的LSA,内容是多条LSA(全部内容)的集合。
LSU报文(lsastateupdatepacket)在支持组播和广播的链路上是以组播形式将LSA泛洪出去。
为了实现FLOODING的可靠性传输,需要LSack报文对其进行确认。
LSACK:
用来对接收到的LSU报文进行确认。
内容是需要确认的LSA的HEADER(一个Lsack报文可对多个LSA进行确认)。
LSACK()报文根据不同的链路以单播或组播的形式发送
区域划分
网络规模大的环境下,LSDB比较大,占用大量的存储空间,使得SPF算法的复杂度增加,导致路由器负担很重;同时网络规模大后,拓扑结构发生变化的概率也变大,网络会经常处于“动荡”,造成网络中会有大量的OSPF协议报文在传递,降低了网络的宽带利用率,甚至会导致网络中所有路由器重新计算路由。
骨干区域
划分区域之后,并非所有的区域都是平等的关系。
其中有一个区域其区域号(area0),通常被称为骨干区域。
骨干区域负责区域之间的路由,非骨干区域之间的路由信息必须通过骨干区域来转发。
对此,OSPF有两个规定:
所有非骨干区域必须与骨干区域保持连通;骨干区域自身也必须保持连通。
虚连接
虚连接是指在两台ABR之间通过一个非骨干区域而建立的一条逻辑上的连接通道。
虚连接必须在两端同时配置方可生效。
为虚连接两端提供一条非骨干区域内部路由的区域称为传输区域。
虚连接指定的是对端的routerid!
虚连接的另外一个应用是提供冗余的备份链路,当骨干区域因链路故障将被分割时,通过虚连接仍然可以保证骨干区域在逻辑上的连通性。
STUB
Stub区域是一些特定的区域,Stub区域的ABR不传播它们接收到的自治系统外部路由,在这些区域中路由器的路由表规模以及路由信息传递的数量都会大大减少。
为保证到自治系统外的路由依旧可达,该区域的ABR将生成一条缺省路由,并发布给Stub区域中的其他非ABR路由器。
配置STUB
骨干区域不能配置成Stub区域;Stub区域内不能存在ASBR,即自治系统外部的路由不能在本区域内传播;虚连接不能穿过Stub区域。
stub区域存在1类,2类,3类具体LSA和3类的默认路由,ABR只传递区域之间的路由信息,AS外的不传递。
完全stub,ABR区域之间和AS外部的都不传递,只允许3类的默认路由;
example
--rip--R1---area0----R2---stub区域---R3-----,stub区域,R3上有R1接口的路由,却没有RIP的路由信息;如果是完全stub,那么R3上也没有R1接口的路由信息了。
配置stub,要在每台路由器上都配置(area1---stub--);完全stub(area1--stubno-summary)
NSSA
NSSA区域不允许存在5类LSA;Type7LSA由NSSA的ASBR产生,仅在本NSSA内传播。
当Type7LSA到达NSSA的ABR时,由ABR将Type7LSA转换成Type5LSA,
nssa区域比stub区域多了一点:
允许引入外部路由;也可下发3类默认路由;
完全nssa区域没有3类区域间的路由,其他和nssa区域一样,或者说比完全stub区域多了能引入外部路由这个特点
总结:
PermitType3defaultroutes.
DenyType5LSAsandType3:
Summary-LSAs.
丨
丨
↓
TotallyStubArea----------------------------丨
丨--StubArea---
丨丨
PermitType3:
---------------------------------丨
Summary-LSAs.丨----NSSAArea-------
丨丨
PermitType7LSAs---丨----TotallyNSSAArea
丨
丨
DenyType3:
Summary-LSAs.-------
各区域特性:
lTotallyStubarea:
允许ABR发布的Type3缺省路由,不允许自治系统外部路由和区域间的路由;
2Stubarea:
和TotallyStub区域不同在于该区域允许区域间路由;
3NSSAarea:
和Stub区域不同在于该区域允许自治系统外部路由的引入,由ASBR发布Type7LSA通告给本区域;
4TotallyNSSAarea:
和NSSAarea区域不同在于该区域不允许区域间路由。
ospf中路由器的分类
IR:
区域内路由器(InternalRouters),该类路由器的所有接口都属于同一个OSPF区域
BR:
骨干路由器(BackboneRouters),该类路由器至少有一个接口属于骨干区域。
因此,所有的ABR和位于Area0的内部路由器都是骨干路由器。
ABR:
区域边界路由器ABR(AreaBorderRouters),该类路由器可以同时属于两个以上的区域,但其中一个必须是骨干区域。
ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。
ASBR:
与其他AS交换路由信息的路由器称为ASBR。
ASBR并不一定位于AS的边界,它可能是区域内路由器,也可能是ABR。
只要一台OSPF路由器引入了外部路由的信息,它就成为ASBR。
聚合路由
ABR聚合:
向其它区域发送路由信息时,以网段为单位生成Type3LSA。
如果该区域中存在一些连续的网段,则可以使用abr-summary命令将这些连续的网段聚合成一个网段。
这样ABR只发送一条聚合后的LSA,这样可减少其它区域中LSDB的规模;
ASBR聚合:
配置引入路由聚合后,如果本地路由器是自治系统边界路由器ASBR,将对引入聚合地址范围内的Type5LSA进行聚合。
当配置了NSSA区域时,还要对引入的合地址范围内的Type7LSA进行聚合。
路由类型:
区域内路由:
优先级10
区域间路由:
优先级10
第一类外部路由:
优先级150到第一类外部路由的开销=本路由器到相应的ASBR的开销+ASBR到该路由目的地址的开销。
因为这类路由的可信程度高一些,所以计算出的外部路由的开销与自治系统内部的路由开销是相当的,并且和OSPF自身路由的开销具有可比性。
第二类外部路由:
优先级150到第二类外部路由的开销=ASBR到该路由目的地址的开销。
因为这类路由的可信度比较低,OSPF协议认为从ASBR到自治系统之外的开销远远大于在自治系统之内到达ASBR的开销,所以计算路由开销时将只考虑前者。
ospf支持的网络类型:
广播(Broadcast)类型:
当链路层协议是Ethernet、FDDI时,OSPF缺省认为网络类型是Broadcast。
在该类型的网络中,通常以组播形式(224.0.0.5:
含义是OSPF路由器的预留IP组播地址;224.0.0.6:
含义是OSPFDR和BDR的预留IP组播地址)发送Hello报文、LSU报文和LSAck报文;以单播形式发送DD报文和LSR报文。
NBMA(Non-BroadcastMulti-Access)类型:
当链路层协议是FR、ATM或X.25时,OSPF缺省认为网络类型是NBMA。
在该类型的网络中,以单播形式发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。
点到多点P2MP(point-to-multipoint)类型:
没有一种链路层协议会被缺省的认为是Point-to-Multipoint类型。
点到多点必须是由其他的网络类型强制更改的。
通常是将非全连通的NBMA改为点到多点的网络。
在该类型的网络中,以组播形式(224.0.0.5)发送Hello报文,以单播形式发送其他协议报文(DD报文、LSR报文、LSU报文、LSAck报文)。
点到点P2P(point-to-point)类型:
当链路层协议是PPP、HDLC和LAPB时,OSPF缺省认为网络类型是P2P。
在该类型的网络中,以组播形式(224.0.0.5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。
DR,BDR(接口priority>0)
只有在广播或NBMA类型接口时才会选举DR,在点到点或点到多点类型的接口上不需要选举DR。
DR是指某个网段的概念,是针对路由器的接口而言的。
某台路由器在一个接口上的角色可能是DR,但在另一个接口上有可能是BDR,或者是DROther。
若DR、BDR已经选择完毕,当一台新路由器加入后,即使它的DR优先级值最大,也不会立即成为该网段中的DR。
DR并不一定就是DR优先级最大的路由器;同理,BDR也并不一定就是DR优先级第二大的路由器。
NBMA网络原则
由于无法通过广播Hello报文的形式发现相邻路由器,必须手工为该接口指定相邻路由器的IP地址,以及该相邻路由器是否有选举权等。
NBMA网络中,即使接口的状态为Down,有能力成为DR的路由器依然会向该接口发送Hello报文,但时间间隔为PollInterval。
NBMA网络必须是全连通的,即网络中任意两台路由器之间都必须直接可达。
如果部分路由器之间没有直接可达的链路时,应将接口配置成P2MP方式。
如果路由器在NBMA网络中只有一个对端,也可将接口类型改为P2P方式。
NBMA和P2MP的区别:
NBMA是指那些全连通的、非广播、多点可达网络。
而点到多点的网络,则并不需要一定是全连通的。
NBMA上需要选举DR与BDR,而在点到多点网络中没有DR与BDR。
NBMA是一种缺省的网络类型,点到多点必须是由其它的网络强制更改的。
最常见的做法是将非全连通的NBMA改为点到多点的网络。
NBMA用单播发送报文,需要||手工配置邻居||。
点到多点网络支持组播方式发送报文。
邻居和邻接区别
在OSPF中,邻居(Neighbors)和邻接(Adjacencies)是两个不同的概念。
OSPF路由器启动后,便会通过OSPF接口向外发送Hello报文。
收到Hello报文的OSPF路由器会检查报文中所定义的一些参数,如果双方一致就会形成邻居关系。
形成邻居关系的双方不一定都能形成邻接关系,这要根据网络类型而定。
只有当双方成功交换DD报文,并交换LSA之后,才形成真正意义上的邻接关系。
在广播网络中,DR、BDR和网段内的每一台路由器都形成邻接关系,但DRother之间只形成邻居关系。
ospf邻居状态(详细分析见80页,vrp5.6)
OSPF共有8种状态机,分别是:
Down、Attempt、Init、2-way、Exstart、Exchange、Loading、Full。
lDown:
邻居会话的初始阶段,表明没有在邻居失效时间间隔内收到来自邻居路由器的Hello数据包;
2Attempt:
该状态仅发生在NBMA网络中,表明对端在DeadInterval超时后仍然没有回复Hello报文。
此时路由器依然每PollInterval向对端发送Hello报文;
3Init:
收到Hello报文后状态为Init;
42-way:
收到的Hello报文中包含有自己的RouterID,则状态为2-way;如果不形成邻接关系则邻居状态机就停留在此状态,否则进入Exstart状态;
5Exstart:
如果形成邻居关系,则从Init状态转到Exstart状态,开始协商主从关系,并确定DD的序列号;
6Exchange:
主从关系协商完毕后开始交换DD报文,此时状态为Exchange;(DD报文除了在P2P网络中,其余都是单播发送的)
7Loading:
DD报文交换完成即Exchangedone,此时状态为Loading;
8Full:
LSR重传列表为空,此时状态为Full。
缺省路由的发布
普通区域
缺省情况下,在普通OSPF区域内的OSPF路由器是不会产生缺省路由的,即使它有缺省路由。
当网络中缺省路由通过其他路由进程产生时,必须能够将缺省路由通告到整个OSPF域中。
这个时候要想产生缺省路由必须在ASBR上手动通过命令进行配置。
使用了该命令后会产生一个LinkStateID为0.0.0.0,网络掩码为0.0.0.0的ASELSA(Type5LSA),并且通告到整个OSPF域中。
Stub区域
Stub区域不允许自治系统外部的路由即Type5类LSAs在区域内传播,区域内的路由器通过ABR知道自治系统外部的路由。
ABR会自动产生一条LinkStateID为0.0.0.0,网络掩码为0.0.0.0的SummaryLSA(Type3LSA)通告到整个Stub区域内。
TotallyStub区域
TotallyStub区域与Stub区域的区别仅在于前者不允许区域间路由即Type3NetworkSummaryLSA。
区域内的路由器通过ABR知道其他区域和自治系统外部的路由。
ABR会自动产生一条LinkStateID为0.0.0.0,网络掩码为0.0.0.0的SummaryLSA(Type3LSA)通告到整个Stub区域内。
NSSA区域
NSSA区域与Stub区域的区别在于前者可以引入自治系统外部的路由,但一样不允许ASELSA(Type5)在区域内传播。
如果希望到达自治系统外部的路由通过该区域的ASBR到达,而其它外部路由通过其它区域出去的话,需要在ABR上手动通过命令进行配置,ABR会产生一条LinkStateID为0.0.0.0,网络掩码为