49彩票集团首页-49彩票集团官网|官网首页

49彩票集团让大家拥有最好的账号使用功能,49彩票集团是为大家带来更加方便的使用途径,是因为在49彩票集团娱乐的玩家们越来越多,发展成为最受欢迎的网上体育娱乐公司。

4)每台路由器泛洪链路状态通告(LSA)给所有的

2019-10-18 作者:计算机网络   |   浏览(59)

实验级别:Professional
情况一:
我们都知道OSPF选取DR的过程是首先比较优先级,在优先级相同的情况下选择RID较高的为DR,但是我多次实验后发现在很多时候DR并非RID最高的路由器,这是什么原因呢?

0×1.链路状态路由协议概述
链路状态路由协议使用Dijkstra算法,也称SPF(Shortest Path First,最短路径优先)算法。常见的链路状态路由协议有:OSPFv2、OSPFv3等。这篇文章主要针对OSPFv2,OSPFv3是面向IPv6的且不兼容IPv4,暂不介绍。
a.工作过程
1)每台路由器学习激活的直接相连的网络。2)每台路由器和直接相连的路由器互交,发送Hello报文,建立邻居关系。3)每台路由器构建包含直接相连的链路状态的LSA(Link-State Advertisement,链路状态通告)。链路状态通告(LSA)中记录了所有相关的路由器,包括邻路由器的标识、链路类型、带宽等。4)每台路由器泛洪链路状态通告(LSA)给所有的邻路由器,并且自己也在本地储存邻路由发过来的LSA,然后再将收到的LSA泛洪给自己的所有邻居,直到在同一区域中的所有路由器收到了所有的LSA。每台路由器在本地数据库中保存所有收到的LSA副本,这个数据库被称作"链路状态数据库(LSDB,Link-State Database)"5)每台路由器基于本地的"链路状态数据库(LSDB)"执行"最短路径优先(SPF)"算法,并以本路由器为根,生成一个SPF树,基于这个SPF树计算去往每个网络的最短路径,也就得到了最终的路由表。
下图(图1)演示了链路状态路由协议路由表的生成过程:

单区域OSPF

在翻阅了卷一有关OSPF DR选取的介绍时,发现了这么一句话:“在一个多址网络上,最先初始化启动的两台具有DR选取资格的路由器将成为DR和BDR路由器。”这是我总结了非最高RID而成为DR的实验,发现这些路由器都是我在进行OSPF配置的时候首先启动ospf的路由器,那会不会是因为这些路由器首先启动了OSPF,然后把自己设置为DR导致其他路由器启动OSPF后就不再进行DR的选取了呢?于是我做了下面的这个实验。

49彩票集团 1

命令:

实验的topo很简单,我就不画了,就是两台路由器通过fa0/0口相连接。
R1:
conf t
ho R1
int lo0
ip add 1.1.1.1 255.255.255.0
int fa0/0
ip add 172.1.1.1 255.255.255.0
no sh
router ospf 10
net 172.1.1.1 0.0.0.0 a 0

Cisco-CCNA-OSPF-1

R1(config)#router ospf 1        //启动OSPF进程

R2:
conf t
ho R2
int lo0
ip add 2.2.2.2 255.255.255.0
int fa0/0
ip add 172.1.1.2 255.255.255.0
no sh

b.优缺点
优点:运行链路状态路由协议的路由器通过LSA的交换,最后独立的计算出到每个网络的最短路径,相对距离矢量路由具有更强的全局观;收到邻居的LSA后立即泛洪,并且本路由再执行SPF算法,比距离矢量路由有更高的收敛速度(EIGRP除外,EIGRP是高级距离矢量路由协议有更快的收敛速度);当检测到拓扑发生变化时立即发送更新;多区域设计,可以将一些问题限制在较小的区域中。
缺点:内存需求高,需要更强的CPU的支持,在网络初始化时,大量链路状态包泛洪,会影响网络的可用带宽。
0×2.OSPF概述和基本配置
OSPF(Open Shortest Path First,开放最短路径优先)是一个被各厂商设备广泛支持的链路状态路由协议。
a.特性
OSPF执行IETF标准,IETF标准被不同厂商的设备所支持;执行SPF算法,不会产生环路;支持VLSM和CIDR;可以用于大型网络;层次型设计,易扩展;区域化设计,减小路由更新给设备带来的负担;快速收敛,使用触发式更新;支持针对区域和链路的验证。执行OSPF的路由默认每隔30分钟会泛洪一次链路状态通告(LSA),称为链路状态刷新(并非周期性更新);当一条LSA被接收并被储存到链路状态数据库中后,路由器会给这条记录增加一个老化时间标识,默认是一小时,所以为了防止一些正常的LSA被清除,始发这条LSA的路由会每隔30分钟泛洪一次这条LSA的一个新拷贝。
b.术语
链路(Link):当一个接口加入OSPF进程,就被当做是OSPF的一条链路。
链路状态(Link-State):包括接口的IP、子网、网络类型、链路花费、链路上的邻居等。
路由器ID(Router ID,简称RID):RID是一个用来标识路由器的IP地址,可以在OSPF路由进程中手工指定;如果没有指定,路由器默认选择回环接口中最高的IP作为RID;如果没有回环地址,路由器使用所有激活的物理接口中最高的IP作为RID。
邻居(Neighbor):两台或多台路由连接在一个公共的网络上;比如两台路由通过串行线路相连,或多台路由通过以太网相连。
邻接(Adjacency):邻接是两台路由器之间的关系,OSPF只与建立了邻接关系的邻居共享路由信息。
区域(Area):OSPF通过划分区域来实现分层设计,跨越两个或两个以上区域的路由被称作ABR(Area Border Router,区域边界路由)。所有的区域都和"Area 0"相连,"Area 0"被称作骨干区域,骨干区域路由器具有整个自制系统中所有路由条目,LSA的扩散仅限制在区域内,通过划分多个区域可以减小LSA扩散过程中对硬件的负担。
指定路由器(Designated Router,简称RD):当OSPF链路被连接到多路访问的网络中时,需要选择一台指定路由器(DR),每台路由器都把拓扑变化发给DR和BDR,然后由DR通知该多路访问网络中的其他路由器。
备用的指定路由器(Backup Designated Router,简称BDR):当DR发生故障的时候,BDR转变成DR,接替DR工作。
花费(Cost):OSPF中使用的唯一度量值,使用链路的带宽计算得来。
c.包格式
OSPF和EIGRP一样,也被设计成一个网络层协议,协议号89,包格式如下图(图2):

