目录OSPF邻接状态的分析 (1)一、实验原理 (1)二、实验目的 (1)三、实验拓扑 ............................................................................. 错误!未定义书签。
四、实验配置 (1)五、实验分析 (3)六、实验现象 (3)七、实验结果 (3)八、实验拓展 (5)九、Exchange (6)十、Loading (7)十一、Full (7)将Linux系统配置成DNS主服务器 (9)一、实验目的 (9)二、实验环境 (9)三、实验分析 (9)四、实验内容及操作步骤 (9)五、问题总结 (12)实习感想 (13)OSPF邻接状态的分析一、实验原理OSPF(open shortest path first)协议是先进网络中使用最广泛的动态路由协议,区别于RIP和EIGRP,它是一种链路状态的路由协议。
启用OSPF的路由器都会以自身为根,通过计算收到的链路状态信息,得到一条到达目的网络的最优路径。
不同于距离矢量的路有协议,链路状态路由协议的每一个路由条目都有自身计算得出,不是有其他路由器宣告。
二、实验目的在OSPF协议进行协商的过程中,不同路由器之间需要建立邻居,之后需要建立邻接关系。
在建立邻接状态的过程中,需要选举出DR和BDR(本次试验在广播链路中进行),而这些过程都需要在路由器建立邻接关系的过程中完成。
本次实验需要掌握OSPF建立邻接关系的七个状态,以及过程中都发生了什么。
三、实验拓扑四、实验配置R1:no ip domain lookup //关闭域名解析查找命令interface Loopback0ip address 1.1.1.1 255.255.255.255 //配置环回口地址interface FastEthernet0/0ip address 14.1.1.1 255.255.255.0 //配置fa0/0口地址router ospf 110 //启用OSPF进程,进程号110 log-adjacency-changesnetwork 1.1.1.1 0.0.0.0 area 0 //宣告主机1.1.1.1network 14.1.1.0 0.0.0.255 area 0 //宣告14.1.1.0网段line con 0exec-timeout 0 0 //防止超时退出logging synchronous //防止日志更新打断命令行R2:no ip domain lookup //关闭域名解析查找命令interface Loopback0ip address 2.2.2.2 255.255.255.255 //配置环回口地址interface FastEthernet0/0ip address 14.1.1.2 255.255.255.0 //配置fa0/0口地址router ospf 110 //启用OSPF进程,进程号110 log-adjacency-changesnetwork 2.2.2.2 0.0.0.0 area 0 //宣告主机2.2.2.2network 14.1.1.0 0.0.0.255 area 0 //宣告14.1.1.0网段line con 0exec-timeout 0 0 //防止超时退出logging synchronous //防止日志更新打断命令行R3:no ip domain lookup //关闭域名解析查找命令interface Loopback0ip address 3.3.3.3 255.255.255.255 //配置环回口地址interface FastEthernet0/0ip address 14.1.1.3 255.255.255.0 //配置fa0/0口地址router ospf 110 //启用OSPF进程,进程号110 log-adjacency-changesnetwork 3.3.3.3 0.0.0.0 area 0 //宣告主机3.3.3.3network 14.1.1.0 0.0.0.255 area 0 //宣告14.1.1.0网段line con 0exec-timeout 0 0 //防止超时退出logging synchronous //防止日志更新打断命令行R4:no ip domain lookup //关闭域名解析查找命令interface Loopback0ip address 4.4.4.4 255.255.255.255 //配置环回口地址interface FastEthernet0/0ip address 14.1.1.4 255.255.255.0 //配置fa0/0口地址router ospf 110 //启用OSPF进程,进程号110 log-adjacency-changesnetwork 4.4.4.4 0.0.0.0 area 0 //宣告主机4.4.4.4network 14.1.1.0 0.0.0.255 area 0 //宣告14.1.1.0网段line con 0exec-timeout 0 0 //防止超时退出logging synchronous //防止日志更新打断命令行五、实验分析在实验过程中,蚯蚓已经利用GNS3自带的抓包工具抓取了建立邻接关系发送的所有包,我们这里先来看在建立关系的过程中,DR和BDR的选举过程。
在我们刚开始接触OSPF协议的过程中,对于DR和BDR的选举好像很简单的样子——首先选举DR,接着选举BDR。
选举的依赖就是路由器优先值,接下来是比较路由器的Route ID,以此为依据来选举。
但是往往在实验过程中我们发现,明明Route ID小的路由器却成为了DR或者BDR,这个和我们学习的东西又矛盾,百思不得其解。
六、实验现象R4(config-router)#do sh ip os neiNeighbor ID Pri State Dead Time Address Interface 1.1.1.1 1 FULL/DR00:00:36 14.1.1.1 FastEthernet0/02.2.2.2 1 FULL/BDR00:00:39 14.1.1.2 FastEthernet0/03.3.3.3 1 2W AY/DROTHER 00:00:32 14.1.1.4FastEthernet0/在R4上查看邻居表发现,Route Id较高的3.3.3.3没有成为DR,反而1.1.1.1成为了DR。
而即使如此,也应该是R2成为DR,R1成为BDR,但是实验结果和我们学习的好像不符。
七、实验结果在路由器刚启用OSPF协议到最后完成邻接关系的建立,总工会经历七个状态:Down、Init、Two-way、Exstart、Exchang、Loading、Full。
而OSPF协议中DR、BDR的选举在Two-way 状态之后进行。
在Two-way状态之前,路由器发送的OSPF Hello包中的DR和BDR字段都标志为:0.0.0.0这是蚯蚓利用wirshark工具打开的抓取的hello包,在GNS3-0.8以上的版本应该都已经有集成的了。
而且wirshark工具的使用很简单,推荐使用。
当路由器从接收到的hello包中看到了自身的Route ID之后,就进入了Two-way状态(启用了OSPF的路由器未收到hello包时Down状态,当OSPF路由器在hello死亡时间内收到hello包时处于Init状态)。
此时,启用OSPF的路由器开始选角DR、BDR。
蚯蚓在实验的过程中,首先在R1和R2上进行了配置,所以,选举过程最先参与的是R1、R2。
这里就很好的解释了为什么R3没有成为DR、BDR的原因。
在完成DR和BDR 的选举之后,即使后来有更加优先的路由器加入整个广播网络,网络中的DR和BDR也不会改变。
新的问题又产生:明明R2的Route Id高于R1,为什么R1成为了DR,而R2成为了BDR。
路由器在Two-way状态开始后,向224.0.0.5发送hello包。
在hello包中宣告自己是DR,而DR字段,则是连接该网络的接口地址。
路由器会建立一个具有选举资格的列表(优先级为0,不具选举资格),该列表中包含所有未宣告自身为DR的路由器(而宣告自身为DR 的路由器没有进入该列表的资格)。
问题就出在这里:古话说的好,先下手为强,R1第一个向整个网络宣告“我是DR”,同时它也在建立上述的表,但是就不把自己放在表里面。
其他路由器还未来得及向大家宣告“我是DR”,就已经被R1“洗脑”,自觉的在表中排除了R1的位置,开始争夺BDR的归属权。
当所有Route争个你死我活为了老二位置的时候,殊不知已经有Route先它们一步已经得到了老大的位置,就算它们成为了BDR,上头还有DR 压着,以后的所有事情,还是得听DR的(所有DRother都向DR发送信息,有DR向DRother 发送信息)。
这里,我们来查看接下来的hello包:R1:此时,R1已经将自己标记成为DR,而BDR还没有产生。
R2:R2被“欺骗”,将自己放到了BDR的位置,殊不知自己比R1更有“才华”。
R3:R4:可怜的R3和R4,因为来的迟,什么都得不到,只能成为DRother。
八、实验拓展看惯武侠玄幻小说的朋友应该知道,想要成为掌门,有好多渠道和办法,但最直接简单的莫过于干了掌门,然后自己上位。
当然这种事情,副掌门做的是最多的(其实蚯蚓向引用局长副局长来说明的,但是想到社会大环境,还是用掌门更加靠谱)。
我们加进来一个新的路由器,产生一个新的拓扑图。
(一)拓扑图(二)配置R5:no ip domain lookup //关闭域名解析查找命令interface Loopback0ip address 5.5.5.5 255.255.255.255 //配置环回口地址interface FastEthernet0/0ip address 14.1.1.5 255.255.255.0 //配置fa0/0口地址router ospf 110 //启用OSPF进程,进程号110log-adjacency-changesnetwork 5.5.5.5 0.0.0.0 area 0 //宣告主机5.5.5.5network 14.1.1.0 0.0.0.255 area 0 //宣告14.1.1.0网段line con 0exec-timeout 0 0 //防止超时退出logging synchronous //防止日志更新打断命令行(三)关闭R1Neighbor ID Pri State Dead Time Address Interface2.2.2.2 1 FULL/DR00:00:39 14.1.1.2 FastEthernet0/05.5.5.5 1 2W AY/DROTHER 00:00:34 14.1.1.5 FastEthernet0/014.1.1.4 1 FULL/BDR00:00:31 14.1.1.4 FastEthernet0/从红色加粗字体中我们可以发现,当DR死亡以后,BDR立刻成为DR,而在剩下的路由器中启用Route Id更加优先的路由器成为BDR。