3.5【OSPF】NP十二班第四天-OSPF接口状态机及DR和BDR选举-1

OSPF接口状态机及DR和BDR选举

OSPF协议:《TCP/IP协议卷一》《OSPF和IS-IS详解》
  研究OSPF这本书好,建议读,  比卷一还好;
  经过上课入门,课后探讨,多 动手实验;自学重要
 
经过什么方式以什么方式记得更牢?
一、隔一段时间常常复习
二、当个讲师把理论知识好好沉淀 
 
华为面试一次5000块钱
 
什么状况下一边down一边Init状态?
Init状态:初始化状态:收到hello报文而且检测经过了
 
经过ACL能够过滤IP包,一端拒绝全部的接收报文可是能够发送;
对端维护本段状态是Init;本段维护对端状态是down状态
选举主从的目的是为了保证DD报文的可靠性
LSACK能够一次确认多个LSA
************************************************************************
OSPF接口状态机
RFC-开发的一个标准化文档
RFC2328
 +----+   UnloopInd   +--------+
                                  |Down|<--------------|Loopback|
                                  +----+               +--------+
                                     |
                                     |InterfaceUp
                          +-------+  |               +--------------+
                          |Waiting|<-+-------------->|Point-to-point|
                          +-------+                  +--------------+
                              |
                     WaitTimer|BackupSeen
                              |
                              |
                              |   NeighborChange
          +------+           +-+<---------------- +-------+
          |Backup|<----------|?|----------------->|DROther|
          +------+---------->+-+<-----+           +-------+
                    Neighbor  |       |
                    Change    |       |Neighbor
                              |       |Change
                              |     +--+
                              +---->|DR|
                                    +--+
 
一、DOWN->LOOPBACK (LOOPBACK接口)
若是一个接口是逻辑口,宣告进OSPF之后,接口 UP会从DOWN变成LOOPBACK状态,
二、DOWN->POINT-TO-POINT(串口、(点到点、点到多点))
若是一个接口是串口,宣告进OSPF之后
三、DOWN->Waiting->(DR\BDR\DRother) (广播网、非广播网)
 若是一个接口是
 DR:指定路由器(waiting时间超时,从Waiting过渡到DR)
 BDR: 备份的指定路由器(BackupSeen)
 DRother:不是一个指定路由器(没有选举权,不参与选举)
 
Waiting有时间限制,在广播网中,时间是40s
 
接口状态机和邻居状态机没有关系
OSPF算是最复杂 的 IGP协议
 
如今有3台路由器,3台路由器里面会有几个DR?
会有2个DR: DR指的是接口的状态
在一个广播域(网段 )里面只存在一个DR和一个BDR,而Dother能够有多个,如今是有两个网段,有两个DR,主要的做用是为了减小LSA的泛洪。
 
43:25

DR和BDR
 
 
广播网里面有5台设备,1路由器一样的LSA须要通告4次,每个邻接都要通告一次;一样的LSA须要屡次去发送,这样意味着发送的LSA是重复的,重复的LSA会带来性能和带宽的浪费,怎么避免这个问题?让LSA只发送一次其余的设备都能收到?
 
这个方案就是在网络里面去选几台指定设备-DR;你们都和指定设备DR创建邻接关系,其余的设备之间是不创建邻接关系的,由指定设备收集全部的LSA,而后再通告给你们。LSA只发送一次,发给DR,再由DR转发给你们;DR负责收集全部设备的LSA,再由DR统一发送,这样就能够避免LSA的屡次发送。能够减小性能的利用率和带宽占用率。
 
同时,在OSPF里面,为了网络可靠性的保证,除了有一个DR,还有一个BDR,BDR至关于DR的备份。DR挂了之后,BDR会升级为DR,会从新选举,选举BDR;DR是必须的,BDR是能够没有的。在一个广播网里面只能有一个DR和一个BDR。
 
全部的设备都会和DR和BDR创建邻接关系,全部的DRother设备之间只能创建邻居关系。若是DR失效,BDR设备会升级为DR,而后从新从DRother中选举BDR。
 
DR和BDR之间也是邻接关系。
 
如何选举DR和BDR?
一、先比较优先级,在HELLO报文里面有一个字段DR Prority 8个比特,默认状况下优先级为1,优先级大的称为DR设备
二、若是优先级同样,比较router-id,大的一段称为DR
//看hello报文
 
