• OSPF(Open Shortest Path First,开放最短路径优先)是典型的链路状态路由协议,是目前业内使用最广泛的IGP之一;
•路由器之间交互的是链路状态信息,而不是直接交互路由;
•每台OSPF路由器都知晓网络拓扑结构,采用SPF算法计算达到目的地的最短路径;
•支持VLSM,支持手工路由汇总;
•多区域的设计使得OSPF能够支持更大规模的网络。
• 协议号:89,处于IP字段,没有用到TCP与UDP这2个协议,所以严格来讲OSPF也算是个3层协议。
• 更新方式:触发更新+周期更新(30min)
• 管理距离:110
• 使用组播地址:所有路由器224.0.0.5,DR和BDR:224.0.0.6
OSPF要求每台运行OSPF的路由器都了解整个网络的链路状态信息,这样才能计算出到达目的地的最优路径。OSPF的收敛过程由链路状态公告LSA(Link State Advertisement)泛洪开始,LSA中包含了路由器已知的接口IP地址、掩码、开销和网络类型等信息。收到LSA的路由器都可以根据LSA提供的信息建立自己的链路状态数据库LSDB(Link State Database),并在LSDB的基础上使用SPF算法进行运算,建立起到达每个网络的最短路径树。最后,通过最短路径树得出到达目的网络的最优路由,并将其加入到IP路由表中。
Down
路由器未运行OSPF
Init
路由器收到对方发过来的Hello中没有自己的route-id
2-way
路由器收到对方发过来的Hello中有自己的route-id,表示已经双向通信
如果是广播网络,则等待40s,等所有路由器的hello包都充分交换,最大作为DR,过时不候
Ex-Start
路由器发送空的DBD(链路状态描述信息)用于选举谁来主导整个过程,比较Router-id大
L(置位表示选举未完成)、M(置位表示这不是最后一条消息)、MS(置位表示自己的Master)
Ex-Change
路由器互相交换DBD,(Slave先把自己的DBD发给Master)
比对哪些LSA是自己没有的
Loading
向对方发送LSR请求那些自己需要的LSA
接受对方的LSU,并且回复LSAck确认
Full
完成建立过程
Hello 建立和维护OSPF邻居关系。
DBD 链路状态数据库描述信息(描述LSDB中LSA头部列表)
LSR 链路状态请求,向OSPF邻居请求链路状态信息
LSU 链路状态更新(包含一条或多条LSA)
LSAck 确认报文
MA(Mut- Access)多路访问网络有两种类型:广播型多路访问网络(BMA)及非广播
型多路访问网络(NBMA)。以太网是—种典型的广播型多路访问网络(见上图)。
在MA网络中每台SPF路由器需与其他的所有路由器建立OSPF邻居关系,这就导致网络中存在过多的OSPF邻接关系。
当拓扑出现变更,网络中的LSA泛洪可能会造成带宽的浪费和设备资源的损耗。
为减少MA网络中的OSPF泛洪,OSPF会在每一个MA网络中选举一个指定路由器DR
( Designated Router)和个备用指定路由器BDR( Backup Designated Router)
MA网络中的路由器都只与DR、BDR建立OSPF邻接关系, DRother之间不会建立全毗邻的OSPF邻接关系,只是停滞在2way状态。
BDR会监控DR的状态,并在当前DR发生故障时接替其角色。
选举规则: OSPF DR优先级最高的接口成为该MA的DR,如果优先级相等(默认为1),则具有最高的 OSPF Router-ID的路由器(的接口)被选举成DR,并且DR具有非抢占性。
• 在MA网段建立OSPF邻接关系是DR和BDR的选举原则
• 1、参与该MA网段的路由器接口的OSPF优先级,越高越好(0-255),0没有资格选举
• 2、该MA网段所连接的路由器的RID,越高越好。
•(1)DR、BDR无法被抢占
•(2)DR挂了BDR会立即抢占成为新DR,而新的BDR通过在所有DRother之间重新选举得出
•(3)DR和BDR都是路由器的接口的概念,每个网段的DR和BDR都是通过相同的机制单独选举的
•(4)在Ethernet环境建议拥有DR了BDR实现备份,而在FR环境中,只能是HUB节点成为DR,任何spoke节点都不能成为DR或BDR
•(5)如果一个MA网段没有DR和BDR,没有任何邻接关系存在也不会有任何LSA的传递
• R2(config-if)#ip ospf priority 0改优先级
路由器感知到拓扑变更,向组播地址224.0.0.6发送LSU
DR、BDR监听2240.06这一组播地址
DR向组播地址224.0.0.5发送更新以便通知其它路由器
所有的OSPF路由器监听224.0.0.5这一组播地址,便能收到DR泛洪的LSU
路由器收到包含变化后的LSA的LSU后,更新自己的LSDB,对更新的链路
状态数据库执行SPF算法,必要时更新路由表
重要类型:
1.Router 用于描述自己借接口的链路相关信息 本区域传递
2.Network DR产生的,用于描述所在网段的信息 本区域传递
3.Summary ABR产生的,用于搬运区域之间的路由 OSPF全境传递
4.Summary ASB ABR产生,用于告知内部如何离开本AS OSPF全境传递
5.Type-5 ASBR产生,用于描述AS外部路由信息 OSPF全境传递
7.Type-7 NSSA内部的ASBR产生,用于描述AS外部路由信息 只在NSSA中传递
LSA类型1-Router LSA
• rotuer LSA
• 传播范围:只能在一个AREA内传递,不能穿越ABR
• 通告者:每台属于一个区域的路由器都会基于该区域通告一条1类LSA
• 包含内容:拓扑信息,其中描述该路由器所有宣告进该区域的链路的前缀,掩码,网络类型以及度量值。
• LINK-ID:通告该LSA的路由器的RID
• ADV ROUTER:通告该LSA的路由器的RID
Network LSA
• 传播范围:同1类
• 通告者:MA网段中的DR
• 包含内容:纯拓扑信息,包含了该MA网段直连的所有路由器的RID信息,该MA网段的掩码
• Link-id:该MA网段DR接口的IP地址
• ADV ROUTER:该DR的RID
•1类2类组建了一个区域内的OSPF条目
Summary network LSA
• 传播范围:除了该区域外的整个OSPF路由选择域
• 通告者:ABR
• 包含内容:一条3类LSA包含一条OSPF域间路由,O IA
• link-id:3类的LSA路由的前缀
• ADV ROUTER:ABR的RID. 3类LSA在OSPF路由选择域内传递的时候为了保证可达性,每跨越一个ABR都会自动改写为该 ABR的RID
• 把1类2类转化为3类(路由信息)再转发到整个OSPF区域
区域间
• show ip ospf border-routers查看角色
Summary ASB LSA
• 传递范围:除了ASBR所在区域,其他的整个路由选择域
• 通告者:和ASBR在同一个区域的ABR路由器
• 包含内容:纯拓扑信息,描述了ASBR所在位置
• link-id:ASBR的RID
• ADV router:通告者ABR的RID。并且该值每跨越一个ABR都会被改变,同3类LSA
external LSA
• 传递范围:整个OSPF路由选择域
• 通告者:ASBR
• 包含内容:纯路由信息,一条OSPF域外路由对应一条5类LSA
• link-id:域外路由的路由前缀
• ADV router:ASBR的RID。该LSA在OSPF域内传递的时候,ADV Router不会发生任何改
O OSPF区域内路由
O IA OSPF区域间路由
O E1 1类外部路由(每经过一台路由器,都加上metric),此类型在NSSA中显示为O N1
O E2 2类外部路由(在OSPF境内始终是原metric),此类型在NSSA中显示为O N2
如果从四种类型中学到同一条路由:O>O IA>O E1>O E2
• 域间汇总:需要在ABR上部署,实现对3类LSA的汇总传递
• 域外汇总:需要在ASBR上部署,实现对5类LSA的汇总传递
路由汇总-域间汇总
ip ospf network point-to- point//还原环回口掩码
R1(config- router)#area 0 range 202.10.8.0
255.255.252.0
区域汇总:
将某个区域内部路由的1-2类LSA转换成3类LSA通告出去
路由条目在哪个区域就在哪个区域的ABR上汇总本AREA ID
路由汇总-COST/not-advertise
• R1(config-router)#area 0 range 202.10.8.0 255.255.252.0 cost 90//增加度量值
• R1(config-router)#area 0 range 202.10.8.0 255.255.252.0 not-advertise//不通告路由,被过滤
路由过滤-前缀列表
• ip prefix-list LIST permit 1.2.3.0/24 上面的例子中指定匹配网段1.2.3.0,并且指定子网掩码为255.255.255.0,这个列表不匹配1.2.0.0/24,也不匹配1.2.3.4/32
• ip prefix-list LIST permit 0.0.0.0/0 上面的例子指定匹配网段0.0.0.0和子网掩码0.0.0.0。这个列表用来匹配默认路由
• ip prefix-list LIST permit 1.2.3.0/24 le 32 上面的例子表示前缀1.2.3.0前面的24位必须匹配。此外,子网掩码必须小于或等于32位
• ip prefix-list LIST permit 0.0.0.0/0 le 32 上面的例子意味着0位需要匹配,此外子网掩码必须小于或等于32位。因为所有的网段的掩码都小于或等于32位,并且一位都不用匹配,所以这句话等于permit any`
• ip prefix-list LIST permit 10.0.0.0/8 ge 21 le 29 上面的例子说明网段10.0.0.0的前8位必须匹配,此外子网掩码必须在21位和29位之间。
• 该拓扑中,8、9两个网段连接的是PC,而10、11网段连接着重要的服务器,现希望过滤掉8、9两个网段,10、11网段放行。
• ip prefix-list abc seq 10 deny 202.100.8.0/23 ge 24 le 24
• ip prefix-list abc seq 20 permit 0.0.0.0/0 le 32
• R1(config-router)#area 0 filter-list prefix abc out
路由汇总-域外汇总
R4(config-router)# summary-address 192.168.8.0
255.255.252.0
• R3(config-if)#IP OSpf COst 20更改接口度量
• R3(config-router)#auto-cost reference-bandwidth 10000
• 现今网络环境接口带宽奇大无比,原OSPF度量值过于小,千兆万兆无法很好区分,因此,建议将OSPF度量值放大,将分子原本为百兆更改为万兆或千兆。
STUB区域
• stub区域里不能有ASBR,只能有ABR.
• 不允许用虚链路穿过它们.
Stub中的路由器只接受LSA1、2、3
• 由ABR路由器产生默认路由向整个stub area中的路由器公告。
• Area 0不可以变成stub区域。
• STUB区域中所有路由器配置为STUB
• STUB区域中有多台ABR,有可能会使用次优路径
STUB区域:如果将一个OSPF区域部署为STUB,该
区域的ABR会将入区域方向的4/5类LSA同时过滤,
同时该ABR会主动向区域内部发送一个OA的
0.0.0.0/0的3类缺省路由, SEED METRIO为1
area 1 stub:
ABR上修改area1 default-cost 36防次优路由
Totally stubby
ABR: area 1 stub no-summary
totally stub区域
在STUB区域的基础之上ABR路由会同时将3/4/5类入向传
递的LSA过滤掉,同时会主动向该区域注入一条0.0.0.0/0
O IA的缺省路由, SEED METRIC缺省也为1
Router(config-router)#area area-id nssa
一旦某区域设置为NSSA区域后,该区域的所有路由器都必须做相同的上述配置
Router(config-router)#area area-id nssa default-information-originate
默认NSSA的ABR是不会向NSSA区域宣告一条默认路由
• AREA 2 NSSA//配置命令
NSSA描述
• 一个区域被置为NSSA,该区域内可存在ASBR,ASBR重分发进入的路由以7类LSA的形式在NSSA区域中传递。当该7类LSA通过ABR传递至其他区域时,该ABR会充当转换器转换7类LSA为5类的LSA发送到其他区域,且该NSSA区域的ABR会阻止外部的4/5类LSA进入NSSA区域,但坑爹的是,该ABR不会主动下放默认路由给NSSA区域,因此,为了实现路由可达性,需要在该ABR上配置area area-id nssa default-information-originate命令来为NSSA区域的路由器下放一条ON2,seed metric为1的默认路由。
• 如果该NSSA区域中的ABR同时为ASBR,且重分发工作已完成,该路由器会以5类LSA的形式发送给其他区域,以7类的LSA形式发送给NSSA区域,为了进一步优化NSSA区域,不希望重分发的外部路由进入NSSA区域,需在该ASBR上配置area area-id nssa no-redistribution命令
• 若外部路由协议为OSPF,该OSPF路由无法穿越NSSA区域到达其他内部区域。
不规则设计类型
2、被分割的区域0
不规则区域解决方案
• 解决方案
• 1.在出现问题的ABR上(没有和AREA 0直连的ABR上),使用双OSPF进程,并执行单点双向重分发
• 2、在出现问题的ABR上建立一个TUNNEL链路连接到离其最近的AREA 0中的ABR路由器上。在这两台ABR上对TUNNEL配置IP地址为同一个IP网段,并将其宣告进OSPF区域0.
tunnel的源地址与目的地址必须有路由可达,且不可将源与TUNNEL的IP地址被同时宣告进OSPF,建议使用静态路由,VPN点到点,没有DR、BDR
• 3、使用VIRTUAL-LINK在出问题的ABR以及离他最近的AREA 0 中的ABR上部署
area 2 virtual-link 1.1.1.1
area 2 virtual-link 3.3.3.3
OSPF链路级认证配置
• R3(config-if)#ip ospf authentication-key cisco
• R3(config-if)#ip ospf authentication
• 启用链路级明文认证,链路两端配置
• R2(config-if)#ip ospf message-digest-key 12 md5 cisco key-id两端必须一致
• R2(config-if)#ip ospf authentication message-digest
• 启用链路级密文认证,链路两端配置
OSPF区域级认证配置
• R2(config-if)#ip ospf authentication-key CCIE
• R2(config-router)#area 2 authentication
• 启用区域级明文认证,区域认证需在该区域所有路由器配置认证,不同链路间可使用不同密码。
• R2(config-if)#ip ospf message-digest-key 12 md5 CCIE
• R2(config-router)#area 2 authentication message-digest
• 启用区域级密文认证,两端配置
1、R1(config-router)#default-information originate
Ip route 0.0.0.0 0.0.0.0 loo 0
该方式本地必须存在一条全0路由
2、R1(config-router)#default-information originate always
不论本地是否拥有默认路由都会下放
• R1(config-router)#passive-interface loopback 0
• 将接口置为PASSIVE接口,将不接收所有OSPF报文,与EIGRP的被动接口类似