Home Map Index Zoek Nieuws Archieven Links Over ons
[Hoofd-balk]
[Voet-balk]
[Foto van de Auteur]
door

Inhoud:

Netwerkbeheer met Linux

[Illustratie]

Kort:

Dit is een artikel uit het Linux Journal. Het is opnieuw uitgebracht met toestemming van de auteur.

Bruikbare hulpmiddelen voor het beheer van huidige -alomtegenwoordige- netwerken.



 

Inleiding

Tegenwoordig draait het in de automatisering meer en meer om netwerken. Dit heeft het werk van de systeembeheerders aanzienlijk verzwaard. Doel is nu om de beschikbaarheid van apparatuur zoals routers, hubs, servers en andere belangrijke apparatuur in het netwerk te garanderen.

Er zijn vele redenen voor beheerders om netwerkapparatuur in de gaten te houden: goed gebruik van de bandbreedte, status van verbindingen, flessenhalzen, problemen met bekabeling of met routering tussen apparatuur etc. Het in de gaten houden hiervan is ook een goed startpunt voor het detecteren van beveiligingsproblemen en misbruik.

In veel gevallen bevat het netwerk van een organisatie dure verbindingen naar de buitenwereld (WAN) of naar het Internet, waarvan de kosten gebaseerd zijn op het volume van de getransporteerde data. Het is heel belangrijk om statistieken bij te houden over hoeveel verkeer er over deze verbindingen gaat. Dit is een normale taak in Europa, waar X.25 verbindingen nog steeds veel worden gebruikt. De kosten hiervoor zijn gebaseerd op het aantal pakketten wat over deze verbindingen gaat.

Andere verbindingstypen, zoals Point-to-Point of Frame Relay, kennen meestal een vaste prijs. Hierbij garandeert de telecommunicatie aanbieder een bepaalde bandbreedte, waarbij het dus belangrijk is om die in de gaten te houden.

Aan het eind van het artikel behandelen we een hulpmiddel dat is gemaakt om netwerkverkeer in de gaten te houden op router-koppelingen met sublieme grafische weergave van deze informatie. Het kan eenvoudig worden aangepast om ook andere informatie in de gaten te houden.  

Wat is SNMP?

Het antwoordt op al deze problemen is het Simple Network Management Protocol (SNMP). Dit protocol, ontworpen in de jaren '80, had als doel om het beheer van verschillende typen netwerken te integreren met een eenvoudig ontwerp dat een minimale belasting zou vormen op deze netwerken.

SNMP werkt op applicatieniveau en gebruikt TCP/IP als transportprotocol zodat het de onderliggende netwerkhardware niet hoeft te zien. Dit betekent dat de management software gebruik maakt van IP en dus apparaten aan kan sturen op ieder aangesloten netwerk en niet alleen diegene die zijn aangesloten op het eigen netwerk. Dit heeft ook zijn nadelen: indien de IP- routering tussen twee apparaten niet werkt dan kan het apparaat in kwestie dus ook niet worden benaderd voor een her-configuratie of worden bekeken.

De SNMP architectuur kent twee belangrijke elementen: de agent en de manager. Het is een client-server architectuur. De agent is de server, de manager de client.

De agent is een programma wat op ieder beheerd apparaat in het netwerk draait. Het koppelt alle specifieke zaken van een apparaat die geconfigureerd kunnen worden. Deze zaken worden opgeslagen in een Management Information Base (MIB), waarover later meer. Dit is de server kant, voor zover het de informatie over de configuratie vasthoudt en wacht op het uitvoeren van commando's voor de client.

De manager is het programma wat draait op het beheers-console van het netwerk. Het is zijn taak om contact te leggen met de diverse agents in het netwerk en waarden op te vragen van de specifieke interne data van een apparaat. Dit is de client kant van de communicatie.

Er is een apart commando binnen SNMP, trap geheten die een agent in staat stelt om ongevraagd data te versturen naar de manager, om deze op de hoogte te stellen van gebeurtenissen zoals een fout of het stoppen van een apparaat.