R1(config-router)#router-id 1.1.1.1        //配置路由器ID

R1启动ospf进程后,我们在R2上暂时先不开启ospf,在R1上发现了以下信息:

49彩票集团 2

R1(config-router)#network 172.16.1.0 0.0.0.255 area 0        //通告直连网络

R1#sho ip ospf int
FastEthernet0/0 is up, line protocol is up
   Internet Address 172.1.1.1/24, Area 0
   Process ID 10, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 1
   Transmit Delay is 1 sec, State DR, Priority 1
   Designated Router (ID) 1.1.1.1, Interface address 172.1.1.1
   No backup designated router on this network
   Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
oob-resync timeout 40
Hello due in 00:00:01
   Index 1/1, flood queue length 0
   Next 0x0(0)/0x0(0)
   Last flood scan length is 0, maximum is 0
   Last flood scan time is 0 msec, maximum is 0 msec
   Neighbor Count is 0, Adjacent neighbor count is 0
   Suppress hello for 0 neighbor(s)
rhce 教材
我们看到R1已经把自己设定为DR了,按照OSPF的规则,新加入的路由器即使RID比DR高,也不会替换DR。这就说明了为什么在有些时候DR并非RID最高的路由器。

Cisco-CCNA-OSPF-2

R1(config-router)#network 172.16.1.0 255.255.255.0 area 0        //通告直连网络

当然这个实验也顺便验证了ospf中DR选取结束后,除非DR路由器出现故障,否则就是有更高优先级或者RID的路由器进入OSPF进程,也是无法改变DR的。既DR是不可以抢夺的!

包格式解释如下:
数据链路层头部:OSPF使用的组播IP地址是224.0.0.5(非DR和BDR路由使用的地址)和224.0.0.6(DR和BDR使用的组播地址),这两个组播地址对应的MAC地址分别为:"01-00-5E-00-00-05"和"01-00-5E-00-00-06"。包头部:协议号是89,源IP是发送路由的IP,目的IP是组播IP地址224.0.0.5或224.0.0.6。OSPF头部:包括路由ID和所在的区域号、包的类型代码(5种类型的包代码)。OSPF包对应的数据:不同包具有不同的内容。
d.包类型
1)Hello包
Hello报文用来建立和维护OSPF路由器间的邻接关系,它的主要作用是:发现OSPF邻居,建立和维护邻接关系;在多路访问中选择DR和BDR。OSPF泛洪链路状态通告给其他路由前需要先建立邻接关系,通过在OSPF协议的接口上发送Hello报文判断是否有其他OSPF路由器运行在相同的链路上。
双方要建立邻接关系,Hello报文中的区域号、Hello间隔和dead间隔、验证(如果有)以及区域类型都要一致。在广播(如以太网)和点对点链路(如串行线路)中,Hello间隔默认是10秒;dead时间默认是Hello间隔的4倍(40秒);非广播多路访问(NBMA),比如帧中继网络中默认Hello间隔是30秒。

说明:网络地址的后面即可以跟通配符掩码,在高版本IOS中也可以跟网络掩码,IOS会自动转换成通配符掩码。

情况二(本实验参照了ITAA实验室Netfish的实验):
ospf中有一个Wait Timer计时器,在这个计时器所限定的时间内起来的OSPF可以视为同时起机。

可以通过下面的命令修改默认的Hello时间和dead时间:
1

 

   TCP/IP卷1第292页对于这个时间间隔是这样定义的:
Wait Timer:在开始选举DR和BDR之间,路由器等待邻居路由器的Hello数据包通告DR和BDR的时长。长度就是RouterDeadInterval的时间。

/修改串行线路s0/0的Hello间隔为5秒,死亡间隔为20秒。/

