配置BGP ADD-PATH示例

学习精彩网络技术老师:华为HCIA和HCIP数通eNSP实战视频课
学习精彩网络技术老师:华为、华三、锐捷、WLAN、IPv6等全套视频课程

配置BGP ADD-PATH特性,路由器可同时发布多条(两条或两条以上)相同前缀的路由给邻居,形成到达同一目的地址的多条链路,多条链路之间可以形成负载分担或路由备份,从而保证了数据传输的可靠性。

组网需求

在路由反射器场景中,如果反射器的路由表中存在多条到达同一目的地址的相同前缀的路由,根据BGP发布路由的策略,反射器只将最优路由发布给客户机。这可能造成数据传输过程中,到达同一目的地址的链路只有一条,当链路故障时路由收敛需要较长时间,无法满足数据传输高可靠性的需要。

为了解决上述问题,可以在路由反射器上部署BGP ADD-PATH特性,部署该特性后路由器可同时发布多条(两条或两条以上)相同前缀的路由给邻居,形成到达同一目的地址的多条链路,多条链路之间可以形成负载分担或路由备份,从而保证了数据传输的可靠性。

图1所示,RR为路由反射器,DeviceA、DeviceB、DeviceC为RR的客户机。DeviceB、DeviceC分别与DeviceD建立EBGP邻居。

为了保证数据传输的可靠性,可以在RR上配置BGP ADD-PATH,并在DeviceA上使能ADD-PATH路由接收功能。这样,RR可以发送多条相同前缀的优选路由给DeviceA,从而形成到达同一目的地址的多条链路。

图1 配置BGP ADD-PATH组网图

本例中interface1,interface2,interface3,interface4,interface5,interface6分别代表GE0/3/0,GE0/3/2,GE0/3/3,GE0/1/1,GE0/1/2,GE0/1/3。

配置注意事项

在配置过程中,需注意使能BGP ADD-PATH功能时,必须同时使能ADD-PATH路由发送端的发送能力和ADD-PATH路由接收端的接收能力,ADD-PATH路由才可以传递给指定的对等体。

配置思路

采用如下思路配置BGP ADD-PATH功能:

配置各NE接口的IP地址。

在各NE上配置BGP基本功能。

在RR上部署BGP ADD-PATH特性、使能其向DeviceA发送ADD-PATH路由的能力并指定发送的优选路由的条数。

在DeviceA上使能接收RR发来的ADD-PATH路由的能力。

数据准备

为完成此配置例,需准备如下的数据:

DeviceA、DeviceB、DeviceC、DeviceD和RR的Router ID和所在AS号。如表1所示。

表1 各设备的接口编号和IP地址

设备

Router ID

接口编号

IP地址

所在AS号

DeviceA

1.1.1.1

GigabitEthernet0/3/0

172.16.3.1/24

AS65008

GigabitEthernet0/1/1

172.16.2.1/24

GigabitEthernet0/1/3

172.16.1.1/24

DeviceB

2.2.2.2

GigabitEthernet0/3/0

172.16.3.2/24

AS65008

GigabitEthernet0/3/2

172.16.7.1/24

GigabitEthernet0/1/2

172.16.5.2/24

DeviceC

3.3.3.3

GigabitEthernet0/3/0

172.16.6.1/24

AS65008

GigabitEthernet0/3/3

172.16.4.2/24

GigabitEthernet0/1/3

172.16.1.2/24

DeviceD

4.4.4.4

GigabitEthernet0/3/0

172.16.6.2/24

AS65009

GigabitEthernet0/3/2

172.16.7.2/24

LoopBack0

1.1.1.1/32

RR

5.5.5.5

GigabitEthernet0/3/3

172.16.4.1/24

AS65008

GigabitEthernet0/1/1

172.16.2.2/24

GigabitEthernet0/1/2

172.16.5.1/24

操作步骤
  1. 配置各NE接口的IP地址,具体配置过程请参考配置文件
  2. 配置BGP基本功能,DeviceA、DeviceB、DeviceC分别与RR建立IBGP邻居,其中RR为反射器,DeviceA、DeviceB、DeviceC为RR的客户机。DeviceB、DeviceC分别与DeviceD建立EBGP邻居。

# 配置DeviceA。

[~DeviceA] bgp 65008

[*DeviceA-bgp] router-id 1.1.1.1

[*DeviceA-bgp] peer 172.16.2.2 as-number 65008

[*DeviceA-bgp] import-route direct

[*DeviceA-bgp] commit

[~DeviceA-bgp] quit

# 配置DeviceB。

[~DeviceB] bgp 65008

[*DeviceB-bgp] router-id 2.2.2.2

[*DeviceB-bgp] peer 172.16.3.1 as-number 65008

