Problem with Interface Link Down Detection in Routing Deamon

K sarraf ksaraf at linuxmail.org
Thu Dec 9 19:35:52 PST 2004



Hi All,

I need to solve a problem with link-fail detect signal getting up to the routing deamon on my FreeBSD 4.10 systems.

The problem is as follows:

This is a question regarding backup routes in zebra/quagga running OSPFv2.

Say I have edge router A and edge router B connected via two parallel paths.  Each path has several intermediate routers with different number of hops.  In the normal condition, after route convergence the path with the smallest number of hops will be chosen as the best path.  See figure below

         A
         |
      +--+--+
      |     |
Path 1       path 2
      |     |
      +--+--+
         |
         B

Now if a link in path 1 breaks, path 2 should be immediately chosen since it is a backup route.
In IP infusions ZebOS implementation, if I unplug a link in path 1, it will instantly switch over to path 2 without skipping a beat.
In Quagga, it will take up to 10 seconds before it discovers that path 1 is no longer available, and I lose data for 10 seconds until the paths reconverge.  I'm using hello interval 2 sec and router dead interval of 5 sec.

Not a good problem to have


So I think there is a flag that needs to be passed up from the Network Drivers up to the deamon.  Is there a specific signal the Quagga routing deamon needs to listen for.  BTW Quagga has a lot in common with former Zebra routing code.  I already tried the Quagga mailing list and didn’t get an answer.  

My quagga configuration follows if anyone is interested.
I already use the flag “link-detect” in the Quagga/Zebra config file.



thanks in advance.

=====zebra.conf======

!
hostname Router
password zebra
enable password zebra
log file /tmp/quagga.log
!
interface lo0
!
interface lo1
!
interface lp0
!
interface sl0
!
interface gif0
link-detect
!ipv6 nd suppress-ra
!
interface gif1
link-detect
!ipv6 nd suppress-ra
!
interface gif2
link-detect
!ipv6 nd suppress-ra
!
interface gif3
link-detect
!ipv6 nd suppress-ra
!
interface gif4
link-detect
!ipv6 nd suppress-ra
!
interface gif5
link-detect
!ipv6 nd suppress-ra
!
interface fxp0
link-detect
!
interface ppp0
!
interface faith0
!

!
ip route 224.0.0.5/32 127.0.0.1
ip route 224.0.0.6/32 127.0.0.1
!

====ospfd.conf====
! Zebra configuration saved from vty
!
hostname ospfd
password zebra
!log stdout
!
debug ospf zebra
debug ospf event
!
!
interface gif0
 ip ospf network point-to-point
 ip ospf dead-interval 5
 ip ospf hello-interval 2
!
interface gif1
 ip ospf network point-to-point
 ip ospf dead-interval 5
 ip ospf hello-interval 2
!
interface gif2
 ip ospf network point-to-point
 ip ospf dead-interval 5
 ip ospf hello-interval 2
!
interface gif3
 ip ospf network point-to-point
 ip ospf dead-interval 5
 ip ospf hello-interval 2
!
interface gif4
 ip ospf network point-to-point
 ip ospf dead-interval 5
 ip ospf hello-interval 2
!
interface gif5
 ip ospf network point-to-point
 ip ospf dead-interval 5
 ip ospf hello-interval 2
!
interface fxp0
 description Physical Ethernet Interface 
!
!
router ospf
 compatible rfc1583
! timers spf 2 2
 passive-interface fxp0
 network 0.0.0.0/0 area 0
! network 10.77.0.0/16 area 0
!
redistribute static
redistribute kernel
redistribute connected
!
!access-list filter deny 10.0.0.0/24
!
line vty
!
log file /tmp/ospfd.log


 
====ospf6d.conf=====
! Zebra configuration saved from vty
!
hostname ospfd
password zebra
log file /tmp/ospf6d.log
log stdout
!
debug ospf6 message dbdesc
debug ospf6 message lsreq
debug ospf6 message lsupdate
debug ospf6 message lsack
debug ospf6 neighbor
debug ospf6 interface
debug ospf6 lsa
debug ospf6 zebra
debug ospf6 config
debug ospf6 dbex
debug ospf6 spf
debug ospf6 route
debug ospf6 area
!
interface fxp0
 ipv6 ospf6 passive
!
interface gif0
 ipv6 ospf6 hello-interval 2
 ipv6 ospf6 dead-interval 5
!
interface gif1
 ipv6 ospf6 hello-interval 2
 ipv6 ospf6 dead-interval 5
!
interface gif2
 ipv6 ospf6 hello-interval 2
 ipv6 ospf6 dead-interval 5
!
interface gif3
 ipv6 ospf6 hello-interval 2
 ipv6 ospf6 dead-interval 5
!
interface gif4
 ipv6 ospf6 hello-interval 2
 ipv6 ospf6 dead-interval 5
!
interface gif5
 ipv6 ospf6 hello-interval 2
 ipv6 ospf6 dead-interval 5
!
!
router ospf6
 router-id 0.0.0.1
 redistribute connected
 redistribute static
 interface gif0 area 0.0.0.0
 interface gif1 area 0.0.0.0
 interface gif2 area 0.0.0.0
 interface gif3 area 0.0.0.0
 interface gif4 area 0.0.0.0
 interface gif5 area 0.0.0.0
 interface fxp0 area 0.0.0.0
!
line vty
!




-- 
______________________________________________
Check out the latest SMS services @ http://www.linuxmail.org 
This allows you to send and receive SMS through your mailbox.


Powered by Outblaze


More information about the freebsd-net mailing list