SNMP is in essentie een heel simpel protocol zolang alle bewerkingen worden beperkt tot het opvragen-en-opslaan voorbeeld. Dit heeft een klein aantal commando's tot gevolg. Een manager kan slechts twee bewerkingen op een agent uitvoeren. Het opvragen van waarden en het laten opslaan van waarden in de MIB van de agent. De twee bewerkingen staan ook wel bekend als get-request en set-request. Er is een commando als antwoord op het get-request en dat is de get-response die alleen door een agent kan worden gegeven.

De uitbreidbaarheid van het protocol is direct gerelateerd aan het vermogen van de MIB om nieuwe grootheden op te slaan. Als een fabrikant nieuwe bewerkingen toe wil voegen aan bijvoorbeeld zijn router, dan moet hij de betreffende grootheden opslaan in zijn database (MIB).

Bijna alle fabrikanten implementeren versies van SNMP agents in hun apparaten: routers, hubs, operating systemen enzovoorts. Linux is hierin geen uitzondering en vrij te verkrijgen SNMP agents zijn dan ook op het Internet te vinden.  

Omgaan met beveiliging

SNMP levert weinig ondersteuning voor autorisatie mechanismen. Het ondersteunt slechts een twee-wachtwoorden mechanisme. Het openbare (public) wachtwoord stelt beheerders in staat om waarden van grootheden op te vragen. Met het privé (private) wachtwoord zijn deze waarden ook te veranderen. Deze wachtwoorden worden binnen SNMP ook wel communities (gemeenschappen) genoemd. Ieder apparaat dat is aangesloten op een SNMP-beheerd netwerk moet deze communities ondersteunen.

Het is zeer gebruikelijk om een openbaar wachtwoord op "public" in te stellen en het privé wachtwoord op "private" maar het is uiterst belangrijk om deze waarden te veranderen in overeenstemming met de beveiligingsrichtlijnen van jouw organisatie.  

Wat is de MIB?

SNMP heeft een aparte standaard voor de data die door het protocol wordt beheerd. Deze standaard definieert de gegevens die door een netwerkapparaat worden bijgehouden en de bewerkingen die daarop mogelijk zijn. Deze gegevens zijn gestructureerd in een boomstructuur waarbij een uniek pad is gedefinieerd naar een bepaald gegeven. Deze boomstructuur wordt de Management Information Base (MIB) genoemd en wordt in diverse RFC's beschreven.

De huidige versie van de TCP/IP MIB is MIB-II en wordt gedefinieerd in RFC 1213. Het verdeelt de informatie die een TCP/IP apparaat moet bijhouden in acht categorieën (zie tabel 1) en ieder gegeven moet in één van deze categorieën vallen.

Tabel 1. TCP/IP Informatie
Categorie Gegeven
system Informatie over het operating systeem van computer of router
interfaces Informatie over netwerkkoppelingen
addr-translation Informatie over omzettingen van adressen
ip Informatie over het IP protocol
icmp Informatie over het ICMP protocol
tcp Informatie over het TCP protocol
udp Informatie over het UDP protocol
egp Informatie over het protocol van de externe gateway
De MIB-definitie van een bepaald gegeven bevat ook het datatype. Meestal zijn dit integers maar het kunnen ook strings zijn of meer complexe structuren zoals tabellen. Gegevens in de MIB noemt men objecten. Ze vormen de uiteinden van de MIB boomstructuur. Maar objecten kunnen meerdere grootheden (instances) bevatten zoals bijvoorbeeld een tabel. Om een waarde van een object te kunnen refereren moet je dus tevens het instance-nummer opgeven. Indien er sprake is van slechts één grootheid binnen een object dat is dat instance 0.

Het object ifNumber bijvoorbeeld uit de categorie "interfaces" bevat een getal dat het aantal koppelingen (interfaces) weergeeft voor dit apparaat. Het object ipRoutingTable uit de categorie "ip" echter, bevat de routeringstabel van dit apparaat.

Vergeet niet om het instance volgnummer op te geven bij het opvragen van de waarde van een object. In dit geval kan het aantal koppelingen van een apparaat worden opgevraagd met de instance ifNumber.0.

In het geval van een tabel-object zul je het laatste nummer moeten gebruiken voor het aangeven van de index in de tabel om een bepaalde instance te refereren (een rij in de tabel).

Er is nog een andere standaard voor het definiëren en refereren van MIB-variabelen met de naam Structure of Management Information (SMI). SMI schrijft voor dat MIB-variabelen moeten worden gedeclareerd in een formele taal, door ISO gedefinieerd die ASN.1 heet en die de definitie en inhoud van de variabelen uniek maakt.

De ISO benamingen zijn onderdeel van een globale benamingstructuur, waar ook andere boomstructuren van andere standaardisatie organisaties onderdeel van zijn. Binnen deze ISO benamingen zit ook een aparte boomstructuur voor de MIB-informatie. In dit MIB-gedeelte zitten weer gedeelten voor objecten van alle protocollen en applicaties zodat deze informatie uniek kan worden gerepresenteerd.

Figuur 1 laat zien dat de TCP/IP MIB naamstructuur onder de mgmt naamstructuur zit van het IAB. Deze hiërarchie geeft ook een nummer voor ieder niveau.

Figure 1. TCP/IP naamstructuur
Het is belangrijk te weten dat de meeste programma's de voorlooppunt (root) nodig hebben om het object in de MIB te kunnen refereren. Indien de voorlooppunt niet wordt gebruikt dan neemt de software aan dat het een relatief pad is ten opzichte van .iso.org.dod.internet.mgmt.mib-2.

Op die manier kan het object ifNumber van de categorie "interfaces" als volgt worden gerefereerd:

        .iso.org.dod.internet.mgmt.mib-2.interfaces.ifnumber
of met zijn numerieke tegenhanger:
        .1.3.6.1.2.1.2.1
De instance kan dan worden gerefereerd als:
        .iso.org.dod.internet.mgmt.mib-2.interfaces.ifnumber.0
of met zijn numerieke tegenhanger:
        .1.3.6.1.2.1.2.1.0
Nieuwe MIB's kunnen aan de boom worden toegevoegd door fabrikanten (met nieuwe apparatuur) door het publiceren van de juiste RFC's.  

Wat is de toekomst van SNMP?

Een nieuwe specificatie genaamd SNMPv2 is reeds in ontwikkeling. Deze verbetert de beveiligingsaspecten door mechanismen te introduceren die ingaan op privacy, identificatie en toegangscontrole. De nieuwe specificatie laat ook meer complexe definitie van variabelen toe en introduceert een aantal nieuwe commando's. Het probleem met SNMPv2 is dat het nog niet zo gebruikelijk is als SNMPv1. Je moet echt zoeken naar apparatuur met SNMPv2 implementaties die gebruik maken van de nieuwe mogelijkheden. Laten we afwachten wat de toekomst ons brengen zal...  

SNMP en Linux

Het meest populaire SNMP-pakket is CMU-SNMP. Van origine ontworpen door de Carnegie Mellon University en op Linux geïmplementeerd door Jürgen Schönwälder en Erik Schönfelder. Het voldoet volledig aan de SNMPv1 standaard en heeft een aantal elementen van SNMPv2.

De distributie bevat beheer hulpmiddelen die je in staat stellen om, via commandoregels, verzoeken te versturen naar SNMP agents. Tevens bevat het een SNMP agent speciaal voor Linux die managers (ook op de eigen machine) op de hoogte kan stellen van de status van koppelingen, routeringstabellen, uptime etc.

Een waardevolle toevoeging van CMU-SNMP is een SNMP C-koppeling die C programmeurs in staat stelt om complexere management hulpmiddelen te bouwen, gebaseerd op de netwerk mogelijkheden van deze distributie.

De installatie op Linux is eenvoudig maar wijkt af van de originele CMU distributie. De distributie bevat reeds gecompileerde versies van de beheer hulpmiddelen, de daemon en de bibliotheek voor koppelingen.

