简单解析bgp路由在igp路由表中抖动


简单解析bgp路由在igp路由表中抖动_第1张图片
基本配置:
   r1:
  
  
   router bgp 9806
   nei 20.20.20 .20 remote-as 4808
   bgp router-id 1.1.1.1
  
  
   r2:
  
  
   router bgp 4808
   nei 1.1.1.1 remote-as 9806
   nei 1.1.1.1 update-source lo0
   bgp router-id 20.20.20.20
   network 20.20.20.21 mask 255.255.255.255
  
  只有以上配置 r1 r2 bgp 邻居关系是建立不起来的,一定要记住还需在 r1 上配置
  
  
   nei 20.20.20.20 ebgp-multihop
  
  此时 r1 还需可达 20.20.20.20 ,因此在 r1 配置
  
  
   ip route 0.0.0.0 0.0.0.0 1.1.1.2 // 因为 as9806 是个末节点,所以只配置了默认路由,这也是导致下面问题出现的原因
  
  配置以上命令后 bgp 邻居关系成功建立, r2 20.20.20.21/32(next-hop:20.20.20.20) update 发送给 r1 r1 收到更新把 20.20.20.21/32 后放入 bgp igp 路由表,此后 r1 会在查询 igp 路由表 20.20.20.21 的下一跳 20.20.20.20 是否可达,发现 20.20.20.20 可通过默认路由到达,最终 20.20.20.21/32(next-hop:20.20.20.20) 会保留在 igp 路由表中。
  
  问题出现!!!
  这时,管理员为了让 r2 为了便于管理,就把 r2 loopback0 通过 bgp 发布出去
  
  
   network 20.20.20.20 mask 255.255.255.255
  
   r2 r1 发布新的 update 20.20.20.20/32(next-hop:20.20.20.20) r1 收到 update 后把路由装入 bgp igp 路由表。此时 r1 igp 路由表中查询 20.20.20.20/32 的下一跳仍为 20.20.20.20 (最长匹配,因此也就不会再继续查询默认路由了),这明显不合乎逻辑(自己不能信任自己),因此将所有下一跳为 20.20.20.20 的路由从 igp 路由表中删除,也就是 20.20.20.20/32 20.20.20.21/32 。过一会 r2 仍会发送新的 update r1 又会重复刚才的动作,最终导致了通过 bgp 学到路由在 igp 路由表中一直振荡。
  
  解决办法:
  在 r1 上配置
  
  
   ip route 20.20.20.20 255.255.255.255 1.1.1.2
  
  当 r1 在收到 20.20.20.20/32 update 后,装入 bgp igp 路由表,查询 20.20.20.20 的下一跳通过上面配置的静态路由可达, r1 保持此路由在 igp 路由表中,因此就不会出现上面 bgp 路由在 igp 路由表中振荡的结果了。
  
  最后注意:
   1. 当对方用来和自己建立 bgp 邻居关系用的接口和自己不是直连时,一定要配置一条静态路由指向对方的 bgp neighbor 地址
   2. 对方使用 loopback 建立 bgp 邻居关系时,自己一定要配置一条 ebgp-multihop

你可能感兴趣的:(职场,休闲)