It seems we have a bad commit in git master.
Commit c99f348 “*: add VRF ID in the API message header” is the bad
commit.
It seems (at least) direct connected next hops in received BGP routes
show up
as inaccessible with “ebgp-multihop” configured. (It works without
the
ebgp-multihop)
(in this example: 172.16.1.0/24, which is announced from the directly
connected BGP neighbor with a connected next hop of 192.168.1.1)
dut# show ip bgp
BGP table version is 0, local router ID is 192.168.1.101
Status codes: s suppressed, d damped, h history, * valid, > best, =
multipath,
i internal, r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* 172.16.1.0/24 192.168.1.1 0 0 501 i
*> 192.168.1.0 0.0.0.0 0 32768 i
Total number of prefixes 2
dut# show ip bgp 172.16.1.0/24
BGP routing table entry for 172.16.1.0/24
Paths: (1 available, no best path)
Not advertised to any peer
501
192.168.1.1 (inaccessible) from 192.168.1.1 (192.168.1.1)
Origin IGP, metric 0, localpref 100, valid, external
Last update: Sun Jul 5 21:47:03 2015
dut# show ip route 192.168.1.1
Routing entry for 192.168.1.0/24
Known via "connected", distance 0, metric 0, vrf 0, best
* directly connected, eth1
Here is how the issue can be reproduced:
2 computer’s running Quagga connected to each other of a single
ethernet. (I’m
using Quagga for the tester to show the issue and on the DUT for this)
“Tester” is basically just used to announce the test network to the
DUT which
runs the faulty Quagga code.
Here is the relevant config:
Tester:
[…]
interface eth1
ip address 192.168.2.1/24
ipv6 nd suppress-ra
no link-detect
!
router bgp 501
bgp router-id 192.168.1.1
network 172.16.1.0/24
neighbor 192.168.1.101 remote-as 500
!
ip route 172.16.1.0/24 Null0
!
[…]
DUT:
[…]
interface eth1
ip address 192.168.1.101/24
ipv6 nd suppress-ra
no link-detect
!
router bgp 500
bgp router-id 192.168.1.101
network 192.168.1.0/24
neighbor 192.168.1.1 remote-as 501
neighbor 192.168.1.1 ebgp-multihop 255
!
[…]
Sidenotes (not sure if it’s relevant):
- Ubuntu 14.04.2LTS
- Quagga configured with “--enable-vtysh --enable-tcp-zebra
--enable-user=root --enable-multipath=0 --enable-fpm --enable-pimd
--enable-isisd”
- Martin Winter
[email protected]
_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev