No routes??
Виталий Туровец
corebug at corebug.net
Sun Sep 9 22:11:09 CEST 2012
2012/9/9 ril.kidd <ril.kidd at gmail.com>:
> On 09/09/12 20:36, Виталий Туровец wrote:
>>
>> 2012/9/9 ril.kidd <ril.kidd at gmail.com>:
>>>
>>> On 09/09/12 19:57, Виталий Туровец wrote:
>>>>
>>>> 2012/9/9 ril.kidd <ril.kidd at gmail.com>:
>>>>>
>>>>> Ok, i have DNS running on one peer (route client) and listening on a
>>>>> virtual
>>>>> sub-interface (I intend to add more and do anycasting). the other peer
>>>>> will
>>>>> be a route server.
>>>>> It is the route to the virtual IP on the route client that I want to
>>>>> propagate to the route server.
>>>>>
>>>>> bird> sh protocols all
>>>>> name proto table state since info
>>>>> kernel1 Kernel master up 14:03
>>>>> Preference: 10
>>>>> Input filter: ACCEPT
>>>>> Output filter: ACCEPT
>>>>> Routes: 0 imported, 0 exported, 0 preferred
>>>>> Route change stats: received rejected filtered ignored
>>>>> accepted
>>>>> Import updates: 0 0 0 0 0
>>>>> Import withdraws: 0 0 --- 0 0
>>>>> Export updates: 0 0 0 ---
>>>>> 0
>>>>> Export withdraws: 0 --- --- ---
>>>>> 0
>>>>>
>>>>> device1 Device master up 14:03
>>>>> Preference: 240
>>>>> Input filter: ACCEPT
>>>>> Output filter: REJECT
>>>>> Routes: 0 imported, 0 exported, 0 preferred
>>>>> Route change stats: received rejected filtered ignored
>>>>> accepted
>>>>> Import updates: 0 0 0 0 0
>>>>> Import withdraws: 0 0 --- 0 0
>>>>> Export updates: 0 0 0 ---
>>>>> 0
>>>>> Export withdraws: 0 --- --- ---
>>>>> 0
>>>>>
>>>>> RC1p BGP master up 14:04 Established
>>>>> Description: Route Client1 Peer
>>>>> Preference: 100
>>>>> Input filter: ACCEPT
>>>>> Output filter: ACCEPT
>>>>> Routes: 0 imported, 0 exported, 0 preferred
>>>>> Route change stats: received rejected filtered ignored
>>>>> accepted
>>>>> Import updates: 0 0 0 0 0
>>>>> Import withdraws: 0 0 --- 0 0
>>>>> Export updates: 0 0 0 ---
>>>>> 0
>>>>> Export withdraws: 0 --- --- ---
>>>>> 0
>>>>> BGP state: Established
>>>>> Neighbor address: 192.168.128.32
>>>>> Neighbor AS: 64496
>>>>> Neighbor ID: 192.168.128.32
>>>>> Neighbor caps: refresh AS4
>>>>> Session: external route-server AS4
>>>>> Source address: 192.168.128.31
>>>>> Hold timer: 179/240
>>>>> Keepalive timer: 37/80
>>>>>
>>>>> #Route client bird.conf
>>>>>
>>>>> router id 192.168.128.21;
>>>>>
>>>>> #protocol direct {
>>>>> # interface "-eth*", "*"; # Restrict network interfaces it works
>>>>> with
>>>>> #}
>>>>>
>>>>> protocol kernel {
>>>>> # learn; # Learn all alien routes from the
>>>>> kernel
>>>>> persist; # Don't remove routes on bird
>>>>> shutdown
>>>>> scan time 20; # Scan kernel routing table every 20
>>>>> seconds
>>>>> # import none; # Default is import all
>>>>> export all; # Default is export none
>>>>> # kernel table 5; # Kernel table to synchronize with
>>>>> (default:
>>>>> main)
>>>>> }
>>>>>
>>>>> protocol device {
>>>>> scan time 10; # Scan interfaces every 10 seconds
>>>>> }
>>>>>
>>>>> protocol bgp RouteSrv {
>>>>> # disabled;
>>>>> description "Route Server Peer";
>>>>> local as 64496;
>>>>> neighbor 192.168.128.20 as 65000;
>>>>> import all;
>>>>> export all;
>>>>> # multihop;
>>>>> }
>>>>>
>>>>> #Route Server bird.conf
>>>>>
>>>>> router id 192.168.128.20;
>>>>>
>>>>> # Martian networks
>>>>> function net_martian()
>>>>> {
>>>>> return net ~ [ 169.254.0.0/16+, 172.16.0.0/12+, 192.168.0.0/16+,
>>>>> 10.0.0.0/8+,
>>>>> 127.0.0.0/8+, 224.0.0.0/4+, 240.0.0.0/4+, 0.0.0.0/32-,
>>>>> 0.0.0.0/0{25,32},
>>>>> 0.0.0.0/0{0,7} ];
>>>>> }
>>>>>
>>>>> #Local networks
>>>>> function net_local()
>>>>> {
>>>>> return net ~ [ 192.168.128.0/24+, 192.168.122.0/24+ ];
>>>>> }
>>>>>
>>>>> function rt_import(int asn; int set peer_asns; prefix set peer_nets)
>>>>> {
>>>>> if ! (net ~ peer_nets) then return false;
>>>>> if ! (bgp_path.last ~ peer_asns) then return false;
>>>>> if bgp_path.first != asn then return false;
>>>>> if bgp_path.len > 64 then return false;
>>>>> if bgp_next_hop != from then return false;
>>>>> return true;
>>>>> }
>>>>>
>>>>> function rt_export_all()
>>>>> {
>>>>> if proto = "static_bgp" then return true;
>>>>> if source != RTS_BGP then return false;
>>>>> if net_martian() then return false;
>>>>> if bgp_path.len > 64 then return false;
>>>>> return true;
>>>>> }
>>>>>
>>>>> #protocol direct {
>>>>> # interface "-eth*", "*"; # Restrict network interfaces it works
>>>>> with
>>>>> #}
>>>>>
>>>>> protocol kernel {
>>>>> # learn; # Learn all alien routes from the
>>>>> kernel
>>>>> persist; # Don't remove routes on bird
>>>>> shutdown
>>>>> scan time 20; # Scan kernel routing table every 20
>>>>> seconds
>>>>> # import none; # Default is import all
>>>>> export all; # Default is export none
>>>>> # kernel table 5; # Kernel table to synchronize with
>>>>> (default:
>>>>> main)
>>>>> }
>>>>>
>>>>> protocol device {
>>>>> scan time 10; # Scan interfaces every 10 seconds
>>>>> }
>>>>>
>>>>> filter bgp_in_client
>>>>> {
>>>>> if ! rt_import(64496, [ 64496 ], [ 192.168.128.0/24, 10.0.0.0/23+
>>>>> ])
>>>>> then
>>>>> reject;
>>>>> accept;
>>>>> }
>>>>>
>>>>> filter bgp_out_client
>>>>> {
>>>>> if ! rt_export_all() then reject;
>>>>> accept;
>>>>> }
>>>>>
>>>>>
>>>>> protocol bgp RC1 {
>>>>> # disabled;
>>>>> description "Route Client1 Peer";
>>>>> local as 65000;
>>>>> neighbor 192.168.128.21 as 64496;
>>>>> import filter bgp_in_client;
>>>>> export filter bgp_out_client;
>>>>> rs client;
>>>>> }
>>>>>
>>>>> [admin at rs ~]# ifconfig -a
>>>>> eth0 Link encap:Ethernet HWaddr 00:1A:64:22:5F:E9
>>>>> inet addr:192.168.128.31 Bcast:192.168.128.255
>>>>> Mask:255.255.255.0
>>>>> inet6 addr: fe80::21a:64ff:fe22:5fe9/64 Scope:Link
>>>>> UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
>>>>> RX packets:3726 errors:0 dropped:0 overruns:0 frame:0
>>>>> TX packets:1964 errors:0 dropped:0 overruns:0 carrier:0
>>>>> collisions:0 txqueuelen:1000
>>>>> RX bytes:331155 (323.3 KiB) TX bytes:187893 (183.4 KiB)
>>>>> Interrupt:17
>>>>>
>>>>> lo Link encap:Local Loopback
>>>>> inet addr:127.0.0.1 Mask:255.0.0.0
>>>>> inet6 addr: ::1/128 Scope:Host
>>>>> UP LOOPBACK RUNNING MTU:16436 Metric:1
>>>>> RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>>>>> TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>>>>> collisions:0 txqueuelen:0
>>>>> RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
>>>>>
>>>>> [admin at rc ~]# ifconfig -a
>>>>> eth0 Link encap:Ethernet HWaddr 00:1A:64:22:60:01
>>>>> inet addr:192.168.128.33 Bcast:192.168.128.255
>>>>> Mask:255.255.255.0
>>>>> inet6 addr: fe80::21a:64ff:fe22:6001/64 Scope:Link
>>>>> UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
>>>>> RX packets:25056 errors:0 dropped:0 overruns:0 frame:0
>>>>> TX packets:10341 errors:0 dropped:0 overruns:0 carrier:0
>>>>> collisions:0 txqueuelen:1000
>>>>> RX bytes:2368094 (2.2 MiB) TX bytes:1065046 (1.0 MiB)
>>>>> Interrupt:17
>>>>>
>>>>> lo Link encap:Local Loopback
>>>>> inet addr:127.0.0.1 Mask:255.0.0.0
>>>>> inet6 addr: ::1/128 Scope:Host
>>>>> UP LOOPBACK RUNNING MTU:16436 Metric:1
>>>>> RX packets:22 errors:0 dropped:0 overruns:0 frame:0
>>>>> TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
>>>>> collisions:0 txqueuelen:0
>>>>> RX bytes:1900 (1.8 KiB) TX bytes:1900 (1.8 KiB)
>>>>>
>>>>> lo:0 Link encap:Local Loopback
>>>>> inet addr:10.0.1.1 Mask:255.255.255.255
>>>>> UP LOOPBACK RUNNING MTU:16436 Metric:1
>>>>>
>>>>> This worked ok on Ubuntu
>>>>>
>>>>>
>>>>>
>>>>> On 09/09/12 18:49, Виталий Туровец wrote:
>>>>>
>>>>> 2012/9/9 ril.kidd <ril.kidd at gmail.com>:
>>>>>
>>>>> The following commands give me: Peer is not a protocol
>>>>>
>>>>>
>>>>> birdc show protocols all Peer
>>>>> birdc show route all protocol Peer
>>>>> birdc show route all export Peer
>>>>>
>>>>> Output from "'# netstat -rn" is:
>>>>> Kernel IP routing table
>>>>> Destination Gateway Genmask Flags MSS Window
>>>>> irtt
>>>>> Iface
>>>>> 192.168.128.0 0.0.0.0 255.255.255.0 U 0 0
>>>>> 0
>>>>> eth0
>>>>> 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0
>>>>> 0
>>>>> eth0
>>>>> 0.0.0.0 192.168.128.28 0.0.0.0 UG 0 0
>>>>> 0
>>>>> eth0
>>>>>
>>>>> Well, 1: which routes you expect your bird to propagate to peer?
>>>>> 169.254.0.0/16 network. must NOT be routed anyway.
>>>>> 2: ports out otput of "show protocols all " command here please.
>>>>> 3: show your FULL and UNCUT config file.
>>>>> 4: ifconfig -a
>>>>>
>>>>>
>>>>>
>>>>> On 09/09/12 17:18, Виталий Туровец wrote:
>>>>>
>>>>> 2012/9/9 ril.kidd <ril.kidd at gmail.com>:
>>>>>
>>>>> On 09/09/12 16:57, ril.kidd wrote:
>>>>>
>>>>> Sorry, bird.conf looks like this:
>>>>>
>>>>>
>>>>> router id 192.168.128.21;
>>>>>
>>>>> #protocol direct {
>>>>> # interface "-eth*", "*"; # Restrict network interfaces it works
>>>>> with
>>>>> #}
>>>>>
>>>>> protocol kernel {
>>>>> # learn; # Learn all alien routes from the
>>>>> kernel
>>>>> persist; # Don't remove routes on bird
>>>>> shutdown
>>>>> scan time 20; # Scan kernel routing table every
>>>>> 20
>>>>> seconds
>>>>> # import none; # Default is import all
>>>>> export all; # Default is export none
>>>>> # kernel table 5; # Kernel table to synchronize with
>>>>> (default:
>>>>> main)
>>>>> }
>>>>>
>>>>> protocol device {
>>>>> scan time 10; # Scan interfaces every 10 seconds
>>>>> }
>>>>>
>>>>> protocol bgp Peer {
>>>>> # disabled;
>>>>> description "Peer";
>>>>> local as 64496;
>>>>> neighbor 192.168.128.20 as 65000;
>>>>> import all;
>>>>> export all;
>>>>> # multihop;
>>>>> }
>>>>>
>>>>> On 09/09/12 16:53, Crest wrote:
>>>>>
>>>>> On 09.09.2012 17:50, ril.kidd wrote:
>>>>>
>>>>> On 09/09/12 16:10, ril.kidd wrote:
>>>>>
>>>>> hello,
>>>>> I have two ubuntu 12.04 linux servers running bird 1.3.8 and peered
>>>>> with
>>>>> each other.
>>>>> The routes from each show in both routing tables.
>>>>>
>>>>> I installed centos 6.3 on an (identically configured) different set of
>>>>> servers and copied the configuration files. I see peering established
>>>>> but
>>>>> no
>>>>> routes in both routing tables. It doesnt work when peered with the
>>>>> ubuntu
>>>>> servers either.
>>>>> Please what may be wrong? Or am I just missing something?
>>>>>
>>>>>
>>>>> Actually, when i do "show route" from birdc> i dont get any results
>>>>>
>>>>> Sorry my crystal ball is unaligned how about a few bird.conf snippets
>>>>> to
>>>>> calibrate it?
>>>>>
>>>>>
>>>>>
>>>>> What about output from these commands:
>>>>> birdc show protocols all Peer
>>>>> birdc show route all protocol Peer
>>>>> birdc show route all export Peer
>>>>> netstat -rn
>>>>> ?
>>>>>
>>>>>
>>>>>
>>>>>
>>>> If i were you, i'd turn on the "kernel" and "device" protocols :)
>>>> Your birds don't import any routes from anywhere, wo they wouldn't
>>>> propagate anything to peers :)
>>>> They just have nothing to :)
>>>
>>>
>>> Thank you.
>>> The device protocol is turned on. When I uncomment the learn line unde
>>> ther
>>> kernel protocol, i get this:
>>>
>>> #Route Client
>>> birdc> show route
>>> 0.0.0.0/0 via 192.168.128.28 on eth0 [kernel1 15:43] * (10)
>>>
>>> #Route Server
>>> birdc> show route
>>> 0.0.0.0/0 via 192.168.128.28 on eth0 [RC1p 15:33 from
>>> 192.168.128.20] ! (100) [AS64496i]
>>>
>>>
>>> 192.168.128.28 is configured as the default gateway on the machine.
>>> How do I import the route to the virtual sub-interface?
>>>
>> Your route should be seen in system's routing table anyway so that
>> "netstat -rn" would show it.
>> You can add static route by "ip ro add x.x.x.x/xx y.y.y.y" and then
>> bird will automatically import it, or you can add a static route
>> inside of the bird like described on this page -
>> http://bird.network.cz/?get_doc&f=bird-6.html#ss6.9 .
>> Anyway, from my point of view, second way is a bit more complicated
>> and i always prefer the OS-specific method of adding routes. But it
>> may work nicely for you nevertheless :)
>>
> Ok, thank you. It worked.
> However, i wonder why i had to add the route manulaly in CentOS. It was
> added automatically in Ubuntu. Also, the static route remains in the routing
> table when the virtual interface is down. Is there a way to remove it and
> automatically add it when the interface is back up?
>
>
It definitely is a question to CentOS knowers and not BIRD mailing list :)
Please excuse me for small offtopic, but as far as i know bird and all
the unices i've had experience with, the combination of my choice is
FreeBSD + bird :) It works like a charm. If you need support with this
combination, you can mail me directly :)
--
~~~
WBR,
Vitaliy Turovets
Systems Administrator
Corebug.Net
+38(093)265-70-55
VITU-RIPE
More information about the Bird-users
mailing list