Allereerst moet je beslissen of je de executeerbare versie wilt hebben dan wel de broncode. Het pakket is eenvoudig op het Internet te vinden (zie ook de referenties aan het eind van dit artikel). De executeerbare versie werkt probleemloos op kernels vanaf versie 2.0 en is gebaseerd op ELF. We zullen beschrijven hoe de executeerbare versie geïnstalleerd moet worden. Het is aan te bevelen om de distributie van een bekende site op te halen om problemen met virussen, Trojaanse paarden, beveiliging enzovoorts te voorkomen.

Zet het bestand cmu-snmp-linux-3.2-bin.tar.gz in de root directory (/) van je systeem en pak het uit middels:

$ gunzip cmu- snmp-linux-3.2-bin.tar.gz
tar de distributie vervolgens naar z'n juiste plek met:
$ tar xvf cmu- snmp-linux-3.2-bin.tar
Alles is nu naar behoren geïnstalleerd op je systeem met uitzondering van het SNMP agent configuratiebestand /etc/snmpd.conf. Dit kun je aanmaken middels het script /tmp/cmu-snmp-linux-3.2/etc/installconf met de volgende opties:
$ /tmp/cmu-snmp-linux-3.2/etc/installconf -mini <wachtwoord>
waarbij het wachtwoord slaat op het openbare wachtwoord dat je wilt gaan gebruiken. Je kunt nu het nieuw aangemaakte configuratiebestand /etc/snmpd.conf gaan wijzigen. Hierin kun je de UDP poorten wijzigen die de agent gebruikt, de systemContact, systemLocation en systemName variabelen alsmede de snelheid van je netwerkkoppeling en PPP poorten.

De belangrijkste hulpmiddelen die je dan hebt zijn:

De agent staat in de directory /usr/sbin/snmpd.

CMU-SNMP installeert ook een MIB bestand in /usr/lib/mib.txt. Deze kan prima worden gebruikt om na te gaan welke informatie we van een apparaat op kunnen vragen.

De agent moet tijdens opstarten worden geactiveerd en dat kan met de volgende regel in één van de opstartbestanden (/etc/rc.d/rc.local bijvoorbeeld):

        /usr/sbin/snmpd -f; echo 'starting snmpd'
Als de SNMP agent eenmaal is opgestart kun je hem als volgt testen met de beheer hulpmiddelen:
$ /usr/bin/snmpget -v 1 localhost public interfaces.ifNumber.0
die het aantal geconfigureerde koppelingen op het systeem zal retourneren.
$ /usr/bin/snmpwalk -v 1 localhost public system
vervolgens, zal alle waarden in de sub-boom van de MIB retourneren (zie figuur 2 voor de uitvoer van dit commando).
Figuur 2
dragon:~$ /usr/bin/snmpwalk

usage: snmpwalk [-p <port>] host community [object-id]

dragon:~$ /usr/bin/snmpwalk  localhost public system

system.sysDescr.0 = "Linux version 2.0.24 (root@dragon) 
                     (gcc version 2.7.2) #6 Mon Nov 25 15:08:40 MET 1996"
system.sysObjectID.0 = OID: enterprises.tubs.ibr.linuxMIB
system.sysUpTime.0 = Timeticks: (39748002) 4 days, 14:24:40
system.sysContact.0 = "David Guerrero"
system.sysName.0 = "dragon "
system.sysLocation.0 = "Madrid (SPAIN)"
system.sysServices.0 = 72
system.sysORLastChange.0 = Timeticks: (39748006) 4 days, 14:24:40
system.sysORTable.sysOREntry.sysORID.1 = OID: enterprises.tubs.ibr.linuxMIB.linuxAgents.1
system.sysORTable.sysOREntry.sysORDescr.1 = "LINUX agent"
system.sysORTable.sysOREntry.sysORUpTime.1 = Timeticks: (39748007) 4 days, 14:24:40

dragon:~$
De C koppeling staat in /lib/libsnmp.so.3.1.