本实验拓扑与情况一相同,不同的地方在于当我们在R1上启动OSPF后,迅速(一定要迅速,非常迅速!40s之内)在R2上也启动ospf,通过debug信息可以看到以下情况:
R1#debug ip ospf adj
OSPF adjacency events debugging is on
R1#debug ip ospf ev
OSPF events debugging is on
*Aug 14 00:56:19.047: OSPF: Interface FastEthernet0/0 going Up
*Aug 14 00:56:19.051: OSPF: Send hello to 224.0.0.5 area 0 on FastEthernet0/0 from 172.1.1.1
*Aug 14 00:56:19.551: OSPF: Build router LSA for area 0, router ID 1.1.1.1, seq 0x80000001
*Aug 14 00:56:19.555: OSPF: Rcv hello from 2.2.2.2 area 0 from FastEthernet0/0 172.1.1.2
*Aug 14 00:56:19.555: OSPF: End of hello processing
R1(config-router)#
*Aug 14 00:56:29.051: OSPF: Send hello to 224.0.0.5 area 0 on FastEthernet0/0 from 172.1.1.1
*Aug 14 00:56:29.451: OSPF: Rcv hello from 2.2.2.2 area 0 from FastEthernet0/0 172.1.1.2
*Aug 14 00:56:29.455: OSPF: 2 Way Communication to 2.2.2.2 on FastEthernet0/0, state 2WAY
*Aug 14 00:56:29.455: OSPF: End of hello processing
R1(config-router)#
*Aug 14 00:56:39.051: OSPF: Send hello to 224.0.0.5 area 0 on FastEthernet0/0 from 172.1.1.1
*Aug 14 00:56:39.427: OSPF: Rcv hello from 2.2.2.2 area 0 from FastEthernet0/0 172.1.1.2
*Aug 14 00:56:39.427: OSPF: End of hello processing
R1(config-router)#
*Aug 14 00:56:49.051: OSPF: Send hello to 224.0.0.5 area 0 on FastEthernet0/0 from 172.1.1.1
*Aug 14 00:56:49.447: OSPF: Rcv hello from 2.2.2.2 area 0 from FastEthernet0/0 172.1.1.2
*Aug 14 00:56:49.447: OSPF: End of hello processing
R1(config-router)#
*Aug 14 00:56:59.051: OSPF: end of Wait on interface FastEthernet0/0
*Aug 14 00:56:59.051: OSPF: DR/BDR election on FastEthernet0/0
*Aug 14 00:56:59.051: OSPF: Elect BDR 2.2.2.2
*Aug 14 00:56:59.055: OSPF: Elect DR 2.2.2.2
*Aug 14 00:56:59.055:        DR: 2.2.2.2 (Id) BDR: 2.2.2.2 (Id)
*Aug 14 00:56:59.055: OSPF: Send DBD to 2.2.2.2 on FastEthernet0/0 seq 0x826 opt 0x52 flag 0x7 len 32
*Aug 14 00:56:59.059: OSPF: Send hello to 224.0.0.5 area 0 on FastEthernet0/0 from 172.1.1.1
*Aug 14 00:56:59.459: OSPF: Rcv hello from 2.2.2.2 area 0 from FastEthernet0/0 172.1.1.2
*Aug 14 00:56:59.463: OSPF: Neighbor change Event on interface FastEthernet0/0
*Aug 14 00:56:59.463: OSPF: DR/BDR election on FastEthernet0/0
*Aug 14 00:56:59.463: OSPF: Elect BDR 1.1.1.1
*Aug 14 00:56:59.467: OSPF: Elect DR 2.2.2.2
*Aug 14 00:56:59.467: OSPF: Elect BDR 1.1.1.1
*Aug 14 00:56:59.467: OSPF: Elect DR 2.2.2.2
*Aug 14 00:56:59.471:        DR: 2.2.2.2 (Id) BDR: 1.1.1.1 (Id)

2

R1(config)#router ospf 1

这个时候我们发现两个路由器进行了DR/BDR的选取,并且结论和书上介绍的完全一致。

Router(config)#
int
s 0/0

R1(config-router)#router-id 1.1.1.1

从Debug信息的时间上来看,从启动OSPF进程到开始选举DR和DBR的时间间隔是40秒,在这个时间段内,无论R1还是R2并没有选举DR和DBR。

3

R1(config-router)#network 172.16.1.0 0.0.0.255 area 0

在RFC2328中对这个时间间隔的定义如下:
Wait Timer
       A single shot timer that causes the interface to exit the
       Waiting state, and as a consequence select a Designated Router
       on the network.   The length of the timer is RouterDeadInterval
       seconds.

Router(config-if)#
ip
ospf
hello-interval
5

R1(config-router)#network 172.16.12.0 0.0.0.255 area 0

因为在广播链路中的RouterDeadInterval是40秒,所以我们看到的这个时间间隔为40秒。

4

R2(config)#router ospf 1

结论:
   并不是先启动OSPF进程的路由器就是DR,而是有一个时间间隔让路由器来等待其他路由器,在这个时间间隔内,路由器相互监听Hello包中的DR和DBR字段中的信息,并且服从优先级原则,可以这样认为——选举是公平的。

Router(config-if)#
ip
ospf
dead-interval
20

R2(config-router)#router-id 2.2.2.2

实际情况:
  在实际的网络中,即使是40秒内同时起进程的情况也少见;实际情况下是率先启用ospf进程的路由器就很有可能成为DR,第二个启动的就很有可能成为BDR,考虑到路由器故障或者重启等情况,实际的运行效果是:“活”得最久的路由器成为DR(比多长时间不重起)

5

R2(config-router)#network 172.16.2.0 0.0.0.255 area 0