DR选举出来,能被抢占吗?
一旦DR和BDR选举以后,不能被抢占:接口优先级为0表示这台设备不能参与选举,没有选举权,会立刻进入DRother状态,1是DR,2是DRother,1和2创建完成之后,3优先级调整为10,3状态仍是BDR,3仍是不能抢占,为了保证OSPF网络的稳定性,由于DR的设备有很关键的做用,它会通告一种LSA(2类LSA):若是DR设备容易被抢占,2类LSA就会由新的DR设备从新发,从新发的话就会影响OSPF网络的整个区域从新执行一次SPF算法,引发不稳定,DR一旦选举出来之后,是不能被抢占的。
 
若是重启的话,3会变成DR
  DR规则:
1.在选举期内,优先级高的成为DR,其次的成为BDR;
2.在选举期内,若是优先级同样,Router-ID高的成为DR,其次的成为
BDR;
3.在选举期外,不存在抢占性;
4.DR失效之后,BDR升级成为DR,从新选举BDR;
5.clear ip ospf process(重启OSPF进程)能够重选;
6.DR正常时,BDR只接收全部信息,转发LSA和同步LSDB的任务由DR完 成,当DR故障时,BDR自动成为DR,完成原DR的工做,并选举新的 BDR
 
实际的选举步骤是先选举BDR,由BDR升级为DR,再去选一个新的BDR,优先级为0表示没有选举权。
 
DR和BDR选举以后,3是后加入的,3是如何知道网络里面是否已经存在DR和BDR?
广播网里面,正常状况下是40s的选举期,选举期内会等待,HELLO报文里面有DR address和BDR address 接口的IP地址;若是网络中存在络DR和BDR,在发送的HELLO报文里面会通告DR和BDR接口的IP地址。
若是DR是携带IP地址的,BDR为空,说明网络里面存在DR不存在BDR;若是DR和BDR都为空,说明网络里面不存在DR和BDR
 
 
在校园网中,router-id本身选举,容易冲突,必定要手动合理去规划router-id
 
DR和BDR是在哪一个阶段去选举的?
DR和BDR是接口状态机,和邻居状态机没什么关系,是在2WAY状态,进入邻居状态之后再进行DR和BDR的选举。
(1)有效时间内,接口的waiting-time尚未超时,已经进入2WAY状态,邻居状态之后,    Backupseen触发,能够交互hello报文进行DR和BDR的选举;
(2)有效时间以外进入2WAY状态,一旦有效状态以外过渡到2WAY,说明网络之中已经存在DR了。
 
先宣告1的接口进入OSPF,40s以后再宣告3的接口进OSPF,已知1的优先级为1,3的优先级为10;1和3之间谁是DR,谁是BDR?
1是DR,3是BDR,1已经超时, 说明有效时间已经超时了,超时之后在有效时间范围以内都没有选举出来DR,1会认为本身是DR;1再去发送hello报文给3,hello报文里面已经填充了DR设备的接口的IP地址,3收到1的HELLO报文,从这HELLO报文中能够得知,网络中已经存在DR设备,而BDR是空的,因为DR和BDR是不能被抢占的,3只能成为BDR;
 
 
改一下,20s以后把3宣告进OSPF,在有效时间范围内交互HELLO报文,DR和BDR字段都是空的,能够进行正常的选举,3的优先级大于1的优先级,3就会变成DR,1就会变成BDR。
 

2WAY状态会去选举DR和BDR,2没有选举权,1和3是有效优先级;
(1)若是网络里面没有DR和BDR,先选举BDR;先选举BDR,BDR升级为DR,BDR位置空出来,从新选举BDR
(2)若是网络里面存在DR,不存在BDR,直接选举一个BDR
(3)若是网络里面没有DR,存在BDR,由BDR升级为DR,空闲出BDR的位置再去选举一个BDR。
(4)既有DR又有BDR,不用选
网络里面如今没有DR和BDR,先选举BDR,3成为BDR;BDR升级为DR,BDR位置空出来,从新选举BDR
 
为何这样选?由于RFC规定,在有效时间范围以内,须要先选举BDR再去选举DR,不能一步到位。
 
