BGP邻居
原理概述:
路由信息协议分为内部网关协议(IGP:Interior Gateway Protocol)和外部网关协议(EGP:Exterior Gateway
Protocol)两大类。IGP用于自治系统AS(Autonomous
System)内部,EGP用于AS之间。最早的IGP是一种称为GGP(Gateway-to-Gateway
Protocol)的路由协议,而最早的EGP是一种EGP(Exterior-Gateway
protocol,注意,它与类别名EGP同名,现已被废除)的路由协议。目前,常见的IGP包括RIP、OSPF、IS-IS等,而常见的EGP只有BGP(Border
Gateway Protocol)。
实验目的:
理解BGP协议的应用场景
理解IBGP和EBGP邻居的概念
配置IBGP与EBGP邻居关系
实验拓扑:
1:基础配置:
将在R1和R2上使用直连物理接口来配置IBGP邻居关系,为了实现链路冗余,R1和
R2之间部署了两条链路,当其中一条链路出现故障时,另一条物理链路可以提供连通性。
R1: # interface GigabitEthernet0/0/0 ip address 10.0.12.1 255.255.255.0 #
interface GigabitEthernet0/0/1 ip address 10.0.21.1 255.255.255.0 # interface
GigabitEthernet0/0/2 # interface NULL0 # interface LoopBack0 ip address
10.0.1.1 255.255.255.255 # bgp 100 router-id 10.0.1.1 peer 10.0.12.2
as-number 100 peer 10.0.21.2 as-number 100 # ipv4-family unicast undo
synchronization network 10.0.1.1 255.255.255.255 peer 10.0.12.2 enable
peer 10.0.21.2 enable R2:、 # interface GigabitEthernet0/0/0 ip address
10.0.12.2 255.255.255.0 # interface GigabitEthernet0/0/1 ip address 10.0.21.2
255.255.255.0 # interface GigabitEthernet0/0/2 ip address 10.0.23.2
255.255.255.0 # interface GigabitEthernet4/0/0 ip address 10.0.32.2
255.255.255.0 # interface NULL0 # interface LoopBack0 ip address 10.0.2.2
255.255.255.255 # bgp 100 router-id 10.0.2.2 peer 10.0.12.1 as-number 100
peer 10.0.12.2 as-number 100 peer 10.0.21.1 as-number 100 # ipv4-family
unicast undo synchronization peer 10.0.12.1 enable undo peer 10.0.12.2
enable peer 10.0.21.1 enable R3: # interface GigabitEthernet0/0/0 ip address
10.0.23.3 255.255.255.0 # interface GigabitEthernet0/0/1 ip address 10.0.32.3
255.255.255.0 # interface GigabitEthernet0/0/2 # interface NULL0 # interface
LoopBack0 ip address 10.0.3.3 255.255.255.255
2:配置IBGP邻居:
我们在基础配置上已经配置完成了,接下来我们查看BGP邻居关系
可以看到,R2现在有两个BGP邻居,分别使用R1的G0/0/0和G0/0/1接口地址来表示,AS编号为100,与R2自己的AS编号相同,因此R2与R1为IBGP邻居,当前邻居状态为Established,表示邻居关系已完全建立。
[R1]bgp 100 [R1-bgp]network 10.0.1.1 32
配置完成后,在R2上查看BGP路由表
为了能使R1的Loopback 0 接口与R2的Loopback接口建立起TCP会话,需要在R1和R2上配置到达对方Loopback 0 接口的静态路由。
R1:Lo0的静态: [R1]ip route-static 10.0.2.2 32 10.0.12.2 [R1]ip ro [R1]ip route-s
[R1]ip route-static 10.0.2.2 32 10.0.21.2 R2:Lo0的静态: ip route-static 10.0.1.1
255.255.255.255 10.0.12.1 ip route-static 10.0.1.1 255.255.255.255 10.0.21.1
删除之前采用物理接口的配置IBGP邻居的命令,并使用Loopback 0接口重新建立IBGP邻居关系。
[R1]bgp 100 [R1-bgp]undo peer 10.0.12.2 [R1-bgp]un peer 10.0.21.2 [R1-bgp]peer
10.0.2.2 as-number 100 [R2]bgp 100 [R2-bgp]un peer 10.0.12.1 [R2-bgp]un peer
10.0.21.1 [R2-bgp]peer 10.0.1.1 as-number 100
上述配置完成后,在R1上查看BGP的邻居关系
可以看到,R1与R2的邻居关系停留在Active状态,而非Extablished,这说明R1与R2尚未正常建立起IBGP邻居关系。
在R1上指定使用自己的Loopback 0 接口地址作为发送BGP报文时的源IP地址,R2上也需使用类似的命令
[R1]bgp 100 [R1-bgp]peer 10.0.2.2 connect-interface lo 0 [R2]bgp 100
[R2-bgp]peer 10.0.1.1 connect-interface lo 0
上述配置完成后,在R2上查看BGP路由表
可以看到,R2的BGP路由表中只有一条去往10.0.1.1/32的路由,下一跳为10.0.1.1
再查看R2的IP路由表
配置EBGP邻居
在R2和R3上使用Loopback 0 接口来建立EBGP邻居关系
[R2]bgp 100 [R2-bgp]peer 10.0.3.3 as-number 200 [R3]bgp 200 [R3-bgp]router-id
10.0.3.3 [R3-bgp]peer 10.0.2.2 as-number 100
上述配置完成后,在R3上查看BGP邻居关系
可以看到,R2与R3的邻居状态一直停留在IdIe状态,说明邻居关系未能正常建立。
我们知道,BGP邻居关系建立的前提条件是要能够建立起TCP会话,而目前R2和R3上都不存在去往对方Loopback 0
接口的路由,因此无法建立TCP会话,为了解决这个问题,可以在R2和R3上配置到达Loopback 0 接口的静态路由。
[R2]ip route-static 10.0.3.0 24 10.0.23.3 [R2]ip route-static 10.0.3.0 24
10.0.32.3 [R3]ip route-static 10.0.2.0 24 10.0.23.2 [R3]ip route-static
10.0.2.0 24 10.0.32.2
上述配置完成后,在R3上查看BGP邻居关系
可以看到,R2与R3之间的邻居关系一直停留在Active状态,说明邻居关系还是未能正常建立起来
[R2-bgp]peer 10.0.3.3 connect-interface lo 0 [R3-bgp]peer 10.0.2.2
connect-interface lo 0
配置完成后,在R3上查看BGP邻居关系
在默认情况下,EBGP邻居之间在发送BGP报文时,TTL为1,所以EBGP默认要求邻居之间必须物理直连。但是当R2和R3使用Loopback 0
接口建立邻居关系时,由于使用的不是物理直连的接口,所以TTL值会被多减一次,成为0,最终使得BGP报文会丢弃;从而导致邻居关系无法建立,为了解决这一问题,可以修改EBGP邻居发送的BGP报文的TTL值,使报文的TTL值大于1
在R2和R3上配置BGP报文的TTL值为2
[R2-bgp]peer 10.0.3.3 ebgp-max-hop 2 [R3-bgp]peer 10.0.2.2 ebgp-max-hop 2
上述配置完成后,在R3上查看BGP邻居关系
可以看到,R2与R3之间已经建立起了EBGP邻居关系
需要说明的是,在实际场景中,通常使用Loopback接口来建立IBGP邻居关系,使用物理接口来建立EBGP邻居关系。
备注:如有错误,请谅解!
此文章为本人学习笔记,仅供参考!如有重复!!!请联系本人!