paket loss on freebsd router if (b)snmpd is running##SPAM

Thomas freebsdlists at bsdunix.ch
Fri Oct 27 17:24:33 UTC 2006


Hello Harti

Harti Brandt schrieb:
> On Fri, 27 Oct 2006, Thomas wrote:
> 
> T>Hello Harti
> T>
> T>Harti Brandt schrieb:
> T>> On Fri, 27 Oct 2006, Thomas wrote:
> T>> 
> T>> T>Hello
> T>> T>
> T>> T>I use several 5.4 and 6.1 FBSD machines as router (with quagga). The
> T>> T>average traffic is 300mbit/s (em interfaces with polling enabled). It
> T>> T>works more or less.
> T>> T>
> T>> T>Problem:
> T>> T>If bsnmpd is running and I'm doing a snmpwalk from a remote machine the
> T>> T>router has some significant packet loss. We are talking about 3-15% of
> T>> T>packet loss. It's a simple snmpwalk (ipRouteTable and the interfaces stats).
> T>> 
> T>> Does this happen also if you walk only the interface tables? What size is 
> T>> your routing table?
> T>
> T>The routing table has approx. 200k entries. I've to correct my
> T>statement. I don't walk over the RoutingTable.
> 
> Oh. That would be a nice test how good the RB-tree implementation of the 
> routing table is :-)
> 
> T>It's only an interface table walk (IF-MIB). bsnmpd consumes approx.
> T>6-10% cpu. I already have significant packet loss if bsnmpd is started.
> T>
> T>bsnmpd not running:
> T>
> T>ping www.switch.ch
> T>
> T>--- oreius.switch.ch ping statistics ---
> T>44 packets transmitted, 44 packets received, 0% packet loss
> T>round-trip min/avg/max/stddev = 6.825/7.425/8.007/0.252 ms
> T>
> T>zero packet loss.
> T>
> T>
> T>netstat -w 1 shows no error.
> T>
> T>            input        (Total)           output
> T>   packets  errs      bytes    packets  errs      bytes colls
> T>     39877     0   34330807      38614     0   34087518     0
> T>     45522     0   38730142      44124     0   38424881     0
> T>     44671     0   38783909      43455     0   38604698     0
> T>     43140     0   36939542      42059     0   36691583     0
> T>     43428     0   36858817      42213     0   36700954     0
> T>     43748     0   37994949      42687     0   37780190     0
> T>     42698     0   36451927      41409     0   36270936     0
> T>     38695     0   32184588      37119     0   31791417     0
> T>
> T>
> T>
> T>
> T>bsnmpd started:
> T>
> T>ping www.switch.ch
> T>--- oreius.switch.ch ping statistics ---
> T>57 packets transmitted, 53 packets received, 7% packet loss
> T>round-trip min/avg/max/stddev = 6.715/12.638/95.183/19.041 ms
> T>
> T>7% packet loss.
> T>
> T>
> T>netstat shows some errors too.
> T>netstat -w 1
> T>            input        (Total)           output
> T>   packets  errs      bytes    packets  errs      bytes colls
> T>     33597     0   27508009      32433     0   27344720     0
> T>     38204     0   32117848      36950     0   31852251     0
> T>     39171     0   33870984      37999     0   33696346     0
> T>     32160     0   26825650      31065     0   26591079     0
> T>     26915   726   20902878      25771     0   20791170     0
> T>     35167     0   29173014      33945     0   28904867     0
> T>     33282   370   27478393      32140     0   27297079     0
> T>     29738     0   23859586      28464     0   23524984     0
> T>     38456   598   31559055      36881     0   31313396     0
> T>     34738     0   28088584      33247     0   27743827     0
> T>     38193   648   30854513      36657     0   30556948     0
> T>
> T>
> T>A snmpwalk makes it a bit worse but not much. I already have packet loss
> T>if bsnmpd is just started without any walks.
> 
> You mean, you have loss if it is just ideling around? The only thing 
> bsnmpd does in this situation is polling the interface statistics, which 
> is needed because the kernel has only 32-bit counters. Could you please 
> check what the polling interval is? You find this in the BEGEMOT-MIB2-MIB. 
> Something like
>

Yes, bsnmpd is just ideling.

> snmpwalk ... <host> begemotMib2

On this freebsd 5.4 machine I have bsnmpd-1.12:
share/snmp/mibs/BEGEMOT-MIB.txt
share/snmp/mibs/BEGEMOT-NTP-MIB.txt
share/snmp/mibs/BEGEMOT-SNMPD.txt

but no BEGEMOT-MIB2-MIB.


snmpwalk -v 2c -m /usr/share/snmp/mibs/BEGEMOT-MIB.txt -c public
localhost BEGEMOT
BEGEMOT-MIB::begemot.1.1.1.1.0 = INTEGER: 2048
BEGEMOT-MIB::begemot.1.1.1.2.0 = INTEGER: 2048
BEGEMOT-MIB::begemot.1.1.1.3.0 = INTEGER: 1
BEGEMOT-MIB::begemot.1.1.1.4.0 = IpAddress: 0.0.0.0
BEGEMOT-MIB::begemot.1.1.1.5.0 = Gauge32: 3
BEGEMOT-MIB::begemot.1.1.2.1.3.192.168.1.10.162 = INTEGER: 1
BEGEMOT-MIB::begemot.1.1.2.1.4.192.168.1.10.162 = STRING: "SNTrap"
BEGEMOT-MIB::begemot.1.1.2.1.5.192.168.1.10.162 = INTEGER: 2
BEGEMOT-MIB::begemot.1.1.4.1.3.127.0.0.1.161 = INTEGER: 1
BEGEMOT-MIB::begemot.1.1.4.1.3.192.168.1.100.161 = INTEGER: 1
BEGEMOT-MIB::begemot.1.1.6.1.2.5.109.105.98.73.73 = STRING:
"/usr/local/lib/snmp_mibII.so"
BEGEMOT-MIB::begemot.1.1.6.1.3.5.109.105.98.73.73 = STRING: "This module
implements the interface and ip groups."
BEGEMOT-MIB::begemot.1.1.7.1.0 = Counter32: 0
BEGEMOT-MIB::begemot.1.1.7.2.0 = Counter32: 0
BEGEMOT-MIB::begemot.1.1.7.3.0 = Counter32: 0
BEGEMOT-MIB::begemot.1.1.7.4.0 = Counter32: 0
BEGEMOT-MIB::begemot.1.1.8.1.0 = INTEGER: 2
BEGEMOT-MIB::begemot.1.1.8.2.0 = Gauge32: 0
BEGEMOT-MIB::begemot.1.1.8.3.0 = INTEGER: 7
BEGEMOT-MIB::begemot.1.1.9.1.2.19.47.118.97.114.47.114.117.110.47.115.110.109.112.100.46.115.111.99.107
= INTEGER: 1
BEGEMOT-MIB::begemot.1.1.9.1.3.19.47.118.97.114.47.114.117.110.47.115.110.109.112.100.46.115.111.99.107
= INTEGER: 4
BEGEMOT-MIB::begemot.1.1.10.1.1.2.3.117.100.112 = INTEGER: 1
BEGEMOT-MIB::begemot.1.1.10.1.1.2.5.108.115.111.99.107 = INTEGER: 1
BEGEMOT-MIB::begemot.1.1.10.1.1.3.3.117.100.112 = OID:
BEGEMOT-MIB::begemot.1.1.10.2
BEGEMOT-MIB::begemot.1.1.10.1.1.3.5.108.115.111.99.107 = OID:
BEGEMOT-MIB::begemot.1.1.10.3
BEGEMOT-MIB::begemot.3.1.1.1.0 = Counter64: 1000000000
BEGEMOT-MIB::begemot.3.1.1.2.0 = Timeticks: (2000) 0:00:20.00
BEGEMOT-MIB::begemot.3.1.1.3.0 = Timeticks: (0) 0:00:00.00

> given that /usr/share/snmp/mibs is in your MIB path.

snmpd.conf:

# Configuration
%snmpd
begemotSnmpdDebugDumpPdus       = 2
begemotSnmpdDebugSyslogPri      = 7

begemotSnmpdCommunityString.0.1 = $(read)
begemotSnmpdCommunityString.0.2 = $(write)
begemotSnmpdCommunityDisable    = 1

# open standard SNMP ports
begemotSnmpdPortStatus.[$(host)].161 = 1
begemotSnmpdPortStatus.127.0.0.1.161 = 1

# open a unix domain socket
begemotSnmpdLocalPortStatus."/var/run/snmpd.sock" = 1
begemotSnmpdLocalPortType."/var/run/snmpd.sock" = 4

# send traps to the traphost
begemotTrapSinkStatus.[$(traphost)].$(trapport) = 4
begemotTrapSinkVersion.[$(traphost)].$(trapport) = 2
begemotTrapSinkComm.[$(traphost)].$(trapport) = $(trap)

sysContact      = $(contact)
sysLocation     = $(location)
sysObjectId     = 1.3.6.1.4.1.12325.1.1.2.1.$(system)

snmpEnableAuthenTraps = 2

begemotSnmpdModulePath."mibII"  = "/usr/local/lib/snmp_mibII.so"

Regards,
Thomas




More information about the freebsd-net mailing list