1. OSPF特性综述
2. Ospf协议下运行的三种拓补结构
3. 广播型多路访问网络下的OSPF运行     
     1)路由器ID     
     2)指定路由器和备份指定路由器     
     3)DR和BDR的选举     
      4)路由信息的维护     
      5)广播型多路访问的OSPF实验
4.点对点拓补下的OSPF运行     
         1)点对点网络介绍     
         2)点对点网络运行OSPF的实验
5. 非广播型多路访问(NBMA)下的OSPF运行     
          1)NBMA的基本特征     
           2)OSPF在NBMA拓补中运行的五种模式     
           3)NBMA模式的配置实验    
           4)点对多点模式的配置实验    
           5)点对多点非广播模式的配置实验    
           6)点对点模式的配置实验    
           7)广播模式的配置实验
 
 
                                    OSPF特性综述
OSPF协议是基于Dijkstra算法的链路状态路由协议,同时也是TCP/IP协议集中一个开放的、高性能的内部网关路由协议,再者也是大型、可扩展的网络上运行的路由协议。
OSPF能够解决很多距离矢量型路由协议所不能解决的问题,其特点如下:
  • 没有像距离矢量型路由协议那样的条数限制
  • 使用了VLSM可以有效的使用IP地址空间
  • 支持手动汇总(summarization)
  • 使用组播地址发送链路状态更新
  • 路由收敛速度快
  • 仅在路由发生变化时发送路由更新信息,保证了有效利用带宽
  • 普遍支持运行在大型和可扩展网络,或者更加复杂的环境。
  • 允许使用不同的口令验证方式对路由更新进行验证
  • 使用路径成本(Cost)值作为路径选择的依据
  • 有三张表:分别是路由表、拓补表、邻居表
允许逻辑定义网络,路由器可以被分配在不同的区域工作,避免链路状态信息更新信息向整个网络扩散,划分区域有利于路由总结和过滤不必要的子网信息
OSPF有这么多特点,可是硬币总是有两面的,运行OSPF的好处虽多,可是该协议的运行需要更大的内存空间和较高性能的CPU:OSPF中保存着三张表,需要较大的内存空间,同时拓补表中保存着整个网络的信息,一旦链路发生问题,路由的重新计算就需要高性能CPU的支持。
 
                       Ospf 协议下运行的三种拓补结构
  • 广播型多路访问(Broadcast Multi-access)拓补结构(如下图所示:):这种网络具有将一个物理信息发送给所有在同一个网络上路由器的能力。以太网就属于这种类型的网络。
          image
  • 点到点拓补结构(如下图所示):连接两台路由器的网络。通过串行链路,如E1,相连的两台路由器构成了点到点型网络。
          image
  • 非广播型多路访问(Non—Broadcast Multi-access,NBMA)拓补结构(如下图所示:):在一个网络上有多台路由器、但不具备广播能力的能力的网络。如帧中继。
           image
 
                        广播型多路访问拓补下的OSPF运行
1)路由器IDRID):
一个32位比特的数字,在自治系统内唯一的标志一台路由器(就像是一个人的身份证一样)。默认使用活跃接口上的最高IP地址。例如:一台路由器的物理接口上配置了以下几个IP地址:
      a. 192.168.10.1
      b. 192.168.10.9
      c. 172.16.32.1
      d. 10.0.0.1
那么路由器会选择b最为路由器ID,但是如果配置了环回接口地址,那么路由器ID就会使用换回接口地址,我们可以用式子这样来表示:Router—ID>环回接口(Loopback Internet)>物理接口
注意:如果路由器选取了物理接口上最大IP地址最为路由器ID后,再配置环回接口的IP地址,路由器不会立即选择环回接口IP地址作为自己的路由器ID,即使你将OSPF重启(clear IP OSPF process)了也是不行的,路由器ID依然没有变化,再者,就是你把物理接口给shutdown掉,路由器ID还是物理接口地址,要更新此路由器ID,那么解决办法就是重启路由器。如果是通过Router—ID命令配置路由器ID的话,要重新更改路由器ID,那么就可以通过命令clear IP OSPF process 重启OSPF进程。(由于本人的所有实验都是在模拟器上做的,有位好朋友告诉我说在真实路由器上重置物理接口或者清楚OSPF进程是可以更新路由ID的,一切以真实环境为主)
 
