ospf术语
RID:在OSPF 网络中唯一区分一台路由器,如果有Loopback 接口并配有IP 则使用
         最大的IP 作为RID,没有则选择最大的物理接口IP。可以人为指定。
Neighbors:物理相连,相互可能交换Hello 且参数相同的路由器。
Adjanceny:邻接,OSPF 路由器只有形成邻接关系后才能交换LSA
LSA:链路状态通告,向邻居通告的拓扑信息
DR:指定路由器,在广播类型中为减少压力而产生的
BDR:备份指定路由器
Area:区域,若干个路由器的接口组成区域
Stub:存根,OSPF 中的一个特殊的区域
NSSA:不那么的存根,OSPF 中的一个特殊区域
Virtual‐Link:虚连接,如果一个区域没有直接和A0 相连,则须用虚连接。
Cost:OSPF 的Metric 值计算的原材料
ABR:区域边界路由器
ASBR:as边界路由器
链路:指定给任一 网络的一个网络或者路由器接口
router ID:一个用来标示此路由器的ip地址
 

ospf的特性:
1)由区域和as组成
2)允许可缩放性
3)支持vlsm/cidr
4)拥有不限的跳计数
5)开放的标准

1. 协议包类型:
HELLO:用来建立和维持邻居关系
DBD:用来检验路由器之间数据库并进行同步
LSR:链路状态请求,向邻居请求特定的LSA
LSU:链路状态更新,携带LSA 向邻居通告路由
LSAck:确认,对收到的LSA 进行确认
2. 封装:
被IP 直接封装,IP 协议号89,源IP 使用出口IP
目标IP :224.0.0.5(ALL OSPF ROUTERS),
224.0.0.6(ALL OSPF DR & BDR ROUTERS)

3. 工作流程:
三个阶段:交换阶段;路由发现阶段;路由选择阶段。
 
(一)、交换阶段:
通过Hello 形成正确的邻居,邻接关系
1) 启动OSPF 进程,从所有属于该进程的活动接口向外发送Hello 包
2) 对端路由器收到Hello 包后检查其中的参数,决定能否形成邻居
检查的参数有:
􀀶 区域号:相邻接口必须在同一个区域
􀀶 认证:相邻接口的认证必须相同
􀀶 Hello 间隔、失效时间:相邻接口的Hello 和失效时间必须一样
􀀶 存根标志:相邻接口的存根标志必须一致
3) 如果参数匹配,则放入邻居表,标志为Init 状态
4) 如果在邻居的Hello 里看到自己的RID,则标志为two‐ways 状态
5) Two‐ways 状态标志着邻居形成,邻接关系如何形成受制于网络类型
Point‐2‐point:邻居中自动形成邻接关系
Multi‐access:必须先在邻居中选举DR 和BDR,其他的为DROther,再决
定形成邻接关系
6) 定期发送Hello 包,维持邻居关系,默认为10S,失效时间40S


(二)、路由发现阶段:
形成完全相同的LSDB
1) 只有形成邻接关系才能进入路由发现阶段
2) 首先处于Exchange_start 状态,通过选举主从路由器解决DBD 可靠的问题,RID
高的成为主路由器,主路由器控制DBD 的序号
3) 一旦选举出主从路由器,则进入Exchange 状态,通过DBD 向邻接描述自己的
LSDB 中的LSA
4) 之后进入Loading 状态,通过LSR 向邻接请求,用LSU 携带LSA 用LSAck 对收
到的LSA 进行确认。
5) 最后LSDB 完全相同‐‐‐‐‐达到Full 状态!


(三)、路由选择阶段
生成用户所需的路由表
1) 只有LSDB 完全相同才会进入路由选择阶段
2) 每个路由器以LSDB 中的LSA 为原材料独立进行SPF 运算
3) 然后针对特定的目标网络把沿途路径Cost 相加,比较总和,总Cost 最小的就
是最佳路径
4) 拓扑发生变化,感知拓扑变化的router 产生新的LSA 洪泛到全网!收到新的
LSA 重新计算
5) LSA 年龄:3600S;每隔1800S 始发路由器重新生成新的LSA

 

1. 启动OSPF 进程:
Router ospf 23

2. 指定RID:
Router‐id *.*.*.*

3. 把相关接口放入OSPF 进程:
Network a.b.c.d *.*.*.* area #

4. 所有配置完成后:clear ip ospf process

5. 验证配置
Show ip route
Show ip ospf
Show ip ospf interface *
Show ip ospf neighbors
Show ip protocols
Show ip ospf database

6. OSPF 认证
􀂗 基于接口的明文认证:
Ip ospf authentication
Ip ospf authentication‐key ~

􀂗 基于接口的MD5 认证:
Ip ospf authentication message‐digest
Ip ospf message‐digest 1~255 md5 ~
7. 发布0/0
Default‐information originate metric # metric‐type 1/2
 

