学习新思想,争做新青年,今天学习的是BGP路由黑洞

实验目的

理解IBGP与IGP的同步机制
理解使用 IBGP 全互联方式解决 BGP 路由黑洞问题的原理
理解使用 GRE 隧道解决 BGP 路由黑洞问题的原理
掌握上述解决 BGP 路由黑洞问题的配置方法

实验内容

本实验网络中,假定AS20为运营商网络,AS10和 AS 30 分别为企业分公司 A 和分公司 B 的网络,R1 和 R5的Loopback0接口分别模拟了分公司A的内部网络和分公司B的内部网络。R1、R2、R4、R5运行BGP协议,AS 20 内部使用 OSPF 协议作为 IGP。网络需求是:实现分公司A的内部网络与分公司B的内部网络之间的正常通信。

实验拓扑

华为ensp--BGP路由黑洞_封装

实验配置

1、基本配置
R1:
sys
sysname R1
int loop 0
ip add 10.0.1.1 32
int g0/0/0
ip add 10.0.12.1 24
q

R2:
sys
sysname R2
int loop 0
ip add 10.0.2.2 32
int g0/0/0
ip add 10.0.12.2 24
int g0/0/1
ip add 10.0.23.2 24
q

R3:
sys
sysname R3
int loop 0
ip add 10.0.3.3 32
int g0/0/1
ip add 10.0.23.3 24
int g0/0/0
ip add 10.0.34.3 24
q

R4:
sys
sysname R4
int loop 0
ip add 10.0.4.4 32
int g0/0/0
ip add 10.0.34.4 24
int g0/0/1
ip add 10.0.45.4 24
q

R5:
sys
sysname R5
int loop 0
ip add 10.0.5.5 32
int g0/0/1
ip add 10.0.45.5 24
q

2.配置OSPF和BGP路由协议
在AS 20 中配置 OSPF 协议作为 IGP 协议。
[R2]ospf router-id 10.0.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 10.0.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 10.0.23.0 0.0.0.255

[R3]ospf router-id 10.0.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 10.0.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 10.0.23.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 10.0.34.0 0.0.0.255

[R4]ospf router-id 10.0.4.4
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]network 10.0.4.4 0.0.0.0
[R4-ospf-1-area-0.0.0.0]network 10.0.34.0 0.0.0.255

在R1、R2、R4、R5上配置BGP协议。
[R1]bgp 10
[R1-bgp]router-id 10.0.1.1
[R1-bgp]peer 10.0.12.2 as-number 20
[R1-bgp]network 10.0.1.1 255.255.255.255

[R2]bgp 20
[R2-bgp]router-id 10.0.2.2
[R2-bgp]peer 10.0.12.1 as-number 10
[R2-bgp]peer 10.0.4.4 as-number 20
[R2-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[R2-bgp]peer 10.0.4.4 next-hop-local

[R4]bgp 20
[R4-bgp]router-id 10.0.4.4
[R4-bgp]peer 10.0.2.2 as-number 20
[R4-bgp]peer 10.0.2.2 connect-interface LoopBack 0
[R4-bgp]peer 10.0.2.2 next-hop-local
[R4-bgp]peer 10.0.45.5 as-number 30

[R5]bgp 30
[R5-bgp]router-id 10.0.5.5
[R5-bgp]peer 10.0.45.4 as-number 20
[R5-bgp]network 10.0.5.5 255.255.255.255

3.观察发现,观察发现,R3并没有去往R1、R5的路由。当R3接收到从R2转发过来的源地址为10.0.1.1、目的地址为10.0.5.5的报文时,会在自己的IP路由表中查找关于10.0.5.5的路由信息。由于现在R3在自己的IP路由表中查不到关于10.0.5.5的路由信息,所以R3会直接将报文丢弃,然后向源地址10.0.1.1发送ICMP Destination Unreachable消息。但是,此时R3的IP路由表中也没有关于10.0.1.1的路由信息,导致ICMP Destination Unreachable消息也无法被发送。这样一来,从10.0.1.1去往10.0.5.5的报文就在R3上无声无息地消失了,这就是所谓的BGP路由黑洞问题。

①通过采用IBGP全互联方式解决
[R3]bgp 20
[R3-bgp]router-id 10.0.3.3
[R3-bgp]peer 10.0.2.2 as-number 20
[R3-bgp]peer 10.0.2.2 connect-interface LoopBack 0
[R3-bgp]peer 10.0.4.4 as-number 20
[R3-bgp]peer 10.0.4.4 connect-interface LoopBack 0

[R2]bgp 20
[R2-bgp]peer 10.0.3.3 as-number 20
[R2-bgp]peer 10.0.3.3 connect-interface LoopBack 0
[R2-bgp]peer 10.0.3.3 next-hop-local

[R4]bgp 20
[R4-bgp]peer 10.0.3.3 as-number 20
[R4-bgp]peer 10.0.3.3 connect-interface LoopBack 0
[R4-bgp]peer 10.0.3.3 next-hop-local

②通过在R2、R4路由器上建立GRE隧道解决

[R2]interface Tunnel 0/0/0 //创建 Tunnel 接口。
[R2-Tunnel0/0/0]ip address 10.0.100.2 24 //为 Tunnel 接口配置 IP 地址。
[R2-Tunnel0/0/0]tunnel-protocol gre //配置 Tunnel 接口的封装协议为 GRE 协议。
[R2-Tunnel0/0/0]source 10.0.23.2 //定义隧道的源端,即 GRE 协议封装的新的源 IP 地址。
[R2-Tunnel0/0/0]destination 10.0.34.4 //定义隧道的目的端,即 GRE 协议封装的新的目的 IP 地址。
[R2]ip route-static 10.0.4.432 10.0.100.4 preference 1 //创建静态路由,并修改静态路由优先级为 1。
(注意,优先级值越小,则优先级越高),是为了保证去往10.0.4.4/32的路由的下一跳为10.0.100.4,也就是R4的Tunnel0/0/0接口的地址,从而使得所有去往10.0.4.4/32的报文都会被GRE协议封装后进行传输。

[R4]interface Tunnel0/0/0
[R4-Tunnel0/0/0]ip address 10.0.100.4 24
[R4-Tunnel0/0/0]tunnel-protocol gre
[R4-Tunnel0/0/0]source 10.0.34.4
[R4-Tunnel0/0/0]destination 10.0.23.2
[R4]ip route-static 10.0.2.232 10.0.100.2 preference 1