IPb6 BGP between two birds

Christian Riede christian.riede at it-connect.de
Mon Feb 28 09:27:39 CET 2011


Hello,

seems very simple, but..:

Setup: 
2 VMs on different ESX-Servers 
OpenSuSE 11.3
bird 1.2.5 (IPv4 and IPv6 in parallel)

Symptoms:
IPv4 is working perfectly
IPv6-BGP-Session does not come up.

On Machine 1, I get:

exacom-kap-gw01:/etc/bird # bird6 -d
28-02-2011 09:24:41 <TRACE> direct1: Initializing
28-02-2011 09:24:41 <TRACE> kernel1: Initializing
28-02-2011 09:24:41 <TRACE> device1: Initializing
28-02-2011 09:24:41 <TRACE> bgp1: Initializing
28-02-2011 09:24:41 <TRACE> direct1: Starting
28-02-2011 09:24:41 <TRACE> direct1: State changed to feed
28-02-2011 09:24:41 <TRACE> kernel1: Starting
28-02-2011 09:24:41 <TRACE> kernel1: State changed to feed
28-02-2011 09:24:41 <TRACE> device1: Starting
28-02-2011 09:24:41 <TRACE> device1: Scanning interfaces
28-02-2011 09:24:41 <TRACE> direct1 < primary address ::1/128 on interface lo added
28-02-2011 09:24:41 <TRACE> direct1 < primary address 2001:67c:39c:8000::/64 on interface eth0 added
28-02-2011 09:24:41 <TRACE> direct1 > added [best] 2001:67c:39c:8000::/64 dev eth0
28-02-2011 09:24:41 <TRACE> direct1 < secondary address 2a01:198:3b0::/64 on interface eth0 added
28-02-2011 09:24:41 <TRACE> direct1 > added [best] 2a01:198:3b0::/64 dev eth0
28-02-2011 09:24:41 <TRACE> direct1 < secondary address fe80::/64 on interface eth0 added
28-02-2011 09:24:41 <TRACE> direct1 < primary address 2001:67c:39c:8001::/64 on interface eth1 added
28-02-2011 09:24:41 <TRACE> direct1 > added [best] 2001:67c:39c:8001::/64 dev eth1
28-02-2011 09:24:41 <TRACE> direct1 < secondary address 2a01:198:3b0:1::/64 on interface eth1 added
28-02-2011 09:24:41 <TRACE> direct1 > added [best] 2a01:198:3b0:1::/64 dev eth1
28-02-2011 09:24:41 <TRACE> direct1 < secondary address fe80::/64 on interface eth1 added
28-02-2011 09:24:41 <TRACE> direct1 < primary address fd17:fdbd:a9e6:8000::/64 on interface eth2 added
28-02-2011 09:24:41 <TRACE> direct1 > added [best] fd17:fdbd:a9e6:8000::/64 dev eth2
28-02-2011 09:24:41 <TRACE> direct1 < secondary address fe80::/64 on interface eth2 added
28-02-2011 09:24:41 <TRACE> device1: State changed to feed
28-02-2011 09:24:41 <TRACE> bgp1: Starting
28-02-2011 09:24:41 <INFO> Started
28-02-2011 09:24:41 <TRACE> direct1 < primary address ::1/128 on interface lo added
28-02-2011 09:24:41 <TRACE> direct1 < primary address 2001:67c:39c:8000::/64 on interface eth0 added
28-02-2011 09:24:41 <TRACE> direct1 > ignored 2001:67c:39c:8000::/64 dev eth0
28-02-2011 09:24:41 <TRACE> direct1 < secondary address 2a01:198:3b0::/64 on interface eth0 added
28-02-2011 09:24:41 <TRACE> direct1 > ignored 2a01:198:3b0::/64 dev eth0
28-02-2011 09:24:41 <TRACE> direct1 < secondary address fe80::/64 on interface eth0 added
28-02-2011 09:24:41 <TRACE> direct1 < primary address 2001:67c:39c:8001::/64 on interface eth1 added
28-02-2011 09:24:41 <TRACE> direct1 > ignored 2001:67c:39c:8001::/64 dev eth1
28-02-2011 09:24:41 <TRACE> direct1 < secondary address 2a01:198:3b0:1::/64 on interface eth1 added
28-02-2011 09:24:41 <TRACE> direct1 > ignored 2a01:198:3b0:1::/64 dev eth1
28-02-2011 09:24:41 <TRACE> direct1 < secondary address fe80::/64 on interface eth1 added
28-02-2011 09:24:41 <TRACE> direct1 < primary address fd17:fdbd:a9e6:8000::/64 on interface eth2 added
28-02-2011 09:24:41 <TRACE> direct1 > ignored fd17:fdbd:a9e6:8000::/64 dev eth2
28-02-2011 09:24:41 <TRACE> direct1 < secondary address fe80::/64 on interface eth2 added
28-02-2011 09:24:41 <TRACE> direct1: State changed to up
28-02-2011 09:24:41 <TRACE> kernel1: Connected to table master
28-02-2011 09:24:41 <TRACE> kernel1 < rejected by protocol 2001:67c:39c:8001::/64 dev eth1
28-02-2011 09:24:41 <TRACE> kernel1 < rejected by protocol 2001:67c:39c:8000::/64 dev eth0
28-02-2011 09:24:41 <TRACE> kernel1 < rejected by protocol 2a01:198:3b0::/64 dev eth0
28-02-2011 09:24:41 <TRACE> kernel1 < rejected by protocol 2a01:198:3b0:1::/64 dev eth1
28-02-2011 09:24:41 <TRACE> kernel1 < rejected by protocol fd17:fdbd:a9e6:8000::/64 dev eth2
28-02-2011 09:24:41 <TRACE> kernel1: State changed to up
28-02-2011 09:24:41 <TRACE> device1: State changed to up
28-02-2011 09:24:41 <TRACE> bgp1: Started
28-02-2011 09:24:41 <TRACE> bgp1: Connect delayed by 5 seconds
28-02-2011 09:24:41 <TRACE> kernel1: Scanning routing table
28-02-2011 09:24:41 <TRACE> kernel1: Pruning table master
28-02-2011 09:24:41 <WARN> BGP: Unexpected connect from unknown address 2001:67c:39c:8001::8000:8 (port 36012)
28-02-2011 09:24:41 <WARN> BGP: Unexpected connect from unknown address 2001:67c:39c:8001::8000:2 (port 46107)
28-02-2011 09:24:42 <WARN> BGP: Unexpected connect from unknown address 2001:67c:39c:8000::8000:8 (port 41688)
28-02-2011 09:24:42 <WARN> BGP: Unexpected connect from unknown address 2001:67c:39c:8000::8000:1 (port 53764)
28-02-2011 09:24:42 <WARN> BGP: Unexpected connect from unknown address 2001:67c:39c:8001::8000:3 (port 36242)
28-02-2011 09:24:43 <WARN> BGP: Unexpected connect from unknown address 2001:67c:39c:8000::8000:3 (port 51770)
28-02-2011 09:24:43 <WARN> BGP: Unexpected connect from unknown address 2001:67c:39c:8001::8000:7 (port 48659)
28-02-2011 09:24:44 <WARN> BGP: Unexpected connect from unknown address 2001:67c:39c:8000::8000:2 (port 37461)
28-02-2011 09:24:45 <TRACE> bgp1: Connecting to 2001:67c:39c:8000::8000:a from local address 2001:67c:39c:8000::8000:9
28-02-2011 09:24:45 <TRACE> bgp1: Connected
28-02-2011 09:24:45 <TRACE> bgp1: Sending OPEN(ver=4,as=65535,hold=240,id=c2290009)
28-02-2011 09:24:45 <TRACE> bgp1: Connection closed
28-02-2011 09:24:45 <TRACE> bgp1: Connect delayed by 5 seconds
28-02-2011 09:24:45 <WARN> BGP: Unexpected connect from unknown address 2001:67c:39c:8001::8000:8 (port 40619)
28-02-2011 09:24:46 <WARN> BGP: Unexpected connect from unknown address 2001:67c:39c:8000::8000:8 (port 32959)
28-02-2011 09:24:46 <WARN> BGP: Unexpected connect from unknown address 2001:67c:39c:8000::8000:1 (port 55502)
28-02-2011 09:24:46 <WARN> BGP: Unexpected connect from unknown address 2001:67c:39c:8001::8000:3 (port 34171)
28-02-2011 09:24:47 <WARN> BGP: Unexpected connect from unknown address 2001:67c:39c:8001::8000:2 (port 44913)
^C

