如何处理BGP路由在IGP路由表中的抖动

网络技术是从1990年代中期发展起来的新技术 , 它把互联网上分散的资源融为有机整体 , 实现资源的全面共享和有机协作 , 使人们能够透明地使用资源的整体能力并按需获取信息 。资源包括高性能计算机、存储资源、数据资源、信息资源、知识资源、专家资源、大型数据库、网络、传感器等 。当前的互联网只限于信息共享 , 网络则被认为是互联网发展的第三阶段 。基本配置: 【如何处理BGP路由在IGP路由表中的抖动】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 (t113)

    推荐阅读