您的位置:首页 > 数据库

CCIE学习(37)―― OSPF数据库交换(二)

2008-01-01 03:55 204 查看
●LAN中的指定路由器
OSPF通过指定路由器(designated router, DR)来优化LSA的洪泛过程。如果不使用DR,共享一条数据链路的每对路由器都会建立完全的邻接关系。例如,如果LAN中有六个路由器,在没有DR的情况下,存在15个路由器对,这意味着要建立15次完全邻接关系,显然这样的效率是无法让人满意的。而DR(或后备DR,即BDR)的使用,可以有效地减少冗余LSA的不必要交换。
(注意:DR还有另一个主要功能,它可以用来创建表示子网的LSA类型2。)




步骤如下:
1)R1发送DD到所有DR多点传送地址(224.0.0.6);
2)DR用同样的DD包应答;
3)DR将同样的DD包再多点传送给所有SPF路由器(224.0.0.5)。
使用show ip ospf neighbor命令可以查看R1的邻接路由器状态,如下:



DR和BDR与所有邻接路由器建立完全邻接关系,而两个非DR(BDR)路由器不能建立这种关系,它们仅停留在2-way状态,这表示它们通过了Hello消息的参数匹配检查,但是不再进行后续DD包的交换。
这里再明确一下两个概念之间的差别:
1)邻接路由器(neighbors):两个路由器互相连通,它们交换Hello消息,且参数匹配。
2)邻接关系(adjacent):两个邻接路由器直接进行完全的DD和LSU包交换。

●DR的选举
DR的选举在路由器成为neighbors之后(2-way状态)开始,在发送DD包并进入ExStart状态之前完成。当在2-way状态时,如果接收到的Hello消息声明DR为0.0.0.0,这意味着现在还没有选举出DR,需要展开选举进程(一般这种情况发生在LAN中断恢复后),为了让所有路由器都参与选举,OSPF会设置一个等待时间,其值与Dead定时器一样。如果接收到Hello消息已经列出DR的RID,那么路由器不用选举,而是保留Hello中所声明的当前DR(一般这种情况发生在单个路由器失去LAN连接后又恢复时)。
DR/BDR的选举规则:
1)所有OSPF优先权在1-255之间的路由器在发送的Hello中将DR字段置为自身RID来参与选举;
2)路由器检查接收的Hello,查看其它路由器的优先权设置、RID以及是否参选;
3)如果在接收到的Hello中发现更有竞争力的DR参选者,路由器就不再参选,而是认为该
参选者应予当选;
4)认为参选者更有竞争力的首要条件是其有更高的优先权;
5)认为参选者更有竞争力的其次条件是其有更高的RID;
6)路由器并未参选DR,但拥有更高的优先权(或在优先权一样时,拥有更高的RID),则成为BDR;
7)如果在选举完后又来了新的路由器参选,或者原路由器提升了其优先权,它不能剥夺已有DR(BDR)并接替其位置。
8)DR选定后如果失效,则BDR接替其位置成为DR,同时选举新的BDR。