[*DeviceB-bgp] peer 172.16.5.1 as-number 65008

[*DeviceB-bgp] peer 172.16.7.2 as-number 65009

[*DeviceB-bgp] import-route direct

[*DeviceB-bgp] commit

[~DeviceB-bgp] quit

# 配置DeviceC。

[~DeviceC] bgp 65008

[*DeviceC-bgp] router-id 3.3.3.3

[*DeviceC-bgp] peer 172.16.1.1 as-number 65008

[*DeviceC-bgp] peer 172.16.4.1 as-number 65008

[*DeviceC-bgp] peer 172.16.6.2 as-number 65009

[*DeviceC-bgp] import-route direct

[*DeviceC-bgp] commit

[~DeviceC-bgp] quit

# 配置DeviceD。

[~DeviceD] bgp 65009

[*DeviceD-bgp] router-id 4.4.4.4

[*DeviceD-bgp] peer 172.16.6.1 as-number 65008

[*DeviceD-bgp] peer 172.16.7.1 as-number 65008

[*DeviceD-bgp] import-route direct

[*DeviceD-bgp] commit

[~DeviceD-bgp] quit

# 配置RR。

[~RR] bgp 65008

[*RR-bgp] router-id 5.5.5.5

[*RR-bgp] peer 172.16.2.1 as-number 65008

[*RR-bgp] peer 172.16.4.2 as-number 65008

[*RR-bgp] peer 172.16.5.2 as-number 65008

[*RR-bgp] peer 172.16.2.1 reflect-client

[*RR-bgp] peer 172.16.4.2 reflect-client

[*RR-bgp] peer 172.16.5.2 reflect-client

[*RR-bgp] import-route direct

[*RR-bgp] commit

[~RR-bgp] quit

# 查看DeviceA上1.1.1.1的路由信息。

[~DeviceA] display bgp routing-table 1.1.1.1

 BGP local router ID : 1.1.1.1

 Local AS number : 65008

 Paths:   1 available, 1 best, 1 select, 0 best-external, 0 add-path

 BGP routing table entry information of 1.1.1.1/32:

 From: 172.16.2.2 (5.5.5.5)

 Route Duration: 0d00h00m25s

 Relay IP Nexthop: 172.16.2.2

 Relay IP Out-interface: GigabitEthernet0/1/1

 Original nexthop: 172.16.7.2

 Qos information : 0x0

 AS-path 65009, origin incomplete, MED 0, localpref 100, pref-val 0, valid, inte

rnal, best, select, pre 255

 Originator: 2.2.2.2

 Cluster list: 5.5.5.5

 Not advertised to any peer yet

从BGP路由表可以看出,在配置BGP ADD-PATH特性之前,DeviceA只能收到一条来自RR的BGP路由1.1.1.1。

  1. 在RR上部署BGP ADD-PATH特性并在DeviceA上使能接收ADD-PATH路由功能。

# 配置RR。

[~RR] bgp 65008

[~RR-bgp] bestroute add-path path-number 2

[*RR-bgp] peer 172.16.2.1 capability-advertise add-path send

[*RR-bgp] peer 172.16.2.1 advertise add-path path-number 2

[*RR-bgp] commit

[~RR-bgp] quit

# 配置DeviceA。

[~DeviceA] bgp 65008

[~DeviceA-bgp] peer 172.16.2.2 capability-advertise add-path receive

[*DeviceA-bgp] commit

[~DeviceA-bgp] quit

# 查看DeviceA上1.1.1.1的路由信息。

[~DeviceA] display bgp routing-table 1.1.1.1

 BGP local router ID : 1.1.1.1

 Local AS number : 65008

 Paths:   2 available, 1 best, 1 select, 0 best-external, 0 add-path

 BGP routing table entry information of 1.1.1.1/32:

 From: 172.16.2.2 (5.5.5.5)

 Route Duration: 0d00h00m48s

 Relay IP Nexthop: 172.16.2.2

 Relay IP Out-interface: GigabitEthernet0/1/1

 Original nexthop: 172.16.7.2

 Qos information : 0x0

 AS-path 65009, origin incomplete, MED 0, localpref 100, pref-val 0, valid, inte

rnal, best, select, pre 255

 Received path-id: 0

 Originator: 2.2.2.2

 Cluster list: 5.5.5.5

 Not advertised to any peer yet

 BGP routing table entry information of 1.1.1.1/32:

 From: 172.16.2.2 (5.5.5.5)

 Route Duration: 0d00h00m48s

 Relay IP Nexthop: 172.16.2.2

 Relay IP Out-interface: GigabitEthernet0/1/1

 Original nexthop: 172.16.6.2

 Qos information : 0x0

 AS-path 65009, origin incomplete, MED 0, localpref 100, pref-val 0, valid, inte

