OSPF路由协议详解
OSPF:开放式最短路径优先协议
无(wu)类别链(lian)路(lu)状态路(lu)由协(xie)议,组播更新(xin)224.0.0.5/6;跨(kua)层封装到三层,协(xie)议号89;
基于拓扑(pu)工作,故更新量大-----需要结构化部署–区域划分、地址规划
触发更新(xin)、每30min周(zhou)期(qi)更新(xin)
OSPF的数据包:
Hello包
DBD–数据库描述包(bao)
LSR–链路(lu)状态(tai)请(qing)求(qiu)
LSU–链路状态更新 携(xie)带(dai)各种(zhong)LSA
LSack–链路状(zhuang)态确认
状(zhuang)态机----OSPF建立时,存在各个阶(jie)段;
1、down 本地一(yi)旦发(fa)出(chu)hello包进(jin)入下一(yi)状(zhuang)态
2、Init初始(shi)化 本(ben)地(di)接收到的(de)(de)hello包(bao)存(cun)在本(ben)地(di)的(de)(de)RID进(jin)入下(xia)一状态
3、2way双(shuang)向(xiang)通信 邻居关系建立(li)标志;
条件匹配:点(dian)到点(dian)网络直接(jie)进入(ru)下一状态(tai);MA网络将(jiang)进行DR/BDR选举(ju)(40S),非DR/BDR间不得进入(ru)下一状态(tai);
4、exstart 预启动 使用类似hello的(de)DBD进行主从关(guan)系(xi)选举,RID大为(wei)主,主优(you)先(xian)进入下
一(yi)状态
5、Exchange 准交换 使用真实的DBD包(bao)进行数据库目录共(gong)享,需要ACK;
6、Loading 加载 使用LSR/LSU/LSack来获取未知的LSA信息;
7、Full转发 邻接(jie)关系建立的标志
OSPF工作过程(cheng):
启动配置(zhi)完成后,本地使(shi)用(yong)hello包建立邻(lin)居(ju)关系,生成邻(lin)居(ju)表;
进行条件(jian)匹(pi)配,匹(pi)配失败者间(jian)保持为(wei)邻(lin)居关系,仅(jin)hello包周期(qi)保活即可(ke);
匹配成功者(zhe)间,将使用DBD/LSR/LSU/LSack来获(huo)取未知的LSA信息,当(dang)收集其网络中所有LSA后(hou),生成LSDB–数据(ju)表(biao);之(zhi)后(hou)使用最(zui)(zui)短(duan)路径算(suan)法,计算(suan)本地到达所有未知网段的最(zui)(zui)佳路由(you),然后(hou)将其加(jia)载路由(you)表(biao)中,收敛(lian)完成。
结(jie)构突变—1、新增(zeng)网段 发送(song)新的DBD 未知设备会使用LSR获(huo)取
2、断开网段 发(fa)送新的DBD 未(wei)知设备会(hui)使(shi)用LSR获取(qu)
名词(ci):
LSA–链(lian)路状态(tai)通(tong)告 —存在(zai)多种类别,携(xie)带不同环境下产生的拓(tuo)扑或路由信(xin)息;该信(xin)息依赖
LSU数据包传(chuan)递;
LSDB–链路状(zhuang)态数据库 —各种(zhong)的LSA的集合
OSPF的收(shou)敛行(xing)为------LSA洪(hong)泛 LSDB同步
配置:
r1(config)#router ospf 1 启动OSPF协(xie)议(yi),启动时需要配置进程号(hao),进行号(hao)仅具有(you)本(ben)地意义
r1(config-router)#router-id 1.1.1.1 全网唯一,手工–环回最(zui)大数(shu)值–物理接口最(zui)大数(shu)值
宣告:1、激活 2、路由(you)或拓(tuo)扑 3、区域划分
r1(config-router)#network 12.1.1.1 0.0.0.0 area 0
r1(config-router)#network 1.1.1.1 0.0.0.0 area 0
宣告时必(bi)须携带反(fan)掩(yan)码
区域划分(fen)规则(ze):
1、星(xing)型结(jie)构
2、必须存在ABR-边(bian)界路由器
【1】当启动配置完(wan)成后,邻(lin)居(ju)间(jian)使用hello包(bao)建立邻(lin)居(ju)关系,生(sheng)成邻(lin)居(ju)表:
Hello包–用于邻居的发现、关系、保(bao)活
hello time为(wei)10s或30s dead time 为(wei)hello time 的(de)4倍;
Hello包中和(he)邻(lin)居必(bi)须完全(quan)一(yi)致的参数:hello time和(he)dead time
区域ID
认证字段
末梢区域(yu)标(biao)记
r2#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 0 FULL/ - 00:00:39 12.1.1.1 Serial1/0
3.3.3.3 0 FULL/ - 00:00:38 23.1.1.2 Serial1/1
状(zhuang)态机(ji)
【2】邻(lin)居(ju)关系建立后,进行条件(jian)匹(pi)配,匹(pi)配失败保持(chi)为邻(lin)居(ju)关系,仅hello包保活
匹(pi)配成功成为(wei)邻接关系(xi),将使(shi)用DBD/LSR/LSU/LSACK来(lai)获取未知的LSA信息,生(sheng)成数据(ju)库表(biao):
DBD:携带MTU值;强制邻居间MTU值必须一致,否则卡(ka)在exstart或exchange状(zhuang)态;
DBD包中的描述字段:I 为(wei)1标示该包为(wei)本地发(fa)出(chu)的第一个DBD包
M为0标示该包为本地(di)发出的(de)最后(hou)一个DBD包
MS为(wei)1标示本地为(wei)主(zhu);
隐(yin)性确认:从使(shi)用主的序列号来(lai)对(dui)主进行确认;
r1#show ip ospf database 查看数据(ju)库简(jian)表
OSPF存在各种类别的LSA,简表(biao)内仅(jin)记录分(fen)类的基础信息;
【3】OSPF协议在生成好数据库表后(hou),将基于最(zui)短(duan)路径规则将最(zui)佳路径加载(zai)到本地的路由表中
O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
O标示本地区域内的路由–本地基于拓扑计算所得
O IA 标示其(qi)他区(qu)域(yu)的路(lu)(lu)由通过ABR导入 --域(yu)间路(lu)(lu)由
O E1/2 标示通过(guo)其(qi)他协议或进程(cheng)计算(suan)所得,之后(hou)ASBR重发布导入(ru) 域外路由
ON1/2 标示通过其他协(xie)议(yi)或进程计(ji)算(suan)所得(de),之后ASBR重发布导入,同时本地为(wei)NSSA或完
全NSSA区域 -----域外路由
管理(li)距离为110;度(du)量(liang)为cost=开销值(zhi)=参考带宽/接口实际带宽
Ospf选(xuan)(xuan)路,就(jiu)是(shi)选(xuan)(xuan)择cost值之(zhi)和最小路径;默认参(can)考(kao)(kao)带(dai)(dai)宽(kuan)为100M;若接口带(dai)(dai)宽(kuan)大于(yu)参(can)考(kao)(kao)带(dai)(dai)宽(kuan),将可能导致选(xuan)(xuan)路不佳,可以修改参(can)考(kao)(kao)带(dai)(dai)宽(kuan)
r1(config)#router ospf 1
r1(config-router)#default auto-cost reference-bandwidth ?
r1(config-router)#default auto-cost reference-bandwidth 1000
注:所(suo)有设(she)备均需修改;
【4】OSPF建立邻接关系(xi)的条件
网络(luo)类(lei)型:点(dian)到点(dian)网络(luo)类(lei)型 ----必然(ran)成为邻接关系
MA----进行DR/BDR选举,所(suo)有(you)非DR/BDR仅与(yu)DR/BDR建立邻接关(guan)系;非DR/BDR间正常保(bao)持(chi)为(wei)邻居关(guan)系;
选择规则:1、比较接(jie)口(kou)优先级(ji),默认(ren)为1,大(da)优;
2、若(ruo)优先级相同,比较RID,数值(zhi)大优;
干涉选举:
1、DR优选级最大,BDR次大;DR选择为非抢占,故修(xiu)改优先级后(hou),正(zheng)常需要重启OSPF进程
r1(config)#interface fastEthernet 0/0
r1(config-if)#ip ospf priority 3
r1#clear ip ospf process
Reset ALL OSPF processes? [no]: yes
2、DR优(you)选级(ji)最大,BDR次大;其他(ta)设备(bei)优(you)先级(ji)修改为0,标示不参选;
切记:不能将(jiang)所有(you)参选接(jie)口优先(xian)级(ji)修改为(wei)0;
【5】OSPF接口网络类(lei)型
设(she)备接口网络类型: 环回 点到点 BMA NBMA
所谓的OSPF接口网络类型,是(shi)指(zhi)OSPF协议在设备(bei)不(bu)同网络类型下的不(bu)同工(gong)作(zuo)方式;
设备接口(kou)网络类型(xing) OSPF 接口(kou)网络类型(xing)(工作方式)
环回接口 LOOPBACK LOOPBACK 无hello包,发送(song)32位(wei)主机路由
串口(HDLC/PPP)点到点 POINT_TO_POINT hello time 10s;不选DR;
以(yi)太网接(jie)口 BMA BROADCAST hello time 10s;选DR;
MGRE NBMA
注(zhu):在tunnel接口上,OSPF默认的工作(zuo)(zuo)方式(shi)为(wei)点(dian)(dian)(dian)到点(dian)(dian)(dian);这种工作(zuo)(zuo)方式(shi)在MGRE环境下,将无法正常(chang)建立(li)邻居关系(xi)—因(yin)为(wei)点(dian)(dian)(dian)到点(dian)(dian)(dian)工作(zuo)(zuo)方式(shi)只能和一个(ge)邻居建邻;
可以将接口(kou)工作方式(shi)修改为(wei)BROADCAST;切记BROADCAST和(he)POINT_TO_POINT工作方式(shi)均为(wei)10s的hello time,故能够建立(li)邻居关系,但由于(yu)一(yi)个(ge)选(xuan)DR,另(ling)一(yi)个(ge)不选(xuan),不能正常收(shou)敛路由;
r2(config)#interface tunnel 0
r2(config-if)#ip ospf network broadcast
注:若ROADCAST的工作(zuo)环(huan)境为(wei)星(xing)型或部分网状结构都可能(neng)出(chu)现DR位置错误(wu)问题;
必须修改DR的位置(zhi)到最合适(shi)的地方;
建(jian)议:
1、在星型结(jie)构中可以定义为(wei)broadcast 类型,但(dan)注(zhu)意DR位置;或修(xiu)改为(wei)点到(dao)多点工作方(fang)式;
2、在部分网(wang)状(zhuang)结(jie)构中直接定义为点到多点
3、在全连(lian)网状建(jian)议broadcast ;
r1(config)#interface tunnel 0
r1(config-if)#ip ospf network point-to-multipoint
点到多点工作方式:hello time 为30s;不选DR;
2、不(bu)连续骨干(gan)
解决方(fang)法(fa):
1、tunnel --在两台(tai)ABR上建立tunnel,然后将(jiang)其(qi)宣告(gao)到OSPF协议中;
缺点:选路不佳,对(dui)中间区域周(zhou)期、触发占用(yong);
2、OSPF虚(xu)链路—相当于(yu)OSPF关闭(bi)了区域限制;
在两台ABR上配置,然后骨干(gan)区域的ABR为非骨干(gan)区域间的ABR授权(quan);
R2(config)#router ospf 1
R2(config-router)#area 1 virtual-link 4.4.4.4
优点:选路正常,为(wei)减(jian)少对(dui)中(zhong)间区域的(de)资源(yuan)占(zhan)用,取消所(suo)有周(zhou)期信息–hello、更新(xin)
缺点:不可(ke)靠
3、多(duo)(duo)进(jin)程(cheng)双向重发(fa)布 --在一(yi)台设备(bei)启动(dong)多(duo)(duo)个进(jin)程(cheng)时,每个进(jin)程(cheng)为独立(li)协议,用(yong)于自己(ji)的(de)RID,自己(ji)的(de)数据库(ku)(ku)和邻居关(guan)系,这些数据库(ku)(ku)不(bu)共享,仅将所以计算所得路径加(jia)载(zai)到同一(yi)张路由表中(zhong);若多(duo)(duo)个进(jin)程(cheng)工作于同一(yi)接口(kou)上,仅最先启动(dong)进(jin)程(cheng)生效;
R4(config)#router ospf 1
R4(config-router)#redistribute ospf 2 subnets
R4(config-router)#exit
R4(config)#router ospf 2
R4(config-router)#redistribute ospf 1 subnets
二、OSPF的数据(ju)库表 -----该表格由(you)各种类别的LSA组成(cheng);
所有类别LSA均存在(zai)以下参数:
LS age: 119 老化时间,周(zhou)期1800s归(gui)0,触(chu)发更新归(gui)0;最大老化3609;
Options: (No TOS-capability, DC)
LS Type: Router Links 类别名(ming),此处为1类;
Link State ID: 1.1.1.1 link-id—目(mu)录中番号
Advertising Router: 1.1.1.1 通告者的RID;
LS Seq Number: 80000003
Checksum: 0x67F8
Length: 60
Number of Links: 3
传播范围 通告者 携(xie)带信息(xi)
1
LSA1 Router 单区域(yu)(本(ben)(ben)区域(yu)) 本(ben)(ben)区域(yu)内所有(you)设备 本(ben)(ben)地直(zhi)连拓扑(pu)
LSA2network 本(ben)区域(yu) DR MA部分的拓扑(pu)
LSA3Summary 整个OSPF区域 ABR O IA 域间路由
LSA4 asbr-summary 除ASBR所在区(qu)域 ABR ASBR的(de)位置
外的整个OSPF区域
和ASBR同区域的设(she)备是通过1类来(lai)获(huo)取ASBR位置;
LSA5 external 整(zheng)个OSPF区域 ASBR O E 域外路由
LSA7 nssa-external NSSA区域(yu)(yu) ASBR O N 域(yu)(yu)外路由
LINK ID(目录中的番号) 通告者
1
LSA1 通告者的RID 本地(di)区域内所有设(she)备
LSA2 DR接口(kou)IP地(di)址(zhi) DR
LSA3 IA 路由目标 ABR,在经过下一个(ge)ABR时修改为本地
LSA4 ASBR的(de)RID ABR,在经(jing)过下(xia)一个ABR时修(xiu)改为本地(di)
LAS5 E 路由(you)目标 ASBR
LSA7 N 路由目(mu)标 ASBR
三、优化(hua),减(jian)少(shao)OSPF的(de)LSA的(de)更(geng)新量
【1】汇(hui)总 --减少骨干区域(yu)的(de)LSA量
(1)域间汇总–只能(neng)在ABR上操作(zuo)
r1(config)#router ospf 1
r1(config-router)#area 2 range 5.5.4.0 255.255.254.0
通过(guo)本区域内1/2类LSA计算所得
(2)域外汇(hui)总–在ASBR上操作
r4(config)#router ospf 1
r4(config-router)#summary-address 99.1.0.0 255.255.252.0
【2】特殊区(qu)域(yu)(yu)—减少非骨干区(qu)域(yu)(yu)
不(bu)(bu)得为骨干(gan)区(qu)域,不(bu)(bu)能存在虚链(lian)路(lu);
(1)不(bu)存在(zai)ASBR
{1}末梢区域----拒(ju)绝4/5的LSA,自动(dong)产生一条3类的缺省路由(you)指向骨干
r5(config)#router ospf 1
r5(config-router)#area 2 stub 本(ben)区域内所有设备(bei)均需(xu)配置
{2}完全末(mo)梢(shao)(shao)区域(yu)----在(zai)末(mo)梢(shao)(shao)区域(yu)的(de)基础上进一(yi)步拒(ju)绝3类(lei)的(de)LSA,仅保(bao)留一(yi)条3类(lei)缺(que)省
先将整(zheng)个区(qu)域(yu)配置为末梢区(qu)域(yu),然后仅在ABR上(shang)定义完全即(ji)可(ke)
r1(config-router)#area 2 stub no-summary
(2)存在ASBR
{1}NSSA ----非完全末梢区(qu)域
拒(ju)绝4/5的LSA,本区域(yu)ASBR产(chan)生(sheng)的5类使用7类传输;7类LSA在离(li)开本区域(yu)时被ABR修(xiu)改为5类;不会自动产(chan)生(sheng)缺(que)省;
作用:拒(ju)绝网络中其他区域(yu)的(de)ASBR产生(sheng)的(de)4/5的(de)信息;但为了避免环路(lu)产生(sheng),故(gu)不自动产生(sheng)缺省,在管(guan)理员确定无环的(de)前(qian)提下可以(yi)手工添加缺省路(lu)由;
r3(config)#router ospf 1
r3(config-router)#area 1 nssa
{2}完全NSSA
在NSSA的(de)基础上进一步拒绝3类(lei)LSA;自动(dong)产(chan)生3类(lei)的(de)缺省指向区域0;
先(xian)将(jiang)该区域配置为NSSA,然后仅在ABR上定(ding)义完全即可
r3(config-router)#area 1 nssa no-summary
四、OSPF的扩展(zhan)配置
1、认证(zheng)
【1】接口认证
1)接口(kou)明文
r1(config)#interface ethernet 0/0
r1(config-if)#ip ospf authentication 开启明文(wen)认(ren)证(zheng)需求(qiu),开启后本地(di)所有ospf数据包中认(ren)证(zheng)类(lei)型(xing)字段被修(xiu)改,邻居(ju)间若不(bu)一致将不(bu)能建立邻居(ju)关(guan)系(xi)
r1(config-if)#ip ospf authentication-key cisco123 配置明文(wen)密(mi)码
2)接口(kou)密(mi)文(wen)
r6(config)#int s0/1
r6(config-if)#ip ospf authentication message-digest 开(kai)启秘(mi)文认证(zheng)需(xu)求,开(kai)启后本地(di)所有(you)ospf数据包中认证(zheng)类型(xing)字(zi)段被修改,邻居(ju)间若不一致将(jiang)不能建立邻居(ju)关(guan)系(xi)
r6(config-if)#ip ospf message-digest-key 1 md5 cisco123
【2】区域认证
例:在R1上开启关于(yu)区(qu)(qu)域(yu)0的(de)明文(wen)(wen)或(huo)密(mi)文(wen)(wen)认(ren)证(zheng);然后(hou)仅(jin)仅(jin)只(zhi)是将R1上所(suo)有属(shu)于(yu)区(qu)(qu)域(yu)0的(de)接(jie)口(kou),认(ren)证(zheng)类型字段修改,相当于(yu)在R1上所(suo)有区(qu)(qu)域(yu)0接(jie)口(kou)配(pei)置明文(wen)(wen)或(huo)密(mi)文(wen)(wen)认(ren)证(zheng)需求(qiu);但每个接(jie)口(kou)的(de)秘钥还是需要(yao)逐一配(pei)置;
r12(config)#router ospf 1
r12(config-router)#area 2 authentication 明文
r12(config-router)#area 2 authentication message-digest 密文(wen)
【3】虚链(lian)路(lu)认(ren)证
r1(config)#router ospf 1
r1(config-router)#area 1 virtual-link 4.4.4.4 authentication
r1(config-router)#area 1 virtual-link 4.4.4.4 authentication-key cisco
r1(config-router)#area 1 virtual-link 4.4.4.4 authentication message-digest
r1(config-router)#area 1 virtual-link 4.4.4.4 message-digest-key 1 md5 cisco123
2、被(bei)动接口
r1(config)#router ospf 1
r1(config-router)#passive-interface ethernet 0/1
3、加快收敛—邻居间(jian)直(zhi)连接口hello和dead 必(bi)须完全(quan)一致
r7(config)#interface s0/1
r7(config-if)#ip ospf hello-interval 5
r7(config-if)#ip ospf dead-interval 20
注(zhu):修(xiu)改(gai)本端的hello time本端的dead time自动4倍关系匹(pi)配;
4、缺省
3类缺省—通(tong)过特殊(shu)区域自动产生;
末梢(shao)、完全末梢(shao)、完全NSSA自动产(chan)生;
5类缺省(sheng)(sheng)—本地(di)路(lu)由(you)表中必(bi)须已(yi)经(jing)存在缺省(sheng)(sheng)路(lu)由(you),通过(guo)什么方式产生的无所谓(wei);
之后,可以使用专(zhuan)用指令(ling)将其重发布到(dao)OSPF协(xie)议中
r9(config)#router ospf 2
r9(config-router)#default-information originate
默认进入路由为类型2,OE2;度量为1;
类型1:在(zai)内(nei)部传递时不叠加内(nei)部度量;
类型(xing)2:在内(nei)部叠(die)加(jia)度量; 默认
若网络中(zhong)存在(zai)多(duo)台边(bian)界路由器,均进行重发布行为,建(jian)议修改为类型1;
r9(config-router)#default-information originate metric-type 1
r9(config-router)#default-information originate always 强制向内网发布缺(que)省路由信(xin)息(xi);
7类缺省–ASBR上通过其他协议学习到的缺省导入OSPF,同时所导入区(qu)域为NSSA区(qu)域;
r12(config)#router ospf 1
r12(config-router)#area 2 nssa default-information-originate
注:若(ruo)一台设备(bei)同时学习多种缺省; 内部优于(yu)(yu)外部 3类(lei)优于(yu)(yu)5/7类(lei);
若5类(lei)和7类(lei)相遇,先(xian)比度(du)(du)量,小(xiao)优;若度(du)(du)量一致(zhi)那么5类(lei)优于7类(lei);