<br clear="all">Dear all,<br>we have some problem trying to attach an interface to a particular routing table.<br><br>We have created the routing table 60  in the kernel here<br><br><b style="font-size:medium;font-family:'Times New Roman'"><code><div>


odorizzi@vpn1:~$ cat /etc/iproute2/rt_tables </div><div>#</div><div># reserved values</div><div>#</div><div>255     local</div><div>254     main</div><div>253     default</div><div>0       unspec</div><div>#</div><div># local</div>


<div>#</div><div>#1      inr.ruhep</div><div>60      auslre</div></code></b><br>we have sync the bird configuration as reported<br><br># Turn on global debugging of all protocols<br>#debug protocols all;<br><br># The direct protocol automatically generates device routes to<br>
# all network interfaces. Can exist in as many instances as you wish<br># if you want to populate multiple routing tables with device routes.<br>protocol direct {<br>    interface "-vlan*", "-eth1", "-eth2","eth0";<br>
}<br>protocol direct {<br>    table auslre;<br>#    interface "vlan60";<br>    interface "eth1", "eth2";<br>}<br><br># This pseudo-protocol performs synchronization between BIRD's routing<br>
# tables and the kernel. If your kernel supports multiple routing tables<br># (as Linux 2.2.x does), you can run multiple instances of the kernel<br># protocol and synchronize different kernel tables with different BIRD tables.<br>
protocol kernel {<br>    learn;            # Learn all alien routes from the kernel<br>    persist;        # Don't remove routes on bird shutdown<br>    scan time 20;        # Scan kernel routing table every 20 seconds<br>
    import all;        # Default is import all<br>    export all;        # Default is export none<br>#    kernel table 32367;    # Kernel table to synchronize with (default: main)<br>}<br>protocol kernel {<br>    learn;            # Learn all alien routes from the kernel<br>
    persist;        # Don't remove routes on bird shutdown<br>    scan time 20;        # Scan kernel routing table every 20 seconds<br>    import all;        # Default is import all<br>    export all;        # Default is export none<br>
    kernel table 60;    # Kernel table to synchronize with (default: main)<br>    table auslre;<br>}<br><br># This pseudo-protocol watches all interface up/down events.<br>protocol device {<br>    scan time 10;        # Scan interfaces every 10 seconds<br>
        table auslre;<br>        primary "eth1" 192.168.0.1;<br>        primary <a href="http://192.168.0.0/30">192.168.0.0/30</a>;<br>        primary "eth2" 172.16.0.1;<br>        primary <a href="http://172.16.0.0/30">172.16.0.0/30</a>;   <br>
}<br><br><br><br># Static routes (again, there can be multiple instances, so that you<br># can disable/enable various groups of static routes on the fly).<br>protocol static {<br>#    disabled;        # Disable by default<br>
    table auslre;        # Connect to a non-default table<br>    preference 1000;    # Default preference of routes<br>    debug { states, routes, filters, interfaces, events, packets };<br>    debug all;<br>    route <a href="http://0.0.0.0/0">0.0.0.0/0</a> via 192.168.0.2;<br>
#    route <a href="http://198.51.100.0/25">198.51.100.0/25</a> reject;<br>#    route <a href="http://10.0.0.0/8">10.0.0.0/8</a> reject;<br>#    route 10.1.1.0:255.255.255.0 via 198.51.100.3;<br>#    route 10.1.2.0:255.255.255.0 via 198.51.100.3;<br>
#    route 10.1.3.0:255.255.255.0 via 198.51.100.4;<br>#    route <a href="http://10.2.0.0/24">10.2.0.0/24</a> via "vlan60";<br>}<br><br>#protocol static {<br>#    debug { states, routes, filters, interfaces, events, packets };<br>
#    debug all;<br>#    route <a href="http://0.0.0.0/0">0.0.0.0/0</a> via 195.62.186.254;<br>#}<br><br><br># Pipe protocol connects two routing tables... Beware of loops.<br>#protocol pipe {<br>#    peer table auslre;<br>
# Define what routes do we export to this protocol / import from it.<br>#    import all;        # default is all<br>#    export all;        # default is none<br>#    import none;        # If you wish to disable imports<br>
#    import filter test_filter;        # Use named filter<br>#    import where source = RTS_DEVICE;    # Use explicit filter<br>#}<br><br># RIP aka Rest In Pieces...<br>#protocol rip MyRIP {    # You can also use an explicit name<br>
#    preference xyzzy;<br>#    debug all;<br>#    port 1520;<br>#    period 7;<br>#    infinity 16;<br>#    garbage time 60;<br>#    interface "*" { mode broadcast; };<br>#    honor neighbor;        # To whom do we agree to send the routing table<br>
#    honor always;<br>#    honor never;<br>#    passwords {<br>#        password "nazdar";<br>#    };<br>#    authentication none;<br>#    import filter { print "importing"; accept; };<br>#    export filter { print "exporting"; accept; };<br>
#}<br><br>protocol ospf ospf_test {<br>    tick 2;<br>    rfc1583compat yes;<br>    area 0.0.0.0 {<br>        stub no;<br>        networks {<a href="http://195.62.186.128/25">195.62.186.128/25</a>; <br>        };<br>        interface "eth0" {<br>
            type pointopoint;<br>            authentication none;<br>            neighbors {<br>                195.62.186.184 eligible;<br>            };<br>        };<br>    };<br>}<br><br>protocol ospf ospf_auslre {<br>
    tick 2;<br>    table auslre;<br>    rfc1583compat yes;<br>    area 0.0.0.0 {<br>        stub no;<br>        networks {<a href="http://192.168.0.0/30">192.168.0.0/30</a>; <br>        };<br>        interface "eth1" {<br>
#            hello 9;<br>#            retransmit 6;<br>#            cost 10;<br>#            transmit delay 5;<br>#            dead count 5;<br>#            wait 50;<br>#            type broadcast;<br>            type pointopoint;<br>
            authentication none;<br>#            password "pass";<br>            neighbors {<br>                192.168.0.2 eligible;<br>#                10.1.1.4;<br>            };<br>        };<br><br>        interface "eth2" {<br>
             type pointopoint;<br>            authentication none;<br>        };    <br>#        interface "arc0" {<br>#            rx buffer large;<br>#            type nonbroadcast;<br>#            poll 14;<br>
#            dead 75;<br>#            neighbors {<br>#                10.1.1.2 eligible;<br>#                10.1.1.4;<br>#            };<br>#            strict nonbroadcast yes;<br>#        };<br>#        interface "xxx0" {<br>
#                       passwords {<br>#                password "abc" {<br>#                    id 1;<br>#                    generate to "22-04-2003 11:00:06";<br>#                    accept to "17-01-2004 12:01:05";<br>
#                };<br>#                password "def" {<br>#                    id 2;<br>#                    generate from "22-04-2003 11:00:07";<br>#                    accept from "17-01-2003 12:01:05";<br>
#                };<br>#            };<br>#                       authentication cryptographic;<br>#        };<br>    };<br>#    area 20 {<br>#        stub 1;<br>#        interface "ppp1" {<br>#            hello 8;<br>
#            authentication none;<br>#        };<br>#               interface "fr*";<br>#               virtual link 192.168.0.1 {<br>#                       password "sdsdffsdfg";<br>#                       authentication cryptographic;<br>
#               };<br>#    };<br>}<br>        <br><br>#protocol bgp {<br>#    disabled;<br>#    description "My BGP uplink";<br>#    local as 65000;<br>#    neighbor 198.51.100.130 as 64496;<br>#    multihop;<br>
#    hold time 240;<br>#    startup hold time 240;<br>#    connect retry time 120;<br>#    keepalive time 80;    # defaults to hold time / 3<br>#    start delay time 5;    # How long do we wait before initial connect<br>#    error wait time 60, 300;# Minimum and maximum time we wait after an error (when consecutive<br>
#                # errors occur, we increase the delay exponentially ...<br>#    error forget time 300;    # ... until this timeout expires)<br>#    disable after error;    # Disable the protocol automatically when an error occurs<br>
#    next hop self;        # Disable next hop processing and always advertise our local address as nexthop<br>#    path metric 1;        # Prefer routes with shorter paths (like Cisco does)<br>#    default bgp_med 0;    # MED value we use for comparison when none is defined<br>
#    default bgp_local_pref 0;    # The same for local preference<br>#    source address 198.51.100.14;    # What local address we use for the TCP connection<br>#    password "secret";    # Password used for MD5 authentication<br>
#    rr client;        # I am a route reflector and the neighor is my client<br>#    rr cluster id 1.0.0.1;    # Use this value for cluster id instead of my router id <br>#    export where source=RTS_STATIC;<br>#    export filter {<br>
#        if source = RTS_STATIC then {<br>#            bgp_community = -empty-; bgp_community = add(bgp_community,(65000,5678));<br>#            bgp_origin = 0;<br>#            bgp_community = -empty-; bgp_community.add((65000,5678));<br>
#            if (65000,64501) ~ bgp_community then<br>#                bgp_community.add((0, 1));<br>#            if bgp_path ~ [= 65000 =] then<br>#                bgp_path.prepend(65000);<br>#            accept;<br>#        }<br>
#        reject;<br>#    };<br>#}<br><br><br>but we cannot see that interface inside that routing  table. <br><br><br><br>we tried to force the traffic from/to that interface going to the right table as reported but without effect.<br>
<font face="courier new, monospace"><b><br></b></font><div><div><b><font face="courier new, monospace">root@vpn1:~# ip rule show</font></b></div>

<div><b><font face="courier new, monospace">0:      from all lookup local </font></b></div><div><b><font face="courier new, monospace">32764:  from all oif eth1 lookup auslre </font></b></div><div><b><font face="courier new, monospace">32765:  from all iif eth1 lookup auslre </font></b></div>


<div><b><font face="courier new, monospace">32766:  from all lookup main </font></b></div><div><b><font face="courier new, monospace">32767:  from all lookup default</font></b></div></div><font face="courier new, monospace"><b> </b></font><br>
<br><br>Do you have any idea how to solve that? Probably we are struggling with the wrong  configuration file bird.conf and we are not able to attached correctly an interface to a specific routing table.<br><br>Thank you very much guys<br>
<br>Bye <br><br>Stefano<br><br><br><br>
<br>