rnal, pre 255, not preferred for router ID

 Received path-id: 1

 Originator: 3.3.3.3

 Cluster list: 5.5.5.5

 Not advertised to any peer yet

从BGP路由表可以看出,在部署BGP ADD-PATH特性后,DeviceA收到了两条来自RR的路由,其中原始下一跳地址为172.16.7.2的路由为RR选出的最优路由,原始下一跳地址为172.16.6.2的路由为由于部署了BGP ADD-PATH特性,RR选出的ADD-PATH路由。

# 查看RR上1.1.1.1的路由信息。

[~RR] display bgp routing-table 1.1.1.1

BGP local router ID : 5.5.5.5

 Local AS number : 65008

 Paths:   2 available, 1 best, 1 select, 0 best-external, 1 add-path

 BGP routing table entry information of 1.1.1.1/32:

 RR-client route.

 From: 172.16.5.2 (2.2.2.2)

 Route Duration: 0d00h19m39s

 Relay IP Nexthop: 172.16.5.2

 Relay IP Out-interface: GigabitEthernet0/1/2

 Original nexthop: 172.16.7.2

 Qos information : 0x0

 AS-path 65009, origin incomplete, MED 0, localpref 100, pref-val 0, valid, inte

rnal, best, select, pre 255

 Advertised to such 3 peers:

    172.16.5.2

    172.16.4.2

    172.16.2.1

 BGP routing table entry information of 1.1.1.1/32:

 RR-client route.

 From: 172.16.4.2 (3.3.3.3)

 Route Duration: 0d00h19m41s

 Relay IP Nexthop: 172.16.4.2

 Relay IP Out-interface: GigabitEthernet0/3/3

 Original nexthop: 172.16.6.2

 Qos information : 0x0

 AS-path 65009, origin incomplete, MED 0, localpref 100, pref-val 0, valid, inte

rnal, add-path, pre 255, not preferred for router ID

 Advertised to such 1 peers:

    172.16.2.1

由RR的路由表可以看出,与best的路由发送给了所有RR的对等体不同,RR选出的ADD-PATH路由只发送给了DeviceA。

配置文件

DeviceA的配置文件

#

sysname RouterA

#

interface GigabitEthernet0/3/0

 undo shutdown

 ip address 172.16.3.1 255.255.255.0

#

interface GigabitEthernet0/1/1

 undo shutdown

 ip address 172.16.2.1 255.255.255.0

#

interface GigabitEthernet0/1/3

 undo shutdown

 ip address 172.16.1.1 255.255.255.0

#

bgp 65008

 router-id 1.1.1.1

 peer 172.16.2.2 as-number 65008

 #

 ipv4-family unicast

  undo synchronization

  import-route direct

  peer 172.16.2.2 enable

  peer 172.16.2.2 capability-advertise add-path receive

#

return

DeviceB的配置文件

#

sysname RouterB

#

interface GigabitEthernet0/3/0

 undo shutdown

 ip address 172.16.3.2 255.255.255.0

#

interface GigabitEthernet0/3/2

 undo shutdown

 ip address 172.16.7.1 255.255.255.0

#

interface GigabitEthernet0/1/2

 undo shutdown

 ip address 172.16.5.2 255.255.255.0

#

bgp 65008

 router-id 2.2.2.2

 peer 172.16.3.1 as-number 65008

 peer 172.16.5.1 as-number 65008

 peer 172.16.7.2 as-number 65009

 #

 ipv4-family unicast

  undo synchronization

  import-route direct

  peer 172.16.3.1 enable

  peer 172.16.5.1 enable

  peer 172.16.7.2 enable

#

return

DeviceC的配置文件

#

sysname RouterC

#

interface GigabitEthernet0/3/0

 undo shutdown

 ip address 172.16.6.1 255.255.255.0

#

interface GigabitEthernet0/3/3

 undo shutdown

 ip address 172.16.4.2 255.255.255.0

#

interface GigabitEthernet0/1/3

 undo shutdown

 ip address 172.16.1.2 255.255.255.0

#

bgp 65008

 router-id 3.3.3.3

 peer 172.16.1.1 as-number 65008

 peer 172.16.4.1 as-number 65008

 peer 172.16.6.2 as-number 65009

 #

 ipv4-family unicast

  undo synchronization

  import-route direct

  peer 172.16.1.1 enable

  peer 172.16.4.1 enable

  peer 172.16.6.2 enable

#

return

DeviceD的配置文件

#

sysname RouterD

#

interface GigabitEthernet0/3/0

 undo shutdown

 ip address 172.16.6.2 255.255.255.0

#

