[quagga-users 8358] Issues from Quagga OSPF with up to 6000 connected interfaces

=?GB2312?B?SGFpIFdhbmcgKM30uqMp?= pppoe.pppoa at gmail.com
Fri May 4 11:30:10 IST 2007


Hello Everyone,

           We have encountered BIG issues when we deployed Quagga OSPF
0.99.7 on PPP servers (up to 6000 PPP sessions). Our scenario is that
two Linux (2.4.35 kernel) PPP servers are directly connected to one
CISCO Gateway (OSPF enabled) as illustrated below.


                   Linux PPP Server 1 (Quagga OSPF) ----------

            |----------Cisco (OSPF)
                   Linux PPP Server 2 (Quagga OSPF )----------


Each PPP Server can take up to 6000 PPP sessions, each ppp session
will create a PPP interface and route entry on the PPP server, so
Quagga OSPF on PPP Servers is employed to advertise these PPP routes
to CISCO.

Quagga OSPF Configuration below

-------------------------------------------------
interface eth0
 ip ospf cost 1
 ip ospf priority 1
 ip ospf dead-interval 40
 ip ospf hello-interval 10
 ip ospf retransmit-interval 5
!
interface dummy0
!

!
router ospf
 redistribute connected
 network 10.10.10.0/24 area 0
!
line vty
!
------------------------------------------------


1.   When PPP servers started to accept PPP sessions, we saw the
following repeating error messages on Quagga ospf log for every new
PPP session when # of PPP sessions was over 20.

---LOGGING---------


May  4 05:36:19 ospfd[15884]: can't setsockopt IP_ADD_MEMBERSHIP (fd
5, addr 10.10.10.141, ifindex 8006
, AllSPFRouters): No buffer space available; perhaps a kernel limit on
# of multicast group memberships has been
exceeded?
May  4 05:36:19 ospfd[15884]: can't setsockopt IP_ADD_MEMBERSHIP (fd
5, addr 10.10.10.141, ifindex 8005
, AllSPFRouters): No buffer space available; perhaps a kernel limit on
# of multicast group memberships has been
exceeded?
May  4 05:36:19 ospfd[15884]: can't setsockopt IP_ADD_MEMBERSHIP (fd
5, addr 10.10.10.141, ifindex 8007
, AllSPFRouters): No buffer space available; perhaps a kernel limit on
# of multicast group memberships has been
exceeded?

-------------------
(a)	We ignored these errors and continued accepting new PPP sessions;
I saw Cisco still was propagandized with new PPP routes.
(b)	We fixed the error by tuning igmp_max_membership=6000, I saw Cisco
still was propagandized with new PPP routes as case (a)

        But on both cases, Quagga OSPF daemon was extremely consuming
95 CPU power to add (case b) or attempt to add (case a) each PPP route
entry into multicast group, so that OSPF, say it took 1 min for PPP
server to establish 2000 sessions, Quagga would take 10 mins or more
to add all 2000 ppp routes into multicast group, image 6000 sessions,
it would take 'forever' to complete, the worst part is that during the
'forever' period, Quagga was too busy to respond Hello packets, so
CISCO no longer was able to see its neighbors, Cisco can not route any
traffics for ppp subscribers during the "forever" period.

       Any question is why Quagga OSPF MUST add each PPP session into
Multicast group even though failing to add did not make any difference
according to my observation?
       Is there any better way to achieve our scenario above without
any issues described above?

2.	When PPP servers disconnected all its sessions in a short time
period, we saw the following errors in the log

May  2 23:27:00 ospfd[1470]: can't setsockopt IP_MULTICAST_IF(fd 5,
addr 10.10.10.148, ifindex 499): Cannot assign requested address
May  2 23:27:00 ospfd[1470]: can't setsockopt IP_MULTICAST_IF(fd 5,
addr 10.10.10.148, ifindex 198): Cannot assign requested address


          Any PPP routes related to above errors would be left on OSPF
route table even though its corresponding PPP session was gone; it
caused more serious problems since Cisco still route all traffics to
PPP routes which no long have their corresponding PPP sessions


FYI, Faster PPP sessions were disconnected, more invalid PPP routes
were left on OSPF route table forever.



Any help and suggestion is much appreciated!

Hai


More information about the Quagga-users mailing list