OSPF与BFD联动示例

发布时间:2023年12月22日

OSPF简介

定义

  • 开放式最短路径优先OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol)。
  • 目前针对IPv4协议使用的是OSPF Version 2(RFC2328);针对IPv6协议使用OSPF Version 3(RFC2740)。如无特殊说明,本文中所指的OSPF均为OSPF Version 2。

目的

在OSPF出现前,网络上广泛使用RIP(Routing Information Protocol)作为内部网关协议。

由于RIP是基于距离矢量算法的路由协议,存在着收敛慢、路由环路、可扩展性差等问题,所以逐渐被OSPF取代。

OSPF作为基于链路状态的协议,能够解决RIP所面临的诸多问题。此外,OSPF还有以下优点:

  • OSPF采用组播形式收发报文,这样可以减少对其它不运行OSPF路由器的影响。

  • OSPF支持无类型域间选路(CIDR)。

  • OSPF支持对等价路由进行负载分担。

  • OSPF支持报文加密。


BFD简介?

定义?

双向转发检测BFD(Bidirectional Forwarding Detection)是一种全网统一的检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况。?

目的

为了减小设备故障对业务的影响,提高网络的可靠性,网络设备需要能够尽快检测到与相邻设备间的通信故障,以便及时采取措施,保证业务继续进行。在现有网络中,有些链路通常通过硬件检测信号,如SDH告警,检测链路故障,但并不是所有的介质都能够提供硬件检测。此时,应用就要依靠上层协议自身的Hello报文机制来进行故障检测。上层协议的检测时间都在1秒以上,这样的故障检测时间对某些应用来说是不能容忍的。在三层网络中,Hello报文检测机制无法针对所有路由来检测故障,如:静态路由。这对系统间互联互通定位故障造成困难。

BFD协议就是在这种背景下产生的,BFD提供了一个通用的标准化的介质无关和协议无关的快速故障检测机制。具有以下优点:

  • 对相邻转发引擎之间的通道提供轻负荷、快速故障检测。这些故障包括接口、数据链路,甚至有可能是转发引擎本身。

  • 用单一的机制对任何介质、任何协议层进行实时检测。


组网需求?

如下图所示,SwitchA、SwitchB和SwitchC之间运行OSPF,SwitchA和SwitchB之间的交换机仅作透传功能。现在需要SwitchA和SwitchB能快速感应它们之间的链路状态,当链路SwitchA-SwitchB发生故障时,业务能快速切换到备份链路SwitchA-SwitchC-SwitchB上。

注意:请确保该场景下互联接口的STP处于未使能状态。因为在使能STP的环形网络中,如果用交换机的VLANIF接口构建三层网络,会导致某个端口被阻塞,从而导致三层业务不能正常运行。?

配置思路?

采用如下思路配置OSPF与BFD联动:

  1. 在各交换机上配置OSPF基本功能,实现整个OSPF网络的互通。

  2. 在各交换机上配置OSPF与BFD联动功能,实现当SwitchA和SwitchB之间的链路出现故障时快速的切换到备份链路。

操作步骤?

  • 关闭SwitchA生成树,SwitchB和SwitchC的配置与SwitchA一样(略)
[SwitchA]undo stp enable 
  • 配置LSW4
<Huawei>system-view 
[Huawei]sysname LSW4
[LSW4]vlan 30
[LSW4-vlan30]quit
[LSW4]interface GigabitEthernet 0/0/1	
[LSW4-GigabitEthernet0/0/1]port link-type trunk 
[LSW4-GigabitEthernet0/0/1]port trunk allow-pass vlan 30
[LSW4-GigabitEthernet0/0/1]quit	
[LSW4]interface GigabitEthernet 0/0/2	
[LSW4-GigabitEthernet0/0/2]port link-type trunk 
[LSW4-GigabitEthernet0/0/2]port trunk allow-pass vlan 30
[LSW4-GigabitEthernet0/0/2]quit
  • 配置各接口所属的VLAN

# 配置SwitchA。SwitchB和SwitchC的配置与SwitchA类似(略)。

<Huawei>system-view 
[Huawei]sysname SwitchA
[SwitchA]vlan batch 10 30	
[SwitchA]interface GigabitEthernet 0/0/1	
[SwitchA-GigabitEthernet0/0/1]port link-type trunk 	
[SwitchA-GigabitEthernet0/0/1]port trunk allow-pass vlan 10
[SwitchA-GigabitEthernet0/0/1]quit
[SwitchA]interface GigabitEthernet 0/0/2	
[SwitchA-GigabitEthernet0/0/2]port link-type trunk 
[SwitchA-GigabitEthernet0/0/2]port trunk allow-pass vlan 30
[SwitchA-GigabitEthernet0/0/2]quit
  • 配置各VLANIF接口的IP地址

# 配置SwitchA。SwitchB和SwitchC的配置与SwitchA类似(略)。