A telnet to BGP port opens and closes immediately:

exacom-kap-gw01:/etc/bird # telnet 2001:67c:39c:8000::8000:a 179
Trying 2001:67c:39c:8000::8000:a...
Connected to 2001:67c:39c:8000::8000:a.
Escape character is '^]'.
Connection closed by foreign host.

Output on Machine 2 is similar.

I did some further debugging and found that in
bgp.c:bgp_incoming_connection the value of p->start_state is zero
(should be >=BSS_CONNECT).

A similar machine is succesfully able to establish a BGP session with
Hurricane Electric over a sit device (ipv6 oder ipv4 tunnel).

Any Ideas?

Details:

Machine 1:

# ip -6 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 2001:67c:39c:8000::8000:9/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 2a01:198:3b0::9/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fea6:45ec/64 scope link 
       valid_lft forever preferred_lft forever
# ip -6 route
2001:67c:39c:8000::/64 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
2001:67c:39c:8001::/64 dev eth1  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
2a01:198:3b0::/64 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
2a01:198:3b0:1::/64 dev eth1  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
fd17:fdbd:a9e6:8000::/64 dev eth2  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev eth1  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev eth2  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0

bird6c.conf:

log syslog { debug, trace, info, remote, warning, error, auth, fatal, bug };
log stderr all;