(一)、专线上的OSPF
协议:PPP、HDLC
类型:point‐to‐point
OSPF 邻居自动形成
OSPF 邻接自动形成

(二)、以太网上的OSPF
协议:Ethernet
类型:broadcast
以太网自动封装广播与组播,邻居自动形成
邻居形成邻接,在two‐ways 之后要在邻居中选举DR 和BDR,再决定如何形成邻接!

为什么选举DR、BDR?
因为以太网链路导致过多的邻居、邻接关系!n(n‐1)/2!,过多的邻接关系会导
致协议压力过大,所以在该链路上选举一个LSDB 的同步中心,就是所谓的DR,BDR 只
作为DR 的备份。默认选举时间40S。

 

怎样选举DR、BDR?
使用Hello 包进行选举,比较接口优先级;
接口优先级默认为1,取值范围【0~255】,0 表示不参与选举
取值越大越好,最大优先级的为DR,次高的为BDR
如果优先级相同,则比较RID,最大的为DR,次高的为BDR
新加入的路由器必须服从之前的选举结果
选举是由网络类型所决定的
为了加快收敛,可以人为改变接口的网络类型,抑制选举
Int f0/0;   
ip ospf network point‐to‐point

(三)、FR、ATM 上的OSPF
协议:Frame‐Relay、ATM
类型:NBMA(Non‐broadcast Multicast Access)
封装可能会出现问题:
MA 网络会导致DR、BDR 的选举
非全互联的PVC,DR 选举有问题,需手工指定DR
􀂗 手工修改分部的接口优先级为0
Int s0/0;
ip ospf priority 0

􀂗 或者修改网络类型
Ip ospf network point‐to‐multipoint
Ip ospf network point‐to‐point

(四)、接口的带宽
OSPF 把到目标沿途所经过的出口Cost 相加,选择总Cost 最小的作为最佳路径。
参考带宽:100Mbps
Cost=参考带宽/出口带宽
修改参考带宽:
修改接口Cost,控制出口
Int f0/0
Ip ospf cost 100

1. 为什么要多区域?
每个(OSPF)路由器要求都有完全相同的LSDB,这样导致LSA 的洪泛造成设备、协议
压力过大。
整个OSPF 也在同一个动荡域中,每个小变化就带来风吹草动。
把一个大的OSPF 网络划分成若干个小的相互独立的OSPF 网络就叫区域。
不同的区域通过AreaID 来区分。
每个区域是一个单独的动荡域,LSA 的洪泛在区域内不受阻碍,但通过区域的划分可以
控制LSA 的不必要洪泛。


2. 多区域的问题及解决方案
区域间的通讯由A0(骨干区域)来完成
要求所有区域都和A0 相连
每个区域把区域内拓扑通告给A0,再由A0 分发给其他区域
每个OSPF 进程只能有一个A0,保证其健壮性

3. 路由器的类型
区域和接口绑定
根据接口与区域的关系把路由器分类:
􀂗 内部路由器:
一个Router 的所有接口都在同一区域内
一个区域内所有内部Router 的LSDB 完全相同
􀂗 区域边界路由器:
Area Border Router(ABR)
接口分属于两个或两个以上的区域,并且至少有一个接口属于A0
作用:控制区域内LSA 的洪泛;区域间拓扑信息的可控洪泛
ABR 针对每个区域单独维护LSDB
􀂗 骨干路由器:
至少有一个接口属于A0
􀂗 自治系统边界路由器:
Autonomous System Border Router(ASBR)
通过重发布引入外界路由的路由器
负责沟通OSPF 网络与非OSPF 网络之间的路由传递
4. LSA 的类型
为了控制LSA,由不同的路由器产生不同的LSA
(一) 区域内路由
目标网络在同一个区域内(“O”)
􀂾 路由器LSA(LSA1)
每个OSPF Router 都会针对自己所在的区域内生成一个LSA1
用来描述接口状态,邻接关系,身份信息
LSA1 只能在区域内洪泛
􀂾 网络类型LSA(LSA2)
由DR 产生,描述所在的多路访问网络及所属的路由器
LSA1、LSA2 只在区域内洪泛,被ABR 阻止

(二) 区域间路由
目标网络在另一个区域(“OIA”)
ABR 针对自己所在的区域产生描述其他区域的拓扑
􀂾 网络汇总LSA(LSA3)
由ABR 针对自己所在的区域产生描述其他区域的拓扑
缺省每个子网生成一个LSA3
在ABR 上针对LSA3 做控制
以区域为单位分配地址块,方便路由汇总
Router ospf 23
Area 1 range 172.16.0.0 255.255.252.0
􀂾 ASBR 汇总LSA(LSA4)
由ABR 生成,向本区域描述其他区域ASBR 的可达性

