<div dir="ltr"><div><div><div><div>Reduced the setup slightly, all routers are in single AS 65001. Just one common route between 10.72.1.1 and 10.72.1.2, which is <a href="http://10.0.0.0/8">10.0.0.0/8</a>. Removed the third router, so just .1 and .2. <br><br>Two routers, same AS, both exporting the same network, which results in both withdrawing the same network. How can I stop this? I want bird to install the BGP route for <a href="http://10.0.0.0/8">10.0.0.0/8</a> if ever the local route is gone (i.e in my case, it's a vpn that installs a static route for <a href="http://10.0.0.0/8">10.0.0.0/8</a>). How can I do this? Is it even supported?<br><br>Using tcpdump, I can see sometimes one and sometimes both .1 and .2 withdraw the route from each other. Sometimes its not withdrawn at all - normally the first time everyone sees each others routes. If I restart .1 or .2 bird instance, then I will see one or both of them withdraw the route.<br><br></div>For example, this tcpdump shows both .1 and .2 withdraw the route from each other:<br><br># 10.72.1.1's logs (tcpdump + syslog)<br><br>19:02:18.408782 IP (tos 0xc0, ttl 64, id 56703, offset 0, flags [DF], proto TCP (6), length 86)<br>
10.72.1.2.37302 > 10.72.1.1.179: Flags [P.], cksum 0xe441 (correct),
seq 69:115, ack 69, win 5840, length 46: BGP, length: 46<br> Update Message (2), length: 46<br> Origin (1), length: 1, Flags [T]: IGP<br> 0x0000: 00<br> AS Path (2), length: 0, Flags [T]: empty<br> Next Hop (3), length: 4, Flags [T]: 10.72.1.2<br> 0x0000: 0a48 0102<br> Local Preference (5), length: 4, Flags [T]: 980<br> 0x0000: 0000 03d4<br> Updated routes:<br></div><div> <a href="http://10.0.0.0/8">10.0.0.0/8</a> <---------- .2 advertises <a href="http://10.0.0.0/8">10.0.0.0/8</a> to .1<br></div><div>19:02:18.408972 IP (tos 0xc0, ttl 64, id 56928, offset 0, flags [DF], proto TCP (6), length 157)<br>
10.72.1.1.179 > 10.72.1.2.37302: Flags [P.], cksum 0xba2f (correct),
seq 69:186, ack 115, win 5840, length 117: BGP, length: 117<br> Update Message (2), length: 46<br> Origin (1), length: 1, Flags [T]: IGP<br> 0x0000: 00<br> AS Path (2), length: 0, Flags [T]: empty<br> Next Hop (3), length: 4, Flags [T]: 10.72.1.1<br> 0x0000: 0a48 0101<br> Local Preference (5), length: 4, Flags [T]: 990<br> 0x0000: 0000 03de<br> Updated routes:<br> <a href="http://10.0.0.0/8">10.0.0.0/8</a> <---------- .1 advertises <a href="http://10.0.0.0/8">10.0.0.0/8</a> to .2<br> Update Message (2), length: 48<br> Origin (1), length: 1, Flags [T]: IGP<br> 0x0000: 00<br> AS Path (2), length: 0, Flags [T]: empty<br> Next Hop (3), length: 4, Flags [T]: 10.72.1.1<br> 0x0000: 0a48 0101<br> Local Preference (5), length: 4, Flags [T]: 100<br> 0x0000: 0000 0064<br> Updated routes:<br> <a href="http://10.99.10.0/24">10.99.10.0/24</a><br> Update Message (2), length: 23<br> End-of-Rib Marker (empty NLRI)<br>19:02:18.409201 IP (tos 0xc0, ttl 64, id 56704, offset 0, flags [DF], proto TCP (6), length 88)<br>
10.72.1.2.37302 > 10.72.1.1.179: Flags [P.], cksum 0x7b7c (correct),
seq 115:163, ack 186, win 5840, length 48: BGP, length: 48<br> Update Message (2), length: 48<br> Origin (1), length: 1, Flags [T]: IGP<br> 0x0000: 00<br> AS Path (2), length: 0, Flags [T]: empty<br> Next Hop (3), length: 4, Flags [T]: 10.72.1.2<br> 0x0000: 0a48 0102<br> Local Preference (5), length: 4, Flags [T]: 1000<br> 0x0000: 0000 03e8<br> Updated routes:<br> <a href="http://10.88.10.0/24">10.88.10.0/24</a><br>19:02:18.420970 IP (tos 0xc0, ttl 64, id 56929, offset 0, flags [DF], proto TCP (6), length 65)<br>
10.72.1.1.179 > 10.72.1.2.37302: Flags [P.], cksum 0x8f42 (correct),
seq 186:211, ack 163, win 5840, length 25: BGP, length: 25<br> Update Message (2), length: 25<br> Withdrawn routes:<br> <a href="http://10.0.0.0/8">10.0.0.0/8</a> <---------- .1 withdraws <a href="http://10.0.0.0/8">10.0.0.0/8</a><br>19:02:18.421204 IP (tos 0xc0, ttl 64, id 56705, offset 0, flags [DF], proto TCP (6), length 88)<br>
10.72.1.2.37302 > 10.72.1.1.179: Flags [P.], cksum 0x7a0e (correct),
seq 163:211, ack 211, win 5840, length 48: BGP, length: 48<br> Update Message (2), length: 23<br> End-of-Rib Marker (empty NLRI)<br> Update Message (2), length: 25<br> Withdrawn routes:<br> <a href="http://10.0.0.0/8">10.0.0.0/8</a> <---------- .2 also withdraws <a href="http://10.0.0.0/8">10.0.0.0/8</a><br>19:02:18.460407 IP (tos 0xc0, ttl 64, id 56930, offset 0, flags [DF], proto TCP (6), length 40)<br> 10.72.1.1.179 > 10.72.1.2.37302: Flags [.], cksum 0x9d3b (correct), seq 211, ack 211, win 5840, length 0<br><br>Syslogs:<br><br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2: Incoming connection from 10.72.1.2 (port 37302) accepted<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2: Sending OPEN(ver=4,as=65001,hold=240,id=0a1810e1)<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2: Got OPEN(as=65001,hold=240,id=0a480102)<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2: Got KEEPALIVE<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2: BGP session established<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2: Connected to table master<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2: State changed to feed<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2: Sending KEEPALIVE<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2 < filtered out <a href="http://0.0.0.0/0">0.0.0.0/0</a> via 2.127.238.77 on ppp0<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2 < added <a href="http://10.0.0.0/8">10.0.0.0/8</a> dev vpn-3b42d3c8<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2 < filtered out <a href="http://10.72.0.0/16">10.72.0.0/16</a> dev eth0<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2 < filtered out <a href="http://10.168.254.0/24">10.168.254.0/24</a> dev vlan254<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2 < filtered out <a href="http://192.168.0.0/16">192.168.0.0/16</a> dev vpn-3b42d3c8<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2: Got UPDATE<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2 > added [best] <a href="http://10.0.0.0/8">10.0.0.0/8</a> via 10.72.1.2 on eth0<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2 < rejected by protocol <a href="http://10.0.0.0/8">10.0.0.0/8</a> via 10.72.1.2 on eth0<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2 < removed <a href="http://10.0.0.0/8">10.0.0.0/8</a> dev vpn-3b42d3c8<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2 < rejected by protocol <a href="http://10.88.10.0/24">10.88.10.0/24</a> via 10.72.1.2 on eth0<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2: Sending UPDATE<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2: Got UPDATE<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2: Got End-of-RIB<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2: Got UPDATE<br>Jan 22 19:02:18 lanrouter daemon.debug bird: AS65001_2 > removed [replaced] <a href="http://10.0.0.0/8">10.0.0.0/8</a> via 10.72.1.2 on eth0<br><br># ip route list proto bird<br><a href="http://10.88.10.0/24">10.88.10.0/24</a> via 10.72.1.2 dev eth0 <br># ip route list | grep 10.0.0.0<br><a href="http://10.0.0.0/8">10.0.0.0/8</a> dev vpn-3b42d3c8 proto vpn scope link src 10.72.1.1 metric 10 <br><br></div># 10.72.1.2's logs (tcpdump + syslog)<br><br>tcpdump - see both advertise <a href="http://10.0.0.0/8">10.0.0.0/8</a> and then both withdraw <a href="http://10.0.0.0/8">10.0.0.0/8</a>.<br><br>19:02:17.982785 IP (tos 0xc0, ttl 64, id 56703, offset 0, flags [DF], proto TCP (6), length 86)<br> 10.72.1.2.37302 > 10.72.1.1.179: Flags [P.], cksum 0xe441 (correct), seq 69:115, ack 69, win 5840, length 46: BGP, length: 46<br> Update Message (2), length: 46<br> Origin (1), length: 1, Flags [T]: IGP<br> 0x0000: 00<br> AS Path (2), length: 0, Flags [T]: empty<br> Next Hop (3), length: 4, Flags [T]: 10.72.1.2<br> 0x0000: 0a48 0102<br> Local Preference (5), length: 4, Flags [T]: 980<br> 0x0000: 0000 03d4<br> Updated routes:<br> <a href="http://10.0.0.0/8">10.0.0.0/8</a> <---------- .2 advertises <a href="http://10.0.0.0/8">10.0.0.0/8</a> to .1<br>19:02:17.983121 IP (tos 0xc0, ttl 64, id 56928, offset 0, flags [DF], proto TCP (6), length 157)<br> 10.72.1.1.179 > 10.72.1.2.37302: Flags [P.], cksum 0xba2f (correct), seq 69:186, ack 115, win 5840, length 117: BGP, length: 117<br> Update Message (2), length: 46<br> Origin (1), length: 1, Flags [T]: IGP<br> 0x0000: 00<br> AS Path (2), length: 0, Flags [T]: empty<br> Next Hop (3), length: 4, Flags [T]: 10.72.1.1<br> 0x0000: 0a48 0101<br> Local Preference (5), length: 4, Flags [T]: 990<br> 0x0000: 0000 03de<br> Updated routes:<br> <a href="http://10.0.0.0/8">10.0.0.0/8</a> <---------- .1 advertises <a href="http://10.0.0.0/8">10.0.0.0/8</a> to .2<br> Update Message (2), length: 48<br> Origin (1), length: 1, Flags [T]: IGP<br> 0x0000: 00<br> AS Path (2), length: 0, Flags [T]: empty<br> Next Hop (3), length: 4, Flags [T]: 10.72.1.1<br> 0x0000: 0a48 0101<br> Local Preference (5), length: 4, Flags [T]: 100<br> 0x0000: 0000 0064<br> Updated routes:<br> <a href="http://10.99.10.0/24">10.99.10.0/24</a><br> Update Message (2), length: 23<br> End-of-Rib Marker (empty NLRI)<br>19:02:17.983224 IP (tos 0xc0, ttl 64, id 56704, offset 0, flags [DF], proto TCP (6), length 88)<br> 10.72.1.2.37302 > 10.72.1.1.179: Flags [P.], cksum 0x7b7c (correct), seq 115:163, ack 186, win 5840, length 48: BGP, length: 48<br> Update Message (2), length: 48<br> Origin (1), length: 1, Flags [T]: IGP<br> 0x0000: 00<br> AS Path (2), length: 0, Flags [T]: empty<br> Next Hop (3), length: 4, Flags [T]: 10.72.1.2<br> 0x0000: 0a48 0102<br> Local Preference (5), length: 4, Flags [T]: 1000<br> 0x0000: 0000 03e8<br> Updated routes:<br> <a href="http://10.88.10.0/24">10.88.10.0/24</a><br>19:02:17.995110 IP (tos 0xc0, ttl 64, id 56929, offset 0, flags [DF], proto TCP (6), length 65)<br> 10.72.1.1.179 > 10.72.1.2.37302: Flags [P.], cksum 0x8f42 (correct), seq 186:211, ack 163, win 5840, length 25: BGP, length: 25<br> Update Message (2), length: 25<br> Withdrawn routes:<br> <a href="http://10.0.0.0/8">10.0.0.0/8</a> <---------- .1 withdraws <a href="http://10.0.0.0/8">10.0.0.0/8</a><br>19:02:17.995220 IP (tos 0xc0, ttl 64, id 56705, offset 0, flags [DF], proto TCP (6), length 88)<br> 10.72.1.2.37302 > 10.72.1.1.179: Flags [P.], cksum 0x7a0e (correct), seq 163:211, ack 211, win 5840, length 48: BGP, length: 48<br> Update Message (2), length: 23<br> End-of-Rib Marker (empty NLRI)<br> Update Message (2), length: 25<br> Withdrawn routes:<br> <a href="http://10.0.0.0/8">10.0.0.0/8</a> <---------- .2 withdraws <a href="http://10.0.0.0/8">10.0.0.0/8</a><br>19:02:18.034539 IP (tos 0xc0, ttl 64, id 56930, offset 0, flags [DF], proto TCP (6), length 40)<br> 10.72.1.1.179 > 10.72.1.2.37302: Flags [.], cksum 0x9d3b (correct), seq 211, ack 211, win 5840, length 0<br><br>Syslogs:<br><br>Jan 22 19:02:17 lanrouter daemon.debug bird: AS65001_2: Connecting to 10.72.1.1 from local address 0.0.0.0<br>Jan 22 19:02:17 lanrouter daemon.debug bird: AS65001_2: Connected<br>Jan 22 19:02:17 lanrouter daemon.debug bird: AS65001_2: Sending OPEN(ver=4,as=65001,hold=240,id=0a480102)<br>Jan 22 19:02:17 lanrouter daemon.debug bird: AS65001_2: Got OPEN(as=65001,hold=240,id=0a1810e1)<br>Jan 22 19:02:17 lanrouter daemon.debug bird: AS65001_2: Sending KEEPALIVE<br>Jan 22 19:02:17 lanrouter daemon.debug bird: AS65001_2: Got KEEPALIVE<br>Jan 22 19:02:17 lanrouter daemon.debug bird: AS65001_2: BGP session established<br>Jan 22 19:02:17 lanrouter daemon.debug bird: AS65001_2: Connected to table master<br>Jan 22 19:02:17 lanrouter daemon.debug bird: AS65001_2: State changed to feed<br>Jan 22 19:02:17 lanrouter daemon.debug bird: AS65001_2 < filtered out <a href="http://0.0.0.0/0">0.0.0.0/0</a> via 10.64.64.65 on ppp1<br>Jan 22 19:02:17 lanrouter daemon.debug bird: AS65001_2 < added <a href="http://10.0.0.0/8">10.0.0.0/8</a> dev vpn-3b42d3c8<br>Jan 22 19:02:17 lanrouter daemon.debug bird: AS65001_2 < filtered out <a href="http://10.73.10.0/24">10.73.10.0/24</a> dev eth0<br>Jan 22 19:02:17 lanrouter daemon.debug bird: AS65001_2 < filtered out <a href="http://10.72.0.0/16">10.72.0.0/16</a> dev eth1<br>Jan 22 19:02:17 lanrouter daemon.debug bird: AS65001_2 < added <a href="http://10.88.10.0/24">10.88.10.0/24</a> via 10.73.10.123 on eth0<br>Jan 22 19:02:17 lanrouter daemon.debug bird: AS65001_2 < filtered out <a href="http://192.168.0.0/16">192.168.0.0/16</a> dev vpn-3b42d3c8<br>Jan 22 19:02:17 lanrouter daemon.debug bird: AS65001_2: Got UPDATE<br>Jan 22 19:02:17 lanrouter daemon.debug bird: AS65001_2 > removed [replaced] <a href="http://10.0.0.0/8">10.0.0.0/8</a> via 10.72.1.1 on eth1<br>Jan 22 19:02:17 lanrouter daemon.debug bird: AS65001_2 < filtered out <a href="http://10.0.0.0/8">10.0.0.0/8</a> dev vpn-3b42d3c8<br><br># ip route list proto bird<br><a href="http://10.99.10.0/24">10.99.10.0/24</a> via 10.72.1.1 dev eth1 <br># ip route list | grep 10.0.0.0<br><a href="http://10.0.0.0/8">10.0.0.0/8</a> dev vpn-3b42d3c8 proto vpn scope link src 10.72.1.2 metric 20 <br><br></div><br>Regards,<br><br>Mike<br><div><div><div><br><br></div></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jan 16, 2015 at 1:44 PM, Mike C <span dir="ltr"><<a href="mailto:smith.not.western@gmail.com" target="_blank">smith.not.western@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hi,<br><br></div><div>I'm using bird 1.4.5 with BGP and have a problem where routes seem to be lost under my setup. <br><br>I find that if two BGP peers with the same routes are importing each others routes, a third BGP peer someone ends up picking neither of their routes after killing and restarting bird on one peer only. <br><br>The problem goes away if I configure these two peers to not import each others routes - however that is not ideal as while both peers share some common routes, they also have some unique routes which should be shared. <br><br></div><div>Apologies for the long email. The setup is:<br><br></div><div>10.72.1.1 - (AS 65001) - Primary Internet feed<br></div><div>10.72.1.2 - (AS 65002) - Secondary Internet feed <br></div><div>10.72.1.254 (AS 65003) - LAN Router (LAN is NAT'd, <a href="http://192.168.18.0/24" target="_blank">192.168.18.0/24</a>)<br></div><div><br></div><div>I have various VPNs connecting into both .1 and .2, so they have some resilience to outages. The remote ends take care of route weighting so .1 is prioritised over .2 using static routes (no BGP or other routing protocol etc). I want .254 to always have the best route to these VPNs. <br><br>* Each router has a BGP link to the others.<br></div><div>* .254 (65003) imports all routes exported by .1 (65001) and .2 (65002).<br></div><div>* .254 (65003) exports a single LAN route, <a href="http://192.186.18.0/24" target="_blank">192.186.18.0/24</a> to .1 and .2<br></div><div>* .1 (65001) imports all routes exported by .2 and .254<br></div><div>* .1 (65001) exports all routes from the ipsec0 device or 'vpn' rt_protos<br></div><div>* .2 (65002) imports all routes exported by .1 and .254<br></div><div>* .2 (65002) exports all routes from the ipsec0 device or 'vpn' rt_protos<br><br></div><div>The routes exported by .1 & .2 have their bgp localpref offset based on the linux metric of the static route being imported, so BGP knows .2's routes are less important than .1's. <br><br>The 'vpn' rt_protos routes on .1 look like:<br><br><a href="http://10.10.10.0/29" target="_blank">10.10.10.0/29</a> dev vpn-3b42d3c8 proto vpn scope link src 10.72.1.1 metric 15 <br><a href="http://192.168.3.0/24" target="_blank">192.168.3.0/24</a> dev vpn-3b42d3c8 proto vpn scope link src 10.72.1.1 metric 10 <br><a href="http://192.168.2.0/24" target="_blank">192.168.2.0/24</a> dev vpn-3b42d3c8 proto vpn scope link src 10.72.1.1 metric 10 <br><a href="http://192.168.254.0/24" target="_blank">192.168.254.0/24</a> dev vpn-3b42d3c8 proto vpn scope link src 10.72.1.1 metric 10 <br><a href="http://192.168.0.0/16" target="_blank">192.168.0.0/16</a> dev vpn-3b42d3c8 proto vpn scope link src 10.72.1.1 metric 10 <br><a href="http://172.16.0.0/12" target="_blank">172.16.0.0/12</a> dev vpn-3b42d3c8 proto vpn scope link src 10.72.1.1 metric 10 <br><a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> dev vpn-3b42d3c8 proto vpn scope link src 10.72.1.1 metric 10 <br><br></div><div>The 'vpn' rt_protos routes on .2 look like:<br><br><a href="http://192.168.3.0/24" target="_blank">192.168.3.0/24</a> dev vpn-3b42d3c8 proto vpn scope link src 10.72.1.2 metric 20 <br><a href="http://192.168.2.0/24" target="_blank">192.168.2.0/24</a> dev vpn-3b42d3c8 proto vpn scope link src 10.72.1.2 metric 20 <br><a href="http://192.168.254.0/24" target="_blank">192.168.254.0/24</a> dev vpn-3b42d3c8 proto vpn scope link src 10.72.1.2 metric 20 <br><a href="http://192.168.0.0/16" target="_blank">192.168.0.0/16</a> dev vpn-3b42d3c8 proto vpn scope link src 10.72.1.2 metric 20 <br><a href="http://172.16.0.0/12" target="_blank">172.16.0.0/12</a> dev vpn-3b42d3c8 proto vpn scope link src 10.72.1.2 metric 20 <br><a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> dev vpn-3b42d3c8 proto vpn scope link src 10.72.1.2 metric 20 <br></div><div><br>When I kill & restart .2, .254 loses routing info to not just .2 but also .1. I need .1 and .2 to be exchanging routes with each other, as there will be some VPNs that will only terminate on .1 and some that will only terminate on .2 and I want to be able to route traffic between them. E.g. A remote endpoint on .2 should be able to access a non-common/unique remote endpoint on .1. In this example, it's <a href="http://10.10.10.0/29" target="_blank">10.10.10.0/29</a>.<br><br></div><div>Below are my tests demonstrating <br>1. The problem when both peers are importing from each other<br></div><div>2. No problem when both peers aren't importing from each other<br><br></div><div>All logs are taken from .254 (AS 65003). The immediate cause of the problem is the "rejected by protocol" messages here, although I do not know why the protocol feels like it must reject routes.<br><br>Jan 16 13:02:44 lanrouter daemon.debug bird: AS65003_1 > removed [replaced] <a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> via 10.72.1.1 on eth0<br>Jan 16 13:02:44 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:44 lanrouter daemon.debug bird: AS65003_2 < rejected by protocol <a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:44 lanrouter daemon.debug bird: AS65003_1 > removed [replaced] <a href="http://192.168.0.0/16" target="_blank">192.168.0.0/16</a> via 10.72.1.1 on eth0<br>Jan 16 13:02:44 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://192.168.0.0/16" target="_blank">192.168.0.0/16</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:44 lanrouter daemon.debug bird: AS65003_2 < rejected by protocol <a href="http://192.168.0.0/16" target="_blank">192.168.0.0/16</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:44 lanrouter daemon.debug bird: AS65003_1 > removed [replaced] <a href="http://192.168.2.0/24" target="_blank">192.168.2.0/24</a> via 10.72.1.1 on eth0<br>Jan 16 13:02:44 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://192.168.2.0/24" target="_blank">192.168.2.0/24</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:44 lanrouter daemon.debug bird: AS65003_2 < rejected by protocol <a href="http://192.168.2.0/24" target="_blank">192.168.2.0/24</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:44 lanrouter daemon.debug bird: AS65003_1 > removed [replaced] <a href="http://192.168.3.0/24" target="_blank">192.168.3.0/24</a> via 10.72.1.1 on eth0<br></div><div><br></div><div>Full tests:<br></div><div><br>#### #### #### Where .1 and .2 import each others routes ### ### ###<br><br>### Start bird<br><br>Jan 16 13:01:08 lanrouter daemon.debug bird: AS65003_1: Initializing<br>Jan 16 13:01:08 lanrouter daemon.debug bird: AS65003_2: Initializing<br>Jan 16 13:01:08 lanrouter <a href="http://daemon.info" target="_blank">daemon.info</a> bird: Chosen router ID 10.72.1.254 according to interface eth0<br>Jan 16 13:01:08 lanrouter daemon.debug bird: AS65003_1: Starting<br>Jan 16 13:01:08 lanrouter daemon.debug bird: AS65003_1: State changed to start<br>Jan 16 13:01:08 lanrouter daemon.debug bird: AS65003_2: Starting<br>Jan 16 13:01:08 lanrouter daemon.debug bird: AS65003_2: State changed to start<br>Jan 16 13:01:08 lanrouter <a href="http://daemon.info" target="_blank">daemon.info</a> bird: Started<br>Jan 16 13:01:08 lanrouter daemon.debug bird: AS65003_2: Started<br>Jan 16 13:01:08 lanrouter daemon.debug bird: AS65003_2: Connect delayed by 5 seconds<br>Jan 16 13:01:08 lanrouter daemon.debug bird: AS65003_1: Started<br>Jan 16 13:01:08 lanrouter daemon.debug bird: AS65003_1: Connect delayed by 5 seconds<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_2: Incoming connection from 10.72.1.2 (port 58289) accepted<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_2: Sending OPEN(ver=4,as=65003,hold=240,id=0a4801fe)<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_1: Incoming connection from 10.72.1.1 (port 58374) accepted<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_2: Got OPEN(as=65002,hold=240,id=0a480102)<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_2: Got KEEPALIVE<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_2: BGP session established<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_2: Connected to table master<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_2: State changed to feed<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_1: Sending OPEN(ver=4,as=65003,hold=240,id=0a4801fe)<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_2: Sending KEEPALIVE<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_2 < filtered out <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> via 10.72.1.1 on eth0<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_2: Got End-of-RIB<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_1: Got OPEN(as=65001,hold=240,id=027e8ddb)<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_1: Got KEEPALIVE<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_1: BGP session established<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_1: Connected to table master<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_1: State changed to feed<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_1: Sending KEEPALIVE<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> via 10.72.1.1 on eth0<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> via 10.72.1.2 on eth0<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://10.72.1.0/24" target="_blank">10.72.1.0/24</a> dev eth0<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://192.168.0.0/16" target="_blank">192.168.0.0/16</a> via 10.72.1.2 on eth0<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://192.168.2.0/24" target="_blank">192.168.2.0/24</a> via 10.72.1.2 on eth0<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://192.168.3.0/24" target="_blank">192.168.3.0/24</a> via 10.72.1.2 on eth0<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_1 < added <a href="http://192.168.18.0/24" target="_blank">192.168.18.0/24</a> dev breth1<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://192.168.19.0/24" target="_blank">192.168.19.0/24</a> dev eth2<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_2 < filtered out <a href="http://172.16.0.0/12" target="_blank">172.16.0.0/12</a> via 10.72.1.1 on eth0<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_1 < rejected by protocol <a href="http://172.16.0.0/12" target="_blank">172.16.0.0/12</a> via 10.72.1.1 on eth0<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_1: Got UPDATE<br>Jan 16 13:01:12 lanrouter daemon.debug bird: AS65003_1: Got End-of-RIB<br><br>### .1 and .2 connected. bird knows about both. Correct linux routes installed:<br><br># ip route list proto bird<br><a href="http://10.10.10.0/29" target="_blank">10.10.10.0/29</a> via 10.72.1.1 dev eth0 <br><a href="http://192.168.3.0/24" target="_blank">192.168.3.0/24</a> via 10.72.1.1 dev eth0 <br><a href="http://192.168.2.0/24" target="_blank">192.168.2.0/24</a> via 10.72.1.1 dev eth0 <br><a href="http://192.168.254.0/24" target="_blank">192.168.254.0/24</a> via 10.72.1.1 dev eth0 <br><a href="http://192.168.0.0/16" target="_blank">192.168.0.0/16</a> via 10.72.1.1 dev eth0 <br><a href="http://172.16.0.0/12" target="_blank">172.16.0.0/12</a> via 10.72.1.1 dev eth0 <br><a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> via 10.72.1.1 dev eth0 <br><br># birdcl show route all<br>BIRD 1.4.5 ready.<br><a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> via 10.72.1.1 on eth0 [kernel1 13:01:09] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 10.72.1.254<br><a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> via 10.72.1.1 on eth0 [AS65003_1 13:01:12] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br> via 10.72.1.2 on eth0 [AS65003_2 13:01:12] (100) [AS65002i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65002<br> BGP.next_hop: 10.72.1.2<br> BGP.local_pref: 100<br><a href="http://10.10.10.0/29" target="_blank">10.10.10.0/29</a> via 10.72.1.1 on eth0 [AS65003_1 13:01:12] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br><a href="http://10.72.1.0/24" target="_blank">10.72.1.0/24</a> dev eth0 [kernel1 13:01:09] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 10.72.1.254<br><a href="http://192.168.0.0/16" target="_blank">192.168.0.0/16</a> via 10.72.1.1 on eth0 [AS65003_1 13:01:12] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br> via 10.72.1.2 on eth0 [AS65003_2 13:01:12] (100) [AS65002i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65002<br> BGP.next_hop: 10.72.1.2<br> BGP.local_pref: 100<br><a href="http://192.168.2.0/24" target="_blank">192.168.2.0/24</a> via 10.72.1.1 on eth0 [AS65003_1 13:01:12] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br> via 10.72.1.2 on eth0 [AS65003_2 13:01:12] (100) [AS65002i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65002<br> BGP.next_hop: 10.72.1.2<br> BGP.local_pref: 100<br><a href="http://192.168.3.0/24" target="_blank">192.168.3.0/24</a> via 10.72.1.1 on eth0 [AS65003_1 13:01:12] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br> via 10.72.1.2 on eth0 [AS65003_2 13:01:12] (100) [AS65002i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65002<br> BGP.next_hop: 10.72.1.2<br> BGP.local_pref: 100<br><a href="http://192.168.18.0/24" target="_blank">192.168.18.0/24</a> dev breth1 [kernel1 13:01:09] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 192.168.18.253<br><a href="http://192.168.19.0/24" target="_blank">192.168.19.0/24</a> dev eth2 [kernel1 13:01:09] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 192.168.19.253<br><a href="http://192.168.254.0/24" target="_blank">192.168.254.0/24</a> via 10.72.1.1 on eth0 [AS65003_1 13:01:12] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br> via 10.72.1.2 on eth0 [AS65003_2 13:01:12] (100) [AS65002i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65002<br> BGP.next_hop: 10.72.1.2<br> BGP.local_pref: 100<br><a href="http://172.16.0.0/12" target="_blank">172.16.0.0/12</a> via 10.72.1.1 on eth0 [AS65003_1 13:01:12] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br> via 10.72.1.2 on eth0 [AS65003_2 13:01:12] (100) [AS65002i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65002<br> BGP.next_hop: 10.72.1.2<br> BGP.local_pref: 100<br>Jan 16 13:02:15 lanrouter daemon.debug bird: AS65003_1: Sending KEEPALIVE<br>Jan 16 13:02:18 lanrouter daemon.debug bird: AS65003_2: Got KEEPALIVE<br>Jan 16 13:02:22 lanrouter daemon.debug bird: AS65003_1: Got KEEPALIVE<br>Jan 16 13:02:27 lanrouter daemon.debug bird: AS65003_2: Sending KEEPALIVE<br><br>### I kill -9 bird on .2<br><br>Jan 16 13:02:38 lanrouter daemon.err bird: AS65003_2: Received: Administrative shutdown<br>Jan 16 13:02:38 lanrouter daemon.debug bird: AS65003_2: BGP session closed<br>Jan 16 13:02:38 lanrouter daemon.debug bird: AS65003_2: State changed to stop<br>Jan 16 13:02:38 lanrouter daemon.debug bird: AS65003_2 > removed <a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:38 lanrouter daemon.debug bird: AS65003_2 > removed <a href="http://192.168.0.0/16" target="_blank">192.168.0.0/16</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:38 lanrouter daemon.debug bird: AS65003_2 > removed <a href="http://192.168.2.0/24" target="_blank">192.168.2.0/24</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:38 lanrouter daemon.debug bird: AS65003_2 > removed <a href="http://192.168.3.0/24" target="_blank">192.168.3.0/24</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:38 lanrouter daemon.debug bird: AS65003_2 > removed <a href="http://192.168.254.0/24" target="_blank">192.168.254.0/24</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:38 lanrouter daemon.debug bird: AS65003_2 > removed <a href="http://172.16.0.0/12" target="_blank">172.16.0.0/12</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:38 lanrouter daemon.debug bird: AS65003_2: Down<br>Jan 16 13:02:38 lanrouter daemon.debug bird: AS65003_2: State changed to down<br><br>### bird internally still knows about the routes on .1<br><br># birdcl show route all<br>BIRD 1.4.5 ready.<br><a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> via 10.72.1.1 on eth0 [kernel1 13:01:08] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 10.72.1.254<br><a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> via 10.72.1.1 on eth0 [AS65003_1 13:01:11] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br><a href="http://10.10.10.0/29" target="_blank">10.10.10.0/29</a> via 10.72.1.1 on eth0 [AS65003_1 13:01:11] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br><a href="http://10.72.1.0/24" target="_blank">10.72.1.0/24</a> dev eth0 [kernel1 13:01:08] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 10.72.1.254<br><a href="http://192.168.0.0/16" target="_blank">192.168.0.0/16</a> via 10.72.1.1 on eth0 [AS65003_1 13:01:11] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br><a href="http://192.168.2.0/24" target="_blank">192.168.2.0/24</a> via 10.72.1.1 on eth0 [AS65003_1 13:01:11] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br><a href="http://192.168.3.0/24" target="_blank">192.168.3.0/24</a> via 10.72.1.1 on eth0 [AS65003_1 13:01:11] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br><a href="http://192.168.18.0/24" target="_blank">192.168.18.0/24</a> dev breth1 [kernel1 13:01:08] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 192.168.18.253<br><a href="http://192.168.19.0/24" target="_blank">192.168.19.0/24</a> dev eth2 [kernel1 13:01:08] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 192.168.19.253<br><a href="http://192.168.254.0/24" target="_blank">192.168.254.0/24</a> via 10.72.1.1 on eth0 [AS65003_1 13:01:11] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br><a href="http://172.16.0.0/12" target="_blank">172.16.0.0/12</a> via 10.72.1.1 on eth0 [AS65003_1 13:01:11] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br> <br>### I restart bird on .2<br><br>Jan 16 13:02:42 lanrouter daemon.debug bird: AS65003_2: Connecting to 10.72.1.2 from local address 10.72.1.254<br>Jan 16 13:02:42 lanrouter daemon.debug bird: AS65003_2: Connected<br>Jan 16 13:02:42 lanrouter daemon.debug bird: AS65003_2: Sending OPEN(ver=4,as=65003,hold=240,id=0a4801fe)<br>Jan 16 13:02:42 lanrouter daemon.debug bird: AS65003_2: Got OPEN(as=65002,hold=240,id=0a480102)<br>Jan 16 13:02:42 lanrouter daemon.debug bird: AS65003_2: Sending KEEPALIVE<br>Jan 16 13:02:42 lanrouter daemon.debug bird: AS65003_2: Got KEEPALIVE<br>Jan 16 13:02:42 lanrouter daemon.debug bird: AS65003_2: BGP session established<br>Jan 16 13:02:42 lanrouter daemon.debug bird: AS65003_2: Connected to table master<br>Jan 16 13:02:42 lanrouter daemon.debug bird: AS65003_2: State changed to feed<br>Jan 16 13:02:42 lanrouter daemon.debug bird: AS65003_2 < filtered out <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> via 10.72.1.1 on eth0<br>Jan 16 13:02:42 lanrouter daemon.debug bird: AS65003_2 < filtered out <a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> via 10.72.1.1 on eth0<br>Jan 16 13:02:42 lanrouter daemon.debug bird: AS65003_2 < filtered out <a href="http://10.10.10.0/29" target="_blank">10.10.10.0/29</a> via 10.72.1.1 on eth0<br>Jan 16 13:02:43 lanrouter daemon.debug bird: AS65003_2: Got UPDATE<br>Jan 16 13:02:43 lanrouter daemon.debug bird: AS65003_2 > added <a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:43 lanrouter daemon.debug bird: AS65003_2 > added <a href="http://192.168.0.0/16" target="_blank">192.168.0.0/16</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:43 lanrouter daemon.debug bird: AS65003_2 > added <a href="http://192.168.2.0/24" target="_blank">192.168.2.0/24</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:43 lanrouter daemon.debug bird: AS65003_2 > added <a href="http://192.168.3.0/24" target="_blank">192.168.3.0/24</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:43 lanrouter daemon.debug bird: AS65003_2 > added <a href="http://192.168.254.0/24" target="_blank">192.168.254.0/24</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:43 lanrouter daemon.debug bird: AS65003_2 > added <a href="http://172.16.0.0/12" target="_blank">172.16.0.0/12</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:43 lanrouter daemon.debug bird: AS65003_2: Got UPDATE<br>Jan 16 13:02:43 lanrouter daemon.debug bird: AS65003_2: Got End-of-RIB<br>Jan 16 13:02:44 lanrouter daemon.debug bird: AS65003_1: Got UPDATE<br>Jan 16 13:02:44 lanrouter daemon.debug bird: AS65003_1 > removed [replaced] <a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> via 10.72.1.1 on eth0<br>Jan 16 13:02:44 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:44 lanrouter daemon.debug bird: AS65003_2 < rejected by protocol <a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:44 lanrouter daemon.debug bird: AS65003_1 > removed [replaced] <a href="http://192.168.0.0/16" target="_blank">192.168.0.0/16</a> via 10.72.1.1 on eth0<br>Jan 16 13:02:44 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://192.168.0.0/16" target="_blank">192.168.0.0/16</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:44 lanrouter daemon.debug bird: AS65003_2 < rejected by protocol <a href="http://192.168.0.0/16" target="_blank">192.168.0.0/16</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:44 lanrouter daemon.debug bird: AS65003_1 > removed [replaced] <a href="http://192.168.2.0/24" target="_blank">192.168.2.0/24</a> via 10.72.1.1 on eth0<br>Jan 16 13:02:44 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://192.168.2.0/24" target="_blank">192.168.2.0/24</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:44 lanrouter daemon.debug bird: AS65003_2 < rejected by protocol <a href="http://192.168.2.0/24" target="_blank">192.168.2.0/24</a> via 10.72.1.2 on eth0<br>Jan 16 13:02:44 lanrouter daemon.debug bird: AS65003_1 > removed [replaced] <a href="http://192.168.3.0/24" target="_blank">192.168.3.0/24</a> via 10.72.1.1 on eth0<br><br>### Bird internally now lost all routes it used to know about on .1, and hasn’t picked up any routes from .2<br>### Except for the one route that .1 & .2 don’t have in common (<a href="http://10.10.10.0/29" target="_blank">10.10.10.0/29</a>).<br><br># birdcl show route all<br>BIRD 1.4.5 ready.<br><a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> via 10.72.1.1 on eth0 [kernel1 13:01:09] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 10.72.1.254<br><a href="http://10.10.10.0/29" target="_blank">10.10.10.0/29</a> via 10.72.1.1 on eth0 [AS65003_1 13:01:12] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br><a href="http://10.72.1.0/24" target="_blank">10.72.1.0/24</a> dev eth0 [kernel1 13:01:09] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 10.72.1.254<br><a href="http://192.168.18.0/24" target="_blank">192.168.18.0/24</a> dev breth1 [kernel1 13:01:09] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 192.168.18.253<br><a href="http://192.168.19.0/24" target="_blank">192.168.19.0/24</a> dev eth2 [kernel1 13:01:09] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 192.168.19.253<br><br># ip route list proto bird<br><a href="http://10.10.10.0/29" target="_blank">10.10.10.0/29</a> via 10.72.1.1 dev eth0 <br><br><br><br>### Config on .1 (AS 65001):<br><br>filter kernel_import1 {<br> accept;<br>}<br>filter kernel_export1 {<br> accept;<br>}<br>filter export_AS65001_1 {<br> if ifname ~ "ipsec0" then {<br> bgp_local_pref=1000-krt_metric;<br> accept;<br> }<br> if krt_source = ipp_vpn then {<br> bgp_local_pref=1000-krt_metric;<br> accept;<br> }<br> reject;<br>}<br>filter export_AS65001_2 {<br> if ifname ~ "ipsec0" then {<br> bgp_local_pref=1000-krt_metric;<br> accept;<br> }<br> if krt_source = ipp_vpn then {<br> bgp_local_pref=1000-krt_metric;<br> accept;<br> }<br> reject;<br>}<br>protocol kernel kernel1 {<br> persist;<br> scan time 20;<br> export filter kernel_export1;<br> import filter kernel_import1;<br> learn;<br>}<br>protocol device device1 {<br> scan time 10;<br>}<br>protocol bgp AS65001_1 {<br> local as 65001;<br> neighbor 10.72.1.254 as 65003;<br> import all;<br> export filter export_AS65001_1;<br>}<br>protocol bgp AS65001_2 {<br> local as 65001;<br> neighbor 10.72.1.2 as 65002;<br> import all;<br> export filter export_AS65001_2;<br>}<br><br>### Config on .2 (AS 65002):<br><br>filter kernel_import1 {<br> accept;<br>}<br>filter kernel_export1 {<br> accept;<br>}<br>filter export_AS65002_1 {<br> if ifname ~ "ipsec0" then {<br> bgp_local_pref=1000-krt_metric;<br> accept;<br> }<br> if krt_source = ipp_vpn then {<br> bgp_local_pref=1000-krt_metric;<br> accept;<br> }<br> reject;<br>}<br>filter export_AS65002_2 {<br> if ifname ~ "ipsec0" then {<br> bgp_local_pref=1000-krt_metric;<br> accept;<br> }<br> if krt_source = ipp_vpn then {<br> bgp_local_pref=1000-krt_metric;<br> accept;<br> }<br> reject;<br>}<br>protocol kernel kernel1 {<br> persist;<br> scan time 20;<br> export filter kernel_export1;<br> import filter kernel_import1;<br> learn;<br>}<br>protocol device device1 {<br> scan time 10;<br>}<br>protocol bgp AS65002_1 {<br> local as 65002;<br> neighbor 10.72.1.254 as 65003;<br> import all;<br> export filter export_AS65002_1;<br>}<br>protocol bgp AS65002_2 {<br> local as 65002;<br> neighbor 10.72.1.1 as 65001;<br> import all;<br> export filter export_AS65002_2;<br>}<br><br>### Config on .254 (AS 65003):<br><br>filter kernel_import1 {<br> accept;<br>}<br>filter kernel_export1 {<br> accept;<br>}<br><br>filter lans {<br> if ifname ~ "breth1" then {<br> accept;<br> }<br> reject;<br>}<br><br>protocol kernel kernel1 {<br> persist;<br> scan time 20;<br> export filter kernel_export1;<br> import filter kernel_import1;<br> learn;<br>}<br>protocol device device1 {<br> scan time 10;<br>}<br>protocol bgp AS65003_1 {<br> debug all;<br> local as 65003;<br> neighbor 10.72.1.1 as 65001;<br> import all;<br> export filter lans;<br>}<br>protocol bgp AS65003_2 {<br> debug all;<br> local as 65003;<br> neighbor 10.72.1.2 as 65002;<br> import all;<br> export filter lans;<br>}<br><br>#### #### #### Where .1 and .2 do not import each others routes ### ### ###<br><br>### Start bird<br><br>Jan 16 13:11:40 lanrouter daemon.debug bird: AS65003_1: Initializing<br>Jan 16 13:11:40 lanrouter daemon.debug bird: AS65003_2: Initializing<br>Jan 16 13:11:40 lanrouter <a href="http://daemon.info" target="_blank">daemon.info</a> bird: Chosen router ID 10.72.1.254 according to interface eth0<br>Jan 16 13:11:40 lanrouter daemon.debug bird: AS65003_1: Starting<br>Jan 16 13:11:40 lanrouter daemon.debug bird: AS65003_1: State changed to start<br>Jan 16 13:11:40 lanrouter daemon.debug bird: AS65003_2: Starting<br>Jan 16 13:11:40 lanrouter daemon.debug bird: AS65003_2: State changed to start<br>Jan 16 13:11:40 lanrouter <a href="http://daemon.info" target="_blank">daemon.info</a> bird: Started<br>Jan 16 13:11:40 lanrouter daemon.debug bird: AS65003_2: Started<br>Jan 16 13:11:40 lanrouter daemon.debug bird: AS65003_2: Connect delayed by 5 seconds<br>Jan 16 13:11:40 lanrouter daemon.debug bird: AS65003_1: Started<br>Jan 16 13:11:40 lanrouter daemon.debug bird: AS65003_1: Connect delayed by 5 seconds<br>Jan 16 13:11:42 lanrouter daemon.debug bird: AS65003_2: Incoming connection from 10.72.1.2 (port 41464) accepted<br>Jan 16 13:11:42 lanrouter daemon.debug bird: AS65003_2: Sending OPEN(ver=4,as=65003,hold=240,id=0a4801fe)<br>Jan 16 13:11:42 lanrouter daemon.debug bird: AS65003_2: Got OPEN(as=65002,hold=240,id=0a480102)<br>Jan 16 13:11:42 lanrouter daemon.debug bird: AS65003_2: Sending KEEPALIVE<br>Jan 16 13:11:42 lanrouter daemon.debug bird: AS65003_2: Got KEEPALIVE<br>Jan 16 13:11:42 lanrouter daemon.debug bird: AS65003_2: BGP session established<br>Jan 16 13:11:42 lanrouter daemon.debug bird: AS65003_2: Connected to table master<br>Jan 16 13:11:42 lanrouter daemon.debug bird: AS65003_2: State changed to feed<br>Jan 16 13:11:42 lanrouter daemon.debug bird: AS65003_2 < filtered out <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> via 10.72.1.1 on eth0<br>Jan 16 13:11:42 lanrouter daemon.debug bird: AS65003_2 < filtered out <a href="http://10.72.1.0/24" target="_blank">10.72.1.0/24</a> dev eth0<br>Jan 16 13:11:42 lanrouter daemon.debug bird: AS65003_2 < added <a href="http://192.168.18.0/24" target="_blank">192.168.18.0/24</a> dev breth1<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1: Incoming connection from 10.72.1.1 (port 44841) accepted<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1: Sending OPEN(ver=4,as=65003,hold=240,id=0a4801fe)<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1: Got OPEN(as=65001,hold=240,id=027e8ddb)<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1: Sending KEEPALIVE<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1: Got KEEPALIVE<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1: BGP session established<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1: Connected to table master<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1: State changed to feed<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> via 10.72.1.1 on eth0<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> via 10.72.1.2 on eth0<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://10.72.1.0/24" target="_blank">10.72.1.0/24</a> dev eth0<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://192.168.0.0/16" target="_blank">192.168.0.0/16</a> via 10.72.1.2 on eth0<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://192.168.2.0/24" target="_blank">192.168.2.0/24</a> via 10.72.1.2 on eth0<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://192.168.3.0/24" target="_blank">192.168.3.0/24</a> via 10.72.1.2 on eth0<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1 < added <a href="http://192.168.18.0/24" target="_blank">192.168.18.0/24</a> dev breth1<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://192.168.19.0/24" target="_blank">192.168.19.0/24</a> dev eth2<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://192.168.254.0/24" target="_blank">192.168.254.0/24</a> via 10.72.1.2 on eth0<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1 < filtered out <a href="http://172.16.0.0/12" target="_blank">172.16.0.0/12</a> via 10.72.1.2 on eth0<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1: State changed to up<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1: Sending UPDATE<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1: Sending End-of-RIB<br>Jan 16 13:11:44 lanrouter daemon.debug bird: AS65003_1: Got UPDATE<br><br><br>### .1 and .2 connected. bird knows about both. Correct linux routes installed:<br><br># ip route list proto bird<br><a href="http://10.10.10.0/29" target="_blank">10.10.10.0/29</a> via 10.72.1.1 dev eth0 <br><a href="http://192.168.3.0/24" target="_blank">192.168.3.0/24</a> via 10.72.1.1 dev eth0 <br><a href="http://192.168.2.0/24" target="_blank">192.168.2.0/24</a> via 10.72.1.1 dev eth0 <br><a href="http://192.168.254.0/24" target="_blank">192.168.254.0/24</a> via 10.72.1.1 dev eth0 <br><a href="http://192.168.0.0/16" target="_blank">192.168.0.0/16</a> via 10.72.1.1 dev eth0 <br><a href="http://172.16.0.0/12" target="_blank">172.16.0.0/12</a> via 10.72.1.1 dev eth0 <br><a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> via 10.72.1.1 dev eth0 <br><br># birdcl show route all<br>BIRD 1.4.5 ready.<br><a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> via 10.72.1.1 on eth0 [kernel1 13:11:40] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 10.72.1.254<br><a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> via 10.72.1.1 on eth0 [AS65003_1 13:11:44] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br> via 10.72.1.2 on eth0 [AS65003_2 13:11:42] (100) [AS65002i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65002<br> BGP.next_hop: 10.72.1.2<br> BGP.local_pref: 100<br><a href="http://10.10.10.0/29" target="_blank">10.10.10.0/29</a> via 10.72.1.1 on eth0 [AS65003_1 13:11:44] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br><a href="http://10.72.1.0/24" target="_blank">10.72.1.0/24</a> dev eth0 [kernel1 13:11:40] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 10.72.1.254<br><a href="http://192.168.0.0/16" target="_blank">192.168.0.0/16</a> via 10.72.1.1 on eth0 [AS65003_1 13:11:44] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br> via 10.72.1.2 on eth0 [AS65003_2 13:11:42] (100) [AS65002i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65002<br> BGP.next_hop: 10.72.1.2<br> BGP.local_pref: 100<br><a href="http://192.168.2.0/24" target="_blank">192.168.2.0/24</a> via 10.72.1.1 on eth0 [AS65003_1 13:11:44] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br> via 10.72.1.2 on eth0 [AS65003_2 13:11:42] (100) [AS65002i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65002<br> BGP.next_hop: 10.72.1.2<br> BGP.local_pref: 100<br><a href="http://192.168.3.0/24" target="_blank">192.168.3.0/24</a> via 10.72.1.1 on eth0 [AS65003_1 13:11:44] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br> via 10.72.1.2 on eth0 [AS65003_2 13:11:42] (100) [AS65002i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65002<br> BGP.next_hop: 10.72.1.2<br> BGP.local_pref: 100<br><a href="http://192.168.18.0/24" target="_blank">192.168.18.0/24</a> dev breth1 [kernel1 13:11:40] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 192.168.18.253<br><a href="http://192.168.19.0/24" target="_blank">192.168.19.0/24</a> dev eth2 [kernel1 13:11:40] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 192.168.19.253<br><a href="http://192.168.254.0/24" target="_blank">192.168.254.0/24</a> via 10.72.1.1 on eth0 [AS65003_1 13:11:44] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br> via 10.72.1.2 on eth0 [AS65003_2 13:11:42] (100) [AS65002i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65002<br> BGP.next_hop: 10.72.1.2<br> BGP.local_pref: 100<br><a href="http://172.16.0.0/12" target="_blank">172.16.0.0/12</a> via 10.72.1.1 on eth0 [AS65003_1 13:11:44] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br> via 10.72.1.2 on eth0 [AS65003_2 13:11:42] (100) [AS65002i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65002<br> BGP.next_hop: 10.72.1.2<br> BGP.local_pref: 100<br><br>Jan 16 13:12:44 lanrouter daemon.debug bird: AS65003_2: Got KEEPALIVE<br>Jan 16 13:12:49 lanrouter daemon.debug bird: AS65003_2: Sending KEEPALIVE<br>Jan 16 13:12:49 lanrouter daemon.debug bird: AS65003_1: Sending KEEPALIVE<br>Jan 16 13:12:50 lanrouter daemon.debug bird: AS65003_1: Got KEEPALIVE<br><br>### I kill -9 bird on .2<br><br>Jan 16 13:13:06 lanrouter daemon.debug bird: AS65003_2: Connection closed<br>Jan 16 13:13:06 lanrouter daemon.debug bird: AS65003_2: BGP session closed<br>Jan 16 13:13:06 lanrouter daemon.debug bird: AS65003_2: State changed to stop<br>Jan 16 13:13:06 lanrouter daemon.debug bird: AS65003_2 > removed <a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> via 10.72.1.2 on eth0<br>Jan 16 13:13:06 lanrouter daemon.debug bird: AS65003_2 > removed <a href="http://192.168.0.0/16" target="_blank">192.168.0.0/16</a> via 10.72.1.2 on eth0<br>Jan 16 13:13:06 lanrouter daemon.debug bird: AS65003_2 > removed <a href="http://192.168.2.0/24" target="_blank">192.168.2.0/24</a> via 10.72.1.2 on eth0<br>Jan 16 13:13:06 lanrouter daemon.debug bird: AS65003_2 > removed <a href="http://192.168.3.0/24" target="_blank">192.168.3.0/24</a> via 10.72.1.2 on eth0<br>Jan 16 13:13:06 lanrouter daemon.debug bird: AS65003_2 > removed <a href="http://192.168.254.0/24" target="_blank">192.168.254.0/24</a> via 10.72.1.2 on eth0<br>Jan 16 13:13:06 lanrouter daemon.debug bird: AS65003_2 > removed <a href="http://172.16.0.0/12" target="_blank">172.16.0.0/12</a> via 10.72.1.2 on eth0<br>Jan 16 13:13:06 lanrouter daemon.debug bird: AS65003_2: Down<br>Jan 16 13:13:06 lanrouter daemon.debug bird: AS65003_2: State changed to down<br><br>### bird internally still knows about the routes on .1<br><br># birdcl show route all<br>BIRD 1.4.5 ready.<br><a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> via 10.72.1.1 on eth0 [kernel1 13:11:40] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 10.72.1.254<br><a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> via 10.72.1.1 on eth0 [AS65003_1 13:11:44] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br><a href="http://10.10.10.0/29" target="_blank">10.10.10.0/29</a> via 10.72.1.1 on eth0 [AS65003_1 13:11:44] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br><a href="http://10.72.1.0/24" target="_blank">10.72.1.0/24</a> dev eth0 [kernel1 13:11:40] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 10.72.1.254<br><a href="http://192.168.0.0/16" target="_blank">192.168.0.0/16</a> via 10.72.1.1 on eth0 [AS65003_1 13:11:44] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br><a href="http://192.168.2.0/24" target="_blank">192.168.2.0/24</a> via 10.72.1.1 on eth0 [AS65003_1 13:11:44] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br><a href="http://192.168.3.0/24" target="_blank">192.168.3.0/24</a> via 10.72.1.1 on eth0 [AS65003_1 13:11:44] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br><a href="http://192.168.18.0/24" target="_blank">192.168.18.0/24</a> dev breth1 [kernel1 13:11:40] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 192.168.18.253<br><a href="http://192.168.19.0/24" target="_blank">192.168.19.0/24</a> dev eth2 [kernel1 13:11:40] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 192.168.19.253<br><a href="http://192.168.254.0/24" target="_blank">192.168.254.0/24</a> via 10.72.1.1 on eth0 [AS65003_1 13:11:44] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br><a href="http://172.16.0.0/12" target="_blank">172.16.0.0/12</a> via 10.72.1.1 on eth0 [AS65003_1 13:11:44] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br><br> <br>### I restart bird on .2<br><br>Jan 16 13:13:31 lanrouter daemon.debug bird: AS65003_2: Connecting to 10.72.1.2 from local address 10.72.1.254<br>Jan 16 13:13:31 lanrouter daemon.debug bird: AS65003_2: Connected<br>Jan 16 13:13:31 lanrouter daemon.debug bird: AS65003_2: Sending OPEN(ver=4,as=65003,hold=240,id=0a4801fe)<br>Jan 16 13:13:31 lanrouter daemon.debug bird: AS65003_2: Got OPEN(as=65002,hold=240,id=0a480102)<br>Jan 16 13:13:31 lanrouter daemon.debug bird: AS65003_2: Sending KEEPALIVE<br>Jan 16 13:13:31 lanrouter daemon.debug bird: AS65003_2: Got KEEPALIVE<br>Jan 16 13:13:31 lanrouter daemon.debug bird: AS65003_2: BGP session established<br>Jan 16 13:13:31 lanrouter daemon.debug bird: AS65003_2: Connected to table master<br>Jan 16 13:13:31 lanrouter daemon.debug bird: AS65003_2: State changed to feed<br>Jan 16 13:13:31 lanrouter daemon.debug bird: AS65003_2 < filtered out <a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> via 10.72.1.1 on eth0<br>Jan 16 13:13:31 lanrouter daemon.debug bird: AS65003_2 < filtered out <a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> via 10.72.1.1 on eth0<br>Jan 16 13:13:31 lanrouter daemon.debug bird: AS65003_2 < filtered out <a href="http://10.10.10.0/29" target="_blank">10.10.10.0/29</a> via 10.72.1.1 on eth0<br><br><br>### Bird internally now lost all routes it used to know about on .1, and hasn’t picked up any routes from .2<br>### Except for the one route that .1 & .2 don’t have in common (<a href="http://10.10.10.0/29" target="_blank">10.10.10.0/29</a>).<br><br># birdcl show route all<br>BIRD 1.4.5 ready.<br><a href="http://0.0.0.0/0" target="_blank">0.0.0.0/0</a> via 10.72.1.1 on eth0 [kernel1 13:11:40] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 10.72.1.254<br><a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> via 10.72.1.1 on eth0 [AS65003_1 13:11:44] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br> via 10.72.1.2 on eth0 [AS65003_2 13:13:31] (100) [AS65002i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65002<br> BGP.next_hop: 10.72.1.2<br> BGP.local_pref: 100<br><a href="http://10.10.10.0/29" target="_blank">10.10.10.0/29</a> via 10.72.1.1 on eth0 [AS65003_1 13:11:44] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br><a href="http://10.72.1.0/24" target="_blank">10.72.1.0/24</a> dev eth0 [kernel1 13:11:40] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 10.72.1.254<br><a href="http://192.168.0.0/16" target="_blank">192.168.0.0/16</a> via 10.72.1.1 on eth0 [AS65003_1 13:11:44] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br> via 10.72.1.2 on eth0 [AS65003_2 13:13:31] (100) [AS65002i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65002<br> BGP.next_hop: 10.72.1.2<br> BGP.local_pref: 100<br><a href="http://192.168.2.0/24" target="_blank">192.168.2.0/24</a> via 10.72.1.1 on eth0 [AS65003_1 13:11:44] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br> via 10.72.1.2 on eth0 [AS65003_2 13:13:31] (100) [AS65002i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65002<br> BGP.next_hop: 10.72.1.2<br> BGP.local_pref: 100<br><a href="http://192.168.3.0/24" target="_blank">192.168.3.0/24</a> via 10.72.1.1 on eth0 [AS65003_1 13:11:44] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br> via 10.72.1.2 on eth0 [AS65003_2 13:13:31] (100) [AS65002i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65002<br> BGP.next_hop: 10.72.1.2<br> BGP.local_pref: 100<br><a href="http://192.168.18.0/24" target="_blank">192.168.18.0/24</a> dev breth1 [kernel1 13:11:40] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 192.168.18.253<br><a href="http://192.168.19.0/24" target="_blank">192.168.19.0/24</a> dev eth2 [kernel1 13:11:40] * (10)<br> Type: inherit unicast univ<br> Kernel.source: 3<br> Kernel.metric: 0<br> Kernel.prefsrc: 192.168.19.253<br><a href="http://192.168.254.0/24" target="_blank">192.168.254.0/24</a> via 10.72.1.1 on eth0 [AS65003_1 13:11:44] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br> via 10.72.1.2 on eth0 [AS65003_2 13:13:31] (100) [AS65002i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65002<br> BGP.next_hop: 10.72.1.2<br> BGP.local_pref: 100<br><a href="http://172.16.0.0/12" target="_blank">172.16.0.0/12</a> via 10.72.1.1 on eth0 [AS65003_1 13:11:44] * (100) [AS65001i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65001<br> BGP.next_hop: 10.72.1.1<br> BGP.local_pref: 100<br> via 10.72.1.2 on eth0 [AS65003_2 13:13:31] (100) [AS65002i]<br> Type: BGP unicast univ<br> BGP.origin: IGP<br> BGP.as_path: 65002<br> BGP.next_hop: 10.72.1.2<br> BGP.local_pref: 100<br><br># ip route list proto bird<br><a href="http://10.10.10.0/29" target="_blank">10.10.10.0/29</a> via 10.72.1.1 dev eth0 <br><a href="http://192.168.3.0/24" target="_blank">192.168.3.0/24</a> via 10.72.1.1 dev eth0 <br><a href="http://192.168.2.0/24" target="_blank">192.168.2.0/24</a> via 10.72.1.1 dev eth0 <br><a href="http://192.168.254.0/24" target="_blank">192.168.254.0/24</a> via 10.72.1.1 dev eth0 <br><a href="http://192.168.0.0/16" target="_blank">192.168.0.0/16</a> via 10.72.1.1 dev eth0 <br><a href="http://172.16.0.0/12" target="_blank">172.16.0.0/12</a> via 10.72.1.1 dev eth0 <br><a href="http://10.0.0.0/8" target="_blank">10.0.0.0/8</a> via 10.72.1.1 dev eth0 <br><br><br><br><br>### Config on .1 (AS 65001):<br><br>filter kernel_import1 {<br> accept;<br>}<br>filter kernel_export1 {<br> accept;<br>}<br>filter export_AS65001_1 {<br> if ifname ~ "ipsec0" then {<br> bgp_local_pref=1000-krt_metric;<br> accept;<br> }<br> if krt_source = ipp_vpn then {<br> bgp_local_pref=1000-krt_metric;<br> accept;<br> }<br> reject;<br>}<br>filter export_AS65001_2 {<br> if ifname ~ "ipsec0" then {<br> bgp_local_pref=1000-krt_metric;<br> accept;<br> }<br> if krt_source = ipp_vpn then {<br> bgp_local_pref=1000-krt_metric;<br> accept;<br> }<br> reject;<br>}<br>protocol kernel kernel1 {<br> persist;<br> scan time 20;<br> export filter kernel_export1;<br> import filter kernel_import1;<br> learn;<br>}<br>protocol device device1 {<br> scan time 10;<br>}<br>protocol bgp AS65001_1 {<br> local as 65001;<br> neighbor 10.72.1.254 as 65003;<br> import all;<br> export filter export_AS65001_1;<br>}<br>protocol bgp AS65001_2 {<br> local as 65001;<br> neighbor 10.72.1.2 as 65002;<br> import none;<br> export filter export_AS65001_2;<br>}<br><br>### Config on .2 (AS 65002):<br><br>filter kernel_import1 {<br> accept;<br>}<br>filter kernel_export1 {<br> accept;<br>}<br>filter export_AS65002_1 {<br> if ifname ~ "ipsec0" then {<br> bgp_local_pref=1000-krt_metric;<br> accept;<br> }<br> if krt_source = ipp_vpn then {<br> bgp_local_pref=1000-krt_metric;<br> accept;<br> }<br> reject;<br>}<br>filter export_AS65002_2 {<br> if ifname ~ "ipsec0" then {<br> bgp_local_pref=1000-krt_metric;<br> accept;<br> }<br> if krt_source = ipp_vpn then {<br> bgp_local_pref=1000-krt_metric;<br> accept;<br> }<br> reject;<br>}<br>protocol kernel kernel1 {<br> persist;<br> scan time 20;<br> export filter kernel_export1;<br> import filter kernel_import1;<br> learn;<br>}<br>protocol device device1 {<br> scan time 10;<br>}<br>protocol bgp AS65002_1 {<br> local as 65002;<br> neighbor 10.72.1.254 as 65003;<br> import all;<br> export filter export_AS65002_1;<br>}<br>protocol bgp AS65002_2 {<br> local as 65002;<br> neighbor 10.72.1.1 as 65001;<br> import none;<br> export filter export_AS65002_2;<br>}<br><br>### Config on .254 (AS 65003):<br><br>filter kernel_import1 {<br> accept;<br>}<br>filter kernel_export1 {<br> accept;<br>}<br><br>filter lans {<br> if ifname ~ "breth1" then {<br> accept;<br> }<br> reject;<br>}<br><br>protocol kernel kernel1 {<br> persist;<br> scan time 20;<br> export filter kernel_export1;<br> import filter kernel_import1;<br> learn;<br>}<br>protocol device device1 {<br> scan time 10;<br>}<br>protocol bgp AS65003_1 {<br> debug all;<br> local as 65003;<br> neighbor 10.72.1.1 as 65001;<br> import all;<br> export filter lans;<br>}<br>protocol bgp AS65003_2 {<br> debug all;<br> local as 65003;<br> neighbor 10.72.1.2 as 65002;<br> import all;<br> export filter lans;<br>}<br><br></div><div>Is this a bug? Is it intentional and I need to be using a different approach?<br></div><div><br></div>Kind Regards,<br><br>Mike<br></div>
</blockquote></div><br></div>