interface GigabitEthernet0/3/2

 undo shutdown

 ip address 172.16.7.2 255.255.255.0

#

interface LoopBack0

 ip address 1.1.1.1 255.255.255.255

#

bgp 65009

 router-id 4.4.4.4

 peer 172.16.6.1 as-number 65008

 peer 172.16.7.1 as-number 65008

 #

 ipv4-family unicast

  undo synchronization

  import-route direct

  peer 172.16.6.1 enable

  peer 172.16.7.1 enable

#

return

RR的配置文件

#

sysname RR

#

interface GigabitEthernet0/3/3

 undo shutdown

 ip address 172.16.4.1 255.255.255.0

#

interface GigabitEthernet0/1/1

 undo shutdown

 ip address 172.16.2.2 255.255.255.0

#

interface GigabitEthernet0/1/2

 undo shutdown

 ip address 172.16.5.1 255.255.255.0

#

bgp 65008

 router-id 5.5.5.5

 peer 172.16.2.1 as-number 65008

 peer 172.16.4.2 as-number 65008

 peer 172.16.5.2 as-number 65008

 #

 ipv4-family unicast

  undo synchronization

  import-route direct

  bestroute add-path path-number 2

  peer 172.16.2.1 enable

  peer 172.16.2.1 reflect-client

  peer 172.16.2.1 capability-advertise add-path send

  peer 172.16.2.1 advertise add-path path-number 2

  peer 172.16.4.2 enable

  peer 172.16.4.2 reflect-client

  peer 172.16.5.2 enable

  peer 172.16.5.2 reflect-client

#

return

### BGP路由黑洞的原因 BGP(Border Gateway Protocol)是一种用于自治系统(AS)间通信的路径矢量协议。当某些特定条件满足时,可能会发生所谓的“BGP路由黑洞”。这种现象通常发生在跨多个自治系统的网络环境中,其根本原因在于不同自治系统间的路由信息不一致或缺乏足够的内部路由支持。 具体来说,BGP路由黑洞的主要成因包括以下几个方面: 1. **缺少IGP(Interior Gateway Protocol)支持** 当某个自治系统内的路由器未正确配置内部网关协议(如OSPF、EIGRP),可能导致该路由器无法找到到达目标地址的具体下一跳。这使得数据包被丢弃而不是转发至正确的目的地[^1]。 2. **错误的路由引入操作** 如果在一个自治系统中不当执行了`import-route`命令(例如将BGP路由引入到OSPF或其他IGP进程中),可能引发路由循环或丢失必要的明细路由信息,从而造成黑洞效应[^2]。 3. **中间设备无匹配路由条目** 如案例所示,在AR3这样的中间节点上如果不存在精确指向目的IP段的有效路由,则它会依据默认行为直接丢弃收到的数据帧而不尝试进一步传输[^3]。 --- ### 解决BGP路由黑洞的方法 针对上述提到的各种潜在诱因,业界提出了多种有效的缓解措施和技术手段来应对这一挑战: #### 方法一:优化本地优先级与权重设置 调整相关参数以确保更优质量的路径能够胜选成为实际使用的出口方向之一;同时也可以考虑增加额外备份链路作为冗余选项以防止单点失效引起的服务中断情况出现。 #### 方法二:采用MPLS技术实现高效流量工程管理 多协议标签交换(Multi-Protocol Label Switching, MPLS) 是目前被认为最理想的解决方案之一。通过预先定义好的LSP(Label Switched Path),即使遇到复杂的拓扑结构变化也能保持稳定可靠的连接状态[^4][^5]。 以下是基于Python模拟的一个简单示例程序片段展示如何利用外部API接口查询当前网络状况并动态修改相应策略: ```python import requests def update_mpls_policy(api_url, auth_token, new_policy): headers = { 'Authorization': f'Bearer {auth_token}', 'Content-Type': 'application/json' } payload = {"policy":new_policy} response = requests.post(api_url, json=payload, headers=headers) if response.status_code == 200: print("Policy updated successfully.") else: print(f"Failed to update policy: {response.text}") # Example usage of the function with hypothetical values. update_mpls_policy('https://example.com/api/mpls', 'your-auth-token-here', {'action':'add','rule':{'src':'192.168.1.0/24','dst':'172.16.0.0/16'}}) ``` 此脚本仅作为一个概念验证工具,请根据实际情况定制开发适合企业需求的应用软件产品。 --- ### 总结 综上所述,理解并妥善处理BGP路由黑洞问题是维护大规模互联网络健康运转不可或缺的一部分。无论是改进传统方法还是积极拥抱新兴技术如MPLS,都需要运维人员具备扎实的技术功底以及丰富的实战经验才能取得理想效果。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

精彩网络技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值