把图片加上了(一张张加的,感觉比写东西累多了),格式还是没办法复制。有没大神知道一件上传,复制的?
《OSPF 》
Part Ⅰ.概述
全称
Open shortest path first
版本
版本
协议号:89
AD值:110
路由器的角色
Internal router:所有接口都属于一个区域的路由器
Backbone router:至少有一个接口在area 0的路由器
ABR:连接多个或一个区域到area 0 的路由器
ASBR:将外部网络重分布到OSPF中的路由器,未进行重分布不算ASBR
Router-ID
没有活动的IP地址的无法启动OSPF
Router-ID 选择
1. 手动选择,可以随意指定
2. 最大的环回口地址
3. 最大的物理接口地址
Router-ID意义
router-ID是OSPF路由器的标志,每个OSPF进程对应一个不同的router-id
Router-ID稳定性
1. 出现更优的接口地址,不会更改
2. 手动指定需要重启OSPF进程才能生效
Clear IP OSPF process
路由器接口角色
意义
在MA网络中,形成更少的邻接关系。
DR:存在MA网络中,根据接口优先级来选举,侦听224.0.0.6,224.0.0.5处理且响应,发送地址224.0.0.5
BDR:存在MA网络中,根据接口优先级来选举,侦听224.0.0.6,224.0.0.5处理但不响应,发送地址224.0.0.5
DR-other:存在MA网络中,除了DR和BDR外的路由器,侦听224.0.0.5,发送地址224.0.0.5,225.0.0.6
计时器
Wait time :在该段时间内进行选举,若未选出,当前接口直接成为DR。
Wait time=dead time
优先级
范围:0-255.越大越优,0为放弃,该接口直接为DR-other
Ip ospf priority xxx
接口优先级一致,比较R-ID,越大越优
稳定性
确认接口角色后,有更优的路由器加入网络也不会改变DR,和BDR
SW3(config)#interface e0/0
SW3(config-if)#ip ospf priority ?
<0-255> Priority
SW3(config-if)#ip ospf priority 20
OSPF 计时器
Hello interval /dead interval
根据OSPF网络类型的不同而不同
Wait time
取值等于dead interval ,用于 选举DR和BDR
Retransmit interval
默认5S,对于需要ACK的消息,未收到ACK,每隔一个retransmit时间来重传。
IP ospf retransmit-interval xxx
Transmit delay
默认1S,发送LSA时,AGE的累加值,相当于老化时间。
IP ospf transmit-delay
LSA refresh time
LSBD中某个LSA存在30min后,会将该LSA泛洪一次,并且将该LSA序号加1,老化时间重置为0
Max age time
默认为60S , 在该时间内LSA未被刷新,则将该LSA在LSBD中 删除
Part Ⅱ.基础
一.报文类型
报文头部
1. 作用
2. 字段分析
1. Version:版本不一致无法
2. Message:所带的报文类型
3. Source ospf router:RID,必须不一致,一致会直接丢掉报文。
4. Are ID:接口所在的区域,区域不一致无法建立邻居
5. Auth type :认证的报文,认证不一致无法建立邻居
6. Auth data :具体认证的数据
Hello报文
1. 作用
1. 发现和建立OSPF 邻居
2. 维护OSPSF 邻居关系
发送地址:
224.0.0.5 ,单播
2. 字段分析
1. Network mask :
a) 作用:通告接口子网掩码
b) 取值:发送hello包接口的IP掩码
c) 要点:在P-P网络中,不一致也能建立邻居关系。在MA网络中必须一致
2. Hello interval :
a) 作用:hello报文发送的时间间隔
b) 取值:由接口的网络类型决定。可手工指定
3. Option:
a) P:对于NSSA的LSA,当P bit为1时,ABR将LSA-7转化为LSA-5,为0时,不会进行转化
N:当接口所在区域配置为NSSA时,该bit置1,通常该bit位为0
b) E:External routing capability ,表示当前区域能否携带外部路由,1携带,0不能携带
4. Router priority : 接口优先级,由于DR和BDR的竞选,
5. Dead interval : 最大保活时间,一般为4倍的hello interval 超过这个时间未收到hello报文,邻居将会down
6. DR,BDR : DR和BDR的RID
实验探究
1. Network mask
13.1.1.1 接口掩码为/24
OPTION字段
R3
router ospf 100
router-id 3.3.3.3
area 10 stub
area 11 nssa
·
区域为stub 区域时,E为0,不一致无法建立邻居
区域为NSSA时,E为0,N为1,不一致无法建立邻居
结论
当配置特殊区域时,需要两边一致,否则无法建立邻居关系。
DBD(database description)
1. 作用
第一个DBD用来建立主从关系,不包含LSA头部信息。
接下来的DBD会包含LSA的头部信息,为接下来发送LSR做铺垫。
发送地址:单播
2. 字段分析
MTU: MTU值必须要一致。
DB description :用来确立主从关系。
LAS-type : LSA头部信息,包含link state ID 和AD-RID
LSR(link-state request)
作用
核对LSA头部信息之后,向邻居申请自己缺少的LSA的详细信息。
发送地址:单播
字段分析
LSU(link-state update)
作用
根据收到的LSR头部信息,提供详细的LSA信息。
LSA(link-state ack)
作用
对于收到的LSU,回复一个ACK信息。
二.邻居建立过程
Down:OSPF刚起来,还未收到任何OSPF报文
Attempt :用neighbor 指邻居时候出现,只存在于NBMA和P-MP网络
Init:路由器收到hello包,但是未包含自己的RID
Two-way :收到邻居的hello包中包含自己的RID,此阶段会进行DR和BDR的选举
Exstart :收到第一个DBD报文,建立了DBD交换中的主从关系,此阶段会关注接口的MTU值
接口忽略MTU值: ip ospf mtu-ignore
Exchange :收发后续的DBD报文,开始交换LSA的头部信息
3. Slave先发送第一个带有LSA头部的DBD消息,
4. Master将DBD中LSA头部加入到数据库摘要列表中,对于感兴趣的信息,加入到链路状态请求表中。向slave发送带有LSA头部的DBD信息。
5. Slave 将DBD中LSA头部加入到数据库摘要列表中,对于感兴趣的信息,加入到链路状态请求表中。向master发送带有LSA头部的DBD信息,MORE bit 置位0,标明发送了同步的消息
6. Master 收到同步的DBD,发送一个more bit 置位0的DBD,标明为最后一个DBD。开始发送LSR
7. Slave 数据库同步完成,将MASTER 置为loading,slave发送DD回复Master发送的DD,开始发送LSR,以LSU回复mater的LSR
Loading:发送LSR,LSU,LSack,同步数据库。
Full:OSPF路由信息交换完成,收敛完成。
Part Ⅲ.
区域划分
Backbone:骨干区域,
Non-backboe :非骨干区域
Standard:常规区域
Stub:边缘区域,过滤掉4和5类的LSA
NSSA:not so stub area
T-stub
T-NSSA :
Stub area
配置stub
SW8(config)#router ospf 100
SW8(config-router)#area 10 stub ?
no-ext-capability Do not send domain specific capabilities into stub area
no-summary Do not send summary LSA into stub areaSW8(config-router)#area 10 stub
配置T-stub
router ospf 100
area 10 stub no-summary
Stub 区域:ABR上将4类和5类LSA过滤掉,并且区域内的路由器产生一条通往ABR上的(O*IA)默认路由
O*IA 0.0.0.0/0 [110/11] via 38.1.1.3, 00:00:00, Ethernet0/0
Total stub 区域:ABR进一步把3类LSA过滤掉,并且区域内的路由器产生一条通往 ABR的(O*IA)默认路由
O*IA 0.0.0.0/0 [110/11] via 38.1.1.3, 00:00:03, Ethernet0/0
1. stub 区域内所有路由器都需要配置为stub
2. 区域内不允许出现ASBR
3. 一旦在某台设备上配置stub后,从该设备对应接口发送的Hello packets中,Options E bit将被置为0(复位),该比特位被纳入邻居关系审核机制
*Dec 26 05:04:52.780: %OSPF-4-ASBR_WITHOUT_VALID_AREA: Router is currently an ASBR while having only one area which is a stub area
常规区域的database的和路由表
配置为stub区的database的和路由表
配置为T-stub区的database的和路由表
NSSA area
概述
NSSA(not so stubby area)
过滤掉LSA-4,5。由于存在ASBR,外部路由以LSA-7存在与区域内,由ASBR产生。ABR收到后,转换为LSA 5再扩散到其它区域。LSA 3以明细的方式进出NSSA.
NASS区域内的外部路由为 O N2 10.10.10.10 [110/20] via 39.1.1.9, 00:01:35, Ethernet1/1
T-NSSA
类似于T-Stub,此时,LSA-3 inter-area路由将不会进入NSSA,而是以一条LSA-3缺省取代。由ABR产生。
O*IA 0.0.0.0/0 [110/11] via 39.1.1.3, 00:00:05, Ethernet0/0
1允许存在ASBR
2在ABR中将产生的LSA-7 转换成LSA-5
3其他区域的外部路由无法进入NSSA区域(因为其他区域过来的还是LSA-5)
4配置为not so stubby area后,设备发送的hello packets中Options字段E bit被置为0,N bit被置为1,要求区域内路由器都配置为NSSA
配置
NSSA
router ospf 100
area 11 nssa
T-NSSA
router ospf 100
area 11 nssa no-summary
SW9(config-router)#area 11 nssa ?
default-information-originate Originate Type 7 default into NSSA area
no-ext-capability Do not send domain specific capabilities into NSSA
no-redistribution No redistribution into this NSSA area
no-summary Do not send summary LSA into NSSA
translate Translate LSA
实验
正常区域下的database和IP route
配置为NSSA区域后的database和 ip route,NSSA区域内的ASBR会产生Type-7的LSA,Type-7只会在本区域内传播,经过ABR后,ABR会将Type-7转换为Type-5,在NSSA区域内看到的外部路由为O N 类型。
在其他区域看到的路由是OE2的,database上能看的Type-5的LSA,NSSA区的ABR会把Type-7的LSA转换成Type-5。
注意:
*表示产生该类型的缺省路由,(*)表示可选产生该类型的缺省路由
R1(config-router)#area 20 default-cost 200
配置LSA-3缺省路由的metric——适用于stub以及nssa no-summary
.NSSA多ABR情况
1.1 现象
当NSSA有多个ABR时,默认只有Router-ID最大的设备将LSA-7转化为LSA-5扩散至其他区域
注意:
当出现多个ABR时,看的并不是哪个ABR到ASBR更近,而是简单的比较Router-ID
示例:
如上图所示,R2作为NSSA中的ASBR,重分发RIP路由进入OSPF,由于R1的环回口网络也被宣告进了OSPF Area 0
此时,NSSA中有ABR R1以及ABR R3。由于R1的router-id更大,因此R1会产生AS External LSA,而R3不会
1.2 相关配置
Router(config-router)#area 1 nssa translate type7 always
在R3上通过此命令可以使得R3也产生LSA-5
LSA详解
概述
Type-5 没有区域概念,属于整个OSPF网络。
1,2,3,4,7,有区域概念。
9,10,11 被设计用于MPLS网络,暂时未实现。
LSA 头部
Age :老化时间,发送时Age会增加,在LSDB中也会增加。
Type:表明LSA的类型
Link state ID :每个类型的LSA表示的都不通
ADR:始发路由器的RID
Type-1 Router Links
作用和传播范围
作用:每台路由描述自己所连接的链路状态
产生者:每台路由器
传播范围:本区域内部,组播更新:224.0.0.5
报文格式
Link state ID :始发路由器的RID
ADR:始发路由器的RID
注:当DR的地址不一致时,该LSA被判定无效
ADv router is not-reacheable
相关命令
SW7#sh ip ospf database router
router LSA 描述的网络
Type-2 Network Links
作用和传播范围
作用:只存在于MA网络中,与DR相连的设备网络信息
产生者:DR
传播范围:本区域内部,组播更新:224.0.0.5
报文格式
Link state ID :DR的接口地址
ADV router :DR的RID
Network mask :MA网络中的掩码信息(router-LSA只给出了接口地址,没有掩码信息)
Attached router : MA网络中所有邻居的RID
相关命令
Type-3 Network summary
作用和传播范围
作用:ABR将区域内的信息传给其他区域
产生者:ABR
传播范围:整个OSPF网络,组播更新:224.0.0.5
报文形式
Link state ID :其他区域的OSPF路由前缀
ADV router :当前区域的ABR的RID
Network mask :路由前缀的掩码信息
Metric :ABR到目标网络的cost
相关命令
Type-4 asbr-summary
作用和传播范围
作用:ABR将ASBR的信息通告给其他没有ASBR的区域
产生者:ABR
传播范围:整个OSPF网络,组播更新:224.0.0.5
报文形式
Link state ID :ASBR的RID
ASV router :ABR的RID
Network mask : 0.0.0.0
Metric : ABR到ASBR的cos值
4类和3类的报文类似,只不过将网络信息改成了ASBR的RID
相关命令
Type-5 External link
作用和传播范围
作用:ASBR 将OSPF 外部的路由传递到OSPF网络
产生者:ASBR
传播范围:整个OSPF网络,组播更新:224.0.0.5
报文形式
Link state ID:ASBR所带外部网络前缀
ADV router :ASBR的RID
Network mask : 外部网络的子网掩码
E: 0为OE1 ,1 OE2。默认为OE2。
相关命令
Type-7 External link
作用和传播范围
作用:在NSSA中无法存在Tyep-5,所以在NSSA中的ASBR宣告的外部路由以Type-7存在
报文格式
除了forwarding address,其他和Type一致。
总结
路由
Metric
OPSF的metric值计算方式为COST值
Cost 值计算
计算公式: 10的8次方/接口带宽
计算方向:路由传递的入接口进行累加
修改cost值方式
1 直接在 接口下修改,影响的是该接口下收到的所有OSPF路由。
2 修改参考带宽,影响该OSPF进程下的所有接口cost,默认为10的8次方(100M),100M带宽为1,千兆为1,万兆为1,一般修改为10000(10G)
3 修改接口的参考带宽,影响该接口下所有有关带宽的值,不影响实际的接口带宽。
4 在NBMA和P2MP网络中指定邻居的cost值。
SW7(config)#router ospf 90
SW7(config-router)#auto-cost reference-bandwidth 10000
//单位为M
SW7(config-router)#auto-cost reference-bandwidth ?
<1-4294967> The reference bandwidth in terms of Mbits per second
修改入接口的cost值
SW7(config)#int e0/0
SW7(config-if)#ip ospf cost 1000
修改出接口的cost值
SW3(config)#int e0/1
SW3(config-if)#ip ospf cost 1000
SW7(config-if)#bandwidth ?
<1-10000000> Bandwidth in kilobits
inherit Specify how bandwidth is inherited
//接口下修改参考带宽,
SW7(config)#int e0/0
SW7(config-if)#bandwidth 10000000
//
SW7(config)#router ospf 90
SW7(config-router)#neighbor 37.1.1.3 cost ?
<1-65535> metric
*Dec 28 03:12:42.334: %OSPF-4-CFG_NBR_INVALID_NET_TYPE: Can not use configured neighbor 37.1.1.3 on Ethernet0/0. Neighbor command only allowed on NBMA and P2MP networks
路由选路
路由类型
常规区域内部
7.7.7.7 [110/1001] via 37.1.1.7, 13:56:22, Ethernet0/1
常规区域间路由
O IA 7.7.7.7 [110/1011] via 13.1.1.3, 13:56:40, Ethernet0/1
区域间的默认路由
O*IA 0.0.0.0/0 [110/11] via 38.1.1.3, 13:59:02, Ethernet0/0
常规区域外部路由
O E1 4.4.4.0 [110/40] via 13.1.1.1, 00:00:18, Ethernet0/0
O E2 24.1.1.0 [110/20] via 13.1.1.1, 13:55:49, Ethernet0/0
NSSA区域的外部路由
O N1 99.1.1.0 [110/30] via 39.1.1.9, 00:00:04, Ethernet1/1
O N2 10.10.10.10 [110/20] via 39.1.1.9, 13:56:22, Ethernet1/1
路由选路
O >O IA > OE1 >ON1 >OE2>ON2
路由发布
1.network
将自己所在接口的网络宣告进入OSPF网络
在接口下宣告
interface Ethernet0/0
ip address 37.1.1.7 255.255.0.0
ip ospf 90 area 1
在进程中宣告(nexus不支持该命令,只能在接口下宣告)
router ospf 90
network 37.1.1.7 0.0.0.255 area 0
2.重分布
默认都是OE2[C1] ()
SW2(config-router)#redistribute ?
application Application
bgp Border Gateway Protocol (BGP)
connected Connected
eigrp Enhanced Interior Gateway Routing Protocol (EIGRP)
isis ISO IS-IS
iso-igrp IGRP for OSI networks
maximum-prefix Maximum number of prefixes redistributed to protocol
mobile Mobile routes
odr On Demand stub Routes
ospf Open Shortest Path First (OSPF)
ospfv3 OSPFv3
rip Routing Information Protocol (RIP)
static Static routes
vrf Specify a source VRF
SW2(config-router)#redistribute static ?
metric Metric for redistributed routes
metric-type OSPF/IS-IS exterior metric type for redistributed routes
nssa-only Limit redistributed routes to NSSA areas
route-map Route map reference
subnets Consider subnets for redistribution into OSPF
tag Set tag for routes redistributed into OSPF
<cr>
3.发布默认路由
a) 默认路由无法直接重分布
b) Stub区和T-stub,T-NSSA区会自动生成一条默认路由指向ABR
c) default-information originate,重分布一条默认路由,需要在路由表上有该默认路由,类型为OE2,cost为1[C2]
O*E2 0.0.0.0/0 [110/1] via 12.1.1.2, 00:00:30, Ethernet0/0
//Always : 不需要路由表中存在默认路由就可发布。
SW2(config-router)#default-information originate ?
always Always advertise default route
metric OSPF default metric
metric-type OSPF metric type for default routes
route-map Route-map reference
<cr>
路由汇总
域内汇总
将区域内部的路由汇总后宣告到其它区域。
只会影响intra-area 的路由 ,不影响external和inter路由
进行区域汇总后,area 0 range 11.11.0.0 255.255.0.0。
区域内的路由将会汇总后发送到其它区域,外部路由不受影响。汇总的明细路由的type-3 LSA不会出现在LSDB中。
在汇总的ABR上回生成一条相应的指向null0的路由,该路由不会出现在LSDB中
RFC 1583中指定OSPF汇总路由的cost使用与其相关的明细路由中的最小cost值,而RFC 2328中指定为明细路由中的最大值
Cisco的设备默认兼容RFC 1583,可以手动修改以支持RFC 2328
在HUAWEI设备上始终取cost最大值
①Advertise/not-advertise
advertise是默认的属性,表示对指定范围的路由进行通告
not-advertise表示为不通告指定范围的路由,此时与其说是汇总,不如认为是在做路由过滤,指定范围内所包含的所有明细LSA,都不再以LSA-3的形式向其它区域扩散
②Cost
可以对汇总路由手动指定cost,如果不指定,则cost依据RFC 1583或2328相关说明来决定
(2)取消兼容RFC 1583
Router(config-router)#no compatible rfc1583
SW3(config)#router ospf 100[C3]
area 0 range 11.11.0.0 255.255.0.0
SW3(config-router)#area 0 range 11.11.0.0 255.255.0.0 ?
advertise Advertise this range (default)
cost User specified metric for this range
not-advertise DoNotAdvertise this range
<cr>
域外汇总
在ASBR将重分发的外部路由进行汇总
SW2(config)#router os 100
SW2(config-router)#summary-address 4.1.0.0 255.255.0.0
Not-advertise表示不通告指定范围的路由[C4] ,如果是LSA-5,也不再ABR上转化为LSA-7
NSSA-only表示关闭P bit,只会在NSSA区域传递,不会出去。
SW2(config-router)#summary-address 4.1.0.0 255.255.0.0 ?
not-advertise Do not advertise or translate
nssa-only Limit summary to NSSA areas
tag Set tag
<cr>
Null 0路由
4.1 目的
防止潜在的环路威胁
示例:
如图所示,当R1对于环回口路由进行汇总后,R2将学习到一条1.1.0.0/16的路由指向R1
如果此时R1的路由表中有一条缺省路由0.0.0.0指向R2,R1若不产生1.1.0.0/16指向Null 0的路由,则R2向R1发送1.1.1.4的packets时,就将造成环路
虽然不是必然会产生环路,但是对于每个支持汇总的路由协议而言,都有必要防止潜在环路威胁的发生
4.2 取消Null 0路由
Router(config-router)#no discard-route internal/external
Internal是针对区域汇总的路由而言的
External则是针对外部路由汇总所产生的Null 0路由
路由过滤
Filter-list
area 0 filter-list prefix Dwrt-Route in
在从其他区域向area0区域注入3类LSA时执行该前缀列表过滤器
如果是area 0 filter-list prefix filter-ospf out
从area 0向其他所有区域注入3类LSA时执行该前缀过滤器。
router ospf 100
area 0 filter-list prefix filter-ospf in
ip prefix-list filter-ospf seq 5 permit 7.7.7.7/32
SW3(config-router)#area 0 filter-list ?
prefix Filter prefixes between OSPF areas
distribute
distribute in方向只会影响本地路由表,不会影响LSA
router ospf 100
distribute-list prefix in-ospf in
SW3(config-router)#distribute-list ?
<1-199> IP access list number
<1300-2699> IP expanded access list number
WORD Access-list name
gateway Filtering incoming updates based on gateway
prefix Filter prefixes in routing updates
route-map Filter prefixes based on the route-map
SW3#sh ip prefix-list
ip prefix-list in-ospf: 1 entries
seq 5 permit 7.7.7.7/32
Out 方向只能过滤重分布时的路由
SW2#sh run | se ospf
router ospf 100
redistribute connected subnets
distribute-list prefix out-ospf out
ip prefix-list out-ospf seq 5 deny 22.1.1.1/32
ip prefix-list out-ospf seq 20 permit 0.0.0.0/0 le 32
认证
概述
type0表示无认证,
type1表示明文认证,明文认证只发送密码进行认证
type2表示MD5认证。MD5认证发送的是报文摘要
MD5的秘钥ID和秘钥都必须一致。
开启区域认证后,该区域所在的所有接口链路都会启用认证,默认秘钥为空,具体的秘钥需要在接口下敲入。
接口的认证优先于区域认证。
当认证作用范围相同时,后配置的认证方式会覆盖之前配置认证方式
配置
明文认证:
接口:
ip ospf authentication
ip ospf authentication-key cisco
区域
router os 100
area 1 authentication
MD5认证
接口:
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 123
区域:
router ospf 90
area 1 authentication message-digest
MD5认证
区域认证和接口认证同时存在,接口优先于区域