拓扑图
AR4 — AR2 建立EBGP邻居
AR2—AR3 建立IBGP邻居
AR3 — AR5 建立EBGP邻居
AR2 — AR1 — AR3 运行IGP协议,OSPF
要求
AR4 通过BGP获取 AR5的路由条目,并能ping 通
基础配置
AR1
interface GigabitEthernet0/0/0
ip address 12.1.1.1 255.255.255.0
interface GigabitEthernet0/0/1
ip address 13.1.1.1 255.255.255.0
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
AR2
interface GigabitEthernet0/0/0
ip address 12.1.1.2 255.255.255.0
interface GigabitEthernet0/0/1
ip address 24.1.1.2 255.255.255.0
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
AR3
interface GigabitEthernet0/0/0
ip address 35.1.1.3 255.255.255.0
interface GigabitEthernet0/0/1
ip address 13.1.1.3 255.255.255.0
interface LoopBack0
ip address 3.3.3.3 255.255.255.255
AR4
interface GigabitEthernet0/0/1
ip address 24.1.1.4 255.255.255.0
interface LoopBack0
ip address 4.4.4.4 255.255.255.255
AR5
interface GigabitEthernet0/0/0
ip address 35.1.1.5 255.255.255.0
interface LoopBack0
ip address 5.5.5.5 255.255.255.255
AR1,AR2,AR3建立OSPF
AR1
ospf 100
area 0.0.0.0
network 1.1.1.1 0.0.0.0
network 12.1.1.1 0.0.0.0
network 13.1.1.1 0.0.0.0
AR2
ospf 100
area 0.0.0.0
network 2.2.2.2 0.0.0.0
network 12.1.1.2 0.0.0.0
AR3
ospf 100
area 0.0.0.0
network 3.3.3.3 0.0.0.0
network 13.1.1.3 0.0.0.0
查看AR2与AR3的OSPF看看是否都收到了对方的环回口路由
AR2与AR4建立EBGP邻居,并把AR4的环回口地址通过EBGP传递
AR2
bgp 123
router-id 2.2.2.2
peer 24.1.1.4 as-number 4
————————————
ipv4-family unicast
undo synchronization
peer 24.1.1.4 enable
AR4
bgp 4
router-id 4.4.4.4
peer 24.1.1.2 as-number 123
——————————————
ipv4-family unicast
undo synchronization
network 4.4.4.4 255.255.255.255
peer 24.1.1.2 enable
这个时候在AR2的bgp表内是可以收到AR4的环回口地址的
此时在AR2上ping 4.4.4.4是可以通的
AR2与AR3通过环回口建立IBGP邻居
AR2
bgp 123
peer 3.3.3.3 as-number 123 ----指定AR3的环回口为邻居
peer 3.3.3.3 connect-interface LoopBack0 ---- 指定使用环回口建立邻居
peer 24.1.1.4 as-number 4
ipv4-family unicast
undo synchronization
peer 3.3.3.3 enable
peer 3.3.3.3 next-hop-local ---- 把IBGP路由发送给邻居时,修改路由下一跳地址为自身与邻居的更新源地址
peer 24.1.1.4 enable
AR3
bgp 123
peer 2.2.2.2 as-number 123
peer 2.2.2.2 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
peer 2.2.2.2 enable
peer 2.2.2.2 next-hop-local
此时查看AR3的BGP表以及路由表中可以看到已经收到了4.4.4.4的路由
AR3与AR2建立EBGP邻居
这里也通过环回口建立EBGP邻居,由于EBGP邻居建立的TTL值只有1,所以需要修改EBGP的TTL值,并且首先需要在AR3与AR5上指一条静态,去往对方环回口地址
AR3
ip route-static 5.5.5.5 255.255.255.255 GigabitEthernet0/0/0 35.1.1.5
bgp 123
router-id 3.3.3.3
peer 2.2.2.2 as-number 123
peer 2.2.2.2 connect-interface LoopBack0
peer 5.5.5.5 as-number 5
peer 5.5.5.5 ebgp-max-hop 2 ---- 修改ebgp的TTL值为2
peer 5.5.5.5 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
peer 2.2.2.2 enable
peer 2.2.2.2 next-hop-local
peer 5.5.5.5 enable
AR5
ip route-static 3.3.3.3 255.255.255.255 GigabitEthernet0/0/0 35.1.1.3
bgp 5
router-id 5.5.5.5
peer 3.3.3.3 as-number 123
peer 3.3.3.3 ebgp-max-hop 2
peer 3.3.3.3 connect-interface LoopBack0
ipv4-family unicast
undo synchronization
network 5.5.5.5 255.255.255.255
peer 3.3.3.3 enable
在AR5上创建一个环回口 10 ,IP地址设置为10.10.10.10 32,并宣告进BGP中,然后软清一下BGP表
AR5
AR4的BGP表中此时应该是已经可以看到10.10.10.10的路由条目了
但是此时AR4是无法ping通10.10.10.10的,因为此时AR3与AR2并不是直连建立邻居的,两台路由器中间还有一台路由器,该路由器由于没有运行BGP,所以并不知道这个10.10.10.10的路由在哪里,纵使AR2与AR3都有这条10.10.10.10的路由并且下一跳地址都没有问题,但数据包也无法正常传输,这就是BGP数据层面的路由黑洞。
解决BGP数据层面路由黑洞
使用MPLS 通过给BGP路由打标的方式解决路由黑洞问题
AR1,AR2,AR3都要运行MPLS
AR1
AR2与AR3也是相同操作
此时在AR1上查看mpls ldp peer可以看到以及与AR2 AR3建立的mpls邻居
此时需要在AR1,AR2,AR3上全局启用tunnel路由递归查询功能
route recursive-lookup tunnel
这时我们再在AR4上通过带原ping的方式去ping10.10.10.10,应该就能通了
[AR4]ping -a 4.4.4.4 10.10.10.10
PING 10.10.10.10: 56 data bytes, press CTRL_C to break
Reply from 10.10.10.10: bytes=56 Sequence=1 ttl=252 time=60 ms
Reply from 10.10.10.10: bytes=56 Sequence=2 ttl=252 time=40 ms
Reply from 10.10.10.10: bytes=56 Sequence=3 ttl=252 time=40 ms
Reply from 10.10.10.10: bytes=56 Sequence=4 ttl=252 time=40 ms
Reply from 10.10.10.10: bytes=56 Sequence=5 ttl=252 time=30 ms