DR和BDR的产生
在初始状态下,一个路由器的活动接口设置DR和BDR为0.0.0.0,这意味着没有DR和BDR被选举出来。同时设置Wait Timer,其值为RouterDeadInterval,其作用是如果在这段数时间里还没有收到有关DR和BDR的宣告,那么它就宣告自己为DR或 BDR。经过Hello协议交换过程后,每一个路由器获得了希望成为DR和BDR的那些路由器的信息,按照下列步骤选举DR和BDR:
(1)在路由器同一个或多个路由器建立双向的通信以后,就检查每个邻居Hello包里的优先级、DR和BDR域。列出所有符合DR和BDR选举的路由器(他们的优先级要大于0,接口状态要大于双向通信),列出所有的DR,列出所有的BDR;
(2)从这些合格的路由器中建立一个没有宣称自己为DR的子集(因为宣称为DR的路由器不能选举成为BDR);
(3)如果在这个子集里有一个或多个邻居(包括它自己的接口)在BDR域宣称自己为BDR,则选举具有最高优先级的路由器,如果优先级相同,则选择具有最高Router ID的那个路由器为BDR;
(4)如果在这个子集里没有路由器宣称自己为BDR,则在它的邻居里选择具有最高优先级的路由器为BDR,如果优先级相同,则选择具有最大Router ID的路由器为BDR;
(5)在宣称自己为DR的路由器列表中,如果有一个或多个路由器宣称自己为DR,则选择具有最高优先级的路由器为DR,如果优先级相同,则选择具有最大Router ID的路由器为DR;
(6)如果没有路由器宣称为DR,则将最新选举的BDR作为DR;
(7)如果是第一选举某个路由器为DR/BDR或没有DR/BDR被选举,则要重复2到6步,然后是第8步。
(8)将选举出来的路由器的端口状态作相应的改变,DR的端口状态为DR,BDR的端口状态为BDR,否则的话为DR other。
在多路访问网络中,DR和BDR与该网络内所有其它的路由器建立邻接关系,这些邻接关系也是该网络内全部的邻接关系。
由于DR和BDR的引入,简化了网络的逻辑拓扑结构,将一个网状网络转变成一个星型网络,使协议包的扩散,计算变的简单,并有效防止了邻接关系震荡的发生。

Router(config-if)#
end

R2(config-router)#network 172.16.12.0 0.0.0.255 area 0

49彩票集团 3

2)DBD(Database Description,数据库状态描述包)
DBD包是发送端对自己链路状态数据库的一个简短描述,接收路由器根据接收到的DBD包对比自己的链路状态数据库,检测发送端和接收端的链路状态数据库是否同步。
3)LSR(Link-State Request,链路状态请求包)
接收端可以发送LSA来请求接收到的DBD中的某些详细信息。
4)LSU(Link-State Update,链路状态更新包)
LSU用来更新OSPF路由信息,回复LSR请求。
5)LSAck(Link-State Acknowledgement,链路状态确认)
当收到一个LSU,路由器发送LSAck确认。
e.邻居关系的建立过程
OSPF中邻居建立过程演示图(图3)如下:

R2(config-router)#network 172.16.23.0 0.0.0.255 area 0

49彩票集团 4

R3(config)#router ospf 1

Cisco-CCNA-OSPF-3

R3(config-router)#router-id 3.3.3.3

Down:OSPF初始状态,还没有开始交换信息。Init:交换信息初期,表示已经收到了邻居的Hello报文,但是报文中没有列出本路由的RID,也就是说对方还没有收到本路由发出的Hello报文。Two-Way:双向阶段,双方都收到了对方发送的Hello报文,建立了邻居关系。在多路访问的网络中,两个接口状态是DROther的路由器之间将停留在此状态,其他情况将继续转入高级状态。在此状态下的路由器是不能共享路由信息的,想共享路由信息,必须建立邻接关系。(注意邻居关系和邻接关系的区别)Exstart:准备开始交换阶段,双方通过Hello报文决定主从关系,最高RID的路由将成为主路由,最先发起交换。主从关系确立后进入下一个阶段。Exchange:开始交换阶段,路由器将本地的"路由状态数据库(LSDB)"用"数据库描述(DBD)"报文来描述,然后发给邻路由。如果这个阶段中的路由收到不在其数据库中的有关链路的信息,那么在下一个阶段中将请求对方发送该路由条目的完整信息。Loading:加载阶段,路由器通过发送"链路状态请求(LSR)",来向邻居请求一些路由条目的详细信息。邻居则会使用"链路状态更新包(LSU)"来回复LSR请求,收到邻居发回的LSU后,再发送LSAck向发送LSU的路由进行确认。FULL:完全邻接状态,Loading结束后,路由器之间就变成了"Full adjacency"。
f.基本配置实例
使用OSPF配置下面的拓扑,三台c3640路由使用以太网接口连接在一台二层非网管交换机上(GNS3中自带的那个"Ethernet switch",非IOU中的二层可网管交换机),设备间连线和IP如下图(图4)所示:

R3(config-router)#network 172.16.3.0 0.0.0.255 area 0

49彩票集团 5

R3(config-router)#network 172.16.23.0 0.0.0.255 area 0

Cisco-CCNA-OSPF-4

R3(config-router)#network 172.16.34.0 0.0.0.255 area 0

R1配置:
01

R4(config)#router ospf 1

R1(config)#
int
s 0/0

