BGP quagga 不删除旧路由

网络工程 BGP 斑驴
2022-03-04 10:29:47

我在 Slackware 14.2、内核 4.4.7 上运行了 quagga(quagga-1.0.20160315 从源代码构建)。当路径消失时 Quagga 无法更新路线。

例如,这条路线是错误的,它之前是由 quagga 创建的:

94.246.185.0/24 via 94.246.185.42 dev eth3.2224  proto zebra  metric 20

据我了解,quagga 有关于正确路径的信息,但忽略它,因为内核表中已经有路由......

bgp# show ip bgp 94.74.72.0/24
BGP routing table entry for 94.74.72.0/24
Paths: (2 available, best #2, table Default-IP-Routing-Table)
  Not advertised to any peer
  12741 1299 7713 45470 45470 50935
    213.17.213.97 from 213.17.213.97 (83.238.252.171)
      Origin IGP, localpref 100, valid, external
      Community: 1299:37000 12741:21000 12741:21041
      Last update: Tue Aug 30 11:28:22 2016

  9002 7713 45470 45470 50935
    87.245.245.89 from 87.245.245.89 (87.245.225.167)
      Origin IGP, localpref 100, valid, external, best
      Community: 9002:9002 9002:64789
      Last update: Tue Aug 30 11:27:55 201

bgp# show ip route 94.74.72.0/24
Routing entry for 94.74.72.0/24
  Known via "bgp", distance 20, metric 0, vrf 0
  Last update 01:22:43 ago
    87.245.245.89, via eth3.585

Routing entry for 94.74.72.0/24
  Known via "kernel", distance 0, metric 0, vrf 0, best, fib
  * 94.246.185.42, via eth3.2224

这可能是 quagga 中的错误还是我的配置中的错误?

2个回答

我在使用 Quagga(版本 1.2.2)时遇到了同样的问题。我在守护程序上有 --retain 标志,将其从我的启动脚本中删除并重新启动 quagga,但它没有解决问题。只有从内核中手动删除路由才能修复路由循环。

bgprouter# sh ip route 125.209.208.1
Routing entry for 125.209.208.0/22
  Known via "bgp", distance 20, metric 0, tag 0, vrf 0
  Last update 00:02:06 ago
  >  206.197.187.12, via ix0

Routing entry for 125.209.208.0/22
  Known via "kernel", distance 0, metric 0, tag 0, vrf 0, best, fib
  >* 111.111.111.145, via ix2

在 shell (freeBSD) 中,我删除了内核路由:

# route del -net 125.209.208.0/22

然后使用适当的路由器从斑马重新填充路由器:

# route get 125.209.208.0
   route to: 125.209.208.0
destination: 125.209.208.0
       mask: 255.255.252.0
    gateway: as6939.sfmix.org
        fib: 0
  interface: ix0
      flags: <UP,GATEWAY,DONE,PROTO1>
 recvpipe  sendpipe  ssthresh  rtt,msec    mtu        weight    expire
       0         0         0         0      1500         1         0 

如果您ip route show 94.74.72.0/24从命令行(linux shell)执行并告诉我们它在那里说的协议。如果它是斑马,那就很奇怪了。检查是否有更多不应该存在的内核路由。sh ip route summary从斑驴内。