一、Router ID:
1.在全局模式下配置router id,是作为整个路由器的标识,都可以用
2.在OSPF 进程里配置router id,分为手工配置和自动生成:
如果没有手动指定,则将按照顺序自动生成:
如果存在loopback口,则选择loopback口地址最大的作为Router id(数值最大即地址最大)
如果没有loopback口,则从其他物理接口上选择地址最大的(无论接口是否开启)
二、网络类型:
定义:对于不同的二层链路状态,会有不同的网络类型
不同的网络类型,DR/BDR选举、LSA、协议报文也会有不同
1.broadcast:广播---以太网默认网络类型(广播网络多点可达)
组播发报文:224.0.0.5 //所有运行OSPF 的路由监听
224.0.0.6 //只有BR、BDR监听
DR、BDR选举:减少邻居关系
邻接关系--只有邻接关系才发送路由报文信息
邻居关系--不发送报文,状态为2-way
hello-time:发送hello报文周期 10S
dead-time:检查邻居失效周期 四倍的hello时间
2.NBMA:非广播网络多点可达---帧中继默认网络类型(可以全网通)
单播发送协议报文,需要手动指定邻居
DR、BDR选举:减少邻居关系
邻接关系--只有邻接关系才发送路由报文信息
邻居关系--不发送报文,状态为2-way
hello-time:发送hello报文周期 30S
dead-time:检查邻居失效周期 四倍的hello时间
3.P2P:点到点--PPP默认网络类型
组播发送报文
不选举DR/BDR
hello-time:发送hello报文周期 10S
dead-time:检查邻居失效周期 40s
4.P2MP:点到多点---需要手动更改
模拟组播发送协议报文,可以自动发现
不选举BD/BDR
hello-time: 30s
dead-time:120s
(常用类型:P2P、broadcast、NBMA、P2MP:P2MP网络类型并不需要全连通。)
三、报文类型:
Hello : 发现、建立并维护邻居关系,
DD : 传递LSA的部分链路数据库信息,同步数据库
LSR : 链路状态请求(请求自己没有或更新的链路状态信息)
LSU:链路状态更新信息(OSPF具有重传机制)
LSAck:对LSU的确认
四、七种状态机:
1.Down---关闭状态(还没有启动OSPF或者端口没有激活),稳定状态
Attempt(只存在于NBMA网络类型中)
2.Init----单方发现状态(收到了对方的报文,不确定对方有没有收到自己的报文)
3. 2-way--- 稳定的邻居状态(不会因为其他因素导致失效)
邻居双方建立,选举DR/BDR
前提:router id不冲突,修改router id后需要重置ospf进程
掩码长度一致:直连IP不一致
区域ID不一致不能建立邻居,ospf通过接口建立邻居
4.Exstart---交换开始状态,发送第一个DD报文(仅确定LSDB主从关系,router id大为master)
5.Exchange---交换状态,发送后续DD报文,用于通告LSDB摘要
6.Loading---读取状态,请求LSA、加入、确认
7.Full---邻接状态(稳定状态),LSDB已同步。
前提:两端MTU一致,否则会卡在exstart、exchange
两端网络类型一致
五、DR/BDR选举规则:
- 优先级,数值越高越优先,优先级次高的为BDR。先选BDR,再选DR。(优先级携带在hello报文里)
优先级默认为1,(优先级为0不参加选举),范围:0-255
- 优先级一致时,比较router id。数值越大越优先。
- 保持稳定性:
如果选举完毕后出现优先级更高的路由器,DR/BDR也不会出现改变。
当DR失效后,BDR成为DR,再从DRother里选择router id高的为BDR。
当BDR失效后,从DRother里选出一个BDR。
邻接关系建立:
- hello报文:发送DR和router id (如果DR还没有选举,则发送0.0.0.0)
- DD:通告LSA摘要信息
报文置位符: I init初始位,i=1表示为第一个DD报文
M more位,表示后续还有DD报文
MS master位,master=1表示本端为主
不能跨越直连路由去建立连接
六、OSPF开销
参考带宽:默认为100M
计算方法:1.实际链路带宽>=参考带宽 cost=1,小数进一位
2.实际链路带宽<参考带宽 cost=参考带宽/实际链路带宽(Mbs)
O_ase 外部路由 (1类、2类,默认为2类路由)
O_intra 内部路由
O_inter 区域间路由
业务网段不允许出现协议报文:silence-interface g0/0
引入默认路由:default-route-advertise (static引入的是明细路由)
Nat outbound acl_number //nat在ospf里绑定acl
七、LSA三要素:
LS Type(链路状态类型):标识LSA类型(1-11)
Link state ID:根据LSA类型而定
Advertising Router:始发LSA的路由器的router id(产生路由信息的路由id)
八、LSA类型:(1-5、7属于ipv4版本,6为组播,其余为ipv6)
- -router LSA,仅在本区域内传递,传递内部与路由器直连的路由信息
LS ID --发出路由信息的路由ID
Adv rtr--产生该LSA的路由id
Link-Type--定义:根据网络类型不同也会有所不同
类型:transnet--类型:广播或NBMA
Link-id:本网段DR的IP地址
Data:该路由器在本网段的IP
P2P--类型:PPP
Link-id:该网段对端路由器的router id
Data:该路由器与对端路由器直连的接口IP
Stubnet--类型:P2P、环回口、末梢网络
Link-id:该网段的网络地址
Data:该网段的子网掩码
2.-定义:network LSA。描述区域内广播网络链路的路由器及掩码信息,仅在区域内传输
LS ID:该网段DR的IP地址
Adv Rtr:该网段DR的router id
3.-定义:Summary LSA。描述其他区域的链路信息,以子网传播(类似路由器)传播其他路由信息到本区域
LS ID:其他区域某个网段的网络地址
Adv Rtr:通告该LSA的ABR的router id
【只会有ABR的路由信息,】
4,-仅仅只告诉ASBR所在的地方。
定义:Asbr-summary LSA。描述ASBR信息。(ASBR本区域并不会产生4类LSA, 4类LSA由ABR产生,并且由离ASBR最近的ABR产生)。ASBR的本区域其他的路由器通过1类LSA到达ASBR。
LS ID: ASBR的router id
Adv Rtr: 通告该ASBR的ABR的router id
5.-定义:AS-external LSA。描述AS外部引入的路由信息。引入的路由分为1类和2类,默认为2类路由。(会泛洪到整个OSPF区域)
LS ID:区域外部某个网段的网络地址。
Adv Rtr:引入该网段的ASBR的router id
7--定义:NSSA LSA,属于特殊区域。描述NSSA区域引入的AS外部路由信息
LS ID:区域外部某个网段的网络地址。
Adv Rtr:引入该网段的ASBR的router id
九、特殊区域:
- stub区域:定义--末梢区域【边缘区域】
特征--不接受4类和5类LSA
由ABR发送一条缺省的3类默认路由LSA(自动生成)
不允许出现ASBR(只传送内部的LSA)
区域0不能被配置为stub区域
场景--适用于路由器性能低,不希望接收大量外部路由
2.Totally stub区域:定义:完全末梢区域
特征: 不接受3类、4类和5类LSA
由ABR发送一条缺省的3类默认路由LSA
不允许出现ASBR(只传送内部的LSA)
区域0不能被配置为Toally stub区域
配置:ospf 1 router-id 4.4.4.4
Area 2
Stub no-summary
场景--适用于路由器性能更低,不希望接收大量外部路由和其 他区域路由
3.NSSA区域:定义:非纯末梢区域(与其他路由器连接,还可以引入外部路由)
特征:不接收4类和5类LSA
本区域引入的外部路由是7类LSA,其他区域学到的是5类LSA(通过该区域的ABR转换并通告给其他区域)
需要手动配置下发7类默认路由
配置:ospf 1 router-id 4.4.4.4
Area 2
Nssa default-route-advertise(另一端无需下发)
场景:适用于区域中路由器性能较低,不想接收大量AS外部路由,但是区域存在ASBR引入外部路由
4.Totally NSSA区域:定义:完全非纯末梢区域
特征:不接收3类、4类和5类LSA
本区域引入的外部路由是7类LSA,其他区域学到的是5类LSA(通过该区域的ABR转换并通告给其他区域)
本区域默认路由由ABR发送3类LSA
配置:ospf 1 router-id 4.4.4.4
Area 2
Nssa no-summary
场景:适用于区域中路由器性能较低,不想接收大量AS外部路由和其他区域路由,但是区域存在ASBR引入外部路由
十、虚连接:
定义:通过在一个中间区域的2个ABR上配置虚连接,使两端的区域实现逻辑连接(OSPF只能和直连链路建立邻居关系)
场景:骨干区域被分割
非骨干区域无法与骨干区域保持连通
附录E:
当ASBR引入多条一致IP一致而掩码不一致的外部路由时,会把第一条之外的5类LSA的LS ID的主机位做取反操作,防止冲突
十一、选路规则:
- 按路由的优先级选路
- 区域内路由
- 区域间路由
- 引入的一类外部路由--计算AS内部开销(本路由器到达ASBR的开销+ASBR到达外部网络的开销)
- 引入的二类外部路由(引入的外部路由默认为2类):不计算AS内部开销(ASBR直接到达外部的开销)
- 在相同类型下,选择路由开销较小的路由
十二、OSPF路由聚合:
只能手动聚合
聚合类型:ABR:区域间子网。把一个区域的LSA聚合成3类LSA发布到相邻区域(在区域视图下配置)
ASBR:外部子网。把引入的AS外部路由聚合后发布到OSPF内(在进程视图下配置)
使用聚合实现路由过滤:在聚合后加入not-advertise表示不发布
十三、OSPF安全认证:
接口认证:链路两端接口必须配置一致密码才能建立邻居关系
区域认证:在区域下配置一致的密码才能加入同一个区域
接口认证>区域认证 (只要接口认证配置成功就可以建立邻居关系并学到路由)
十四、OSPF路由过滤:
- 对计算出的路由进行过滤,只会影响本路由器的路由学习,在协议视图下配置进方向
- 对3类LSA进行过滤,会影响所有下游路由器,在传入区域的区域视图下配置出方向。必须在ABR上配置,但是并不会ABR本身的路由
(路由是通过计算LSA得出的,所以先有LSA后才是路由)
---------------------------------------------------------------------------------------------------------------------------------
Reset ospf 1 process 重置进程
Default-route-advertise 引入默认路由时需要手动添加
Default-route-advertise always 自动添加默认路由并引入到OSPF中
配置业务网段不出现协议报文:silent-interface g0/2 //配置为静默接口
[h3c]display ospf lsdb router 查看1类LSA
[h3c]display ospf lsdb network 查看2类LSA
[h3c]display ospf lsdb summary 查看3类LSA
[h3c]display ospf lsdb asbr-summary 查看4类LSA
[h3c]display ospf lsdb ase 查看5类LSA
[h3c]display ospf lsdb nssa 查看7类LSA
[h3c-ospf-1-area-0.0.0.1]stub 配置stub区域
[h3c-ospf-1-area-0.0.0.1]stub no-summary 配置Totallystub区域
[h3c-ospf-1-area-0.0.0.1]nssa default-route advertise 配置NSSA区域[h3c-ospf-1-area-0.0.0.1]vlink-peer 'router-id’配置虚连接
[h3c-ospf-1-area-0.0.0.1]abr-summary network mask not-advertise配置ABR聚合
[h3c-ospf-1]asbr-summary network 'mask'配置ASBR聚合
[h3c-ospf-1-area-0.0.0.0]authentication mode simple plain key配置区域验证
[h3c-GigabitEthernet0/0]ospf authentication-mode simple plain key
配置接口验证
[h3c-ospf-1]filter-policy acl-number import 过滤计算的路由
[h3c-ospf-1-area-0.0.0.0]filter acl-number export过滤3类LSA