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

news/2025/2/21 12:52:27/

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两种网络类型


http://www.ppmy.cn/news/1573599.html

相关文章

如何启动 Linux Debian/Ubuntu 等 SSH 服务器

文章目录 引言正文一、什么是 SSH?二、安装 SSH 服务器三、验证 SSH 服务是否运行四、配置 SSH 服务器五、使用 SSH 客户端连接到服务器六、安全优化七、常见问题及解决方法 总结 引言 SSH(Secure Shell)是一种用于远程登录和执行命令的安全…

uniapp 滚动尺

scale组件代码&#xff08;部分class样式使用到了uview1.0的样式&#xff09; <template><view><view class"scale"><view class"pointer u-flex-col u-col-center"><u-icon name"arrow-down-fill" size"26&qu…

变相提高大模型上下文长度-RAG文档压缩-3.优化map-reduce(reranker过滤+社区聚类)

我遇到的业务问题实际上是RAG需要处理很多同一对象的日常报告&#xff0c;不像常识类问题&#xff0c;它的相关Document更多而且更分散&#xff0c;日常报告代表数据库里有很多它的内容&#xff0c;而且对象可能只在段落中的几句话提及到。top-k数量受限于大模型长度&#xff0…

AI全栈开发_人工智能AI大模型 Prompt提示词工程详解(全方位介绍及运用)

AI引领的第四次工业革命正席卷而来&#xff0c;如何精准把握这一历史性的机遇&#xff0c;将成为我们这一代人不容忽视且需深入思考与积极行动的重要课题。未来几年AI将会像计算机一样快速普及&#xff0c;面对这一历史性的第一波红利&#xff0c;你是否已准备好把握机遇&#…

火语言RPA--Excel打开文档

【组件功能】&#xff1a;打开已有或者新建Excel文档&#xff0c;并实例化初始化操作 配置预览 配置说明 Excel文件路径 支持T或# 默认FLOW输入项 新建或打开Excel文档文件路径。 打开方式 打开已有Excel&#xff1a;打开指定Excel文件到当前Excel对象 新建Excel&#xff…

HarmonyOS全栈开发指南:从入门到精通,构建万物智联的未来生态(四)

四、UI开发体系 16. ArkUI声明式语法与类Web开发范式 4.1.1 ArkUI简介 ArkUI是HarmonyOS提供的一套用于构建跨平台用户界面的声明式开发框架。它借鉴了现代前端框架的设计理念&#xff0c;通过声明式的方式描述UI界面&#xff0c;使得开发者可以更加专注于业务逻辑的实现&am…

DeepSeek R1与互联网医院的深度融合:金医慧通案例的创新实践与启示

一、引言 1.1 研究背景与意义 随着互联网技术的迅猛发展&#xff0c;互联网医院作为一种新型医疗服务模式&#xff0c;正逐渐改变着传统医疗行业的格局。自 2014 年国家卫生计生委发布《关于促进互联网医疗健康发展的指导意见》以来&#xff0c;互联网医院在政策支持下蓬勃发…

DeepSeek 云原生分布式部署的深度实践与疑难解析—— 从零到生产级落地的全链路避坑指南

一、云原生环境下的部署架构设计 1.1 典型架构拓扑 关键点&#xff1a;Master 节点需保证强一致性&#xff0c;Worker 节点需支持异构硬件调度。 1.2 配置模板陷阱 问题现象&#xff1a; 直接使用官方 Helm Chart 部署后出现 Pod 频繁重启 日志报错 ResourceQuota exceeded…