DR && BDR
- 只在 Multi-Access 网路中存在,如 Ethernet LAN
- 为什么要有DR/BDR —— 没有时,需要维护大量冗余的邻居关系。有 DR和BDR 时,其他DROTHER 只和DR/BDR 形成 Adjacency 关系(非Neighbor,Neighbor 不等于 Adjacency,Neighbor 不一定交换数据)
- DR/BDR 会监听224.0.0.6 ,其他DROTHER 会发送路由更新到这个组播地址,DR收到后,向发送者回复单播回应,同时通过组播地址 224.0.0.5 (所有OSPF路由器都会监听)宣告这条更新
- 选举
- 在建立Neighbor时开始选举,2-way完成后
- debug ip ospf adj —— 可以观察选举过程
- 选举规则
- 比较启用OSPF 接口的优先级,0表示不参与,1-255之间大者胜出,默认情况下接口priority都是1
- 接口Priority相同时,拥有更大Router ID的路由器胜出
- show ip ospf neighbor 的输出中
- DROTHER 之间的状态是 2-WAY
- DROTHER 和 DR/BDR 要达到 FULL
- DR/BDR 和 其他 DROTHER 都是FULL
- 修改Priority : ip ospf priority —— 修改后需要重启所有Router 上的OSPF进程,才会触发重新计算
Network Type - Broadcast & Nonbroadcast
- Broadcast 网路都需要DR/BDR 选举
- Nonboardcast : 手动指定邻居
Network Type - Point-to-Point
- 用串口互联(使用HDLC 或则 PPP 协议)、或者GRE Tunnel 的两台OSPF设备,没有DR/BDR ,建立Adjacency的速度会更快
- 点到点网路也没有ARP协议
- 只有2台OSPF设备互联的网路 也可以修改为 point-to-point
Network Type - Point-to-Multipoint
Network Type - Loopback Network
- 环回接口归属的类型。无论怎么配置,最终都是按照/32 对外宣告
- 修改网路类型
- ip ospf net Type
Network Type Summary
- 凡是带Broadcast (即使是nonbroadcast) 都需要DR/BDR
Failue Detection
- Hello Timer
- Dead Timer
- 不同网路类型有不同的默认设置,二者之间默认是1:4 的关系
OSPF Network Statement
- network 命令不是宣告网路,而是定义1个IP地址范围,如果接口地址在这个范围,那这个接口会被放到OSPF 进程。 可以通过下面命令将指定接口开启OSPF
- ip ospf process-id area area-id
Default Route Advertisement
- default-information originate [always]
- 不带 always 时,必须存在1条默认路由(可以是静态,也可以通过其他方式学到)
- 带 always 时,无论是否存在默认路由,都可以宣告
Passive Interface
- 配置Passive的接口还是可以被宣告,但是不能和对端形成OSPF Adjacency (不再发送hello ,不再处理任何收到的 hello)
- 在EIGRP进程下: passive interface 指定接口
- 指定接口之外:passive interface default + no passive interface-id
Authentication
- 可以按接口启用,也可以按Area启用
- 可以是 PlainText ,可以是MD5
- 方式1
- ip ospf authentication
- ip ospf authentication-key XXX
- 方式2
- ip ospf authentication message-digest
- ip ospf message-digest-key 1 md5 XXX
- 方式3
- 在进程下:area X authentication [message-digest | ]
- 在接口下:ip ospf authentication-key XXX 或者 ip ospf message-digest-key 1 md5 XXX