(三) 外部路由
目标网络在非OSPF 进程内的、通过ASBR 重发布引入的路由(“OE2”)
􀂾 自治系统LSA(LSA5)
由ASBR 通过重发布引入,缺省每个子网生成一个LSA5
LSA5 在区域间洪泛,不能进入特殊区域

5. 路由汇总
划分区域的目的就是为了通过路由汇总压制动荡
ABR 针对LSA3
(config‐router)#area # range 子网 掩码
(config‐router)#area # range 子网 掩码 【cost | not‐advertise | ...】
Cost:改变默认的通告Cost
Not‐advertise:不发布汇总路由
(config‐router)#area # filter‐list # in/out
(config)#ip prefix‐list bluefox seq 10 permit/deny 172.16.0.0/21 [ge/le value]
Ge:minimum prefix length to be matched
Le:maximum prefix length to be matched
Length < ge < le
ASBR 针对LSA5
(config‐router)#summary‐address 子网 掩码
(config‐router)#summary‐address 子网 掩码 【cost | not‐advertise | ...】
缺省生成OE2
OE2:总Cost=外部Cost  如果外部Cost 相等,则比较内部Cost
OE1:总Cost=外部Cost+内部Cost
6. 特殊区域
通过ABR 抑制不必要的其他区域的协议压力
􀂗 存根区域
不想接受其他区域的外部路由信息
LSA5 不再洪泛进入Stub 区域;生成(0/0)LSA3
骨干区域不能配置Stub 或其他特殊区域
虚链路不能穿越特殊区域
存根区域不能作重发布
在Stub 区域内的接口都须配置
ABR(config‐router)#area  stub
Other(config‐router)#area  stub
􀂗 完全存根区域
不想接收其他区域的外部路由和区域间路由
LSA5 和LSA3 不再洪泛进入Totally Stub 区域
相关配置:
ABR(config‐router)#area stub no‐summary
Other(config‐router)#area  stub
􀂗 NSSA;Not‐so‐stub‐Area
既想阻止其他区域的LSA5,本区域又想作重发布
LSA5 不再洪泛进入Stub 区域
重发布的路由以LSA7 的形式进入NSSA 区域;(“ON2”);再由ABR 以LSA5 通告出去
在Stub 区域内的接口都须配置
ABR(config‐router)#area  nssa
Other(config‐router)#area  nssa
􀂗 Totally NSSA
不想接收其他区域的外部路由和区域间路由
LSA5 和LSA3 不再洪泛进入Totally NSSA 区域
相关配置:
ABR(config‐router)#area  nssa no‐summary
Other(config‐router)#area  nssa

 

OSPF注意的问题

1. 怎样防止路由协议的安全
配置认证
使用重分布
在不需要发送OSPF 信息的地方使用被动接口
2. 邻居形成不了的原因
外因:物理层;链路层;ACL;OSPF 配置等
内因:区域号、存根标志、认证、Hello 间隔是否一致。

3. 如果长时间卡在Exstart 或Exchange 状态
则应检查MTU 是否抑制

4. NSSA 区域存在的问题
LSA7 重发布出去,在ABR 上阻止并转换LSA5 通告出去,同时forwarding‐address
置位并填上发布者的接口IP!这样会导致下一跳不可达(因为接口IP 可能不会被通告出去)
解决方法:
􀂗 LSA5 再汇总一次,使forwarding‐address 不置位。
􀂗 Cisco:area # nssa translate type7 suppress‐fa //压制fa 置位!
 

5. OSPF 区域不分离问题

 

 

 只需在R3、R2 上配置Virtual‐Link 就可解决
R3.(config‐router)#area 1 virtual‐link 2.2.2.2
R2.(config‐router)#area 1 virtual‐link 3.3.3.3
Area 1 作为传输区域


1. PVC 全互连,且支持广播
Ip ospf network broadcast

2. PVC 全互连,不支持广播
配置单播:neighbor a.b.c.d priority ~

3. PVC 非全互连,支持广播
导致DR 选举混乱,需手工指定DR,让其他的路由器不参与选举,把非DR 的优先
级改为0
Ip ospf priority 0

4. PVC 非全互连,支持广播
划分子接口,使路由器相互形成点‐点链路,两端都要改
Int s1/0.2
Ip ospf network point‐to‐point
Frame‐relay interface‐dlci ~

5. PVC 非全互连,支持广播
配置成非广播
Ip ospf network non‐broadcast
Neighbor a.b.c.d

6. PVC 非全互连,支持广播
配置成点‐多点且指定邻居
Ip ospf network point‐to‐multipoint
Neighbor a.b.c.d

7. PVC 非全互连,不支持广播
配置成点‐多点非广播
Ip ospf network point‐to‐point non‐broadcast
Neighbor a.b.c.d