debug protocols all;

router id 194.41.0.9;

listen bgp v6only;


protocol direct {
}

protocol kernel {
        persist;                # Don't remove routes on bird shutdown
        scan time 20;           # Scan kernel routing table every 20 seconds
        export all;             # Default is export none
}

protocol device {
        scan time 10;           # Scan interfaces every 10 seconds
}

protocol bgp {
        local as 65535;
        neighbor 2001:67c:39c:8001::8000:a as 65535;
}

Machine 2:

# ip -6 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 2001:67c:39c:8000::8000:a/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 2a01:198:3b0::a/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fea6:1ee/64 scope link 
       valid_lft forever preferred_lft forever
# ip -6 route
2001:67c:39c:8000::/64 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
2001:67c:39c:8001::/64 dev eth1  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
2a01:198:3b0::/64 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
2a01:198:3b0:1::/64 dev eth1  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
fd17:fdbd:a9e6:8000::/64 dev eth2  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev eth1  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev eth2  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0

bird6.conf:

log syslog { debug, trace, info, remote, warning, error, auth, fatal, bug };
log stderr all;

debug protocols all;

router id 194.41.0.9;

listen bgp v6only;


protocol direct {
}

protocol kernel {
        persist;                # Don't remove routes on bird shutdown
        scan time 20;           # Scan kernel routing table every 20 seconds
        export all;             # Default is export none
}

protocol device {
        scan time 10;           # Scan interfaces every 10 seconds
}

protocol bgp {
        local as 65535;
        neighbor 2001:67c:39c:8001::8000:a as 65535;
}



Mit freundlichen Grüßen

Dr. Christian Riede
Senior IT Architect, Teamleiter Technik 

-- 
_________________________________________
=C=O=N=N=E=C=T== Karlsruhe GmbH
Computer und Netzwerktechnik
Gebrüder-Himmelheber-Straße 7
D-76135 Karlsruhe
Amtsgericht Mannheim HRB 110258
Geschäftsführer: Stefan Kratzer

Telefon:    +49 (0) 721 20120-0
Telefax:    +49 (0) 721 20120-500
Internet:   www.it-connect.de
E-Mail:     christian.riede at it-connect.de
_________________________________________



More information about the Bird-users mailing list