4. DR/BDR以及邻接关系
时间:2020-07-11
本文章向大家介绍4. DR/BDR以及邻接关系,主要包括4. DR/BDR以及邻接关系使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1. DR/BDR以及邻接关系
- DR/BDR是在2way状态下来选举的
在多点接入网络(NBMA,广播)需要DR/BDR,OSPF邻居间更新的是LSA这种材料
只有建立了邻接关系才会同步LSA(只有邻居是不够)
1.1 报文类型
OSPF 5种报文 协议号89
IS-IS 9种
BGP 5
RIP 2
EIGRP 5
type 五种
Auth Type 认证类型:0 不认证
1 明文
2 MD5
Authentication 认证的数据
2. 邻接:开始交互LSA。
2.1 很关键的邻居状态机:
DOWN--(attempt)-->INIT-->2way/exstart--->exchange---loading--->FULL
2.2 状态含义
Down:这是邻居的初始状态,表示没有从邻居收到任何信息。
Attempt:此状态只在NBMA网络上存在,表示没有收到邻居的任何信息,但是已经周期性的向邻居发送报文,发送间隔为HelloInterval。如果 RouterDeadInterval间隔内未收到邻居的Hello报文,则转为Down状态。
Init:在此状态下,路由器已经从邻居收到了Hello报文,但是自己的Router ID不在所收到的Hello报文的邻居列表中,表示尚未与邻居建立双向通信关系。
2-Way:在此状态下,路由器发现自己的Router ID存在于收到的Hello报文的邻居列表中,已确认可以双向通信。
1-WayReceived:此事件表示路由器发现自己没有在邻居发送Hello报文的邻居列表中,通常是由于对端邻居重启造成的。
2.3 建立过程:
//邻居建立过程
1. RTA和RTB的Router ID分别为1.1.1.1和2.2.2.2。当RTA启动OSPF后,RTA会发送第一个Hello报文。此报文中邻居列表为空,此时状态为Down,RTB收到RTA的这个Hello报文,状态置为Init。
2. RTB发送Hello报文,此报文中邻居列表为空,RTA收到RTB的Hello报文,状态置为Init。
3. RTB向RTA发送邻居列表为1.1.1.1的Hello报文,RTA在收到的Hello报文邻居列表中发现自己的Router ID,状态置为2-way。
4. RTA向RTB发送邻居列表为2.2.2.2的Hello报文,RTB在收到的Hello报文邻居列表中发现自己的Router ID,状态置为2-way。
// 邻接建立过程
5. 邻居状态机变为ExStart以后,RTA向RTB发送第一个DD报文,在这个报文中,DD序列号被设置为552A(假设),Initial比特为1表示这是第一个DD报文,More比特为1表示后续还有DD报文要发送,Master比特为1表示RTA宣告自己为主路由器。
6. 邻居状态机变为ExStart以后,RTB向RTA发送第一个DD报文,在这个报文中,DD序列号被设置为5528(假设)。由于RTB的Router ID比RTA的大,所以RTB应当为主路由器,Router ID的比较结束后,RTA会产生一个Negotiation Done的事件,所以RTA将状态机从ExStart改变为Exchange。
7. 邻居状态机变为Exchange以后,RTA发送一个新的DD报文,在这个新的报文中包含LSDB的摘要信息,序列号设置为RTB在步骤2里使用的序列号,More比特为 0表示不需要另外的DD报文描述LSDB,Master比特为0表示RTA宣告自己为从路由器。收到这样一个报文以后,RTB会产生一个Negotiation Done的事件,因此RTB将邻居状态改变为Exchange。
8. 邻居状态变为Exchange以后,RTB发送一个新的DD报文,该报文中包含LSDB的描述信息,DD序列号设为5529(上次使用的序列号加1)。
9. 即使RTA不需要新的DD报文描述自己的LSDB,但是做为从路由器,RTA需要对主路由器RTB发送的每一个DD报文进行确认。所以,RTA向RTB发送一个新的DD报 文,序列号为5529,该报文内容为空。
发送完最后一个DD报文之后,RTA产生一个Exchange Done事件,将邻居状态改变为Loading;RTB收到最后一个DD报文之后,改变状态为Full(假设RTB的LSDB是最新最全的,不需要向RTA请求更新)。
2.4 DBD报文
- exstart--邻居事件驱动->exchange
DBD中的MTU=0,不检查MTU
前2个DBD有序号
I、M、M/S都置位(都想占据主动-->exchange,没有LS 头部)
exstart通过RID来选举master。
同化之后,通过回送相同的DBD的序号做隐式确认
I、M、M/S不置位,序号相同,同时携带LAS头部
点到点同步LSA成本小
多点接入网络同步LSA,成本大---DR/BDR
2.5 DR/BDR作用
DR:
负责网络建立和维护邻接关系,并负责LSA的同步
与其他路由器形成邻接关系并交换状态信息,其他路由器之间不能直接交换链路状态信息
优点:大大减少了MA网络中的邻接关系数量以及交换链路状态信息消耗的资源
BDR:
不负责同步LSA
为了避免单点故障风险,通过选举备份指定路由BDR,在DR失效时快速接管DR的工作
好处:
- 减少邻接关系
- 降低OSPF协议流量
多点接入网络,其他设备和DR(一家之主)建立邻接,DR负责同步LSA。
dis ospf interface s1/0/0
// R1作为 BDR 不负责和 R4(其他设备)同步 LSA ,R1没能够成为DR,所以R1、R4没有同步LSA导致缺失路由。
// BDR作为DR的备份,DR fail,BDR快速成为DR!
dis ospf lsbd router //查看一类LSA
3. 端口状态变化--广播型网段和NBMA网段
3.1 DR与BDR选举
DR/BDR选举是基于接口的,而不是基于路由器的
在2way阶段选举(MA/NBMA),选举时间40S
a. 接口的DR优先级越大越优先
b. 接口的DR优先级相等时,RID越大越优先 //不是接口IP
c. 接口优先级为0时,不参与选举
d. DR不能被抢占 //IS-IS可以被抢占
e. DR失效,则BDR成为DR
int g0/0/1
ospf dr-priority 0 //不参与选举 1-255 1为默认 255最大 0不参与选举
- 时间公平 //选举期
- 优先级:1 - 255 // 1是默认,255最大
- RID
作业:
在1、4、5的NBMA网络,R1成为DR,使得所有区域的路由完整(不要求数据通信)
原文地址:https://www.cnblogs.com/j-chao/p/13285626.html
- 很多人不知道还有这个——搜索框组件SearchView
- 免费主题暗藏后门,波及WordPress等知名CMS系统
- 揭秘:针对PoS机的恶意软件工具箱
- 屏幕宽高不够,滚动视图ScrollView来凑
- 结合中间人攻击,Pidgin鸡肋漏洞变废为宝
- 日历视图CalendarView和定时器Chronometer
- 不用Linux也可以的强大文本处理方法
- 虚函数与虚继承寻踪
- AnalogClock、DigitalClock和TextClock时钟组件
- Sqlmap联合Nginx实现“地毯式”检测网站SQL注入漏洞
- 两分钟掌握数值选择器NumberPicker
- 对象的传值与返回
- 微信小程序+和风天气完成天气预报
- 日期选择器DatePicker和时间选择器TimePicker
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 03 . 二进制部署kubernetes1.18.4
- 01 . 美团全链路监控CAT简介及部署
- 02 . Ansible高级用法(运维开发篇)
- java编程思想第四版第七章总结
- OpenVPN原理及部署使用
- 04 . Jenkins部署Java项目
- java编程思想第四版第七章习题
- 03 . Jenkins构建之代码扫描
- mysql提示Packet for query is too large (1142 > 1024)解决方案
- Kubernetes 1.19.0——deployment(1)
- 02 . Jeknins简介部署及自动化部署PHP代码
- java编程思想第四版第八章习题
- java编程思想第四版第八章总结
- ESP32从网络获取天气OLED显示(附源码)
- 02 . Zabbix配置监控项及聚合图形