Maybe you forgot to disable rp_filter on uplink ifaces?

And prepend works for incoming traffic, for outgoing - there is localpref. So, if outgoing traffic goes via ISP2 and incoming passed via ISP1 - it's dropped if rp_filter is enabled.

On 25.04.2017 10:36, Wojciech Bajorek wrote:
Hi,

I have a pretty simple BGP configuration with two ISP and one static subnet to advertise.
There is also one prepending configured but I'm not sure if it's working.

The thing is that for some reason when I connect both ISP peers, traffic to the advertised ISP#2 networks (with shorter path) stops working after a couple of seconds. Tracert shows the last hop as ISP#2 border router.

Similar configuration on Juniper router works without any problem, so I'm afraid that there is an error within my Bird config.
Can you please help me out?

PS. Without prepending situation is exactly the same.

OS: Debian 8
Bird: 1.4.5-1+deb8u1

router id 90.90.90.1;

protocol kernel {
        persist;
        scan time 15;
        import all;
        export all;
}

protocol device {
        scan time 10;
}

filter bgp_isp1_out {
        if net = 90.90.90.0/24 <http://90.90.90.0/24> then
        {
                accept;
        }
        else reject;
}

filter bgp_isp2_out {
        if net = 90.90.90.0/24 <http://90.90.90.0/24> then
        {
                bgp_path.prepend(12345);
                bgp_path.prepend(12345);
                accept;
        }
        else reject;
}

protocol bgp bgp_isp1 {
        import all;
        export filter bgp_isp1_out;

        local as 12345;
        neighbor 2.3.4.5 as 2345;
}

protocol bgp bgp_isp2 {
        import all;
        export filter bgp_isp2_out;

        local as 12345;
        neighbor 3.4.5.6 as 3456;
}


Thank you.

Regards,
Wojciech Bajorek


Reply via email to