De volgende hulpbestanden zijn hierbij van belang:

zie voor meer informatie ook de man pagina's snmp_api(3) en variables(5)

Verder is er ook een Perl uitbreiding die eenvoudig de CMU C koppeling aan kan spreken in Perl scripts.  

MRTG: Multi Router Traffic Grapher

MRTG is een geavanceerd hulpmiddel van Tobias Ötiker en Dave Grant dat een grafische representatie geeft van de data die SNMP agents naar de SNMP manager sturen. Het genereert mooie grafische representaties in HTML en GIF van inkomend en uitgaand netwerkverkeer, bijna real time. Het abstraheert het idee over het opvragen van waarden in de MIB met een commando-gestuurd hulpmiddel als CMU-SNMP. Het is het eenvoudigste en krachtigste hulpmiddel dat ik op het Internet kon vinden om mijn routers in de gaten te houden.

MRTG gebruikt een implementatie van SNMP die geheel geschreven is in Perl zodat er geen andere pakketten hoeven te worden geïnstalleerd. Het hoofdprogramma is geschreven in C om het loggen en weergeven in GIF te versnellen. Het grafische gedeelte wordt afgehandeld met behulp van de GD bibliotheek van Thomas Boutell, auteur van de WWW FAQ.

De kracht van MRTG is zijn uitbreidbaarheid en krachtige configuratiemogelijkheden. Het is heel eenvoudig om andere dan verkeer gerelateerde variabelen te bekijken zoals onder andere foutpakketten, systeembelasting en modem beschikbaarheid. Het is zelfs mogelijk om gegevens van een andere bron in te voeren zodat je ook niet-SNMP gerelateerde gegevens kan bekijken zoals login sessies.

Het heeft een aantal hulpmiddelen om router koppelingen uit te vragen en op basis hiervan een configuratiebestand te genereren die je eenvoudig kunt wijzigen voor je eigen behoeften.

Een andere interessante eigenschap van MRTG is de hoeveelheid informatie die het genereert. Het heeft vier mogelijke representaties voor ieder interface: de afgelopen 24 uur, de afgelopen week, de afgelopen maand en een jaaroverzicht. Dit geeft de mogelijkheid gegevens te verzamelen voor statistische doeleinden. Het houdt een accumulerende database bij met een regelmatige consolidatie van de gegevens om te voorkomen dat het te veel diskruimte in beslag gaat nemen.

Het genereert ook een overzicht met GIF-plaatjes die een samenvatting laat zien van iedere router-koppeling die je in één blik laat zien hoe je router er voor staat. Een voorbeeld van een MRTG overzicht en een detailoverzicht is gegeven in figuren 3 en 4.

Figuur 3. Overzichtspagina koppeling Figuur 4.Detailpagina koppeling
Klik in de figuren om het beeld te vergroten.
Laten we eens een doorsnee installatie doen. Allereerst moet je een distributie van MRTG te pakken zien te krijgen. De laatste versie is 2.1 (zie ook de referenties aan het eind).

Je moet eerst de grafische bibliotheek GD installeren voordat je MRTG kan installeren (zie de referenties). De huidige versie hiervan is 1.2 en het zou probleemloos moeten installeren. Voer het commando make uit in de directory waar je de distributie hebt uitgepakt en als resultaat heb je dan het bestand libgd.a. Kopieer dit bestand naar /usr/local/lib en de .h bestanden naar /usr/local/include/gd.

Daarmee is GD geïnstalleerd en klaar voor gebruik. Het is nu tijd voor het bouwen van MRTG. Pak de distributie uit en wijzig de bijbehorende ../../common/January1998/Makefile om aan te geven waar de GD bibliotheek en de .h bestanden zijn te vinden. Tevens aangeven waar het Perl 5.003 programma te vinden is. Meestal in /usr/bin/perl of /usr/local/bin/perl. Dit gaat allemaal via de variabelen GD_LIB, GD_INCLUDE en PERL.

Bouw het hoofdprogramma met het commando $ make rateup en geef na compilatie het commando $ make substitute om het juiste padnaam aan te brengen in de Perl scripts die MRTG gebruikt.

Kopieer de volgende bestanden naar de uiteindelijk bestemming voor programma's (zoals /usr/local/mrtg): BER.pm, SNMP_session.pm, mrtg en rateup. Hier kunnen ook de configuratieprogramma's indexmaker en cfgmaker neer worden gezet.

Vergewis je ervan dat het execution bit aan staat voor alle programma's. We zijn nu klaar voor het maken van een eenvoudig configuratiebestand. Op dit moment moet je leesrechten hebben op je SNMP-router. In een Cisco-router ziet dat er als volgt uit:

access-list 99 permit 193.147.0.8
access-list 99 permit 193.147.0.9
access-list 99 permit 193.147.0.130
snmp-server community public RO 99
Hiermee geef je leesrechten aan de adressen die genoemd staan in toegangslijst 99 met "public" als wachtwoord (community). Als je wil dat ieder apparaat in het netwerk leesrechten krijgt dan geef je het volgende:
        snmp-server community public RO
Als je een ander merk router hebt ga dan na in de handleiding hoe je SNMP-toegang kan verlenen.

Het cfgmaker script maakt het aanmaken van een configuratiebestand erg eenvoudig. Het enige wat je hoeft te doen is het aan te roepen met de volgende argumenten:

cfgmaker <community>@<router-host-name or IP>
Bijvoorbeeld:
cfgmaker public@mec-router.rediris.es > mrtg.cfg
Het zal iedere koppeling in je router achterhalen en een sectie in het bestand zetten met daarin details als aantal koppelingen, maximumsnelheid, beschrijving etc. met daarbij wat HTML-tags voor representatie in je detailoverzicht. Het is mogelijk om deze HTML opmaak te wijzigen naar eigen smaak, taal enzovoorts. In figuur 5 een voorbeeld van de uitvoer voor één van mijn routers.
Figuur 5
Target[mec-router.1]: 1:public@mec-router MaxBytes[mec-router.1]: 1250000 Title[mec-router.1]: mec-router.rediris.es (mec-router.mec.es): Ethernet0 PageTop[mec-router.1]: <H1>Estadisticas del puerto Ethernet0<BR> Red del MEC (MECNET)</H1> <TABLE> <TR><TD>System:</TD><TD>mec-router.rediris.es en RedIRIS </TD></TR> <TR><TD>Maintainer:</TD><TD>david@mec.es</TD></TR> <TR><TD>Interface:</TD><TD>Ethernet0 (1)</TD></TR> <TR><TD>IP:</TD><TD>mec-router.mec.es (193.147.0.1)</TD></TR> <TR><TD>Max Speed:</TD> <TD>1250.0 kBytes/s (ethernetCsmacd)</TD></TR> </TABLE>
Nu kun je voor het eerst het programma mrtg gebruiken.
$ ./mrtg mrtg.cfg
Als alles goed gaat zal hij contact zoeken met je router, wat waarden opvragen en wat log- bestanden en GIF-plaatjes aanmaken in je huidige directory. Maak je geen zorgen over het geklaag dat hij bestanden niet kan vinden, dit gebeurt alleen de eerste keer. Verwijder de grafieken en start het programma opnieuw. De grafiek zal het verkeer laten zien sinds de laatste keer dat je het programma hebt gestart. Het zal ook HTML pagina's maken voor iedere koppeling.

Het wordt nu tijd om MRTG behoorlijk met je systeem te integreren. Maak allereerst een directory aan in de Document Root van je Web server (aannemende dat je een web-server draait op dat systeem) voor de plaatsing van pagina's en grafieken die MRTG aanmaakt. Voeg het pad van deze directory toe aan het begin van je configuratiebestand met de instructie Workdir: /usr/local/web/mrtg (even aannemende dat je Document Root in /usr/local/web staat). De volgende keer dat je MRTG opstart zal het logbestanden en grafieken aanmaken in deze directory, waarna je ze kunt bewonderen via http://jou_systeem.domain/mrtg.