[SwitchA]interface Vlanif 10	
[SwitchA-Vlanif10]ip address 10.1.1.1 24
[SwitchA-Vlanif10]quit	
[SwitchA]interface Vlanif 30
[SwitchA-Vlanif30]ip address 10.3.3.1 24
[SwitchA-Vlanif30]quit
  • 配置OSPF基本功能

# 配置SwitchA。

[SwitchA]ospf 1 router-id 10.10.10.1	
[SwitchA-ospf-1]area 0
[SwitchA-ospf-1-area-0.0.0.0]network 10.1.1.0 0.0.0.255	
[SwitchA-ospf-1-area-0.0.0.0]network 10.3.3.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0]quit	
[SwitchA-ospf-1]quit

# 配置SwitchB。

[SwitchB]ospf 1 router-id 10.10.10.2	
[SwitchB-ospf-1]area 0	
[SwitchB-ospf-1-area-0.0.0.0]network 10.2.2.0 0.0.0.255	
[SwitchB-ospf-1-area-0.0.0.0]network 10.3.3.0 0.0.0.255	
[SwitchB-ospf-1-area-0.0.0.0]network 172.16.1.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0]quit
[SwitchB-ospf-1]quit

# 配置SwitchC。

[SwitchC]ospf 1 router-id 10.10.10.3
[SwitchC-ospf-1]area 0	
[SwitchC-ospf-1-area-0.0.0.0]network 10.1.1.0 0.0.0.255	
[SwitchC-ospf-1-area-0.0.0.0]network 10.2.2.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.0]quit
[SwitchC-ospf-1]quit

# 配置完成后,执行命令display ospf peer,可以看到SwitchA,SwitchB和SwitchC之间互相建立了邻接关系。以SwitchA的显示结果为例。

[SwitchA]display ospf peer 

	 OSPF Process 1 with Router ID 10.10.10.1
		 Neighbors 

 Area 0.0.0.0 interface 10.1.1.1(Vlanif10)'s neighbors
 Router ID: 10.10.10.3       Address: 10.1.1.2        
   State: Full  Mode:Nbr is  Master  Priority: 1
   DR: 10.1.1.1  BDR: 10.1.1.2  MTU: 0    
   Dead timer due in 32  sec 
   Retrans timer interval: 5 
   Neighbor is up for 00:00:11     
   Authentication Sequence: [ 0 ] 

		 Neighbors 

 Area 0.0.0.0 interface 10.3.3.1(Vlanif30)'s neighbors
 Router ID: 10.10.10.2       Address: 10.3.3.2        
   State: Full  Mode:Nbr is  Master  Priority: 1
   DR: 10.3.3.1  BDR: 10.3.3.2  MTU: 0    
   Dead timer due in 32  sec 
   Retrans timer interval: 5 
   Neighbor is up for 00:00:01     
   Authentication Sequence: [ 0 ] 

# 查看SwitchA的OSPF路由表的信息,可以看到去往SwitchB和SwitchC的路由表项。而去往目的网段172.16.1.0/24的路由下一跳地址为10.3.3.2,说明流量在链路SwitchA→SwitchB上传输。

[SwitchA]display ospf routing 

	 OSPF Process 1 with Router ID 10.10.10.1
		  Routing Tables 

 Routing for Network 
 Destination        Cost  Type       NextHop         AdvRouter       Area
 10.1.1.0/24        1     Transit    10.1.1.1        10.10.10.1      0.0.0.0
 10.3.3.0/24        1     Transit    10.3.3.1        10.10.10.1      0.0.0.0
 10.2.2.0/24        2     Transit    10.1.1.2        10.10.10.2      0.0.0.0
 10.2.2.0/24        2     Transit    10.3.3.2        10.10.10.2      0.0.0.0
 172.16.1.0/24      2     Stub       10.3.3.2        10.10.10.2      0.0.0.0

 Total Nets: 5  
 Intra Area: 5  Inter Area: 0  ASE: 0  NSSA: 0 
  • 配置OSPF与BFD联动

# 在SwitchA上配置OSPF与BFD联动功能。

[SwitchA]bfd 
[SwitchA-bfd]quit
[SwitchA]ospf 1
[SwitchA-ospf-1]bfd all-interfaces enable 
[SwitchA-ospf-1]quit

# 在SwitchB上配置OSPF与BFD联动功能。

[SwitchB]bfd
[SwitchB-bfd]quit	
[SwitchB]ospf 1	
[SwitchB-ospf-1]bfd all-interfaces enable 
[SwitchB-ospf-1]quit

# 在SwitchC上配置OSPF与BFD联动功能。

[SwitchC]bfd
[SwitchC-bfd]quit
[SwitchC]ospf 1	
[SwitchC-ospf-1]bfd all-interfaces enable 
[SwitchC-ospf-1]quit

# 配置完成后,在SwitchA或SwitchB、SwitchC上执行display ospf bfd session all命令,可以看到BFD会话的状态为Up。以SwitchA的显示为例。