R4(config-router)#router-id 4.4.4.4

02

R4(config-router)#network 172.16.4.0 0.0.0.255 area 0

R1(config-if)#
ip
add
12.1.1.1 255.255.255.0

R4(config-router)#network 172.16.34.0 0.0.0.255 area 0

03

 

R1(config-if)#
no
shut

说明:

04

1.OSPF路由进程ID的范围在1-65535之间,而且只有本地含义,不同路由器的路由进程ID可以不同。如果要想启

R1(config-if)#
int
lo
0

  动OSPF路由进程,至少确保有一个接口是up的。同一台路由器上可以启动多个OSPF进程,但会消耗更多的CPU

05

  和内存等资源。

R1(config-if)#
ip
add
1.1.1.1 255.255.255.0

2.区域ID是0-4294967295的数,也可以是IP地址的格式A.B.C.D。当网络区域为0或0.0.0.0时称为主干区域。

06

3.Router ID选择遵循如下顺序:

R1(config-if)#
no
shut

  1>最优先的是在OSPF进程中使用“router-id”指定了RID;

07

  2>如果没有在OSPF进程中指定RID,则选择IP地址最大的环回接口的IP地址为RID;

R1(config-if)#
int
fa 1/0

  3>如果没有环回接口,则选择活动的IP地址最大的物理接口的IP地址为RID。

08

     ①如果使用“secondary”配置IP地址时,该地址不起作用,即不参与RID竞选;

R1(config-if)#
ip
add
123.1.1.1 255.255.255.0

     ②使用“router-id”后,应使用命令“clear ip ospf process”重置ospf进程,新配置的RID才能生效;

09

     ③2、3步只有在下次重启路由器时才会生效,即后来加入大的IP地址也不能选举为RID直到路由器重启。

R1(config-if)#
no
shut

4.Router ID重新选举规则:

10

  1>使用“router-id”和“clear ip ospf process”命令;

/启用OSPF进程,进程号1只具有本地意义/

  2>重启路由器(不一定)。

11

 

R1(config-if)#router
ospf
1

实验调试

12

R1#show ip route ospf 1        //查看OSPF路由表

R1(config-router)#
net
123.1.1.0 0.0.0.255
area
0

13

以上输出结果表明在同一个区域内,通过OSPF路由协议学习到的路由条目用代码“O”表示。

R1(config-router)#
net
1.1.1.0 0.0.0.255
area
0

OSPF度量值cost计算公式 = 所有链路入接口的cost之和;

14

接口cost计算公式 = 108/带宽(bps)取整;环回接口的cost值为1。

R1(config-router)#
net
12.1.1.0 0.0.0.255
area
0

说明:

15

1.环回接口所在网络的OSPF路由条目的掩码长度都是32位,这是环回接口的特性,尽管通告了24位,解决的办法

R1(config-router)#
end

  是在环回接口下修改网络类型为“Point-to-Point”这样收到的路由条目的掩码长度和通告的就能一致:

16

  R1(config-if)#ip ospf network point-to-point        //设置网络类型为点到点网络

17

  

/*

  OSPF定义了6种网络类型,分别为:点对点、广播多路访问(BMA)、非广播多路访问(NBMA)、点对多点、环回接

18

  口、虚拟链路(Virtual Links)。
2.路由条目“172.16.4.4/32”的度量值为“193”,到路由器R1经过的入接口包括:R4的loopback0、R3的

  S0/0、R2的S0/1及R1的S0/0,所以计算如下:1+108/1544000+108/1544000+108/1544000=193。也可以直接通过

"router ospf 1"
中的OSPF进程号1,只具有本地意义,每个路由可以不同,

  命令“ip ospf cost”配置接口的cost值,并且它是优先计算的cost值的,命令如下:
  R1(config-if)#ip ospf cost 64        //设置接口cost为64

19

  
R1#show ip protocols        //查看启用的路由协议


R1#show ip ospf 1        //可查看OSPF进程ID、RID、OSPF区域信息以及上次计算SPF算法的时间

R1#show ip ospf interface        //查看运行OSPF接口的信息

"net 123.1.1.0 0.0.0.255 area 0"
OSPF网络的宣告使用反掩码形式,


R1#show ip ospf neighbor        //查看OSPF邻居表的基本信息

20

 

"area 0"
是OSPF区域号,同一个区域中的路由器区域号要保持一致,

 

21

OSPF邻居关系不能建立的常见原因:

  • CCNA中只涉及区域0,也就是骨干区域的配置。

1.Hello间隔和Dead间隔不同;

22

  1>同一链路上的Hello间隔和Dead间隔必须相同才能建立邻居关系;

  • 如果要将路由器上所有接口都宣告进OSPF进程,可以使用下面的命令:

    

23

  2>默认时,Dead间隔是Hello间隔的4倍。可以在接口下通过如下命令调整:

    R1(config-if)#ip ospf hello-intrval 10        //设置Hello包发送间隔为10s

"net 0.0.0.0 255.255.255.255 area 0"

    R1(config-if)#ip ospf dead-interval 40        //设置Dead时间为40s

24

    

*/

2.区域ID不一样;

R2配置:
01

3.特殊区域(如stub、nssa等)区域类型不匹配;

R2(config)#
int
s 0/1

4.认证类型或密码不一致;

02

5.路由器ID相同;