Nu wil je graag een hoofdpagina hebben voor alle koppelingen zoals weergegeven in figuur 3. Dit kan worden gedaan met het indexmaker hulpmiddel.

indexmaker mrtg.cfg <router-name regexp> > /usr/local/web/mrtg/index.html
Dit zal een HTML pagina aanmaken met de dagelijkse grafieken van de koppelingen op de routers die zijn gevonden met de opgegeven regulier expressie. Tevens zal deze links bevatten naar de detailoverzichten.

Zoals je zult begrijpen zal MRTG regelmatig moeten worden opgestart om data te kunnen opvragen van het afgelopen interval om de grafieken te kunnen aanmaken zodat de real time illusie kan worden gehandhaafd. Dit kun je realiseren door de volgende regel in crontab aan te brengen (aannemende dat het programma nu op zijn definitieve plaats in /usr/local/mrtg-bin/mrtg staat):

0,5,10,15,20,25,30,35,40,45,50,55 * * * * \
/usr/local/mrtg-bin/mrtg \
/usr/local/mrtg-bin/mrtg.cfg > \
/dev/null 2>&1
In een RedHat distributie zou het volgende in /etc/crontab moeten staan:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * root \
/usr/local/mrtg-bin/mrtg \
/usr/local/mrtg-bin/mrtg.cfg > \
/dev/null 2>&1
Als alles nu naar behoren werkt kun je gaan experimenteren met de configuratie en de HTML index pagina. Een goede verbetering is het aanbrengen van een <META…> tag in de <HEAD> sectie om het bladerprogramma te dwingen zijn pagina iedere 300 seconden te verversen met de laatste gegevens.

Een andere mogelijke verbetering is het aanbrengen van het WriteExpire commando, wat MRTG dwingt tot het aanmaken van .meta bestanden voor HTML en GIF, waarmee onnodig cachen door proxy servers en bladerprogramma's wordt voorkomen. Om dit te laten werken moet je ook nog je Apache server configureren (aannemende dat je de Apache server gebruikt) zodat deze de .meta bestanden leest en de juiste "Expire" headers verstuurt met het MetaDir commando in het XXXX bestand.

Je kunt ook een kijkje nemen in het meegeleverde voorbeeld configuratiebestand voor andere mogelijke commando's; het is goed gedocumenteerd. Het is mogelijk om de opmaak van alle plaatjes en pagina's die MRTG aanmaakt te veranderen.

Ik hoop dat je plezier hebt van het programma. Als dat zo is, stuur de makers dan een ansicht, hun adres staat op de MRTG thuispagina.  

Andere programma's

Er is een gelijkend programma genaamd Router-Stats, gemaakt door Iain Lea, maker van het vermaarde tin news reader. Router-Stats werkt zijn grafiek één keer per dag bij en laat interessante statistieken zien aangaande belasting per uur en andere aspecten. Nadeel van Router-Stats is dat het een hoop externe programma's gebruikt om zijn werk te doen (CMU-SNMP voor het SNMP-gedeelte, GNUPLOT voor de grafieken, NetPBM voor wat grafische conversies en GIFTOOL voor de conversie naar uiteindelijke GIF-plaatjes). Zie de referenties aan het eind voor een URL.

Er is nog een andere categorie software die nog een stap verder gaat met de netwerk beheertaken en een complete oplossing biedt voor zowel het in de gaten houden van het netwerk alsook het configureren daarvan. Een dergelijke oplossing geeft ons de mogelijkheid om complete grafische schema's op te zetten van hele netwerken waarbij we alle elementen hieruit kunnen afgrazen, bepaalde configuraties kunnen controleren en meer interessante mogelijkheden.

