Network-3
ospf开放最短路径优先
链路状态路由协议,IGP
无类路由协议
基于ip协议,协议号89
ospf使用组播和单播更新
224.0.0.5,224.0.0.6
AD = 110
支持明文和md5认证
【RFC2328】
版本:
ospfv2 = ipv4
ospfv3 = ipv6
ospf因为open,所以每个厂商都会用,而且算法优良,收敛迅速
ospf三张表:
邻居表:
记录了ospf的所有邻居关系,而且只能直连建立邻居,因为组播224.0.0.5的ttl=1
拓扑表:
也叫LSDB(链路状态数据库),装载了所有路径信息
路由表:
ospf转发数据库,通过spf算法算出来的最佳路径
提示:
链路状态知道的内容比距离矢量更丰富
ospf采用层次化网络设计:
引用了分area的概念
建议分成2个区域
1.骨干区域,也叫传输区域,也叫area 0(backbone area)
2.常规区域(nonbackbone areas)
备注:一个成熟的ospf网络设计,一定是骨干牵着一堆非骨干的
层次化设计好处:
1.减少路由表条目
2.可以把拓扑的改变限制在一个区域
3.lsa泛洪可以限制在一个区域的边界
完全工作在骨干区域的路由器叫backbone router
工作在骨干区域和非骨干区域中间的路由器(ABRs)
ospf的5个包:
1.hello 包,发现邻居
2.database description(DBD)数据库描述包
3.link-state request(LSR)链路状态请求包
4.link-state update(LSU)链路状态更新包
5.link-state acknowledgement(LSACK)回复
ospf的邻居状态机:
1.down
2.init
3.two-way
4.ex-start 选举DR BDR
5.exchange 谁的router-id大谁做主,主先发LSDB,是摘要信息
6.loading
7.full
【attempt只出现在NBMA网络,尝试状态】
down—-init—–two-way——-ex-start——–exchange——-loading———-full
|——hello——-| |—-DBD———| |–LSR,LSU,LSACK-|
配置
(config)
router ospf [进程号]
进程号随便写
router-id [路由器router-id]
一定要写!!!!!
net [ip] [反掩码] area [区域]
宣告
sh ip os nei
查看邻居表
sh ip os da
查看拓扑表
sh ip rou
查看路由表
O = ospf同区域内路由
O IA = ospf域间路由(和我不是一个area)
sh ip os bor
看谁是我这个area的ABR
sh run | se os
查看ospf配置
router-id细节:
唯一标识一台ospf设备的东西
1.手动指定的最优先
2.选取环回口中最大的
3.选取物理地址中最大的
ospf的router-id一旦选取了就会很稳定如果需要修改或者重新配置
clear ip os pro
之后写yes
如果网络中出现2个一样的router-id,那么就无法建立邻居
DR,BDR,DRother选举:
DR指定路由器(designated router)
BDR备份指定路由器(backup designated rotuer)
(减少更新次数)
DR,BDR选举规则:
1.比优先级,越大越优先,cisco默认优先级(priority)都为1,可以设置0-255,如果设置为0就是不参与选举,如果设置为255,就意味着最有可能成为DR
2.优先级一样就比较router-id,越大越优先
DR,BDR特点:
1.DR,BDR一旦选举完成,修改优先级就没用,除非你重启
2.如果DR挂了,BDR自动成为DR,哪怕在area中有人优先级比他更高,然后在若干个DRother中选一个当BDR
3.DR,BDR如果想重新选举,就要重置这两台设备上的进程,在DRother上做重置没用
4.DRother之间互相为two-way状态
5.DR,BDR概念是接口的概念,和路由器无关
6.DR,BDR是不同网段分别选举的
(config-if)
ip os pri [0-255]
调接口的优先级
ospf通过hello包建立邻居:
1.每隔10s:在点到点或者广播网络
2.每隔30s:其余的
sh ip os int [接口]
查看ospf的接口信息
在ospf网络中,dead时间是hello时间的4倍
(config-if)
ip os hello [多少秒]
修改hello时间,dead会随之修改
ip os dead [多少秒]
强改dead时间
ip os dead mini hello [除数]
把dead时间修改,hello会被改成毫秒级(1/除数),dead永久为1s
LSA(link state advertisement)链路状态通告
LSDB放的就是LSA
LSA-1:Router LSA
通告自己的RID
在一个ospf的area里,有几个设备就有几个1号lsa
有一台或者零台设备和该设备相连,叫做stub network(末节网络)
LSA-2:network lsa
LSA-2只有DR一人通告,通告的内容是DR的router-id
lsa-2是对1号的一个补充
不管是1号还是2号,都是一个area内的!!!
LSA-3:summary network lsa汇总网络lsa
由ABR通告的
有多少个O IA的路由就有多少个LSA
LSA-5:external lsa外部lsa
由ASBR通告的
有几个O E2就有几个5号lsa
在其他路由协议和ospf之间的路由器叫ASBR(自治系统边界路由器),自己area内的可以通过1号lsa知道谁是ASBR
LSA-4:summary ASBR lsa
告诉其他区域路由谁是ASBR
通告者是ABR,通告内容是谁是ASBR
sh ip os da router
查看1号lsa
sh ip os da net
查看2号lsa
sh ip os da sum
查看3号lsa
sh ip os da ext
查看5号lsa
sh ip os da asbr
查看4号lsa
总结
lsa-1:
直连网段,直连路由器(邻居),直连网络类型,虚链路,描述的是直连信息
lsa-2:
在MA网络,我们的DR(DR通告)
lsa-3:
描述域间路由,目标网络,子网掩码,cost(ABR通告)
lsa-5:
描述普通区域内的外部路由(ASBR通告)
lsa-4:
描述ASBR所在位置(ABR通告)
-—————
ospf的组播:
所有路由器向DR发送使用224.0.0.6(DR,BDR监听)
DR向所有路由器发送使用224.0.0.5(所有ospf路由器监听)
(如果网络中不选择DR BDR,就统一使用224.0.0.5)
ospf认证:
默认情况不做认证
支持区域和链路的明文,密文认证
链路明文认证:
(config-if)
ip os authentication-key [密码]
在接口下设置密码
ip os authentication
声明使用明文认证
链路密文认证:
(config-if)
ip os me 1 md [密码]
ip os authen me
声明使用密文认证
区域密文认证:
ip os me 1 md [密码]
router os 1
area [区域] authen me
声明区域密文认证
区域明文认证:
(config-if)
ip os authentication-key [密码]
router os 1
area [区域] authen
密文的key最多8个字符串,密文16个
链路认证和区域认证同时存在,以链路为主
不规则区域:
(config-router)
area [要穿越的区域] vir [目标ABR的RID]
虚链路,逻辑上增加area0的范围
网络类型:virtual link
虚链路术语DNA
sh ip os vir
查看虚链路情况
早期会比较hello时间,后面直接没了,最终达到full状态不进行hello包发送
虚链路认证:
(config-router)
area 1 vir [对端RID] authen me
area 1 vir [对端RID] me 1 md [密码]
路由汇总:
ospf的路由汇总只能在abr和asbr上做
如果在abr上做,可以汇总域间和域外路由
如果在asbr上只能汇总域外
(域内路由无法汇总)
域间汇总
(config-router)在abr上做
area 1 range 10.1.96.0 255.255.240.0
汇总出现在area1中的10.1.100.0 10.1.105.0/24两条路由,到area0中
域外汇总
(config-router)在asbr上做
summary-address 10.1.96.0 255.255.240.0
ospf特殊区域:
1.stub末节区域
不能接收lsa-5和lsa-4,只有域内和域间路由
(config-router)
area 1 stub
本区域所有路由器都要配置
abr会自动产生一条3号lsa的默认路由
在abr上
area 1 def 15
修改默认路由的cost值
2.totally stub area完全末节区域
不能接收lsa-5,4,3,也就是只有域内路由
(config-router)abr上添加
area 1 stub no-sum
abr会自动产生一条3号lsa的默认路由
###【配置成为stub或者totally stub的条件】
1.如果有多个abr并且允许次优路径产生
2.该区域所有路由器必须配置成stub路由器
3.该区域不允许出现asbr(也就是该区域不允许出现重发布操作)
4.骨干区域不能成为stub
5.stub中不允许出现虚链路!
3.NSSA(not-so-stubby areas)不要这么末节的区域
不允许接收lsa-5,4,abr不会产生默认路由!
(config-router)
area 1 nssa
要在area1所有设备上配置
需要在abr上下放一个默认路由
(config-router)abr
area 1 nssa def
产生一条O*N2的默认路由
阻止重发布进入nssa区域
(config-router)
area 1 nssa no-redis
4.totally NSSA
把lsa-3,4,5都过滤掉,abr下放默认路由
abr上增加
(config-router)
area 1 nssa no-sum
nssa和stub不同
nssa可以出现asbr,stub不能
nssa的外部路由是lsa-7描述的,使用sh ip os da nssa-ext可以看到,也就O N路由,只会在nssa区域里出现,在nssa的abr上进行Lsa-7=》Lsa-5的转换,外部路由接收到的是lsa-5,也就是O E2,此时ABR多了一个形象叫ASBR
(totally stub和totally nssa是cisco私有)
cost:
(config-if)
ip os co [cost值]
修改自己的
lsdb过载保护:
(config-router)
max-lsa ?
默认路由:
强制下放默认路由
(config-router)
default-information originate always metric 3
有就下放没有就不下放
default-information originate
负载均衡:
(config-router)
maxi [多少条]
关闭发hello包的能力:
一般用在连接终端的设备上
(config-router)
passive [接口]
A—5—-B—-20—-D
|—30—C—-10—-|
ABC是一个ospf内的,D是外部,如果采用O E1来算,那么A的ASBR就是B,如果采用O E2来算的话,A的ASBR就是C
O E1是我到目标的总路径
O E2是下一跳到目标的路径
修改AD:
(config-router)在ospf和eigrp的边界上
distan 100
此时边界路由器的AD变成100
distan 88 3.3.3.3 0.0.0.0
针对某个通告给我的人修改
distan os ext 99
专门修改lsa-5和7的ad值
分发列表:
acce 10 deny 10.1.100.0
acce 10 per any
(config-router)
distr 10 in [接口]
该路由器无法收到deny的目标,但是lsa还会传递!!!所以其他路由器依然不会deny
注意
ospf重发布除直连以外的任何路由都要加sub,否则会丢失对面的掩码