- 📚 相关推荐文章
- 单播路由协议 推荐
- 链路状态路由协议 推荐
- 静态路由协议 推荐

单播路由协议
-
2023年3月20日发(作者:蔬菜价格表今日价格)OSPF小结之一
2007-09-1108:36
一、概述:
(openshortestpathfirst):是IETE组织建议使用的内部网关协议,
属于链路状态协议,使用Dijkstra的最短路径算法,目前使用ver2,协议号
89,最新说明是RFC2328。
是分层的是立体的,但扩展性差,因为每个区域必须直连到主干区域
“area0”
内的每台路由器都在本区域内以自己为根建立一颗树(即在本域内计算
出本域内的最优路径),去外部的化只计算出去ABR的最优路径。
需要ROUTERID来标示不同的路由器(只是标识示用,不在ospf域也
可):默认优先使用手工指定,然后lookback口的最高IP作为routerid,其
次是最高的物理接口ip;建议手工指定lookback口作为routerid。(也可随
意写,不一定要存在的配置)
5.链路状态数据结构:
a)Neighbortable:Alsoknownastheadjacencydatabase(listofrecognized
neighbors)
b)Topologytable:TypicallyreferredtoasLSDB(routersandlinksin
theareaornetwork)AllrouterswithinanareahaveanidenticalLSDB
c)Routingtable:Commonlynamedaforwardingdatabase
的LSA报文类型:
⑴HELLO(t=1):用于发现邻居,建立双向通讯,选取DR(指定路由器),
BDR
(备份指定路由器);除了NMMA网络和点到多点网络为30秒的hello
interval(hello
时间间隔);其余都默认为10秒;deadinterval为他的4倍。hello
报文包括:
routerid
areaid***
hello/deadintervase***
neighbor
routerpriority★只有当打“***”的相同建立邻
居关系(非邻接)
dripaddress
bdripaddress
stubareaflag(末节区域标识)***
authenticationpassword***
⑵DBD(t=2):数据库描述信息,用于描述数据库链路状态摘要的,
发送的是
LSA头信息而不是详细信息。
⑶LSR(t=3):链路状态请求报文(单播)
⑷LSU(t=4):链路状态更新报文(单播)
⑸LSACK(t=5):确认报文。(单播)
的区域:为了控制lsa泛洪范围降低cpu的消耗,加快收敛过程,我们
对ospf区域划分区域,其通过一个32位的区域id来识别不同区域,可以用十
进制也可以用点分十进制。区域0(0.0.0.0)是骨干区域的保留id号,一个AS
只能有一个area0,所有区域都要与area0直连,域间通信必须通过area0;
对于单域网络可不设置area0,多区域环境下一定要有area0。
8.通讯量类型:域间通讯量(intar),域内通信量(inter),外部通讯量
(external)
表示自主系统:可有多个区域组成,并且同时运行相同的协议。
的报头:(32位)
type:即t=1,t=2.........(见上)
AuType=0(没有认证);AuType=1(明文,最长64位);AuType=2(md5)
二、ospf支持的网络类型:0100.5E00.0005;0100.5E00.0006
(点对点):一旦成为邻居则总可成为毗邻关系,以组播224.0.0.5收发
LSA。
ast:是一个多路访问网络,利用MAC地址在网络上传输,所以有局限
性适用于局域网,比如以太网(一般以太接口的均为此网络);为了避免过大的
流量,需要选举出DR和BDR同时所有的本区域其它路由器与其形成邻接关系来
进行LSA的收发;在DR,BDR上监听224.0.0.6作为监听地址(224.0.0.6为DR
和BDR的组播地址);利用224.0.0.5发送,同样的,其它路由器(DRothers)
以224.0.0.5为目标发hello报文;利用224.0.0.6向DR,BDR发送更新。
(非广播多路访问):从名字就可以知道他与broadcast的区别就是没有
广播,他不存在ARP协议和MAC地址,以单播方式收发报文,比较适用于广域网,
一般以串口连接,非以太口相连的多路访问网络默认为NBMA网络类型,其余同
上!!!(没有ARP意味着要用手工进行二三层的映射)
(点对多点):是NBMA网络的特殊配置,可以看作是一群点到点的集合,
以单播方式收发报文,不选举DR和BDR;一般以串口连接(对于非广播的多路
访问网络建议此配置成此中网络类型)无ARP所以要用手工进行二三层的映像,
在ospf中会有一条32位的路由来标示自己(cost值为“0”)。
llink(虚链路):无编号的点到点网络的特殊配置(metric=1),
以单播方式收发报文;这是一种不是很好的配置其增加了网络的复杂性,一般用
于冗余线路的设置,要设置必须要有一个可穿过的传输区域!!可以认为是点对
点的。属于area0,必须和area0保持一致(包括验证等),其建立了一条DNA
(永不老化,不会在数据库中删除),主链路断开用此链路(尽量不用)。
★网络又可以分为:transitnetwork(目标和源都不在此网络)和stubnetwork
(没有和
其它路由器相连的网络,必有一个源或目标,进出数据为同一接口)
★NBMA和PTM的区别:实际中建议配置成PTM。
三、OSPF接口状态和邻居状态:
1.接口状态:down,ptp,wating(时间等于deadinterval),dr,bdr,drother,
loopback
2.邻居状态:down,attemp(NBMA独有,此时用hello代替poll★发包30S/
次,一旦收到一个包转入init状态)init,2-way,exstart,exchange,looding,
full
★pollinterval:在dead后没收到hello包则,每60秒向处于down的邻
居发hello包,
这是由于NBMA的非广播需要手工配置(在其余的网络里当在dead后没收
到hello
包则认为邻居失效)
四、收敛
★DR/BDR的选举过程(DR/BDR是针对路由器某一具体接口下的子网而言这
台路由
器是DR/BDR):选举先决条件:2-way状态;选举资格:接口上的优先级
不为“0”
(cisco默认为“1”范围0~255);在接口有效后,即没有选出DR/BDR
前,在hello
包里的DR/BDR地址都设为0.0.0.0,并且设接口状态waitingtime(等
待DR/BDR
的选举结果)=deadinterval(默认40秒或120秒);同时所有有资格
选举的都会在
hello包里宣称(不是宣告)自己是DR(将DR位置为“1”),当收到其
它的hello
包后首先会比较自己和邻居的接口优先级,如果高于自己,则在hello
包中将DR
位置为“0”,并去参与BDR的选举(同样宣称自己是BDR);如果优先
级相同则
看Routerid(高的担任);如果没有宣称DR的,则BDR成为DR;在waiting
time
的时间里如果只有你一台的邻居状态位2-way则自己成为DR,所以一般
最先到达
2-way状态具有选举资格的将会成为DR和BDR(可以没有BDR);当有更
高优先
级或routerid的加入将不会取代原有的DR和BDR;非DR/BDR叫做
DRother,
DRother间将处于2-way状态,通过hello来保持邻居关系;广播类型中
利用组播地
址224.0.0.5来维持邻居关系),利用224.0.0.6发更新给DR和BDR,
但是只有DR
利用224.0.0.5发送更新给ALLDRother。
★确认收到了更新的两种方法:explicitacknowledge(显示确认):发送
头信息;
implicitacknowedge(隐式确认):发收
到的LSA
五、收敛后的更新情况:
1.收敛后的更新在毗邻间进行,泛洪(Flooding)
2.泛洪的可靠性和保证LSA是最新的是利用:序列号(32位,更新一次加1)
→校验和(5min一次来保证LSA没有被破坏)→AGEtime(老化时间:大的为
最新的LSA,但如果他们之间的差别大于15min,那么拥有较小age的LSA为最
新的)
★上述的方法还是不能区别LSA,则认为是相同的。
3.老化时间:指明lsa生存时间的16位无符号整数,以秒为单位,范围从0~3600
秒即1小时,每当经过一个路由器都会增加,同时lsa驻留在数据库中也会增加;
“transmitdelyis1sec”表示每次增加的数值为1秒。
4.当每个路由器数据库中的lsa到达maxage(1小时)后,lsa会被重新
flodding并在随后清除自己数据库中的该条lsa;为了避免这种情况有一个csr
记时器(30分钟),即每30分钟由该条lsa的始发路由器发一个相同的lsa,
(延迟240秒)序列号加1,设max=0
5.为节省带宽,当有LSR到达时会有一个延迟时间,以使并且几个lsu一起发。
六、路由表:
的度量值的算法为:10^8/bandwidts(兆)(;)
2.以出端口代价为度量值计算出最优路径,只限于本区域的可发现的最优路径,
其它区域的只能发现到ABR的最优路径。
3.有网络条目(shiprou)和主机条目(为ABR和ASBR“shipospf
border-router”)
4.“i”区域内路径;“IA”区域间路径;“E1”从外部网段到到里面的的全部
代价;“E2”从外部到ASBR的代价。(查找优先级为从前至后)(为外部到内
部的cost值)
metric值:
10M=10;100M=1
T1=64;vir=1
tunnel=11111
点到多点=0
七、LSA的类型:
★只有1,2类参加路由算法,用于计算拓扑
★Linkid表示那里的链路状态情况;ADVrouter表示LSA是谁公告的;
★可通过“ipospfdatabase”查看链路状态数据库。
LSA:每一个路由器都会产生,通告自己路由器所有接口的状态;在
域内泛洪。Linkid(为routerid)一般等于ADVrouter,即产生并公告。
kLSA:由网络中的DR产生(DR为为路由器的接口特性),通告本域
内每个DR下所属的DRother的routerid(包括DR自己的),由DR公告,Link
id为DR路由器接口ip地址(即通告所有DR接口下的DRother的routerid);
在域内泛洪。
注意:一个区域可由多个DR,一个网段一个DR(路由器分隔网段)
kSummaryLSA:由本域内同时为area0的ABR路由器始发,学习其
它区域的LSA,只通告到已知网段的最优路径(是本域内路由器到ABR的最优路
径,到最终目的地的总的路径其不管,所以当有多个ABR时,容易引起次优路径
的问题,用设置cost值可解决:接口下“ipospfcost数值”),域内路由器
收到后直接加入路由表(RIP的方法)linkid为某一网段(表示某一网段的状
态);AS中泛洪。
mmaryLSA:本域内由ABR始发,公告(即到最后的ABR时被替换表
示要去ASBR就找ABR),通告ASBR的routerid主机路由,ASBR的routerid
为linkid。,AS中泛洪。有几个ASBR就有几个4类。
alLSA:ASBR公告,以linkid为外面AS域的子网号,通告ASBR外
面的子网,由ASBR公告(要去外网找ASBR),AS内泛
洪。
ternalLSA:同5,只是在区域为非纯末梢区域(notsostubbyarea)
内公告并泛洪,到达ABR时变为5类通告给其它区域。
:标记路由;如要从rip学到的只分配进
ripRIPospfospfEigrp
当分发进一个路由时对此路由条目加一个标记(如tag10),
然后重分发进RIP时做route-map→match
tagEigrpospfospfRIP
八、特殊区域
1.路由器类型:internalrouter内部路由器;ABR区域边界路由器(必须要
有一个接口处于area0);ASBR自主系统边界路由器(任何路由器都可以)
2.分段区域:一个区域由于链路时效而使这个区域的一部分和其它部分分隔开
的情况。当主干区域(area0)发生这种情况后可能会形成两个AS,所以在设
置ospf区域时要考虑冗余的问题(如虚链路)。
llink:虚链路,用于连接非骨干与骨干,骨干断开的情况下是一条
逻辑链路,属于骨干区域。在设置虚链路时要注意必要条件:必须在两台ABR
之间(即在两台ABR上设置);所经区域必须是Transitarea,其拥有全部的
路由信息;Transitarea不可以是stubarea。(对于此区域应该尽量避免,只
能作为一个临时的手段加以应用)
ea(末梢区域):域间通讯总要通过ABR,若区域内的数据要出AS
域,总要经过ABR才到达ASBR,同时该区域内没有ASBR,此时可配置该区域为
STUBArea;在此区域内4,5类的LSA将被ABR阻塞,同时会增加一条3类LSA
类型的缺省路由(destination=0.0.0.0)即不知到的路由交给ABR;(设E-bit
=0为末梢区域,表示不接受任何E-bit=1的hello报文)
★设为末梢区域后,如果区域内有多个ABR,则其就不知该去哪个ABR了,这
时可
以通过改变每个ABR接口的代价来解决(见后)
ystubarea(完全末梢区域):同上,但更为精简,在去掉了4,5
类的同时在去掉一个3类LSA,但是会存在一条3类LSA即那条默认路由。
(非纯末梢区域):存在1,2,3,7类LSA。是“末梢区域”的特殊情
况,用于本可成为“末梢“的区域中存在ASBR,此时就不能成为“末梢区域”
了。在此区域下他会通告从本区域ASBR上得到的外部路由,在ABR上变为5类
通告出去,但其它区域来得外部路由就倍ABR过滤掉了,同样会有一条3类的默
认路由。(P-bit=1;在ABR上设P-bit=0转为5类LSA)
7.完全NSSA:没有3类
九、OSPF的配置:★在回环口下建议使用ipospfnetworkpoint-to-point
来避免
1.基本配
置:主机路由。
routerospf进程号进程号随意(只在本路由器有效),一个路由器
最多启32个
router-idip地址指定routerid
network接口ip0.0.0.255area区域号宣告接口
(0.0.0.255为反码),
norouterospf进程号关闭某一进程的ospf宣告
link的配置:在每个ABR上配置如下:
area传输区域号virtual-link目的ABR的routerid
区域:ospf进程下(只有1,2,3类的LSA)
area号stub区域内所有路由器都设
ystub:ospf进程下(只有1,2的LSA)
area号stubno-summaryABR上★
area号stub区域其它路由器:
区域:ospf进程下(只有1,2,3,7)
area号nssa区域内所有路由器都设
area号nssadefault-information-originstABR上★
yNssa区域:ospf进程下(只有1,2,7和一条三类汇总路由)
area号nssa区域内所有路由器都设
area号nssano-summaryABR上★
7.如果NSSA中ASBR同时为ABR则在进行5的配置后外部路由仍然进入nssa
区域则在ABR上(其余要“area号nssa”):
area号nssano-redistributionno-summary
(只有1,2,7和一条三类汇总路由)
area号nssano-redistributiondefulat-information-originst
(有1,2,3,7)
的地址汇总:
ospf进程下
area号rangip地址掩码即汇总好在出去(自动在
路由表中产生NULL0)
ospf进程下:
summary-addressip地址掩码ASBR上,即进来后在汇总
9.非广播多路访问的ospf配置:(任选一种)
NO1:配为NBMA(默认)在hub-and-spoke结构上;
①在hub路由器的ospf进程下:neighborspoke路由器的接口ip地址
(如neigh192.168.0.12)有几个spoke路由器的接口就写几个。
②在spoke路由器的接口下:ipospfpriority0设优先级为“0”不选举
NO2:设为点到多点(推荐):在所有路由器的接口下:ipospfnetwork
point-to-m
NO3:broadcast:必须为全互联,在接口下设为“broadcast”
NO4:PTP:cisco私有
NO5:PTMnonbroadcast
值的修改,
ospf下:area《id》default-cost数值用来防止多ABR时次优路
径的产生(改
了到达ABR的cost)
接口下:ipospfcost数值(一条链路上两个接口都要相同,建
议)
ospf下:auto-costreference-bandwidth数值改所有接口的cost,
所有区域
内路由器上都要加
这一条
11.“default-interface-originst”命令的使用:★★★
现在不知道R2的地址,不知道其运行什么协议,则可以作条静态路由出
去(s1不
加入ospf),为了不至于去每个路由器配置,可向AS中通告一条默认
路由,指向
R1路由器:全局下:iproute0.0.0.0255.255.255.0serial1
ospf下:default-interface-originst[always]
always表示不加0.0.0.0也会有一条通告
s1
ospf
12.域名服务查询:
ipname-serverdns地址指定dns地址
ipospfname-lookup启动ospf的域名查找
13.查看命令:
shiproute
shipospfborder-route产看主机路由表(ABR,ASBR)
shipospfnei[routerid号de]查看邻居
shipospfdatabase查看链路状态数据路
shipospfdatabaseroute查看链路状态数据路中的route信息
shipospfinterface【接口号】查看宣告了ospf的接口
shipprotocol查看路由器启用的所有协议
shipospf可查看routerid
shipospf进程号
shipintbrief查看所有接口的状态
shipospfvirtual-link看虚链路(是否启用是看其邻居状态为full,
而不是这)
full/-点对点或点对多点
full/DR
BDR多路访问网络
DRother
14.其它命令
clearipospfprocess重至ospf进程(重新收敛)
mtu数值接口下
debugipospfadj其中Flagox7为I=1,M=1,MS=1(16
进制)
Flagox1为I=0,M=0,MS=1(主路由上
交换完毕)........
optox2表示正常区域;optox0表示末梢区域;optox8表示NSSA区域;
debugipospfpacket
十、ospf的排错
1.邻接关系未建立:是否可以ping通,接口是在同一子网吗?,接口是否是同
一种类型?建立邻接的hello相关的东西是否相同(如认证);是否存在错误的
ACL,
2.存在内部区域的信息但没有域间的,首先考虑ABR是否有问题,利用:ship
ospfbroad-routers来查看是否有ABR路由器,查看邻接关系(shipospfnei)
3.注意,net命令执行时是连续执行的,也就是说从第一条开始,下面的net
只执行与第一条不同的地方。
4.对于NBMA和PTM这两个不同类型的网络,如果在一个多点访问上均配置则可
建立邻接关系,但写不进路由表;
5.对于PTM和PTP这两个不同类型的网络,如果在一个多点访问上均配置则不
能建立邻接关系,但如果修改其hello时间使他们一致,则可建立邻接关系同时
可写进路由表并相通。
6.如果在如framerelay的环境中,此时B和C没有互指,但
可相互学到路由,但ping不通。
7.停在exstart状态时注意MTU值
8.停在init状态时,是收到的对方的hello,对方没有收到我的,注意本路由
器的排错。