[SwitchA]display ospf bfd session all

	 OSPF Process 1 with Router ID 10.10.10.1
  Area 0.0.0.0 interface 10.1.1.1(Vlanif10)'s BFD Sessions

 NeighborId:10.10.10.3       AreaId:0.0.0.0          Interface:Vlanif10      
 BFDState:up                 rx    :1000             tx       :1000          
 Multiplier:3                BFD Local Dis:8192      LocalIpAdd:10.1.1.1
 RemoteIpAdd:10.1.1.2        Diagnostic Info:No diagnostic information

  Area 0.0.0.0 interface 10.3.3.1(Vlanif30)'s BFD Sessions

 NeighborId:10.10.10.2       AreaId:0.0.0.0          Interface:Vlanif30      
 BFDState:up                 rx    :1000             tx       :1000          
 Multiplier:3                BFD Local Dis:8193      LocalIpAdd:10.3.3.1
 RemoteIpAdd:10.3.3.2        Diagnostic Info:No diagnostic information
  • 检查配置结果

# 对SwitchB的GE0/0/1接口执行shutdown命令,模拟链路故障。

[SwitchB]interface GigabitEthernet 0/0/1
[SwitchB-GigabitEthernet0/0/1]shutdown

# 在SwitchA上查看OSPF路由表。

[SwitchA]display ospf routing 

	 OSPF Process 1 with Router ID 10.10.10.1
		  Routing Tables 

 Routing for Network 
 Destination        Cost  Type       NextHop         AdvRouter       Area
 10.1.1.0/24        1     Transit    10.1.1.1        10.10.10.1      0.0.0.0
 10.3.3.0/24        1     Stub       10.3.3.1        10.10.10.1      0.0.0.0
 10.2.2.0/24        2     Transit    10.1.1.2        10.10.10.2      0.0.0.0
 172.16.1.0/24      3     Stub       10.1.1.2        10.10.10.2      0.0.0.0

 Total Nets: 4  
 Intra Area: 4  Inter Area: 0  ASE: 0  NSSA: 0 

可以看出在链路SwitchA-SwitchB出现故障后,备份链路SwitchA-SwitchC-SwitchB开始生效,即去往目的网段172.16.1.0/24的路由下一跳地址变成了10.1.1.2。

配置文件?

  • SwitchA的配置文件

#
sysname SwitchA
#
vlan batch 10 30
#
stp disable
#
bfd
#
interface Vlanif10
 ip address 10.1.1.1 255.255.255.0
#
interface Vlanif30
 ip address 10.3.3.1 255.255.255.0
#
interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk allow-pass vlan 10
#
interface GigabitEthernet0/0/2
 port link-type trunk
 port trunk allow-pass vlan 30
#
ospf 1 router-id 10.10.10.1
 bfd all-interfaces enable
 area 0.0.0.0
  network 10.1.1.0 0.0.0.255
  network 10.3.3.0 0.0.0.255
#
return
  • SwitchB的配置文件

#
sysname SwitchB
#
vlan batch 20 30 40
#
stp disable
#
bfd
#
interface Vlanif20
 ip address 10.2.2.2 255.255.255.0
#
interface Vlanif30
 ip address 10.3.3.2 255.255.255.0
#
interface Vlanif40
 ip address 172.16.1.1 255.255.255.0
#
interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk allow-pass vlan 30
#
interface GigabitEthernet0/0/2
 port link-type trunk
 port trunk allow-pass vlan 20
#
interface GigabitEthernet0/0/3
 port link-type trunk
 port trunk allow-pass vlan 40
#
ospf 1 router-id 10.10.10.2
 bfd all-interfaces enable
 area 0.0.0.0
  network 10.2.2.0 0.0.0.255
  network 10.3.3.0 0.0.0.255
  network 172.16.1.0 0.0.0.255
#
return
  • SwitchC的配置文件

#
sysname SwitchC
#
vlan batch 10 20
#
stp disable
#
bfd
#
interface Vlanif10
 ip address 10.1.1.2 255.255.255.0
#
interface Vlanif20
 ip address 10.2.2.1 255.255.255.0
#
interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk allow-pass vlan 10
#
interface GigabitEthernet0/0/2
 port link-type trunk
 port trunk allow-pass vlan 20
#
ospf 1 router-id 10.10.10.3
 bfd all-interfaces enable
 area 0.0.0.0
  network 10.1.1.0 0.0.0.255
  network 10.2.2.0 0.0.0.255
#
return
  • LSW4的配置文件?
#
sysname LSW4
#
vlan batch 30
#
stp disable
#
interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk allow-pass vlan 10
#
interface GigabitEthernet0/0/2
 port link-type trunk
 port trunk allow-pass vlan 20
#
return
文章来源:https://blog.csdn.net/2301_77081516/article/details/135076169
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。