●WAN中的DR和OSPF网络类型
DR在LAN中的使用可以提升LSA洪泛的效率(多路由器时)。同样,在非广播式多接入网络(NBMA)中,也可以选择使用DR来提升效率。
对每个接口,Cisco基于OSPF网络类型来配置其是否使用DR以及其他一些关键属性,这主要包括:
1)是否在该接口选举DR;
2)是静态配置邻接路由器(使用neighbor命令),还是通过多点传送Hello包来动态发现邻接路由器;
3)是否允许在同一子网内有两个以上的邻接路由器。
默认情况下,LAN接口使用的OSPF网络类型是broadcast,此时选举DR,动态发现邻接路由器,并允许同一子网有两个以上路由器。对于HDLC和PPP连接,OSPF默认使用point-to-point的网络类型,此时不选举DR(因为没必要),动态发现邻接路由器,同一子网只有两个IP地址。
OSPF网络类型可以通过ip ospf network type接口子命令来设置。OSPF网络类型如下表所示:
接口类型是否使用DR/BDR?默认Hello间隔是否需要neighbor命令?同一子网是否允许两台以上的主机
broadcast10
point-to-point10
nonbroadcast(NBMA)30
point-to-multipoint30
point-to-multipoint nonbroadcast30
loopback
●在NBMA网络上的OSPF网络类型
对于帧中继上的OSPF,网络类型可能用起来有点麻烦,主要有如下一些需要注意的地方:
1)确保默认的Hello/Dead定时器不会导致Hello参数匹配性检查失败。
2)一台路由器希望参选DR,而另一台路由器不参选,此时邻接关系可以建立并交换完全的LSA。但是,show命令的输出却可能有问题,下一跳路由器可能不可达。所以,确保在同一NBMA子网中的所有路由器使用的OSPF网络类型要不都使用DR,要不都不使用DR。
3)如果使用DR,DR和BDR到子网中的其他所有路由器必须都有一条PVC连接,否则,它们之间无法学习路由。
4)如果一台路由器使用静态neighbor命令配置了,那么PVC另一端的路由器就不需要再使用neighbor命令,但是为了清晰起见,还是两端同时配置为好。
帧中继上的OSPF有两个非常简单的网络类型选项:point-to-point(默认)和point-to-multipoint,它们都不需要DR和使用neighbor命令。

●OSPF网络类型(NBMA)配置实例



配置说明:
1)R1、R3和R5的配置是正确的,使用的是OSPF网络类型nonbroadcast。
2)R6配置有问题(遗漏了ip ospf priority命令),导致其错误地选为DR。
3)R4仍然用的是默认网络类型point-to-point,用show命令可以看出问题。
配置:
1)R1的配置:
router ospf 1
log-adjacency-changes detail
network 0.0.0.0 255.255.255.255 area 0
neighbor 10.1.111.3
neighbor 10.1.111.4
neighbor 10.1.111.5
neighbor 10.1.111.6
2)R3的配置:
interface Serial0/0.1 multipoint
ip address 10.1.111.3 255.255.255.0
ip ospf priority 0
frame-relay interface-dlci 100
!
router ospf 1
network 0.0.0.0 255.255.255.255 area 0
3)R4的配置:
router ospf 1
network 0.0.0.0 255.255.255.255 area 0
4)R5的配置:
interface Serial0.1 multipoint
ip address 10.1.111.5 255.255.255.0
ip ospf priority 0
frame-relay interface-dlci 100
!
router ospf 1
network 0.0.0.0 255.255.255.255 area 0
5)R6的配置:
router ospf 1
network 0.0.0.0 255.255.255.255 area 0
注意事项:
1)OSPF的neighbor命令定义的邻接路由器优先权(默认0)被接收到的Hello消息中邻接路由器所声明的优先权所覆盖,这就是上面配置中R6会选举为DR的原因。
2)neighbor命令只需要在一个路由器上配置即可。
3)R4因为配置为point-to-point网络类型,所以它会跟R1建立完全邻接关系,即使如此,它却不能通过帧中继网络路由包到R3、R5和R6,这可能导致问题出现。

●SPF(最短路径优先)计算
SPF算法用于检查LSDB中的LSA来得出路由权值的数据模型。该数据模型包括:
1)路由器
2)链路
3)链路开销
4)链路当前状态



SPF会发现到每个子网的所有可能路由,并对路由器每个外发接口计算路由开销(cost),然后选择开销最小的路径,OSPF再将这些最小开销路由载入路由表。如上图,S2计算两条到子网10.5.1.0/24的可能路径,发现最短的是通过S2的VLAN 1接口(R2为下一跳路由器)。

●稳定状态下的操作
网络稳定下来之后,OSPF会继续保持的操作:
1)每台路由器基于接口hello间隔,发送Hello。
2)每台路由器期待在dead间隔之内接收到邻接路由器的Hello消息,如果没接收到,则认为该邻接路由器失效。
3)每台路由器基于每条LSA的链路状态刷新(LSRefresh)间隔(默认30分钟)重新广播LSA。
4)每台路由器希望在每条LSA的Maxage定时器(默认60分钟)时限内刷新LSA。本文出自 “第二次启航” 博客,请务必保留此出处http://riser.blog.51cto.com/252482/57576
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: