目录
拓扑图
环境介绍
- 每台路由器上都有looback0,比如R4是4.4.4.4/32,直连接口地址为10.1.34.4/24,其他路由器直连和looback口地址类似,R4上还有looback1,地址为44.44.44.44/24。
- R3和R4是EBGP邻居关系,AS123内路由器是IBGP邻居关系,并且AS123内启用了IGP协议(OSPF),宣告直连和lo0.
- R3和R4之间是使用直连接口起邻居,AS123内路由器是使用lo0起邻居,即要修该更新源为lo0。
复盘实验
在R3和R4上配置EBGP邻居关系,并且在R4上使用network宣告44.44.44.0/24进BGP,R3上能收到一条best的前缀,R3将其传递给R1,R1收到的是非优化的前缀。原因是下一跳不可达[1]。这时候可以使用以下办法解决:
- 在R1上使用静态路由,即目的10.1.34.4,下一跳10.1.13.3
- 在R3上将10.1.34.0的路由重分布进OSPF,这样运行了OSPF的R1就能学习到目的路由,使其优化
- 在R3上使用next-hop-self,更改下一跳为本地
假设我使用方法1,此时R1上前缀变得best,但是此时不会将路由传递给R2,原因是IBGP的水平分割问题[2]。这时候可以使用下面方法解决:
- 全互联
- 路由反射器
- 联邦
假设我使用方法1,此时R2与R3建立了IBGP邻居关系,此时R2学习到的前缀不是best,原因任然是问题1,此时我们使用next-hop-self将下一跳改为R3的更新源地址,即3.3.3.3。这时,R2就会将该前缀装入路由表,即路由表里有44.44.44.0/24的路由。假设,在R4上配置了默认路由指向R3,此时R2就能ping通44.44.44.44。
总结
前缀为best时,才会进行装[路由]表和传递给邻居
配置
R3
router bgp 123
bgp log-neighbor-changes
neighbor 1.1.1.1 remote-as 123
neighbor 1.1.1.1 update-source Loopback0
neighbor 2.2.2.2 remote-as 123
neighbor 2.2.2.2 update-source Loopback0
neighbor 2.2.2.2 next-hop-self
neighbor 10.1.34.4 remote-as 400
!
router ospf 110
network 3.3.3.3 0.0.0.0 area 0
network 10.1.13.0 0.0.0.255 area 0
!
interface Loopback0
ip address 3.3.3.3 255.255.255.255
!
interface Ethernet0/0
ip address 10.1.13.3 255.255.255.0
duplex auto
!
interface Ethernet0/1
ip address 10.1.34.3 255.255.255.0
duplex auto
R4
interface Loopback0
ip address 4.4.4.4 255.255.255.255
!
interface Loopback1
ip address 44.44.44.44 255.255.255.0
!
interface Ethernet0/0
ip address 10.1.34.4 255.255.255.0
duplex auto
!
router bgp 400
bgp log-neighbor-changes
network 44.44.44.0 mask 255.255.255.0
neighbor 10.1.34.3 remote-as 123
!
ip route 0.0.0.0 0.0.0.0 10.1.34.3
R1
interface Loopback0
ip address 1.1.1.1 255.255.255.255
!
interface Ethernet0/0
ip address 10.1.12.1 255.255.255.0
duplex auto
!
interface Ethernet0/1
ip address 10.1.13.1 255.255.255.0
duplex auto
!
router ospf 110
network 1.1.1.1 0.0.0.0 area 0
network 10.1.12.0 0.0.0.255 area 0
network 10.1.13.0 0.0.0.255 area 0
!
router bgp 123
bgp log-neighbor-changes
neighbor 2.2.2.2 remote-as 123
neighbor 2.2.2.2 update-source Loopback0
neighbor 3.3.3.3 remote-as 123
neighbor 3.3.3.3 update-source Loopback0
!
ip route 10.1.34.0 255.255.255.0 10.1.13.3
R2
interface Loopback0
ip address 2.2.2.2 255.255.255.0
!
interface Ethernet0/0
ip address 10.1.12.2 255.255.255.0
duplex auto
!
router ospf 110
network 2.2.2.2 0.0.0.0 area 0
network 10.1.12.0 0.0.0.255 area 0
!
router bgp 123
bgp log-neighbor-changes
neighbor 1.1.1.1 remote-as 123
neighbor 1.1.1.1 update-source Loopback0
neighbor 3.3.3.3 remote-as 123
neighbor 3.3.3.3 update-source Loopback0