ccie理论OSPF.docx
- 文档编号:18099524
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:81
- 大小:1.47MB
ccie理论OSPF.docx
《ccie理论OSPF.docx》由会员分享,可在线阅读,更多相关《ccie理论OSPF.docx(81页珍藏版)》请在冰点文库上搜索。
ccie理论OSPF
OSPF的hello协议
Hello协议的目的:
1.用于发现邻居
2.在成为邻居之前,必须对Hello包里的一些参数协商成功
3.Hello包在邻居之间扮演着keepalive的角色
4.允许邻居之间的双向通信
5.它在NBMA(NonbroadcastMulti-access)网络上选举DR和BDRCisco路由器上Hello包默认的发送间隔(HelloInterval)是10秒;NBMA网络是30秒,通过ipospfhello-interval
HelloPacket包含以下信息:
1.源路由器的RID
2.源路由器的AreaID
3.源路由器接口的掩码
4.源路由器接口的认证类型和认证信息
5.源路由器接口的Hello包发送的时间间隔
6.源路由器接口的无效时间间隔
7.优先级
8.DR/BDR
9.五个标记位(flagbit)
10.源路由器的所有邻居的RID
OSPF的网络类型
OSPF定义的5种网络类型:
1.点到点网络
2.广播型网络
3.NBMA网络
4.点到多点网络
5.虚链接(virtuallink)
点到点网络,比如T1线路,是连接单独的一对路由器的网络,点到点网络上的有效邻居总是可以形成邻接关系的,在这种网络上,OSPF包的目标地址使用的是224.0.0.5,这个组播地址称为AllSPFRouters
广播型网络
比如以太网,TokenRing和FDDI,这样的网络上会选举一个DR和BDR,DR/BDR的发送的OSPF包的目标地址为224.0.0.5,运载这些OSPF包的帧的目标MAC地址为0100.5E00.0005;而除了DR/BDR以外的OSPF包的目标地址为224.0.0.6,这个地址叫AllDRouters
NBMA网络,比如X.25,FrameRelay,和ATM,不具备广播的能力,因此邻居要人工来指定,在这样的网络上要选举DR和BDR,OSPF包采用unicast的方式
点到多点网络是NBMA网络的一个特殊配置,可以看成是点到点链路的集合.在这样的网络上不选举DR和BDR
虚链接:
OSPF包是以unicast的方式发送所有的网络也可以归纳成2种网络类型:
1.传输网络(TransitNetwork)
2.末梢网络(StubNetwork)
OSPF的DR及BDR
在DR和BDR出现之前,每一台路由器和他的邻居之间成为完全网状的OSPF邻接关系,这样5台路由器之间将需要形成10个邻接关系,同时将产生25条LSA。
而且在多址网络中,还存在自己发出的LSA从邻居的邻居发回来,导致网络上产生很多LSA的拷贝,所以基于这种考虑,产生了DR和BDR。
DR将完成如下工作
1.描述这个多址网络和该网络上剩下的其他相关路由器
2.管理这个多址网络上的flooding过程
同时为了冗余性,还会选取一个BDR,作为双备份之用
DRBDR选取规则:
DRBDR选取实在接口状态机的方式触发的。
1.路由器的每个多路访问(multi-access)接口都有个路由器优先级(RouterPriority),8位长的一个整数,范围是0到255,Cisco路由器默认的优先级是1优先级为0的话将不能选举为DR/BDR.优先级可以通过命令ipospfpriority进行修改
2.Hello包里包含了优先级的字段,还包括了可能成为DR/BDR的相关接口的IP地址
3.当接口在多路访问网络上初次启动的时候,它把DR/BDR地址设置为0.0.0.0,同时设置等待计时器(waittimer)的值等于路由器无效间隔(RouterDeadInterval)
DRBDR选取过程:
1.在和邻居建立双向(2-Way)通信之后,检查邻居的Hello包中Priority,DR和BDR字段,列出所有可以参与DR/BDR选举的邻居.所有的路由器声明它们自己就是DR/BDR(Hello包中DR字段的值就是它们自己的接口地址;BDR字段的值就是它们自己的接口地址)
2.从这个有参与选举DR/BDR权的列表中,创建一组没有声明自己就是DR的路由器的子集(声明自己是DR的路由器将不会被选举为BDR)
3.如果在这个子集里,不管有没有宣称自己就是BDR,只要在Hello包中BDR字段就等于自己接口的地址,优先级最高的就被选举为BDR;如果优先级都一样,RID最高的选举为BDR
4.如果在Hello包中DR字段就等于自己接口的地址,优先级最高的就被选举为DR;如果优先级都一样,RID最高的选举为DR;如果没有路由器宣称自己就是DR,那么新选举的BDR就成为DR
5.要注意的是,当网络中已经选举了DR/BDR后,又出现了1台新的优先级更高的路由器,DR/BDR是不会重新选举的
6.DR/BDR选举完成后,DRother只和DR/BDR形成邻接关系.所有的路由器将组播Hello包到AllSPFRouters地址224.0.0.5以便它们能跟踪其他邻居的信息,即DR将洪泛updatepacket到224.0.0.5;DRother只组播updatepacket到AllDRouter地址224.0.0.6,只有DR/BDR监听这个地址
OSPF的接口
使用showipospfinterface命令查看接口ProcessID:
进程号,cisco特有RID:
路由器的router-idNetworkType:
P2P,P2MP,...
InfTransdelay:
LSA通告从路由器接口发送后经历的时间,以TransmitDelay显示,缺省值为1secipospftransmit-delay可以修改RouterPriority:
缺省值为1可以通过ipospfpriority修改,0为不参与选举Cost:
1到65535之间的一个整数,Cisco默认cost的算法是100000000/BW,BW为接口带宽.如果带宽大于100M的话,将产生1个小于1的小数,这是不允许的.因此从IOS版本11.2之后,可以使用命令ospfauto-costreference-bandwidth来修正这个问题,允许管理者更改缺省的参考带宽WaitTimer:
选举DR/BDR之前,等待邻居路由器宣告DR/BDR的Hello包的时间长度,这个时间长度等于无效时间(RouterDeadInterval)RxmtInterval:
没有得到确认的情况下,重传OSPFpacket所等待的时间长度,默认为5秒,可以使用命令ipospfretransmit-interval
由HelloInterval设置的,当它超时后,将从接口发送一个Hello包,上图显示HelloTimer将在3秒后超时AuType:
认证类型,OSPF的认证类型可以是null(无认证),简单口令或者MD加密.如果使用null认证方式,showipospfinterface将不会显示认证类型和钥匙(key)信息
OSPF邻居关系
邻接关系建立的4个阶段:
1.邻居发现阶段
2.双向通信阶段:
Hello报文都列出了对方的RID,则BC完成
3.数据库同步阶段:
4.完全邻接阶段:
fulladjacency邻居关系的建立和维持都是靠Hello包完成的,在一般的网络类型中,Hello包是每经过1个HelloInterval发送一次,有1个例外:
在NBMA网络中,路由器每经过一个PollInterval周期发送Hello包给状态为down的邻居(其他类型的网络是不会把Hello包发送给状态为down的路由器的).Cisco路由器上PollInterval默认60sHelloPacket以组播的方式发送给224.0.0.5,在NBMA类型,点到多点和虚链路类型网络,以单播发送给邻居路由器。
邻居可以通过手工配置或者Inverse-ARP发现
使用showipospfneighbor命令查看邻居的信息,如下:
Pollinterval:
这个参数只用于NBMA网络,因为在NBMA网络中邻居无法自动发现.如果邻居状态是down,那么路由器将经PollInterval长的时间发送Hello包给这个状态为down的邻居
Deadtimerduein00:
01:
40:
DeadTimer将在100秒后超时,超时之前没收到新的Hello包的话将被宣告无效还有些未显示的信息:
DR/BDR
Master/Slave:
在ExStart状态,邻居之间协商的主/从(Master/Slave)关系将控制数据库的同步
DD(DatabaseDescription)SequenceNumber:
正向邻居发送的数据库描述序列号
LastReceivedDatabaseDescriptionPacket:
这个packet记录了Initialize,More和Master位和可选项,以及最后收到的数据库描述包的序列号.这个信息可以确定下一个数据库描述包是否重复
LinkStateRetransmissionList:
没有得到确认的LSA列表
DatabaseSummaryList:
数据库同步期间,数据库描述包中向邻居发送的LSA列表,当路由器进入
exchange状态后,这些LSA将组成
LSDBLinkStateRequireList:
这个列表记录了来自邻居的数据库描述包的LSA,这些LSA比LSDB中的LSA更新.链路状态请求(LinkStateRequire,LSR)发送给邻居来请求LSA的拷贝,当这些请求的LSA通过链路状态更新(LinkStateUpdate,LSU)收到后,请求列表将会减少直至清空
OSPF路由器在完全邻接之前,所经过的几个状态:
1.Down:
初始化状态
2.Attempt:
只适于NBMA网络,在NBMA网络中邻居是手动指定的,在该状态下,路由器将使用HelloInterval取代PollInterval来发送Hello包
3.Init:
表明在DeadInterval里收到了Hello包,但是2-Way通信仍然没有建立起来
4.two-way:
双向会话建立
5.ExStart:
信息交换初始状态,在这个状态下,本地路由器和邻居将建立Master/Slave关系,并确定DDSequenceNumber,接口等级高的的成为Master
6.Exchange:
信息交换状态,本地路由器向邻居发送数据库描述包,并且会发送LSR用于请求新的LSA7.Loading:
信息加载状态,本地路由器向邻居发送LSR用于请求新的LSA
8.Full:
完全邻接状态,这种邻接出现在RouterLSA和NetworkLSA中
OSPF泛洪
Flooding采用2种报文LSUType4---链路状态更新报文LSAType5---链路状态确认报文如下图所示:
每一个链路状态更新报文和确认报文都可以携带多个LSA。
LSA本身可以floodin到整个互联网络,但更新报文和确认报文只能在具有邻接关系的两个节点之间传送。
在P-P网络,路由器是以组播方式将更新报文发送到组播地址224.0.0.5在P-MP和虚链路网络,路由器以单播方式将更新报文发送至邻接邻居的接口地址在广播型网络,DRother路由器只能和DR&BDR形成邻接关系,所以更新报文将发送到224.0.0.6,相应的DR以224.0.0.5泛洪LSA并且BDR只接收LSA,不会确认和泛洪这些更新,除非DR失效在NBMA型网络,LSA以单播方式发送到DRBDR,并且DR以单播方式发送这些更新
LSA的洪泛是可靠的,所以必须对每1个发送的LSA进行确认,确认分隐式确认(ImplicitAcknowledge)和显式确认(ExplicitAcknowledge)当路由器要发送LSA的时候,会把LSA的拷贝放在链路状态重传列表中,这个LSA每隔RxmtInterval重传1次,直到该LSA得到确认,或邻接关系中断.无论哪种网络类型,重传的LSA总是以unicast的方式发送的确认可以是delayed或direct,前者可以使用1个LSAck确认多个LSA,当然这个延迟的时间必须小于RxmtInterval;后者的确认是立即发送,采用单播的方式.当出现下面2种情况的时候将采用直接确认:
1.从邻居那里收到了重复的LSA2.LSA的老化时间(Age)达到最大生存时间(MaxAge)查看LSDB信息,使用showipospfdatabase命令,如下:
LSA通过序列号,校验和,和老化时间保证LSDB中的LSA是最新的Seq:
序列号(Seq)的范围是0x80000001到0x7fffffffChecksum:
校验和(Checksum)计算除了Age字段以外的所有字段,每5分钟校验1次Age:
范围是0到3600秒,16位长.当路由器发出1个LSA后,就把Age设置为0,当这个LSA经过1台路由器以后,Age就会增加1个由InfTransDelay设定的时间(默认为1秒,这个时间可以通过命令ipospftransmit-delay
当收到相同的LSA的多个实例的时候,将通过下面的方法来确定哪个LSA是最新的:
1.比较LSA实例的序列号,越大的越新
2.如果序列号相同,就比较校验和,越大越新
3.如果校验和也相同,就比较老化时间,如果只有1个LSA拥有MaxAge(3600秒)的老化时间,它就是最新的
4.如果LSA老化时间相差15分钟以上,(叫做MaxAgeDiff),老化时间越小的越新
5.如果上述都无法区分,则认为这2个LSA是相同的
OSPF区域
区域长度32位,可以用10进制,也可以类似于IP地址的点分十进制分3种通信量
1.Intra-AreaTraffic:
域内间通信量
2.Inter-AreaTraffic:
域间通信量
3.ExternalTraffic:
外部通信量
路由器类型
1.InternalRouter:
内部路由器
2.ABR(AreaBorderRouter):
区域边界路由器
3.BackboneRouter(BR):
骨干路由器
4.ASBR(AutonomousSystemBoundaryRouter):
自治系统边界路由器
虚链路(VirtualLink)
1.通过一个非骨干区域连接到一个骨干区域
2.通过一个非骨干区域连接一个分段的骨干区域两边的部分区域
虚链接是一个逻辑的隧道(Tunnel),配置虚链接的一些规则:
1.虚链接必须配置在2个ABR之间
2.虚链接所经过的区域叫TransitArea,它必须拥有完整的路由信息
3.TransitArea不能是StubArea
4.尽口的避免使用虚链接,它增加了网络的复杂程度和加大了排错的难度
LSD链路状态数据库
使用showipospfdatabase可以查看LSDB的信息。
LSA驻留在LSDB中,age会加大,当超过MaxAge后,这些LSA将被清除掉,因此出现链路刷新(LSR)机制来防止这个问题,每30min(LSRefreshTime),发出这条LSA的源路由器将再次发送这个LSA的拷贝,并把序列号加1,把Age设置为0,来替换邻居LSDB
中的较老的LSA
LSA类型
1.类型1:
RouterLSA
2.类型2:
NetworkLSA
3.类型3:
NetworkSummaryLSA
4.类型4:
ASBRSummaryLSA
5.类型5:
ASExternalLSA
6.类型6:
GroupMembershipLSA
7.类型7:
NSSAExternalLSA
8.类型8:
ExternalAttributesLSA
9.类型9:
OpaqueLSA(link-localscope,)
10.类型10:
OpaqueLSA(area-localscope)
11.类型11:
OpaqueLSA(ASscope)使用showipospfdatabasedatabase-summary可以看到LSDB中的LSA类型
一.RouterLSA
每个路由器都将产生RouterLSA,这种LSA只在本区域内传播,描述了路由器所有的链路和接口,状态和开销
此种LSA可以通过showipospfdatabaserouter查看
二.NetworkLSA在每个多路访问网络中,DR都会产生这种NetworkLSA,它只在产生这条NetworkLSA的区域泛洪描述了所有和它相连的路由器(包括DR本身)
Showipospfdatabasenetwork可以看到NetworkLSA
三.NetworkSummaryLSA由ABR路由器始发,用于通告该区域外部的目的地址,
可以使用showipospfdatabasesummary查看LSA
如果ABR知道有多条路径可以到达目标地址,但是它仍然只发送单个的Network
SummaryLSA,并且是开销最低的那条;同样,如果ABR从其他的ABR那里收到多条NetworkSummaryLSA的话,它会只选择开销最低的,并把这条NetworkSummaryLSA宣告给其他区域当其他的路由器收到来自ABR的NetworkSummaryLSA以后,它不会运行SPF算法,它只简单的加上到达那个ABR的开销和NetworkSummaryLSA中包含的开销,通过ABR,到达目标地址的路由和开销一起被加进路由表里,这种依赖中间路由器来确定到达目标地址的完全路由(fullroute)实际上是距离矢量路由协议的行为
四.ASBRSummaryLSA由ABR发出,ASBR汇总LSA除了所通告的目的地是一个ASBR而不是一个网络外,其他同NetworkSummaryLSA
使用showipospfdatabaseasbr-summary可以看到
五.AutonmousSystemExternalLSA发自ASBR路由器,用来通告到达OSPF自主系统外部的目的地,或者OSPF自主系统那个外部的缺省路由的LSA。
这种LSA将在全AS内泛洪
可以使用showipospfdatabaseexternal
NSSAExternalLSA来自非完全Stub区域(not-so-stubbyarea)内ASBR路由器始发的LSA通告它只在NSSA区域内泛洪,这是与LSA-Type5的区别Showipospfdatabasenssa-external
ExternalAttributesLSA被提议为作为iBGP的另一种选择,用来传输BGP协议信息穿越一个OSPF域。
OpaqueLSA特殊应用,透明LSA,基于MPLS。
暂时没有实现
OSPF末梢区域
由于并不是每个路由器都需要外部网络的信息,为了减少LSA泛洪量和路由表条目,下图中的Area2可以配置成为Stub区域
位于Stub边界的ABR将宣告一条默认路由到所有的Stub区域内的内部路由器,
Stub区域限制:
a)所有位于stubarea的路由器必须保持LSDB信息同步,并且它们会在它的Hello包中设置一个值为0的E位(E-bit),因此这些路由器是不会接收E位为1的Hello包,也就是说在stubarea里没有配置成stubrouter的路由器将不能和其他配置成stubrouter的路由器建立邻接关系
b)不能在stubarea中配置虚链接(virtuallink),并且虚链接不能穿越stubarea
c)stubarea里的路由器不可以是ASBR
d)stubarea可以有多个ABR,但是由于默认路由的缘故,内部路由器无法判定哪个ABR才是到达ASBR的最佳选择
Cisco提出了TotallyStubbyArea,和stubarea相比,它连LSA类型3(NetworkSummaryLSA)也阻塞掉了
NSSA允许外部路由被宣告OSPF域中来,同时保留StubArea的特征,因此NSSA里可以有ASBR,ASBR将使用type7-LSA来宣告外部路由,但经过ABR,Type7被转换为Type5。
7类LSA通过OSPF报头的一个P-bit作Tag,如果NSSA里的ABR收到P位设置为1的NSSAExternalLSA,它将把LSA类型7转换为LSA类型5.并把它洪泛到其他区域中;如果收到的是P位设置为0的NSSAExternalLSA,它将不会转换成类型5的LSA,并且这个类型7的LSA里的目标地址也不会被宣告到NSSA的外部NSSA在IOS11.2后支持。
几种特殊的区域
Stub过滤Type5LSA并自动产生默认路由O*IA但不过滤掉域间路由
Stub-NoSummary只放入Type2&6类的路由,即域间路由被过滤掉,同时产生O*IA的默认路由
NSSA
ASBR使用Type7LSA通告外部路由,路由条目由OE2改为ON2,NSSA不会自动产生默认路由,除非加入area2nssadefault-information-originate.且默认路由仅用在ASBR,ABR上,产生一条O*N2的路由。
同时过滤掉骨干区域来的Type5路由.
NSSA-Noredistribution如下图所示,B上使
NSSA-Nosummary即在路由器B上area1nssano-summary过滤域间路由,并在自动产生一条O*IA的默认路由
OSPF路由表
路由选择表是根据LSDB中LSA条目,使用SPF算法生成的。
OSPF是基于接口带宽进行度量的一种路由协议使用10^8/BW计算。
通过命令ipospfcost1~65535可以修改端口的成本不推荐ipospfcost的方式修改使用auto-costreference-bandwidthbandwidth(1~4296967Mb)修改默认的参考值,以便识别1000M和10G的interface两个不同的区域可以使用不同的参考带宽
DestinationType每一个路由条目都可以被归类到目的类型中去网络条目(NetworkEntry)是数据包药转发的目的网络:
路由器条目(RoutersEntry)记录的是如何到达ABR/ASBR,这些路由器条目被单独存放在一个内部的路由表里,使用命令showipospfborder-routers来查看这个信息,如下:
i代表区域内路由,I代表区域间路由
P
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ccie 理论 OSPF
![提示](https://static.bingdoc.com/images/bang_tan.gif)