当前位置: 首页 > news >正文

OSPF协议五种网络类型中DR和BDR选举说明

OSPF协议五种网络类型中DR和BDR选举说明

OSPF链路类型有3种:点到点广播型NBMA(非广播-多路访问网络(Non-Broadcast Multiple Access,NBMA)

在3种链路类型上扩展出5种网络类型点到点广播NBMA点到多点虚链路。其中虚链路较为特殊,不针对具体链路,而NBMA链路对应NBMA和点到多点两种网络类型。

以上是RFC的定义,在Cisco路由器的实现上,我们应记为3种链路类型扩展出8种网络类型,其中NBMA链路就对应5种,即在RFC的定义基础上又增加了3种类型。

首先分析一下3种链路类型的特点: 

1. 点到点:一个网络里仅有2个接口,使用HDLC或PPP封装,不需寻址,地址字段固定为FF

2. 广播型:广播型多路访问,目前而言指的就是以太网链路,涉及IP 和Mac,用ARP实现二层和三层映射。

3. NBMA:网络中允许存在多台Router,物理上链路共享,通过二层虚链路(VC)建立逻辑上的连接。 

NBMA网络不是没有广播的能力,而是广播针对每一条VC发送,这样就使得一台路由器在不是Full-Mesh(全网状)的NBMA拓扑中,发送的广播或组播分组可能无法到达其他所有路由器。 在点到点链路上运行OSPF没有必要选举DR,因为就是两点一线,简单得很;而在NBMA网络中运行OSPF由于是多路访问,DR可以存在,通过调整成手动发现邻居可以防止过多的Hello开销。 

下面具体分析一下RFC中定义的5种网络类型: 

1. 点到点 串行封装HDLC或PPP,OSPF会自动检测接口类型(发现封装模式为PPP或HDLC,就认为是点到点),OSPF数据包使用224.0.0.5发送,不知道DR是什么东西,就知道对端是谁,OSPF hello间隔为10s,失效为40s。 224.0.0.6指代一个多路访问网络中DR和BDR的组播接收地址,224.0.0.5指代在任意网络中所有运行OSPF进程的接口都属于该组,于是接收所有224.0.0.5的组播数据包。

重点理解好属于某一组 和 接收怎样的组播数据包

比如 DR/BDR属于组播地址为224.0.0.6的组(Group),因此它接收目的地址为224.0.0.6的组播数据包,也就可以理解为何多路访问通过设置DR/BDR可以防止信息过多处理(因为属于某组的接收者(指OSPF接口),只会剥离到二层,而不会进一步处理,也就省去了很多资源浪费。

2. 广播型 选举DR/BDR,自动发现邻居。Hello间隔为10s,失效为40s (这里比较一下,NBMA类型的 Hello和Dead 隔分别为30s 和120s。) 

3-4. NBMA 思科路由器在NBMA网络上实现的链路类型有5个,2 × RFC + 3 × Cisco,区分较为复杂。 

这5种类型形式上的差异在于:

1)是否选举DR  

2)是否自动发现邻居

3)更新时间  

这5种NBMA类型应用上的差异在于:

1)NBMA拓扑是否是Full-Mesh 

2)NBMA接口是否在同一IP子网  

3)Frame-Relay 在定义Map时是否支持广播,即是否加了关键字broadcast。

默认情况下OSPF 不能通过NBMA接口自动与邻居建立邻接关系,RFC 2328为OSPF在NBMA拓扑中的运行定义了两种模式:NBMA和点到多点,分别对应的接口模式为: ip ospf network non-broadcast /point-to-multipoint 

在Non-Broadcast 模式下是模仿OSPF在广播型链路中的运行,通常在Full-Mesh 者Partial-Mesh 使用,如果不是Full-Mesh必须手动选举DR/BDR。路由器接口处于同一IP子网,手动指定邻居,选举DR/BDR且必须与DRother在VC上直连。

在 Point-to-Multipoint 模式下是将NBMA视为一系列点到点的集合,通常用于Hub-and-Spoke 者Partial-Mesh,接口处于同一IP子网,使用OSPF组播自动发现邻居,不选举DR/BDR。 

Cisco为NBMA多设计了三种模式,分别为广播,点到多点非广播和点到点。 ip ospf network broadcast

ip ospf network point-to-multipoint non-broadcast  

ip ospf network point-to-pioint 

1. 如果说non-broadcast是在模仿广播型链路,那么broadcast就是将NBMA完全当成广播型链路,使用OSPF组播Hello来自动发现邻居,而不是像non-broadcast为每个PVC提供一个LSA拷贝。应用这种模式的前提是NMBA拓扑为Full-Mesh,且在FR Map中使用了关键字broadcast。 

2. 如果在VC上没有启用组播和广播功能,即定义Map时没有使用关键字broadcast,那么就要应用point-to-multipoint non-broadcast 相应的取消组播hello功能,代以手动配置邻居。 