R2(config-if)#
ip
add
12.1.1.2 255.255.255.0

6.Hello包被ACL拒绝;

03

7.链路上的MTU不匹配;

R2(config-if)#
no
shut

8.接口下OSPF网络类型不匹配。
R1#show ip ospf database        //查看OSPF链路状态数据库的信息

04

R2(config-if)#
int
lo
0

广播多路访问链路上的OSPF

05

命令:

R2(config-if)#
ip
add
2.2.2.2 255.255.255.0

R1(config-router)#auto-cost reference-bandwidth 1000 //修改OSPF计算度量值的参考带宽,单位MB/s

06


R1(config)#router ospf 1

49彩票集团,R2(config-if)#
no
shut

R1(config-router)#auto-cost reference-bandwidth 1000

07

R2(config)#router ospf 1

R2(config-if)#
int
fa 1/0

R2(config-router)#auto-cost reference-bandwidth 1000
R3(config)#router ospf 1

08

R3(config-router)#auto-cost reference-bandwidth 1000
R4(config)#router ospf 1

R2(config-if)#
ip
add
123.1.1.2 255.255.255.0

R4(config-router)#auto-cost reference-bandwidth 1000
说明:“auto-cost reference-bandwidth”命令是修改计算OSPF度量值参考带宽的。如果以太口带宽为千兆,而采用默认的百兆参考带宽,计算出来的cost是0.1,这显然是不太合理的。修改参考带宽要在路由器内所有的OSPF路由器上配置,目的是确保参考标准是相同的。

09

另外,当执行命令“auto-cost reference-bandwidth”时,系统也会提示如下信息:

R2(config-if)#
no
shut

49彩票集团 6
实验调试
R4#show ip ospf neighbor        //分别在路由器R4和R1上执行该命令

10

49彩票集团 7
以上输出表明在该广播多路访问网络中,路由器R4是DR,路由器R3是BDR,路由器R1和路由器R2是DROTHER。

R2(config-if)#router
ospf
2

说明:

11

1.DR和BDR有自己的组播地址224.0.0.6;

R2(config-router)#
net
0.0.0.0 255.255.255.255
area
0

2.DR和BDR的选举是以各网络为基础的,也就是说DR和BDR选举是路由器的接口特性,而不是整个路由器的特性;

12

3.DR选举是非抢占的,除非人为地重新选举。

R2(config-router)#
end

4.DR选举的原则:

13

  ①首要因素是时间,最先启动的路由器会启动一个Waite Timer计时器(Cisco规定是40s),在计时器超时前如

14

    果没有新的OSPF路由器启动,它就被选举为DR,如果有新的路由器启动那么它们将按照②、③进行选举;
  ②如果同时启动,或者重新选举,则看接口优先级(范围为0-255),优先级最高的被选举成DR,默认情况下,

/*
"net 0.0.0.0 255.255.255.255 area 0"
将R2上的所有接口都发布进OSPF进程*/

    多路访问网络的接口优先级为1,点到点网络接口优先级为0,如果接口优先级被设置为0,那么该接口将不

R3配置:
01

    参与DR选举,修改接口优先级命令是“ip ospf priority”:

R3(config)#
int
fa 1/0

  R1(config-if)#ip ospf priority 150        //修改端口优先级为150

02

  49彩票集团 8

R3(config-if)#
ip
add
123.1.1.3 255.255.255.0

  ③如果同时启动,而优先级相同,则最后看RID,RID最高的被选举成DR。

03

5.重新选举DR/BDR的方法:

R3(config-if)#
no
shut

  ①重启路由器(不一定);

04

  ②“clear ip ospf process”(不一定)。

R3(config-if)#
int
lo
0

R4#show ip ospf int f0/0        //分别在路由器R4和R1上执行该命令

05

49彩票集团 9
从上面的路由器R1和路由器R4的输出得知,邻居关系和邻接关系是不能混为一谈的,邻居关系是指达到2-Way状态的两台路由器,而邻接关系是指达到FULL状态的两台路由器。

R3(config-if)#
ip
add
3.3.3.3 255.255.255.0

 

06

OSPF区域认证

R3(config-if)#
no
shut

命令

07

区域简单口令认证:

R3(config-if)#
int
lo
1

R1(config-router)#area 0 authentication        //区域0启用简单口令认证

08

R1(config-if)#ip ospf authentication-key cisco        //配置认证密码

R3(config-if)#
ip
add
33.3.3.3 255.255.255.0

区域MD5认证:

09

R1(config-router)#area 0 authentication message-digest        //区域0启用MD5认证

R3(config-if)#
no
shut

R1(config-if)#ip ospf message-digest-key 1 md5 cisco        //配置认证Key ID及密匙

10

49彩票集团 10

R3(config-if)#router
ospf
3

区域简单口令认证

11

R1(config)#router ospf 1

R3(config-router)#
net
123.1.1.0 0.0.0.255
area
0

R1(config-router)#area 0 authentication

12

R1(config)#int s0/0

R3(config-router)#
net
3.3.3.0 0.0.0.255
area
0

R1(config-if)#ip ospf authentication-key cisco

13

R2(config)#router ospf 1

R3(config-router)#
end

R2(config-router)#area 0 authentication

14

R2(config)#int s0/0

15

R2(config-if)#ip ospf authentication-key cisco

/R3并没有将Lo1接口宣告进OSPF进程/