若是3台设备优先级都为0,则直接变为Dother,都处于2WAY状态

总结:区分开接口状态机和邻居状态机;接口状态机:接口状态UP之后,若是是广播网或者是非广播网,接口状态会从DOWN->Waiting;waiting的时间会等于一个dead的时间,广播网是40s;等待一个DR和BDR的选举,邻居状态机变为2WAY之后才开始选举的过程,若是在waiting的时间范围以内都没有选举出来谁是DR,会认为本身是DR,2WAY等待DR选举出来之后会过渡到exstart.
 
若是加一台设备,在40s选举期间,那台设备会变为DR,新加入者收到HELLO报文,发现DR和BDR都为空,则本身为DR
 
为何通告DR和BDR填充IP地址而不是router-id?
***************************************************************
什么缘由会影响OSPF邻接的创建?
一、MTU不匹配(exstart-exstart或者exstart-exchange)
二、DR P=0,DR的优先级都为0   (2WAY)
三、链路请求列表和重传列表不为空(loading)
**************************************************************
【DR和BDR的选举实验】1:49
2:0
***************************************************************
在一个广播域里面(VLAN划分广播域),只能存在一个DR和一个BDR,其余设备都是DOTHER。
 
在一个广播域里面如何存在两个DRother?一山不容二虎的过渡状态
确定存在一山二虎的状况的,好比说,弄到不一样的 VLAN里面好比R1在VLAN1,R4在VLAN4里面,不通的,不通不能交互HELLO报文,接口UP40秒之后 ,没有选举出DR会认为本身是DR;两端都认为本身是DR之后,再把端口划到同一个VLAN,交互包,这时,同一个广播域里面存在两个老大,就会火拼看谁胜出,经过优先级和router-id来选的;
或者,经过修改hello时间来演示;ip ospf hello-interval 双方都不接收对方发送的hello报文。
****************************************************************
在发送hello报文的时候DR和BDR字段填充的是DR和BDR接口的IP地址,为何这么作而不是填充router-id?
在广播网中选举DR/BDR是为了减小LSA泛洪,邻居状态进入2WAY状态之后,开始选举DR/BDR,在网络里面须要存在DR,能够没有BDR;选举出来之后,全部的其余设备DRother都须要和DR去交互LSA,发送DD报文。
 
这种交互方式是通告单播去执行的,不是经过组播,如今只须要将LSA交互给DR,由DR分发给你们,须要以单播的方式交互给DR,须要知道目标的IP地址,这就是为何 填充的是IP地址而不是router-id;(如今处于2WAY状态没有交互LSA,目的是为了去交互LSA)
 
router-id是一个虚拟地址,能够随便配置
 
**********************************************************
组播组地址224.0.0.6 ALLDRouters全部指定路由器
 
只有DR和BDR才会去监听组播组地址,其余设备DRother是不会监听的;DRother会向这个组播组地址去通告报文,而它的目的就是将报文通告给DR和BDR
 
有两种状况:
1.创建邻接关系:DBD LSR LSU(创建邻接之初-下载地图)
2.后续按期维护LSA状态(LSU去维护一个 LSA状态;经过LSU-通告实时路况);后续DRother每隔1800s向这个组播组地址224.0.0.6去通告一个LSU,维护LSA状态;
LSA老化时间3600s,发一次LSA老化时间归0;出问题以后,3600s以后没收到LSU,会将LSA从LSDB中删除掉
 
 
224.0.0.6只有DR/BDR才会监听;224.0.0.5全部的设备都会监听。
全部的 DRother往224.0.0.6发LSU报文,发的是LSU,通告的本身LSDB里的LSA信息;DR/BDR收到这个LSU之后,首先更新本身的LSDB,后续,会将最新的LSA向224.0.0.5发送出去,全部的DRother会收到,作更新。
 这样能够保证LSA只发送 一次,正常状况下DR往224.0.0.5发送。
 
DRother之间创建的是 邻居关系;DR与DRother之间创建的邻接 关系

【实验验证】224.0.0.5/224.0.0.6组播组地址2:40
BDR须要监听224.0.0.6去维护LSDB
 
 
 
 
 
 
 
 
 
 
 
 
 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">面试





附件列表

相关文章
相关标签/搜索