3. 如果链路中涉及多个子网,那么一定要用到Point-to-Point类型,也一定会用到子接口。子接口分为两种模式,点到点和点到多点,其中点到多点子接口和主接口配置方式一致,而点到点子接口则有些变化: 

interface Serial0/0                                interface Serial0/0.2 multipoint  

encapsulation frame-relay                         ip address 20.1.1.1 255.255.255.0  

frame-relay lmi-type ansi                            ip ospf network point-to-point 

interface Serial0/0.1 point-to-point 

  frame-relay map ip 20.1.1.2 105 broadcast 

ip address 10.1.1.1 255.255.255.0 

  frame-relay map ip 20.1.1.3 106 broadcast 

frame-relay interface-dlci 101 

  frame-relay map ip 20.1.1.4 107 broadcast  

4.若子接口使用point-to-point模式,则意味着这个子接口对应的子网里只有一台路由器,即这个IP子网只有两个节点;而使用multipoint模式时,意味着这个子接口对应多条VC,IP子网内有多于两台的路由器。通过配置就可以理解为什么说点到多点是点到点链路的集合。 PS:最初创建子接口的目的在于解决在NBMA上运行距离矢量协议引起的水平分割问题,即从一接口收到的路由信息不会再从这个接口发出去。而这个接口本身可能连着多个邻居,这样就阻碍了网络中路由信息的传递,子接口是物理接口在逻辑上的划分,能很好的解决水平分割带来的问题。 

5.虚链路 可以认为是点到点的一种特殊配置,在虚链路上OSPF数据包是以单播形式发送,并不在意物理链路是什么类型,关键是虚链路两端可以实现互通。 

最后总结一下:

  1. 凡是“Point-to系列”(包括to-point,to-multipoint,to-multipoint nonbroadcast)均不需要选举DR/BDR,在Hub-and-Spoke这种星型拓扑中建议使用“Point-to系列”模式。

 2. 凡是“Broadcast系列”(包括broadcast,non-broadcast),不管加不加non,多少都是广播型链路的翻版,需要选举DR/BDR。 

3 .凡是“Nonbroadcast系列”(包括non-broadcast,point-to-multipoint nonbroadcast),一个non就是废除广播 & 组播能力,只能手动指定邻居。

4 .在Full-Mesh的拓扑中才可以应用non-broadcast 或broadcast 模式,配置较为简单,但是如果发生链路中断,DRother可能会找不到DR,导致路由信息丢失。 

5. Hub-Spoke拓扑中如果运行non-broadcast模式,要在hub 位置配置neighbor 命令,并且都设置Spoke接口的优先级为0使其不参与DR/BDR选举。如果配置为点到多点模式,命令可大为简化。

6. 如果一个NBMA链路里有多个IP子网,则主接口网络类型一定是point-to-point,并且一定得用子接口,再看IP子网内接口,多于两个就用点到多点子接口,因为点到点子接口只能容纳一个DLCI。

7. 如果在配置FR Map时没加关键字broadcast,则只能使用“non-broadcast系列”,即non-broadcast和point-to-multipoint broadcast两种网络类型

相关文章:

  • Linux内核实时机制4 - 实时改造优化 - PREEMPT_RT方案
  • Linux学习笔记之深入理解进程调度
  • 3、cadence从零开始让一个VCO起振——如何调频
  • 复现log4j2的jndi注入成功反弹shell
  • SQL进阶技巧:如何统计用户跨端消费行为?
  • (leetcode 1749 前缀和)1749. 任意子数组和的绝对值的最大值
  • 【嵌入式Linux应用开发基础】进程实战开发
  • 华为固态电池引发的思索
  • 2.18寒假
  • 06:高级命令
  • DeepSeek驱动下的数据仓库范式转移:技术解耦、认知重构与治理演进
  • 解析JUC包底层源码实现
  • 3.5 使用Tokenizer编解码文本:从原理到企业级实践
  • ArcGIS笔记之度分秒与十进制度的转换
  • 【分治法】棋盘覆盖问题 C/C++(附代码和测试实例及算法分析)
  • C语言——字符串
  • Udp发送和接收数据(python和QT)
  • 2025-02-18 学习记录--C/C++-PTA 7-25 念数字
  • 鱼骨图技能详解
  • macos安装jmeter测试软件
  • 国常会:研究深化国家级经济技术开发区改革创新有关举措等
  • 视频丨习近平同普京在主观礼台出席红场阅兵式
  • 雇来的“妈妈”:为入狱雇主无偿带娃4年,没做好准备说再见
  • 马上评|让“贾宝玉是长子长孙”争议回归理性讨论
  • 俄罗斯今日将举行“胜利日”阅兵,有何看点?
  • 山寨“小米”智能马桶、花洒销售额过亿,被判赔3500万元