实验调试

16

R1#show ip ospf
49彩票集团 11
以上输出表明区域0采用了简单口令认证。

17

R1#show ip ospf int s0/0
49彩票集团 12
以上输出最后一行信息表明该接口启用了简单口令认证。

/*

R1#debug ip ospf packet
49彩票集团 13
以上输出表明接收到认证类型为1的Hello数据包。

18

认证:

  • 对于OSPF的宣告还有几种可以使用的不规范格式:

1.如果R1区域0没有启用认证,而R2区域0启用简单口令认证,则R2会出现下面的信息:

19

R2#debug ip ospf events
49彩票集团 14
2.如果R1和R2的区域0都启用简单口令认证,但R2接口下没有配置密码或密码错误,则R2会出现下面的信息:

R2#debug ip ospf events

区域MD5认证

20

R1(config)#router ospf 1

R1(config-router)#area 0 authentication message-digest

"net 123.1.1.1 0.0.0.0 area 0"

R1(config)#int s0/0

21

R1(config-if)#ip ospf message-digest-key cisco

  • 指定仅有一个IP(123.1.1.1)宣告进OSPF进程。

R2(config)#router ospf 1

22

R2(config-router)#area 0 authentication message-digest

R2(config)#int s0/0

23

R2(config-if)#ip ospf message-digest-key cisco
实验调试
R1#show ip ospf


以上输出表明区域0采用了MD5认证。

"net 123.1.1.0 255.255.255.0 area 0"
,

R1#show ip ospf int s0/0 49彩票集团 15

24

以上输出最后两行信息表明该接口启用了MD5认证,而且使用密钥ID为1进行认证。

  • 这条命令和
    "net 123.1.1.0 0.0.0.255 area 0"
    效果相同。

R1#debug ip ospf packet

以上输出表明接收到认证类型为2,Key ID为1,序列号为0x3C7ECCC1的Hello数据包。

25

认证

1.如果R1的区域0启用MD5认证,而R2的区域0启用简单口令认证,则R2会出现下面的信息:

26

R2#debug ip ospf events
49彩票集团 16
2.如果R1和R2的区域0都启用MD5认证,但R2的接口下没配置Key ID和密码或错误密码,则R2会出现下面的信息:
R2#debug ip ospf events

49彩票集团 17

"net 0.0.0.0 0.0.0.0 area 0"
,

OSPF接口认证

27

命令

  • 这条命令和
    "net 0.0.0.0 255.255.255.255 area 0"
    效果相同。

接口简单口令认证:

28

R1(config-if)#ip ospf authentication        //接口启用简单口令认证

R1(config-if)#ip ospf authentication-key cisco        //配置认证密码

29

接口MD5认证:

  • 上面几种格式都能被正确识别,但是最好使用规范格式。

R1(config-if)#ip ospf authentication message-digest        //接口启用MD5认证

30

R1(config-if)#ip ospf message-digest-key 1 md5 cisco        //配置认证Key ID及密匙

*/

49彩票集团 18

OSPF路由表:
01

接口简单口令认证

/*

R1(config)#int s0/0

02

R1(config-if)#ip ospf authentication

  • R1路由表,显示如下:

R1(config-if)#ip ospf authentication-key cisco

03

R2(config)#int s0/0

  • R1学习到了R2和R3上面的回环接口的IP地址,

R2(config-if)#ip ospf authentication

04

R2(config-if)#ip ospf authentication-key cisco

  • 因为R3的Lo1并没有宣告进OSPF进程,所以没有33.3.3.3这个地址。

实验调试

05

R1#show ip ospf int s0/0

49彩票集团 19

"O"
表示是从OSPF学习到的路由条目。

以上输出最后一行信息表明该接口启用了简单口令认证。

06

R1#debug ip ospf packet

*/

49彩票集团 20
以上输出表明接收到认证类型为1的Hello数据包。

07

认证:

R1#
show
ip
route

1.如果R1的s0/0没有启用认证,而R2的s0/0启用简单口令认证,则R2会出现下面的信息:

08

R2#debug ip ospf events49彩票集团 21

09

2.如果R1和R2的s0/0都启用简单口令认证,但R2的s0/0没有配置密码或密码错误,则R2会出现下面的信息:

1.0.0.0/24 is subnetted, 1 subnets

R2#debug ip ospf events

10


接口MD5认证

C 1.1.1.0 is directly connected, Loopback0

R1(config)#int s0/0

11

R1(config-if)#ip ospf authentication message-digest

2.0.0.0/32 is subnetted, 1 subnets

R1(config-if)#ip ospf message-digest-key cisco

12

R2(config)#int s0/0

O 2.2.2.2 [110/2] via 123.1.1.2, 00:15:04, FastEthernet1/0

R2(config-if)#ip ospf authentication message-digest

13

R2(config-if)#ip ospf message-digest-key cisco
实验调试
R1#show ip ospf int s0/0
49彩票集团 22
以上输出最后两行信息表明该接口启用了MD5认证,而且使用密钥ID为1进行认证。

3.0.0.0/32 is subnetted, 1 subnets

R1#debug ip ospf packet
49彩票集团 23
以上输出表明接收到认证类型为2,Key ID为1,序列号为0x3C7EC76D的Hello数据包。

14

认证

O 3.3.3.3 [110/2] via 123.1.1.3, 00:15:04, FastEthernet1/0

