配置BGP基本功能
应用环境
BGP是一种外部网关协议(EGP),主要用于在AS之间传递路由信息。与OSPF、RIP等内部网关协议(IGP)不同,其着眼点不在于发现和计算路由,而在于控制路由的传播和选择最佳路由。当BGP运行于同一自治系统内部时,被称为IBGP;当BGP运行于不同自治系统之间时,称为EBGP。
配置思路
在部署BGP基本功能时,采用如下的思路:
1. 域内BGP对等体之间配置IBGP连接。
2. 域间BGP对等体之间配置EBGP连接。
3. 配置BGP发布路由:
通过network命令发布本地路由
在BGP中引入其它协议的路由
配置注意事项
由于BGP使用TCP连接,所以在配置BGP时需要指定对等体的IP地址。BGP对等体不一定就是相邻的路由器,利用逻辑链路也可以建立BGP对等体关系。
有时为了增强BGP连接的稳定性,通常使用Loopback接口地址建立连接。
通常情况下,EBGP对等体之间必须具有直连的物理链路,如果不满足这一要求,则必须使用peer ebgp-max-hop命令允许它们之间经过多跳建立TCP连接。
配置实例
如下图所示,所有路由器均为BGP路由器,RouterA和RouterB之间建立EBGP连接,RouterB、RouterC和RouterD之间建立IBGP全连接。
BGP基本配置组网图
适用产品和版本
采用NE系列路由器,版本为(VRP5.30)及后续版本。
配置步骤
步骤 1 配置各接口的IP地址(略)
步骤 2 配置IBGP连接
# 配置RouterB。 [RouterB] bgp 65009 [RouterB-bgp] router-id 2.2.2.2 [RouterB-bgp] peer 9.1.1.2 as-number 65009 [RouterB-bgp] peer 9.1.3.2 as-number 65009 # 配置RouterC。 [RouterC] bgp 65009 [RouterC-bgp] router-id 3.3.3.3 [RouterC-bgp] peer 9.1.3.1 as-number 65009 [RouterC-bgp] peer 9.1.2.2 as-number 65009 # 配置RouterD。 [RouterD] bgp 65009 [RouterD-bgp] router-id 4.4.4.4 [RouterD-bgp] peer 9.1.1.1 as-number 65009 [RouterD-bgp] peer 9.1.2.1 as-number 65009
步骤 3 配置EBGP
# 配置RouterA。 [RouterA] bgp 65008 [RouterA-bgp] router-id 1.1.1.1 [RouterA-bgp] peer 200.1.1.1 as-number 65009 # 配置RouterB。 [RouterB-bgp] peer 200.1.1.2 as-number 65008
# 在RouterB上查看BGP对等体的连接状态。
[RouterB] display bgp peer
BGP local router ID : 2.2.2.2
Local AS number : 65009
Total number of peers : 3 Peers in established state : 3
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
9.1.3.2 4 65009 56 56 0 00:40:54 Established 0
9.1.1.2 4 65009 49 62 0 00:44:58 Established 0
200.1.1.2 4 65008 49 65 0 00:44:03 Established 1
可以看出,RouterB到其他路由器的BGP连接均已建立。
步骤 4 配置RouterA发布路由8.0.0.0/8
# 配置RouterA发布路由。
[RouterA-bgp] ipv4-family unicast
[RouterA-bgp-af-ipv4] network 8.0.0.0 255.0.0.0
# 查看RouterA的BGP路由表信息。
[RouterA] display bgp routing-table
Total Number of Routes: 1
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 8.0.0.0 0.0.0.0 0 0 i
# 查看RouterB的BGP路由表信息。
[RouterB] display bgp routing-table
Total Number of Routes: 1
BGP Local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 8.0.0.0 200.1.1.2 0 0 65008i
# 显示RouterC的BGP路由表。
[RouterC] display bgp routing-table
Total Number of Routes: 1
BGP Local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
i 8.0.0.0 200.1.1.2 0 100 0 65008i
说明
从路由表可以看出,RouterC虽然学到了AS65008中的8.0.0.0的路由,但因为下一跳200.1.1.2不可达,所以也不是有效路由。
步骤 5 配置BGP引入直连路由
# 配置RouterB。
[RouterB-bgp] ipv4-family unicast
[RouterB-bgp-af-ipv4] import-route direct
# 显示RouterA的BGP路由表。
[RouterA] display bgp routing-table
Total Number of Routes: 7
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 8.0.0.0 0.0.0.0 0 0 i
*> 9.1.1.0/24 200.1.1.1 0 0 65009?
*> 9.1.1.2/32 200.1.1.1 0 0 65009?
*> 9.1.3.0/24 200.1.1.1 0 0 65009?
*> 9.1.3.2/32 200.1.1.1 0 0 65009?
* 200.1.1.0 200.1.1.1 0 0 65009?
* 200.1.1.2/32 200.1.1.1 0 0 65009?
# 显示RouterC的BGP路由表。
[RouterC] display bgp routing-table
Total Number of Routes: 7
BGP Local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 8.0.0.0 200.1.1.2 0 100 0 65008i
*>i 9.1.1.0/24 9.1.3.1 0 100 0 ?
*>i 9.1.1.2/32 9.1.3.1 0 100 0 ?
* i 9.1.3.0/24 9.1.3.1 0 100 0 ?
* i 9.1.3.2/32 9.1.3.1 0 100 0 ?
*>i 200.1.1.0 9.1.3.1 0 100 0 ?
*>i 200.1.1.2/32 9.1.3.1 0 100 0 ?
可以看出,到8.0.0.0的路由变为有效路由,下一跳为RouterA的地址。
验证结果
如果配置成功,则:
RouterC有到8.1.1.1的路由,使用Ping进行验证。
[RouterC] ping 8.1.1.1
PING 8.1.1.1: 56 data bytes, press CTRL_C to break
Reply from 8.1.1.1: bytes=56 Sequence=1 ttl=254 time=31 ms
Reply from 8.1.1.1: bytes=56 Sequence=2 ttl=254 time=47 ms
Reply from 8.1.1.1: bytes=56 Sequence=3 ttl=254 time=31 ms
Reply from 8.1.1.1: bytes=56 Sequence=4 ttl=254 time=16 ms
Reply from 8.1.1.1: bytes=56 Sequence=5 ttl=254 time=31 ms
--- 8.1.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 16/31/47 ms