多路访问网络中的挑战
在多路访问网络中,相同的共享介质上连接有两台以上设备。以太网 LAN 就是一种广播多路访问网络。因为该网络中的所有设备会看到所有广播帧,所以它属于广播网络。
OSPF 定义了五种网络类型:
l 点对点
l 广播多路访问
l 非广播多路访问 (NBMA)
l 点对多点
l 虚拟链路
多路访问网络对 OSPF 的 LSA 泛洪过程提出了两项挑战:
1. 创建多边相邻关系,其中每对路由器都存在一项相邻关系。
2. LSA(链路状态通告)的大量泛洪。
多边相邻关系
在网络中的每对路由器间创建相邻关系会产生一些不必要的相邻关系。这将导致大量 LSA 在该网络内的路由器间传输。对于多路访问网络中任意数量(用 n 表示)的路由器,将存在 n ( n - 1 ) / 2 项相邻关系。但随着网络中路由器数量增加,相邻关系数量将急剧增大。
LSA 泛洪
链路状态路由器会在 OSPF 初始化以及拓扑更改时泛洪其链路状态数据包。在多路访问网络中,此泛洪过程中的流量可能变得很大。
解决方案:指定路由器(DR)
用于在多路访问网络中管理相邻关系数量和 LSA 泛洪的解决方案是指定路由器 (DR)。(可比喻为在房间里选举出一个人,由该人员向所有人逐个询问姓名,然后将这些姓名一次性通告给所有人。)多路访问网络中的路由器会选举出一个 DR 和一个 BDR。DROther 仅与网络中的 DR 和 BDR 建立完全的相邻关系。这意味着 DROther 无需向网络中的所有路由器泛洪 LSA,只需使用组播地址 224.0.0.6(ALLDRouters — 所有 DR 路由器)将其 LSA 发送给 DR 和 BDR 即可。
DR/BDR选举过程(DR/BDR 选举不会发生在点对点网络中)
DR/BDR 选举
选举过程遵循以下条件:
1. DR:具有最高 OSPF 接口优先级的路由器
2. BDR:具有第二高 OSPF 接口优先级的路由器
3. 如果 OSPF 接口优先级相等,则取路由器 ID 最高者。
DROther 仅与 DR 和 BDR 建立完全的相邻关系,但也会与该网络中的任何其它 DROthers 建立相邻关系。这意味着多路访问网络中的所有 DROther 路由器仍然会收到其它所有 DROther 路由器发来的 Hello 数据包。当两台 DROther 路由器形成相邻关系后,其相邻状态显示为 2WAY。
使用show ip ospf neighbor可以快速查看DR、BDR和DROther以及2WAY。
使用show ip ospf interface 可以查看详细的DR、BDR信息
DR/BDR 选举的时间安排
DR 一旦选出,将保持 DR 地位,直到出现下列条件之一为止:
l DR 发生故障。
l DR 上的 OSPF 进程发生故障。
l DR 上的多路访问接口发生故障。
如果 DR 发生故障,BDR 将接替 DR 角色,随即进行选举,选出新的 BDR。
新路由器加入该网络。如果在选出 DR 和 BDR 后有新路由器加入网络,即使新路由器的 OSPF 接口优先级或路由器 ID 比当前 DR 或 BDR 高,也不会成为 DR 或 BDR。
前任 DR 返回网络后不会重新取得 DR 的地位。
如果 BDR 发生故障,则会在 DRother 之间选出新的 BDR。
您怎样确保所需的路由器在 DR 和 BDR 选举中获胜呢?无需进一步配置,解决方案有两种:
l 首先启动 DR,再启动 BDR,然后启动其它所有路由器;
l 关闭所有路由器上的接口,然后在 DR 上执行 no shutdown 命令,再在 BDR 上执行该命令,随后在其它所有路由器上执行该命令。
OSPF接口优先级
由于 DR 成为 LSA 的集散中心,所以它必须具有足够的 CPU 和存储性能才能担此重责。与其依赖路由器 ID 来确定 DR 和 BDR 结果,不如使用 ip ospf priority 接口命令来控制选举。
Router(config-if)#ip ospf priority {0 - 255}
OSPF默认路由重分发
R1#conf t
R1(config)#ip route 0.0.0.0 0.0.0.0 loopback 1
R1(config)#router ospf 1
R1(config-router)#default-information originate
路由表的输出信息:O*E2 0.0.0.0/0 [110/1] via 192.168.10.10, 00:05:34, Serial0/0/1
O表示从OSPF学到的路由
E2 表示此路由为一条 OSPF第 2 类外部路由。
OSPF 外部路由分为以下两类:第 1 类外部 (E1) 和第 2 类外部 (E2)。两种类型的差异在于路由的 OSPF 开销在每台路由器上的计算方式不同。
l E1 路由在整个 OSPF 区域内传播时,OSPF 会累计路由的开销。
l E2 路由的开销却始终是外部开销,而与通向该路由的内部开销无关。
微调OSPF
参考带宽
可使用 OSPF 命令 auto-cost reference-bandwidth修改参考带宽,以适应这些更快链路的要求。
R1(config-router)#auto-cost reference-bandwidth “1~4294967”单位是Mbits
修改 OSPF 间隔
可使用下列接口命令手动修改 OSPF Hello 间隔和 Dead 间隔:
Router(config-if)#ip ospf hello-intervalseconds //Hello间隔多少秒发送一次
Router(config-if)#ip ospf dead-intervalseconds //多少秒没有收到Hello就Down