1.如果R1的s0/0启用MD5认证,而R2的s0/0启用简单口令认证,则R2会出现下面的信息:

15

R2#debug ip ospf events

123.0.0.0/24 is subnetted, 1 subnets


2.如果R1和R2的s0/0都启用MD5认证,但R2的s0/0没配置Key ID和密码或错误密码,则R2会出现下面的信息:
R2#debug ip ospf events
49彩票集团 24
默认路由再发布(本地:静态默认路由 S*;其它:通告缺省默认外部路由 O*E2)

16

49彩票集团 25

C 123.1.1.0 is directly connected, FastEthernet1/0

命令:

17

R1(config)#ip route 0.0.0.0 0.0.0.0 loopback 1        //添加静态默认路由

12.0.0.0/24 is subnetted, 1 subnets

R1(config)#router ospf 1

18

R1(config-router)#default-information originate        //再发布默认路由

C 12.1.1.0 is directly connected, Serial0/0

说明:“default-information originate”命令后面可以加可选的“always”参数,如果不使用该参数,路由器上必须存在一条默认路由,否则该命令不产生任何效果。如果使用该参数,无论路由器上是否存在默认路由,路由器都会向OSPF区域内注入一条默认路由。

在OSPF中所有的回环接口都被自动宣告成32位的主机路由"/32",如果想显示回环接口的实际子网掩码,可以使用下面的命令调整:
1

实验调试

/在R1、R2、R3宣告进OSPF的回环接口上执行下面的命令/

R4#show ip route

2


以上R4路由表的输出表明,通过命令“default-information originate”确实可以向OSPF区域注入“O*E2”的默认路由。同样,R2、R3的路由表中也包含一条“O*E2”的默认路由。

R1(config)#
int
lo
0

R4#show ip ospf database

3


通过查看R4的拓扑结构数据库可以看到,确实从外面注入了一条类型5的LSA。

R1(config-if)#
ip
ospf
network
point-to-point

 

执行完成后,再次查看路由表就会发现所有回环接口的子网掩码都变成了实际的子网掩码。
OSPF邻居表:
01

R1#
show
ip
ospf
neighbor

02

03

Neighbor ID Pri State Dead Time Address Interface

04

2.2.2.2 0 FULL/ - 00:00:37 12.1.1.2 Serial0/0

05

2.2.2.2 1 FULL/BDR 00:00:37 123.1.1.2 FastEthernet1/0

06

33.3.3.3 1 FULL/DROTHER 00:00:31 123.1.1.3 FastEthernet1/0

07

R1#

08

09

/*

10

  • Neighbor ID:邻居的RID,通过上面的输出可以看到R2的RID是2.2.2.2

11

  • R3的RID是33.3.3.3,R1和R2通过不同的接口(以太网和串行线路),

12

  • 建立了两次邻居关系。

13

14

  • Pir:OSPF邻居接口的优先级,接口优先级用于DR和BDR的选举,

15

  • 以太网接口接口的默认优先级是1,串行线路不需要选举DR和BDR所以优先级是0,

16

  • 0代表不参与选举。

17

18

  • State:邻居路由器的状态,FULL代表已经建立邻接关系,

19

  • 斜杠
    "/"
    后面是选举的DR或BDR标识,因为串行线路不需要选举,所以是
    "-"
    ,

20

"FULL/BDR"
表示R2是BDR,R3是DROTHER,除了DR和BDR的其余路由器都是DROTHER。

21

  • 所以R1自己就是DR了。稍后会介绍DR和BDR的选举过程。

22

23

  • Dead time:默认的死亡时间是hello时间的4倍,即40秒。

24

  • 死亡时间是一个倒计时,计时器为0时,该邻居被删除。

25

26

  • Address:邻居直连接口的IP地址。

27

28

  • Interface:本路由的外出接口。

29

*/

OSPF拓扑表:
01

R1#
show
ip
ospf
database

02

03

OSPF Router with ID (1.1.1.1) (Process ID 1)

04

05

Router Link States (Area 0)

06

07

Link ID ADV Router Age Seq# Checksum Link count

08

1.1.1.1 1.1.1.1 1087 0x80000006 0x0096BA 4

09

2.2.2.2 2.2.2.2 486 0x80000004 0x001832 4

10

33.3.3.3 33.3.3.3 953 0x80000004 0x00358D 2

11

12

Net Link States (Area 0)

13

14

Link ID ADV Router Age Seq# Checksum

15

123.1.1.1 1.1.1.1 292 0x80000003 0x00304B

16

17

/在同一个区域中的所有路由器的OSPF拓扑表都是相同的/

g.Router ID选举规则
Router ID简称RID,用来唯一标示OSPF网络中的每一台路由器。如果两条OSPF路由器的RID一样,彼此间无法建立邻接关系。RID是以IP地址的形式出现的,按照下面的顺序来选举RID:
1)Router-id 配置命令最优先
首先在R3上查看一下默认选举出来的RID:
1

R3#
show
ip
protocols

2

Routing Protocol is
"ospf 3"

3

/默认选出来的RID是lo1接口的IP/

4

Router ID 33.3.3.3

在R3上手工配置Router ID:
01

本文由49彩票集团发布于计算机网络,转载请注明出处:4)每台路由器泛洪链路状态通告(LSA)给所有的

关键词: