<div dir="ltr">Ouch ... forgot a filter:<br><pre>...
access-list filter1 permit <a href="http://10.2.4.0/24
access-list">10.2.4.0/24
access-list</a> filter1 deny <a href="http://0.0.0.0/0">0.0.0.0/0</a><br>!<br>access-list filter2 deny <a href="http://0.0.0.0/0">0.0.0.0/0</a><br>!
interface eth0
interface eth1
!
router rip
 network eth0
 distribute-list filter1 out eth0
 network eth1<br> distribute-list filter2 out eth1<br> redistribute connected
...</pre><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 4, 2016 at 3:49 PM, Alexander Velkov <span dir="ltr"><<a href="mailto:alvel85@googlemail.com" target="_blank">alvel85@googlemail.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><div>Hello,<br><br></div><div>I would like to configure RIP with different ACLs set on different RIP interfaces. For this purpose I thought I could use the '<i>ifname</i>' route attribute in bird filters. The problem I am facing is that when I use it, no RIP routes are announced at all, so maybe I am using a wrong syntax. <br><br></div><div>If I don't use the <i>ifname = "eth0" </i>I see the following sent from the bird's RIP instance (10.0.4.1 is configured on eth1 and 172.16.0.4 on eth0). I would like the <a href="http://10.2.4.1/32" target="_blank">10.2.4.1/32</a> route to be announced through eth0 only. I have also tried to use the <i>ifname ~ "eth0" </i>syntax with no luck.<br><br></div><div><br></div><div><b>tcpdump:<br><br></b></div><div># tcpdump -i any -vvnn port 520<br>tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes<br>13:02:58.664760 IP (tos 0xc0, ttl 1, id 27713, offset 0, flags [none], proto UDP (17), length 52)<br>    <b>10.0.4.1.520</b> > 224.0.0.9.520: [udp sum ok] <br>        RIPv2, Response, length: 24, routes: 1 or less<br>          AFI IPv4,        <b><a href="http://10.2.4.1/32" target="_blank">10.2.4.1/32</a></b>, tag 0x0000, metric: 1, next-hop: self<br>        0x0000:  0202 0000 0002 0000 0a02 0401 ffff ffff<br>        0x0010:  0000 0000 0000 0001<br>13:03:14.686163 IP (tos 0xc0, ttl 1, id 27714, offset 0, flags [none], proto UDP (17), length 52)<br>    <b>172.16.0.4.520</b> > 224.0.0.9.520: [udp sum ok] <br>        RIPv2, Response, length: 24, routes: 1 or less<br>          AFI IPv4,        <b><a href="http://10.2.4.1/32" target="_blank">10.2.4.1/32</a></b>, tag 0x0000, metric: 1, next-hop: self<br>        0x0000:  0202 0000 0002 0000 0a02 0401 ffff ffff<br>        0x0010:  0000 0000 0000 0001<br></div><div><br><b>bird config:</b><br><br>protocol kernel {<br>#  persist;                # Don't remove routes on BIRD shutdown<br>  scan time 20;           # Scan kernel routing table every 20 seconds<br>  export all;             # Default is export none<br>  learn;<br>  device routes;<br>}<br><br>protocol device {<br>  scan time 10;           # Scan interfaces every 10 seconds<br>}<br><br>protocol direct {<br>  interface "*";<br>}<br><br>filter rip_export {<br>  # redistribute connected + RIP + ACL<br>  if ( ( source = RTS_DEVICE || source = RTS_RIP ) &&<br>       ( net ~ <a href="http://10.2.4.0/24" target="_blank">10.2.4.0/24</a> && <b>ifname = "eth0"</b> ) ) then {<br>    print "net export accepted: ", net;<br>    accept;<br>  }<br><br>  reject;<br>}<br><br></div>protocol rip RIP {<br>  debug all;<br><br>  interface "eth0" {mode multicast; split horizon yes; poison reverse no; };<br>  interface "eth1" {mode multicast; split horizon yes; poison reverse no; };<br><br>  import all;<br>  export filter rip_export;<br>}<br><br>Any help would be appreciated, thank you.<br><br></div>Alex<br></div>
</blockquote></div><br></div>