2)指定路由器和备份指定路由器:
在广播型网络环境中,如以太网,必须选举出一个指定路由器(Designated Router,DR)和一个备份指定路由器(Backup Designated Router,BDR)来代表这个网络。当DR运行时,BDR不执行DR的功能,当DR失效时,BDR才承担起DR的责任,此时的BDR变成了DR,而新的BDR将在现有网络中在继续选举出来。选举DR和BDR有如下好处:
① 减少路由更新数据流:在多路访问网络环境中,多台路由器可以成为邻居,如果他们之间都建立起相邻关系并相互交换链路状态信息,这样关系复杂,数据流量大。选择DR和BDR减少了这种复杂的关系。每台路由器只与DR和BDR建立相邻关系,交换链路状态信息,这种扩散过程大大减少了网络上数据的流量。如下图所示:
image
② 管理链路状态同步:DR和BDR可以保证网络上的其他路由器都有关于网络的相同的链路状态信息。通过这种方式,路由错误的数量降低了。
 
3DRBDR的选举:
DR和BDR的选举是在交换Hello数据包的过程 中选举出来的,然后其他邻居都与DR和BDR建立相邻关系。此时非DR和BDR的路由器相对于DR和BDR的状态时full状态,而非DR和BDR之间是Two—Way状态。选举DR和BDR的原则如下:
      a. 有最高优先级值的路由器被选为DR
      b. 有次高优先级值的路由器被选为BDR
      c. 在优先级相等的情况下(默认值都是1,如果将优先级设置为0,表示该路由器不参加选举DR和BDR),比较路由器ID;有最高ID的路由器成为DR,有次高ID的路由器成为BDR。
     d. 优先级为0的路由器不能作为DR和BDR。不是DR和BDR的路由器被称为Drother(非DR)。
      e. 如果有一台优先级值高的路由器被添加到网络中,原有的DR和BDR仍然保持不变。DR或BDR身份的交换只有在原有的DR或BDR失效后才再次选举。如果DR失效,BDR成为DR,在选举一个新的BDR;如果BDR失效就选举一个新的BDR。BDR设置了计时器,判断DR是否失效。如果BDR在计时器到期之前收不到DR的Hello包,那么就会认为DR已经不再提供服务了。计时器特性可以增强可靠性——不会因为一两个Hello包收不到就认为DR失效了。
       注意:在多路访问网络环境中,每个网络(网段)都有自己的DR和BDR。因此,在这种环境中的路由器可以是一个网段上的DR,同时在另一个网段上是一台普通路由器(如下图所示)。在一个DR和BDR工作正常的网络中,不能通过更改优先级或路由器的ID达到夺取DR或DDR身份的目的,只有当网络发生变化时才会改变DR或BD。(修改优先级的方法:进入通告OSPF的接口,然后使用“ip ospf priority 数字(1—255)“命令就可以修改路由器优先级。)
image
4)路由信息的维护:
运行链路状态路由协议的路由器依靠链路状态数据库计算得出路由表,所以链路状态数据库应该能够及时更新,反映出即时的网络拓补结构。当链路状态发生变化时,路由器通过扩散LSA将这一变化通知网络中的其他路由器,具体过程如下:
       ① 路由器在了解到一个链路状态发生变化时,将含有更新后的LSA(链路状态通告)条目的LSU(链路状态更新),使用组播地址224.0.0.6(使用MAC地址是:010005e0000006)发送出去,该地址代表所有DR和BDR路由器(如图所示)。一个LSU数据包可能包含多个独立的LSA。DR和BDR需要使用LSAck对收到的LSU进行确认。LSU总是需要确认的,这是运行机制。
image
② DR通过组播地址224.0.0.5,使用LSU将这一变化扩散到其他路由器(如图所示)。其他路由器也需要确认该LSU
image
③ 如果路由器还与另外的网络相连,那么该路由器使用同样地址为224.0.0.6的LSU想另外的网络DR和BDR通告(如图所示),DR再向其他路由器扩散网络发生变化的链路状态信息。
image
④ 当收到新的LSA后路由器更新它的链路状态数据库,然后使用SPF算法生成新的路由表。为降低“抖动”带来影响,每次收到一个LSU时,路由器在重新计算路由表之前等待一段时间,默认时间为5S。
image
当链路状态发生变化时,LSA被LSU携带立即扩散出来,这是由链路状态型路由协议的触发更新机制所决定的。在链路状态没有发生变化时,每个LSA都有一个老化(Aging)计时器,到期时由产生该LSA的路由器再发送一个有关该网络的LSU以证实该链路仍然是活跃的(1800S)。当路由器收到一个LSU时进行如下分析(发生①、②、③步):
a. 如果该条目不存在,路由器把该条目添加到自己的链路状态数据库中,使用LSAck向DR确认,向其他路由器扩散该信息,重新计算路由表。
b. 如果该条目存在并且收到的LSU含有的信息相同,忽略它。
c. 如果该条目存在,但是收到的LSU含有新的信息,那么路由器把该条目添加到自己链路状态数据库中,使用LSAck向DR确认,向其他路由器扩散该信息,重新计算路由表。
d. 如果该条目存在,而且比受到的LSU含有的信息新,那么路由器用自己的新信息向DR发送1个LSU
     
     5)广播型多路访问OSPF实验(area 0:其拓补图如下:
image
① 路由器R1的配置:
clip_image003
② 路由器R2的配置:
image
③ 路由器R3的配置:
image
④ 路由器R4的配置:
clip_image008
  • 查看OSPF的运行
(1) show ip route 命令
下面是路由器R1和路由器R4的输出
image
clip_image005
从R1和R4的输出结果可以看出来,路由器R1学到了其他三个路由器的环回口地址,路由器R4也学到了其他三个路由器的环回口地址,可是为什么显示出的是32位的主机记录呢,而不是显示出一个网段出来呢,有没有办法让其显示一个网段呢?
解决方法:
其实这个是OSPF的特性,如果想通过show ip route 看到的是各个网段的话,那么就在配置环回口iP地址的时候加入这么一条命令:“ip ospf network point-to-point”,这样子的话显示效果就是各个网段。在该实例中,只要在4台路由器的interface loopback 1 上配置“ip ospf network point-to-point“就好了,下面以R1上的interface loopback 1配置为例,如下图所示:
clip_image007
用show ip route命令看到结果如下图所示:
clip_image009
clip_image011
解决方法:
其实这个是OSPF的特性,如果想通过show ip route 看到的是各个网段的话,那么就在配置环回口iP地址的时候加入这么一条命令:“ip ospf network point-to-point”,这样子的话显示效果就是各个网段。在该实例中,只要在4台路由器的interface loopback 1 上配置“ip ospf network point-to-point“就好了,下面以R1上的interface loopback 1配置为例,如下图所示:
clip_image002
用show ip route命令看到结果如下图所示:
clip_image002[7]
clip_image002[9]
(2)show ip protocols 命令
下面以R3看到的结果作为详解,如下图:
clip_image014
Ø 第1行显示当前路由器上正在运行OSPF协议,其进程号是100;
Ø 第2—3行显示的是没有设置路由信息更新过滤列表;
Ø 第4行显示本地路由器的ID号;(选择了环回接口作为路由ID)
Ø 第5行显示本地路由器参与的区域数量及类型,本例显示为路由器所有接口运行在一个标准区域内;
Ø 第6行显示等值负载均衡的最大路径数目为4,默认是4条
Ø 第7—8行显示哪些网络(接口)运行在那个区域内(和使用network……area 命令配置的内容相对应);
Ø 第9行显示的是宽带的大小;
Ø 第10—14行显示了路由信息的来源—显示邻居ID,同时显示了管理距离和距上次更新的时间;
Ø 第15行显示了OSPF的默认管理距离为110
下面是R1看到的结果,如下图所示:
clip_image016
(3)Show ip ospf neighbors [detail]命令
下面以R3看到的结果作为详解,显示R3邻居,如下图
clip_image018
Ø 路由器R3有三个邻居,他们的ID号分别是10.20.0.1(R2环回口)、10.40.0.1(R4环回口)和172.16.10.1(R2环回口)
Ø 参数“Pri“代表邻居的优先级,当前默认值为1.
Ø 参数“State”代表当前邻居的状态,“FULL/DR”表示双方已经达到“FULL”状态并且邻居是DR;“FULL/BDR”表示双方已经达到“FULL”状态并且邻居是BDR;“2Way/DRother”表示双方是“双向”状态并且邻居是Drother;其实这样子可以知道路由器R3是DRother,因为DRohter和Drohter之间的状态都是2Way状态,而DRohter跟DR和BDR之间都是“FULL”状态
Ø 参数“Dead Time”代表认为邻居“Dead”的时间。当在该参数所指的时间内没收到邻居的Hello包时,就认为邻居“Dead”。在广播型网络中时间是40S。
Ø 参数“Address”代表邻居的接口地址。
Ø 参数“interface”代表自己和邻居相连的接口
下面是R1看到的结果,如下图所示:
clip_image020
下面是R2看到的结果,如下图所示:
clip_image022
下面是R4看到的结果,如下图所示:
clip_image024
【提醒】:
在路由器R1、R2、R3、R4互联的网络上,即192.168.10.0/24这个网络上,R1、R2、R3、R4的优先级相等,尽管R3的ID号比R1的ID号高,却没有被选为DR,这不是错误,是因为R1比R4先启动。当R1在启动后40S内R4还没有启动时,R1就会被选举为自己为DR,在R4启动之后虽然它的ID号高于R1,也不能成为DR了,因为当前有一个DR。同样的道理,R2成为BDR,也是因为R2比R3和R4先启动了。在这个实验中启动顺序是:R1—>R2—>R3—>R4。
image
使用detail参数显示更详细信息。下面是在路由器R3输出
clip_image027clip_image029
这里只解释一个邻居的情况,另外两个邻居可以参照该解释理解
Ø 第1行显示它的第三个邻居的ID号和邻居与之相连的接口地址
Ø 第2行显示的是R3通过接口fa1/1在区域0上学到该邻居的。
Ø 第3行显示邻居的优先级、当前状态和曾经发生的状态更改的次数
Ø 第4行显示DR和BDR的接口地址
Ø 第7行显示预计邻居的死亡时间
Ø 第8行显示邻居已经运行的时间
(4)Show ip ospf interface 命令
该命令用于查看运行OSPF的接口或特定接口的情况,下面是路由器R4的输出信息
clip_image031clip_image033
这里我们解释R4上的fa0/0接口上的报告信息及其含义,loopback口上的信息可以参照该解释理解,其他路由器上的接口也如此。
Ø 第1行显示了接口的状态,物理层和数据链路层都是“UP”的;
Ø 第2行显示了改接口的地址和所运行的区域号,当前区域是0;
Ø 第3行显示了所在的进程号—当前是100,路由器ID号—当前是10.40.0.1(环回口IP地址),网络类型—广播型(Broadcast),cost=1;
Ø 第4行显示的是接口传输延迟参数是1S,当前状态时DRother,优先级是1;
Ø 第5行显示了DR的ID号及其接口地址;
Ø 第6行显示了BDR的ID号及其接口地址;
Ø 第7行显示了几个计时器的时间,分别是Hello=10S,Dead=40S,Wait=40S,Retransmit=5S;
Ø 第8行显示下次发送Hello的时间,本例中将在7S之后;
Ø 第9行显示邻居数量,本例中3个,已经建立起邻接关系邻居数量,本例是2(注意:广播型多路访问中DRother路由器只与DR和BDR建立邻接关系,跟其他DRother路由器只是邻居关系);
Ø 第10行显示已经建立邻接关系的邻居是10.20.0.1(R2),邻居是BDR;
Ø 第11行显示已经建立邻接关系的邻居是172.16.10.1(R1),邻居是DR;
Ø 第12行显示没有取消对任何邻居的Hello发送
(5)Show ip ospf database 命令
该命令是查看路由器的OSPF链路状态数据库。为了了解该命令的输出内容的含义,需要了解以下几个相关术语:
① LSA类型——在链路状态数据库中有6中LSA,本实验中涉及2种,分别是路由器LSA(Router Link)和网络LSA(Net Link)。
② Router Link——由各个路由器产生,描述在特定区域内的接口状态,该LSA仅在特定区域内传播。
③ Net Link——在广播型多路访问网络中由DR产生,用以代表该网络上的所有路由器。
④ 链路状态标识(Link—state ID)——代表链路状态的实体。根据LSA类型的不同,表示方法也不同,Router Link用于通告他的路由器的ID代表;Net Link用DR在该网络上的接口地址表示。
⑤ 链路类型——用于描述不同的链路,本实验涉及2种,分别是传递链路(Transit Link)和端网链路(Stub Network Link );
⑥ 传递链路(Transit Link)——与同一个网络都相接的路由器接口(链路)称为传递链路,共接的网络叫做传递网络。例如,在广播型多路访问网络中的路由器接口就是传递链路。
⑦ 端网链路(Stub Network Link )——只有一个路由器接口相连网络称为端网,该接口称为端网链路,Loopback接口也认为是这种链路。
⑧ 链路标识(Link—ID)——链路本身标志。根据链路类型的不同表示方法也不同,传递链路用DR在该网络上的接口地址表示,端网网络用连接该网络的网段表示。
⑨ 链路数据(Link—data):链路的IP地址,端网用网络掩码表示;路由器链路(Router Link)使用路由器相关的接口IP地址
路由器R3的链路状态数据库如下图所示:
clip_image035
Ø 第1行显示使用该命令的路由器的ID号和OSPF进程号。
Ø 第2行表示该行下面显示的内容是区域0中路由器链路状态信息。
Ø 第3行是数据库的标题行,共6列,分别描述链路状态的不同参数:
² Link ID——这里实际上指的是Link—state ID,代表整个路由器而不是代表某个链路,这里是Router Link,所以要用通告他的路由器的ID表示;
² ADV Router——通告链路状态信息的路由器的ID号,即Link ID名下的内容是由它通告的;
² Age——该条目的老化时间(1800S到期)
² Seq#——该条目的序列号
² Checksum——该条目内容的校验
² Link Count——通告着路由器在本区域的链路数目,本实验中有4台路由器都有2条链路在区域0,(一个环回口所连链路,一个以太口所连链路)
Ø 第4—7行是实际的路由器链路状态信息。
Ø 第8行显示下面的内容是区域0中的网络链路状态信息
Ø 第9行市数据库标题。
Ø 第10行市具体网络链路数据库信息。
² Link ID——这里实际上指的是Link—state ID,代表该网络上的所有路由器,这里是Net Link,所以要用DR在该网络上的接口地址表示
² ADV Router——通告链路状态信息的路由器的ID号,即Link ID名下的内容是由它通告的。
image
(6)Show ip ospf database router 命令
该命令是查看一个特定路由器的链路的详细参数,可以再该命令后面加某台路由器ID号,就可以查看该路由器的链路的详细信息,如果没有在命令后面添加特定路由器的ID号,那么将显示所有路由器的链路信息。
下面是在R3上查看路由器R2(路由器ID:10.20.0.1)的链路信息,输出结果如下:
clip_image038
Ø 第1行显示使用该命令的路由器ID号和该路由器上运行着的OSPF进程号
Ø 第2行显示该行下面报告的是路由器链路状态(区域0)的详细情况。
Ø 第3行显示老化时间
Ø 第5行显示链路状态类型——路由器链路。
Ø 第6行显示链路状态ID号
Ø 第7行显示通告该链路的路由器ID号。
Ø 第8行显示序列码
Ø 第9行显示校验
Ø 第10行显示长度
Ø 第11行显示有两条链路在本区域内,该行下面分别报告了2条链路的具体信息。
Ø 第12行报告第1条链路与1个端网网络相连
Ø 第13行显示该链路ID,用连接该网络的网段表示(10.20.0.0这个网段)
Ø 第14行显示链路数据,用网络的子网掩码表示
Ø 第15行显示第2条链路与一个传输网络相连
Ø 第16行显示该链路ID,用DR在该网络上的接口地址表示(192.168.10.1)
Ø 第14行显示链路数据,用路由器(R2)相关接口IP地址表示(192.168.10.2)
下面是在路由器R2上查看路由器R4(路由器ID:10.40.0.1)的链路信息,输出结果如下:
clip_image040
下面是在路由器R4上查看路由器R1(路由器ID:172.16.10.1)的链路信息,输出结果如下:
clip_image042
(7)Show ip ospf database network 命令
使用该命令可以查看有关网路链路的详细信息,网络链路信息只被DR路路由器通告。下面是在路由器R1上的输出:
clip_image044
Ø 第1行显示使用该命令的路由器ID号和该路由器上运行着的OSPF进程号
Ø 第2行说明一下内容是关于网络链路状态(区域0)的详细情况。多条网络链路分别分段显示,由于本实验只有一条网络链路,所以只有一个分段。
Ø 第3行显示老化时间
Ø 第4行显示链路状态类型——网络链路。
Ø 第5行显示该链路状态ID,用DR在该网络上的接口地址表示(192.168.10.1)
Ø 第6行显示通告网络链路的DR路由器的ID
Ø 第7行显示序列码
Ø 第8行显示校验
Ø 第9行显示长度
Ø 第10行显示该网络的掩码长度
Ø 第11—14行分别显示了于给网络相连的4台路由器的ID号
下面是在路由器R4上的输出:
image
u 重新选举DR和BDR的小实验:
已知:由上面的实验可以知道,在192.168.10.0这个网络中, DR是路由器R1(路由器ID:172.16.10.1),BDR是路由器R2(路由器ID:10.20.0.1)。
做法:将路由器R1给Down掉(将R1上的fa0/0给shutdown),查看实验结果的DR和BDR。
实验结果如下图:分别从R2、R3、R4查看邻居信息
clip_image048clip_image050clip_image052
结论:
(1)从上面邻居信息的输出可以看出,此时的DR是路由器R2(路由器ID:10.20.0.1),BDR是路由器R3(路由器ID:172.16.30.1),DRother是路由器R4(路由器ID:10.40.0.1)。
(2)路由器DR被Down掉后,BDR将起来顶替DR的工作,此时的BDR升级为DR,那么网络中还必须有一个BDR,所以就通过选举来产生,由于R3的路由器ID比R4的路由器ID还高,那么R3自然就被选举为BDR。
小问题:为什么R3的路由器ID比R2的路由器ID还要高,为什么不选举R3为DR,还是选举R2为DR?
答:举个通俗的例子说明一下:凡事都有个先来后到,假设在一个公司里,有总经理(DR)和副总经理(BDR)以及员工,其中某些员工的能力超过了副总经理得能力(R3的路由器ID比R2的路由器ID还要高),就在某个时刻,总经理挂了,那么公司中的业务自然而然就有副总经理来代理了,成为了总经理(DR),而不会直接就把公司的业务交给能力强的员工,让员工直接成为总经理。那么此时将重新选出一个人作为副总经理,那么就在员工中选择能力最强的作为副总经理了。(风火连城大哥给予的解释,多谢风哥)
u 修改优先级选举DR和BDR小实验:
已知:DR是路由器R2,BDR是路由器R3(基于上面的小实验)。三台路由器的优先级都是1.
做法:目的是实现选举R4为DR,通过修改R4的优先级为10(比1大但小于255)。
实验步骤中在R4的操作如下图所示:
clip_image053
查看三台路由器的邻居如下:
clip_image048[1]clip_image050[1]clip_image052[1]
小问题:为什么修改优先级后DR和BDR都没有进行重新选举呢?还是没有变化,DR依然是R2,BDR依然是R3?
答:这个是OSPF的特性,在一个DR和BDR工作正常的网络中,通过修改优先级或者更改路由器ID或者在网络中添加一台新的路由器(路由器ID比网络中任何一台路由器ID都要高)而达到剥夺DR或BDR的身份。
解决方法:
(1)重启路由器
(2)重启OSPF(在特权模式下使用clear ip ospf process)
实验结果如下:选择第二种解决方案。
clip_image055clip_image057clip_image059
 
image
u 查看链路变化,DR和DROther的工作原理
已知:DR是路由器R4,BDR是路由器R3(基于上面的小实验)。
做法:在三台路由器的特权模式下输入debug ip packet,然后将路由器R2上的环回接口给Down掉,观察组播地址224.0.0.6和224.0.0.5。
实验结果如下:
clip_image062
clip_image064clip_image066
观察到了源地址是192.168.10.2(R2),目的地址是224.0.0.6
u 课外知识点:
1. 我们都知道在该实验中网络类型是广播型多路访问网络。在这样的网络中会选举出DR和BDR的。
2. 在该网络中(本实验中),可以通过命令修改,使得该实验中的网络不选举DR和BDR,让其全部达到“FuLL”状态,同时所有路由器的优先级都自动被改变为0,而且自己已经不能手动修改优先级了,其做法就是在通告OSPF的接口上使用这么一条命令:“ip ospf network point-to-multipoint”。
实验结果截图如下:
clip_image068clip_image070
clip_image072clip_image074
结论:网络不选举DR和BDR,而都是“FULL”状态,同时所有路由器的优先级都自动被改变为0。
image
3. 在该网络中(本实验中),如果在通告OSPF的接口上使用命令:“ip ospf network point-to-point”,那么其状态就会不稳定,路由器就会在准启动状态(Exstart)和交换状态(Exchange)变化,在这两种状态变动。
4. 一个小实验使用了ip ospf network point-to-point命令,查看实验结果得出结论。
image
(1)路由器的基本配置和启用OSPF的配置命令这里就不再一一列出来,只做一些关键的截图,进入以太网接口将接口类型配置为点对点的截图如下:
clip_image079
(2)查看R1上Ethernet 1/1的接口类型和R2上Ethernet 1/0的接口类型,使用“Show ip OSPF interface”
clip_image081
clip_image083
从上面的蓝色线可以看出路由器R1和路由器R2的接口类型。
(3) 在路由器R1和路由器R2上查看邻居,截图如下:
clip_image085
路由器R1上的邻居
clip_image087
路由器R2的邻居
(4)针对以上实验提出以下几个问题,并且做出解答
【提问】
(1) 为什么在R1查看邻居看到邻居是BDR,而在R2上查看邻居,邻居却不是DR呢?
(2) 为什么在R1上查看Ethernet 1/1接口上看到了DR和BDR(上面圈红色部分),而在查看邻居的时候查看不到DR呢?
答:针对上面两个问题,其实都是同一个答案来着。其实当我们用“show ip ospf neighbor”的时候,路由器都是站在自己的立场去查看邻居的,例如R1,由于通告OSPF的接口类型是Broadcast,那么R1就认为对方邻居也是处在该广播型网络的,所以自然而然就选举出了DR和BDR,查看到邻居R2是BDR,然而当我们在R2查看邻居信息的时候,由于通告OSPF的接口类型是point-to-point,那么路由器R2就会对邻居的处理以点对点网络来处理,而点对点网络中所有路由器都是Full状态,并且不会选举DR和BDR,所以在R2上查看邻居的结果就是“FULL/—”。所以说查看邻居信息,路由器都是站在自己的角度上去查看邻居信息的。而查看接口信息的话就可以看到详细信息了,可以看出路由器R1是DR,路由器R2是BDR。
(3) 在路由器R2上看到下面的信息,为什么会有这种现象呢?截图如下:
clip_image089
答:我们知道LSA Type 2属于LSA类型中的第2类型的Network LSA,该Network LSA是有DR所产生的,用DR在该网络上的接口地址表示(172.16.128.1)。由于DR使用224.0.0.5组播地址将信息发送到R2的路由器接口Ethernet 1/0上时,由于R2的路由器接口Ethernet 1/0的接口类型是point-to-point,所以该接口识别不了由该DR所产生的信息,所以就会认为给LSA Type 2信息是无效的,没有用的。
【总结】:
其实在这个实验中,我们可以举出一个形象的例子来说明一下:
初到大学的学生们对大学里的东西并不了解,学校有一栋楼是男女混住的(接口一端是Broadcast,一端是point-to-point),有一个男生认为自己所住的地方应该都是男生(R2也是处于Broadcast网络),有一个女生认为自己所住的地方应该都是女生(R1也是处于point-to-point网络)。他们都是站在自己的角度上去看问题的。当这对男女住进这栋楼后(网络达到FULL状态),他们经常进行通信,男同胞懂得英语、韩语、汉语,女的只懂得英语和汉语。当男的用韩语(LSA Type 2)写信并寄到女同胞那里后,女同胞并不懂得信里写什么,所以就会忽略掉。而他们之间用汉语或者英语写信时都能相互理解的。