<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>