Op dit niveau kunnen we het hebben over twee veelgebruikte commerciële pakketten, HP- OpenView van Hewlett-Packard en SunNet Manager van Sun. Deze leveren een compleet platform voor het beheer van alle apparatuur in een netwerk met prachtige grafische koppelingen. Meegeleverd worden hulpmiddelen om automatisch de configuratie van een (SNMP-)netwerk te achterhalen en databases voor het opslaan van alle opgehaalde informatie voor statistische doeleinden. Een belangrijke eigenschap van deze pakketten is de mogelijkheid om te integreren met fabrikantspecifieke software zoals Cisco's CiscoWorks die een netwerkbeheerder in staat stelt om een database bij te houden met alle router configuraties en zelfs de mogelijkheid geeft om grafisch de back panels van routers met hun connecties in de gaten te houden.

Er kleven twee nadelen aan deze producten: ze zijn alleen commercieel te verkrijgen en draaien niet op Linux. Er zijn natuurlijk ook oplossingen te verkrijgen in de Public Domain. Eén van de beste producten die ik daarvoor tot nu toe gevonden heb is Scotty. Scotty is een pakket, op TCL gebaseerd, die je in staat stelt om specifiek op jouw omgeving gerichte netwerk management software te ontwikkelen met gebruik van een abstracte, op strings gebaseerde koppeling (API). Het bijgeleverde pakket Tkined is een netwerk editor die je in staat stelt een compleet raamwerk te bouwen met daarin mogelijkheden als het ontdekken van IP netwerken, ondersteuning voor het ontwerpen van het netwerk of het fouten zoeken in een netwerk met behulp van SNMP en in combinatie met andere standaard hulpmiddelen (traceroute). Scotty heeft ook nog een grafisch MIB bladerprogramma die je in staat stelt MIB-informatie te onderzoeken.

Je kunt de referenties aan het einde bekijken voor een opgave van commerciële en publiekelijk te verkrijgen netwerk management software.  

Afronding

SNMP is een simpel en krachtig protocol dat ons kan helpen het netwerk in de gaten te houden zonder het te veel te belasten. Het is mogelijk dat de huidige ontwikkelingen de complexiteit en toepasbaarheid zullen verhogen maar dit zal onvermijdelijk ten koste gaan van de netwerkbelasting.

In dit artikel zijn we ingegaan op een aantal producten die op het Net kunnen worden gevonden. Er worden iedere dag nieuwe hulpmiddelen gemaakt. Je kunt de Usenet nieuwsgroep comp.protocols.snmp volgen om op de hoogte te blijven van de laatste ontwikkelingen.

Referenties
CMU-SNMP voor Linux:
ftp://sunsite.unc.edu/pub/Linux/system/network/admin/cmu-snmp-linux-3.2-bin.tar.gz
PERL 5 uitbreidingsmodule voor CMU-SNMP:
ftp:/ftp.wellfleet.com/netman/snmp/perl5/SNMP.tar.gz
Multi Router Traffic Grapher (MRTG):
http://www.ee.ethz.ch/~oetiker/webtools/mrtg/mrtg.html
GD Grafische bibliotheek: (nodig voor MRTG)
http://www.boutell.com/gd/
Perl 5.003: (nodig voor MRTG)
http://www.perl.com/perl/info/software.html
MRTG mailing lists:
Discussion list
mail naar mrtg-request@list.ee.ethz.ch met "subscribe" in het subject-veld

Announce list
mail naar mrtg-announce-request@list.ee.ethz.ch met "subscribe" in het subject-veld
Router Stats:
http://www.scn.de/~iain/router-stats/
SNMP Netwerk Management Software:
http://wwwsnmp.cs.utwente.nl/software/
Scotty:
http://wwwsnmp.cs.utwente.nl/~schoenw/scotty/
Scotty voor Linux:
ftp://sunsite.unc.edu/pub/Linux/system/network/admin/tkined-1.3.4+scotty-ELF.tar.gz
 

Meer informatie:

Lees de "Network Administration Guide"
Site onderhouden door het LinuxFocus editors team
© David Guerrero
LinuxFocus 2000

Click here to report a fault or send a comment to Linuxfocus
Translation information:
en -> --
en -> nl

2000-04-25, generated by lfparser version 1.4