Adding to my own message, it seems this is even worse than expected
after
I looked into more failures.
It breaks simple iBGP BGP (without the ebgp multi hop) as well.
So as an example, connect 2 Quagga together over a single interface.
One (just for testing) announces a network, the other is the DUT
receiving the network (and showing the problem).
I call them TESTER (for the announcing not) and DUT for the quagga
under test below:
TESTER:
[…]
interface eth1
ip address 192.168.1.1/24
[…]
interface lo
ip address 192.168.0.1/32
!
router bgp 500
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 lo
[…]
DUT:
interface eth1
ip address 192.168.1.101/24
[…]
router bgp 500
bgp router-id 192.168.1.101
neighbor 192.168.1.1 remote-as 500
[…]
The DUT receives the route, but shows nexthop as “inaccessible”, but
still
with a nexthop on the directly connected network:
DUT# sh 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
* i172.16.1.0/24 192.168.1.1 0 100 0 i
Total number of prefixes 1
DUT# sh 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
Local
192.168.1.1 (inaccessible) from 192.168.1.1 (192.168.1.1)
Origin IGP, metric 0, localpref 100, valid, internal
Last update: Mon Aug 31 16:27:54 2015
So this bad commit basically breaks most of my BGP test scripts - which
means that I can’t test any new commits or patches.
Would appreciate some (temporary) remove of this patch (I know, might
be painful) or quick fix.
Regards,
Martin Winter
[email protected]
On 19 Aug 2015, at 15:40, Martin Winter wrote:
Nicholas,
Any update (or patch to test) for this?
It’s still broken in the git master.
Otherwise I would prefer to back this commit out until it’s
resolved.
(I worry as it masks other potential BGP errors. Nearly half of my BGP
compliance tests fail because of this problem)
- Martin Winter
On 6 Jul 2015, at 0:50, Martin Winter wrote:
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