bird 1.5.0-4 ospf Inactivity timer expired.

Andrey Kitsul a.kitsul at office.ngs.ru
Mon Oct 26 09:47:56 CET 2015


Hello,

I have three Ubuntu physical machines with quagga (ospf area0/bgp with 
full route table on 2-4 uplink) and one whit bird (ospf only).
On one of the routers (ospf/bgp) replace quagga on bird. Configuration 
bird attachment.
After replacing the CPU load there is increased by 10-15%. On top Bird 
periodically consumes up to 90% of the CPU, and at a given time is 
restarted ospf: Inactivity timer expired for nbr.
On one interfaces eth1.2508 to another bird router, I increased the Dead 
interval to 10 seconds. And it helped.
What could be my problem? Large filters BGP, smallest ospf hello/dead 
interval or something else?
One of restarts occurred at 13:13:13, OSPF trace in attachment, OSPF net 
packet in attachment.

-- 
Кицул Андрей
администратор Unix-систем
ЗАО "НГС"
+7-923-111-3940

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20151026/67ec5789/attachment.html>
-------------- next part --------------
#log syslog all;
log "/var/log/bird/bird.log" all;

#debug protocols all;

#debug ospf_area0 { states, routes };

router id 195.x.y.z1;

protocol device {
        scan time 10;
}

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

protocol static STATIC_BGP {
        route net1/24 drop;
        route net2/24 drop;
        route net3/24 drop;
}

protocol static STATIC_OSPF {
        route 10.0.0.0/8 drop;
        route 172.16.0.0/12 drop;
        route 192.168.0.0/16 drop;
}

protocol direct {
        interface "*";
}

protocol ospf ospf_area0 {
        #debug { states, events, packets };
        debug { states, events };
        #import all;
        import filter {
                if ( net != 0.0.0.0/0 ) then {
                print "OSPF accepted: ", net;
                accept;
                }
                print "OSFP rejected:", net;
                reject;
        };
        export filter {
                ospf_metric2 = 20;
                if net = 0.0.0.0/0 then reject;
                # connected
                if source = RTS_DEVICE then accept;
                #if source = RTS_STATIC then accept;
                if proto = "STATIC_OSPF" then accept;
                #if proto = "STATIC_BGP" then accept;
                # connected loopback ?
                if source = RTS_STATIC_DEVICE then accept;
                # kernel route
                if source = RTS_INHERIT then accept;
                # ospf route
                if source = RTS_OSPF then accept;
                else reject;
        };

        area 0.0.0.0 {
                interface "eth0.1889" net4/29 {
                        cost 40;
                        type broadcast;
                        hello 1; dead 4;
                };
                interface "eth1.2508" net5/30 {
                        cost 40;
                        type broadcast;
                        hello 1; dead 10;
                };
                interface "greegw*" {
                        cost 500;
                        type pointopoint;
                        hello 1; dead 4;
                };

        };
}

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}, 100.64.0.0/10+, 192.0.2.0/24+, 198.18.0.0/15+, 198.51.100.0/24+ ];
}

function net_local()
{
    return net ~ [ net1/23{23,24}, net2/24, net3/23{23,24} ];
}

template bgp IBGP {
        #debug all;
        local as MYAS;
        next hop self;
        deterministic med on;
        med metric on;
        source address 195.x.y.z1;
        password "gfhjkmlkzbgp";
        import all;
        export filter {
            # advertise our net
            if proto = "STATIC_BGP" then {
                print "STATIC_BGP accepted: ", net;
                accept;
                }
            # advertise eBGP
            if source = RTS_BGP then accept;
            else reject;
            };
}

protocol bgp bgp_egw2 from IBGP { neighbor 195.x.y.z2 as MYAS; }
protocol bgp bgp_egw4 from IBGP { neighbor 195.x.y.z4 as MYAS; }

filter f_megacom_in {
        # deny IN net_martian and net_local
        if ( net_martian() || net_local() ) then reject;
        # deny as path > 64
        if bgp_path.len > 64 then reject;
        accept;
}

filter f_megacom_out {
        # advertise net_local
        if ( net_local() ) then
            {
            bgp_path.prepend(MYAS);
            bgp_path.prepend(MYAS);
            accept;
        }
        reject;
}

protocol bgp bgp_megacom {
        local as MYAS;
        neighbor 194.x.y.z as 44587;
        description "Megacom";
        default bgp_local_pref 100;
        deterministic med on;
        med metric on;
        export filter f_megacom_out;
        import filter f_megacom_in;
#       bfd on;


filter f_avantel_in {
        if ( net_martian() || net_local() ) then reject;
        if bgp_path.len > 64 then reject;
        if ( bgp_path ~ [= 25549 3216 * =] ) then
            {
            bgp_local_pref = 50;
            accept;
            }
        if ( bgp_path ~ [= * 43154 * =] || bgp_path ~ [= * 42304 =] ) then
            {
            bgp_local_pref = 300;
            accept;
            }
        if ( bgp_path ~ [= * 64530 * =] || bgp_path ~ [= * 39785 * =] ) then reject;
        if ( bgp_path ~ [= 25549 20485 * =] ) then
            {
            bgp_local_pref = 50;
            accept;
            }
        if ( bgp_path ~ [= 25549 9002 * =] ) then
            {
            bgp_path.delete(25549);
            accept;
            }
        accept;
}

filter f_avantel_out {
        # advertise net_local
        if ( net_local() ) then
            {
            # KRS-IX community 0:49039 13002:4130 64512:51220 64512:51240 64512:51370 64512:51380 64512:51470 64512:51480
            bgp_community.add ((0,49039));
            bgp_community.add ((13002,4130));
            bgp_community.add ((64512,51220));
            bgp_community.add ((64512,51240));
            bgp_community.add ((64512,51370));
            bgp_community.add ((64512,51380));
            bgp_community.add ((64512,51470));
            bgp_community.add ((64512,51480));
            bgp_path.prepend(MYAS);
            bgp_path.prepend(MYAS);
            bgp_path.prepend(MYAS);
            accept;
        }
        reject;
}

protocol bgp bgp_avantel {
        local as MYAS;
        neighbor 195.x.y.z as 25549;
        default bgp_local_pref 100;
        deterministic med on;
        med metric on;
        export filter f_avantel_out;
        import filter f_avantel_in;
}
-------------- next part --------------
2015-10-26 13:13:13 <TRACE> ospf_area0: Inactivity timer expired for nbr 195.x.y.z4 on eth0.1889
2015-10-26 13:13:13 <TRACE> ospf_area0: Neighbor 195.x.y.z4 on eth0.1889 changed state from Full to Down
2015-10-26 13:13:13 <TRACE> ospf_area0: Interface eth0.1889 changed state from DROther to Backup
2015-10-26 13:13:13 <TRACE> ospf_area0: Neighbor 195.x.y.z4 on eth0.1889 removed
2015-10-26 13:13:13 <TRACE> ospf_area0: New neighbor 195.x.y.z4 on eth0.1889, IP address 195.93.186.4
2015-10-26 13:13:13 <TRACE> ospf_area0: Neighbor 195.x.y.z4 on eth0.1889 changed state from Down to Init
2015-10-26 13:13:13 <TRACE> ospf_area0: Neighbor 195.x.y.z4 on eth0.1889 changed state from Init to 2-Way
2015-10-26 13:13:13 <TRACE> ospf_area0: Interface eth0.1889 changed state from Backup to DROther
2015-10-26 13:13:13 <TRACE> ospf_area0: Neighbor 195.x.y.z4 on eth0.1889 changed state from 2-Way to ExStart
2015-10-26 13:13:13 <TRACE> ospf_area0: Neighbor 195.x.y.z4 on eth0.1889 changed state from ExStart to Exchange
2015-10-26 13:13:13 <TRACE> ospf_area0: Installing LSA: Type: 2001, Id: 195.x.y.z4, Rt: 195.x.y.z4, Seq: 80011c7b, Age: 1
2015-10-26 13:13:13 <TRACE> ospf_area0: Neighbor 195.x.y.z4 on eth0.1889 changed state from Exchange to Full
-------------- next part --------------
13:13:00.115279 IP 195.x.y.z1 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:00.231810 IP 195.x.y.z2 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:00.232016 IP 195.x.y.z4 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:01.116662 IP 195.x.y.z1 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:01.231893 IP 195.x.y.z2 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:01.232417 IP 195.x.y.z4 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:02.118306 IP 195.x.y.z1 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:02.232052 IP 195.x.y.z2 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:02.232398 IP 195.x.y.z4 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:03.119501 IP 195.x.y.z1 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:03.232176 IP 195.x.y.z2 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:03.232552 IP 195.x.y.z4 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:04.121794 IP 195.x.y.z1 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:04.232262 IP 195.x.y.z2 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:04.232536 IP 195.x.y.z4 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:05.123453 IP 195.x.y.z1 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:05.232427 IP 195.x.y.z2 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:05.232673 IP 195.x.y.z4 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:06.087822 IP 195.x.y.z1 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:06.232643 IP 195.x.y.z2 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:06.232939 IP 195.x.y.z4 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:07.091184 IP 195.x.y.z1 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:07.232742 IP 195.x.y.z2 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:07.233117 IP 195.x.y.z4 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:08.093182 IP 195.x.y.z1 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:08.232961 IP 195.x.y.z2 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:08.233170 IP 195.x.y.z4 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:09.233079 IP 195.x.y.z2 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:09.233201 IP 195.x.y.z1 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:09.233367 IP 195.x.y.z4 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:10.234281 IP 195.x.y.z4 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:10.234639 IP 195.x.y.z1 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:10.236066 IP 195.x.y.z2 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:11.235053 IP 195.x.y.z2 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:11.235458 IP 195.x.y.z4 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:12.236082 IP 195.x.y.z2 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:12.236285 IP 195.x.y.z4 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:13.077911 IP 195.x.y.z1 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:13.078186 IP 195.x.y.z1 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:13.086452 IP 195.x.y.z1 > 195.x.y.z4: OSPFv2, Database Description, length 32
13:13:13.087167 IP 195.x.y.z4 > 195.x.y.z1: OSPFv2, Database Description, length 32
13:13:13.087212 IP 195.x.y.z4 > 224.0.0.5: OSPFv2, LS-Update, length 112
13:13:13.087256 IP 195.x.y.z1 > 195.x.y.z4: OSPFv2, Database Description, length 1472
13:13:13.088448 IP 195.x.y.z4 > 195.x.y.z1: OSPFv2, Database Description, length 1472
13:13:13.088492 IP 195.x.y.z1 > 195.x.y.z4: OSPFv2, Database Description, length 1472
13:13:13.089051 IP 195.x.y.z4 > 195.x.y.z1: OSPFv2, Database Description, length 152
13:13:13.089089 IP 195.x.y.z1 > 195.x.y.z4: OSPFv2, Database Description, length 572
13:13:13.090053 IP 195.x.y.z4 > 224.0.0.5: OSPFv2, LS-Update, length 1468
13:13:13.090067 IP 195.x.y.z4 > 224.0.0.5: OSPFv2, LS-Update, length 364
13:13:13.236373 IP 195.x.y.z2 > 224.0.0.5: OSPFv2, Hello, length 52
13:13:13.236403 IP 195.x.y.z2 > 224.0.0.5: OSPFv2, LS-Ack, length 984
13:13:13.236589 IP 195.x.y.z4 > 224.0.0.5: OSPFv2, Hello, length 52


More information about the Bird-users mailing list