浅谈BGP Router-ID

时间:2022-10-09 11:09:50

摘要:

随着MPLS VPN使用越来越广泛,作为网间路由协议BGP使用场合增多。关于BGP协议内容很多,本文重点阐述BGP Router-ID在网络中的设置要求以及网络规划注意事项。

关键词:BGP、Router-ID

中图分类号:G250文献标识码: A

一 BGP Router-ID概述

区别于IGP只维护自治系统AS内部路由信息,BGP维护AS间的路由信息。BGP的Router-ID作为路由器上BGP协议进程与其他路由器上BGP协议进程交互的唯一标识,要求在整个AS范围内唯一,采用IPv4地址形式表示。

为便于理解BGP Router-ID网络规划,下文进行详细说明。

二 理解BGP Router-ID

采用如下拓扑进行说明:

初始配置启用BGP协议

Te1上初始配置,未配置任何IP数据(如接口ip地址等)。直接启用BGP协议,如下提示:

te1(config)# router bgp 65531

te1(config-router)#

* %BGP-4-NORTRID: BGP could not pick a router-id. Please configure manually.

提示说明无法自动选取Router-ID,建议手动配置。

在其他ios版本的路由器上,会出现“*% BGP cannot run because the router-id is not configured”,提示说明BGP协议进程无法启动。

自动选择Router-ID,未配置Loopback

配置如下:

Te1:fa0/0地址192.168.10.1/30。

Te2:fa0/0地址192.168.10.2/30,BGP邻居配置。

在Te1上配置bgp邻居,提示:“%BGP-5-ADJCHANGE: neighbor 192.168.10.2 Up”,说明EBGP邻居建立正常。此时show ip bgp summary查看Te1上的BGP Router-ID为192.168.10.1(即fa0/0接口地址),是BGP协议进程自动选取的。

按照BGP协议Router-ID选取规则:如果没有Loopback口,则所有up状态的物理口中地址最大的作为Router-ID。

在Te1路由器上,配置如下数据:

interface Ethernet1/0

ip address 192.168.254.253 255.255.255.252

loopback!此处配置Loopback回环使该接口处于UP状态

此时,重新启动Te1 BGP协议进程,重新查看Te1的BGP Router-ID为192.168.254.253.

te1#show ip bgp sum

BGP router identifier 192.168.254.253, local AS number 65531

手动配置BGP Router-ID

在不考虑网络规划及管理的情况下,BGP Router-ID可以随意手动设置,并且BGP协议进程自动重启,立即生效。

如下所示:

te1(config-router)#bgp router-id 1.1.1.1

te1(config-router)#

* %BGP-5-ADJCHANGE: neighbor 192.168.10.2 Down Router ID changed

*%BGP_SESSION-5-ADJCHANGE: neighbor 192.168.10.2 IPv4 Unicast topology base removed from sessionRouter ID changed

* %BGP-5-ADJCHANGE: neighbor 192.168.10.2 Up

删除手动设置的Router-ID,BGP协议将自动重启并选择接口地址中最大的作为Router-ID(未配置Loopback)。

自动选择Router-ID,配置Loopback

按照BGP协议Router-ID选取规则:如果配置有Loopback接口,Loopback地址最大的作为Router-ID。

Te1上配置如下数据:

Lo0:200.1.1.1 255.255.255.0

Lo1:201.1.1.1 255.255.255.0

重启Te1上的BGP协议进程,Lo1的地址201.1.1.1将被选择为Router-ID。

te1#show ip bgp sum

BGP router identifier 201.1.1.1, local AS number 65531

特别注意:此处设置Loopback接口地址不是32位掩码,但BGP协议运行正常。

MPLS vpn环境下,作为Router-ID的Loopback地址建议32位掩码

采用图2进行说明。

根据MPLS vpn部署建议,骨干路由器p不运行BGP协议,pe路由器之间只建立vpnv4邻居。

为描述方便,设定如下:

pe1、pe2、p路由器的loopback地址均设置为24位掩码。

IGP协议为OSPF协议,pe1、pe2、p上仅network Loopback 0和设备互联网段。

使用vrf 1模拟业务vpn。

pe1设置Loopback11:172.16.11.1/24作为业务vrf 1网段。

pe2设置Loopback12:172.16.12.1/24作为业务vrf 1网段。

p不运行BGP协议。仅运行OSPF协议和MPLS功能。

配置完成后,查看pe1状态:

pe1#show ip bgp vpnv4 all

BGP table version is 8, local router ID is 201.1.1.1

NetworkNext HopMetric LocPrfWeightPath

Route Distinguisher: 65530:1 (default for vrf 1)

*> 172.16.11.0/24 0.0.0.0032768i

*>i172.16.12.0/24 202.1.1.10100 0i

pe1#show ip route vrf 1

172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks

C172.16.11.0/24 is directly connected, Loopback11

L172.16.11.1/32 is directly connected, Loopback11

B172.16.12.0/24 [200/0] via 202.1.1.1, 17:44:16

其他如OSPF、MPLS均查看确认正常,vrf 1路由学习也正常。

然而,执行以下命令显示ping不可达:

pe1#ping vrf 1 172.16.12.1 source 172.16.11.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 172.16.12.1, timeout is 2 seconds:

Packet sent with a source address of 172.16.11.1

.....

Success rate is 0 percent (0/5)

针对MPLS VPN环境,一个PE到另一个PE的业务流量下一跳均采用BGP Router-ID,采用的标签是BGP Router-ID的标签。在此例中,到172.16.12.0/24用的标签是202.1.1.1的标签。然而查看202.1.1.1的标签信息如下:

pe1:

202.1.1.1/32

in label: 18

out label:17lsr: 210.1.1.1:0(P路由器)

p:

202.1.1.1/32

in label: 17

out label:18lsr: 201.1.1.1:0(pe1路由器)

从中看出,到202.1.1.1的标签存在问题。注意pe1上不存在202.1.1.0/24网段的标签信息。

如果在配置过程中注意告警信息,可以看到如下告警:

%BGP-4-VPNV4NH_MASK: Nexthop 202.1.1.1 may not be reachable from neigbor 201.1.1.1 - not /32 mask

为了避免上述出现的问题,将pe1和pe2的Loopback0接口地址更改为32位掩码的主机地址。注意更改完成后将导致LDP会话重启。重新ping测试,结果可达。

三 BGP Router-ID规划建议

除以上描述的情况外,随着MPLS vpn业务开展,终端客户需要一个site站点支持多个vrf。而CE-PE互联协议选择,采用BGP无疑是最好的。根据BGP协议运行要求,必须要有一个ipv4地址(指定或者自动选择)作为Router-ID,虽然从业务角度看,这个ipv4地址不会出现在任何一个vrf业务路由表中。

所以,在进行网络整体规划中,建议:

凡涉及Router-ID的路由协议如BGP,均予以详细规划,并采用手动设置。

手动设置的Router-ID采用Loopback0的ip地址,且该地址为32位IPv4主机地址。

上一篇:建筑项目施工中现浇钢筋混凝土结构施工技术探... 下一篇:关于建设工程结算审核工作的探讨