SHIFT-WIKI

--- Sjoerd Hooft's InFormation Technology ---

User Tools

Site Tools


slpedirectory

SLP eDirectory

Samenvatting

SLP staat voor Service Location Protocol en wordt gebruikt om services aan te bieden en op te vragen binnen je netwerk. In feite is het een Naming Resolution Protocol net als DNS, alleen veel flexibeler omdat het ook andere services dan alleen IP-adressen kan opvragen en omzetten. Dit document gaat in op hoe je SLP moet configureren in grote omgevingen met veel WAN verbindingen. Binnen dit document worden een aantal keuzes gemaakt en beargumenteerd, wat het ook geschikt maakt als leidraad voor andere omgevingen. Kijk bij elke keuze of de beargumentatie ook op jouw omgeving van toepassing is. Verder wordt binnen dit document gekeken naar verschillen in implementatie en configuratie tussen OES Netware en OES Linux. Bij de werkstation configuratie worden zowel Windows clients als Linux clients behandeld. Dit document is van toepassing op eDirectory 8.7.3 maar is waarschijnlijk ook toe te passen op andere versies van eDirectory beginnend bij 8.7. Waar nodig worden bronnen vermeld om bepaalde keuzes en argumenten nader toe te lichten. Dit document gaat verder uit van basiskennis van SLP termen en werking. Algemene bronnen: SLP Design & Implementation Guidelines
eDirectory 8.7.3 Administration Guide
Linux SLP Quickstart
How to setup your Linux Desktop for SLP
Configuring an OpenSLP DA for OES Linux

SLP Scope

Een scope is simpel gezegd de container waarin de services worden geplaatst en geraadpleegd. Novell's implementatie van SLP maakt het mogelijk om één scope door meerdere Directory Agents te laten afhandelen, waardoor je dus de mogelijkheid hebt voor fault tolerance van je SLP implementatie. Het is echter wel toegestaan om meerdere scopes te hebben. Indien je organisatiestructuur het toelaat en je voldoet aan het volgende rijtje van voorwaarden kun je het beste één scope configureren en deze laten afhandelen door twee of meer directory agents. De beste voorwaarden om hiervan gebruik te maken zijn:

  • Je gebruikt SLPv2 (standaard vanaf Netware 6)
  • Je hebt niet meer dan 10.000 services die geregistreerd moeten worden (vanaf ongeveer 500 NCP servers)

Bij het gebruik van scopes heb je nog de keuze tussen een unnamed scope, of een named scope. Aangezien een unnamed scope niet meer ondersteund wordt door SLPv2 gaan we in dit document ervan uit dat er gebruik wordt gemaakt van een named scope.

Directory Agent (DA)

De DA is de server die de scope onderhoudt en verzoeken tot registratie en verzoeken om informatie afhandeld. Zoals al eerder gezegd biedt Novell's implementatie van SLP de mogelijkheid om één scope door meerdere DA's te laten afhandelen. Omdat de DA zowel voor de Service Agents de registraties afhandeld en voor de User Agents de informatieverzoeken afhandeld is de fysieke plaatsing van de DA erg belangrijk. De eerste DA zou geplaatst moeten worden op de locatie met de meeste gebruikers, de tweede op de locatie die daarna de meeste gebruikers heeft, of op dezelfde locatie als de eerste in verband met synchronisatie van eDirectory. Het is niet nodig om op iedere locatie een DA te plaatsen. Een DA die verder geen taken heeft binnen de organisatie kan afhankelijk van de hardware tussen de 2.000 en 25.000 gebruikers bedienen. Met behulp van de health monitor in de Netware Remote Manager kun je kijken of de server alle verzoeken aan kan, en indien dit niet het geval is, welk onderdeel daar de oorzaak van is. De globale richtlijn schrijft voor om minimaal twee DA's te hebben en per 10.000 tot 20.000 gebruikers hier één extra aan toe te voegen. Een laatste iets waar je mee rekening moet houden is dat de DA een R/W of Master replica MOET hebben van de partitie waar de scope unit container in zit.

Server configuratie Netware

Standaard is een nieuw ingerichte server klaar om SLP te gebruiken door middel van multicast. Omdat dit veel verkeer op kan leveren op WAN links en hier grote time-outs op zitten is het beter om alle servers te configureren om gebruik te maken van de ingerichte scope en SLP DA servers. Op een Netware server zijn deze instellingen verdeeld in twee categorieën, SET parameters en de slp.cfg file. De SET parameters zijn op het console in te tikken of in te stellen via Monitor.

SET:

  • NCP over UDP = ON
    • Alhoewel het uitzetten van deze parameter het SLP verkeer zou verminderen zijn er behoorlijk wat bijwerkingen. Deze instelling uitzetten zou je moeten testen in een niet-productie omgeving.
  • SLP CACHE TIMEOUT = 1800
    • Deze instelling verminderd het SLP verkeer over je netwerk
  • SLP ENABLE UA MULTICAST = OFF
    • Indien je geen IPX gebruikt op je gehele netwerk kun je deze het beste aan zetten om te voorkomen dat na het uitvallen van je DA je netwerk weg valt. Indien je geen multicast gebruikt kun je deze uitzetten
  • SLP REGISTER NWSERVER = ON
    • Wordt wel gebruikt voor de Netware server registratie, in tegenstelling tot wat de documentatie zegt.
  • SLP SCOPE LIST = <scopenaam>,<scopenaam2>
    • Definieert de scopenaam waar de server al zijn services zal registreren en opvragen
  • SLP DA DISCOVERY OPTIONS = 6
    • Deze waarde wordt bepaald aan de hand van de manieren waarop een UA en een SA de DA mag vinden:
      • 1 : Dynamic Discovery door middel van multicast
      • 2 : Dynamic Discovery door middel van DHCP requests
      • 4 : Static Discovery door middel van het slp.cfg bestand
      • 8 : Zet dynamic discovery uit zolang er een static discovered DA bereikbaar is
      • Indien je geen gebruik maakt van multicast gebruik je de waarde 4 of 6, en anders 13 of 15.

SYS:etc\slp.cfg

Op de laatste regel vermeld je de volgende informatie, waarbij <IP-adres> het IP adres of de DNS naam is van de DA. DNS namen werken wel (sinds SLPv2) maar maakt het wel afhankelijk van een ander Naming Resolution Protocol, en wordt daarom niet aangeraden: DA IPV4, <IP-adres> DA IPV4, <IP-adres van de tweede DA> Tot aan maximaal 5 DA's N.B. Bij het configureren van de DA zelf houdt er dan rekening mee dat een DA NOOIT naar zichzelf mag verwijzen. Dus wel naar een andere DA, maar NOOIT naar zichzelf. Dit is een beperking van Novell SLP.

Licenties

Omdat de SLP service werkt over poort 427 en niet over 524 (NCP) is het niet nodig om voor elke SLP verbinding een licentie te hebben. Zodra er echter over poort 524 verbinding wordt gemaakt, bijvoorbeeld voor een drive mapping of tijdens het inloggen heb je wel licenties nodig.

Controle

Om de configuratie op een Netware server te controleren kun je met de commando's DISPLAY SLP SERVICES en DISPLAY SLP DA de configuratie controleren.

Overig

Bij het veranderen van de SET SLP SCOPE LIST parameter moet de server een complete herstart krijgen (ook wel bekend als een cold boot). Dit in verband met dependencies. Bij het aanpassen van overige instellingen zou een herstart van de SLP service voldoende moeten zijn. Dit doe je met het volgende commando: SET SLP RESET = ON. Na de reset wordt deze waarde automatisch weer op OFF gezet. Een cold boot kun je het best uitvoeren met het commando RESTART SERVER.
Indien het niet lukt om de SLPDA service te starten op de server (bij bijvoorbeeld een nieuwe tree met minder dan drie servers) gebruik de switch /A. Deze configureert en maakt alle SLP objecten met de standaard instellingen.

Server configuratie linux

Het is mogelijk om de OES Linux zowel als DA als SA te configureren. Het enige verschil tussen de twee configuraties is dat je voor de DA moet opgeven dat het de DA is. Verder moet opgemerkt worden dat OES Linux gebruik maakt van OpenSLP, wat weer als nadeel heeft dat de SCOPE niet in eDirectory wordt geplaatst en dat de DA data dus ook niet gesynchroniseerd wordt tussen DA's onderling. Indien je dus een OES Linux server zou configureren als DA maakt deze een lokale scope aan. Deze zal dan dus niet gerepliceerd worden. Hieronder vind je de instellingen om een OES Linux server te configureren als DA of SA. Dit doe je door het /etc/slp.conf bestand aan te passen. Dit kun je doen met een editor als vi of vim, of elke andere willekeurige tekst editor. Je hebt wel root rechten nodig om dit te kunnen doen. In dit bestand staat elke optie nog een uitgelegd. Als je dus twijfelt over bepaalde instellingen kun je je keuzes nog eens bekijken. De regels die je moet aanpassen zijn de volgende drie:

  • net.slp.useScopes = <scopenaam>,<scopenaam2>
    • De scopes die je hier zet zal de default scope worden om zowel te registreren als informatie te verzoeken.
  • net.slp.DAAddresses = <IP-adres van DA>,<IP-adres van tweede DA>
    • Geef de DA's op waar de server zowel moet registreren als informatie op moet halen
  • net.slp.isDA = True / False
    • Stel de desbetreffende server in als DA, standaard is False (dus SA)
  • net.slp.isBroadcastOnly = False
    • Indien je dit aanzet gebruikt SLP broadcasts in plaats van multicasts voor discovery
  • net.slp.passiveDADetection = False
    • Door deze instelling op False te zetten zullen broadcast berichten van DA's worden genegeerd
  • net.slp.activeDADetection = False
    • Door deze instelling op False te zettebn voorkom je dat de SA periodiek op zoek gaat naar nieuwe DA's.
  • net.slp.DAActiveDiscoveryInterval = 0
    • 0 betekent dat er tijdens het opstarten van de SLP service geen discovery broadcast wordt verzonden
    • 1 betekent dat er alleen tijdens het opstarten van de SLP service een discovery broadcast wordt verzonden
    • Elke andere waarde representeert het aantal secondes tussen discovery broadcasts.

Als je de wijzigingen hebt opgeslagen moet je nog wel met rootrechten de SLP service herstarten: /etc/init.d/slpd restart/start/stop. Op OES linux kun je ook het commando rcslpd restart/start/stop gebruiken.

Controle

OpenSLP op Linux heeft een eigen logfile. Deze staat op /var/log.slpd.log Verder kun je in een terminal SLP controleren met het commando slptool. Met het commando slptool findsrvs service vind je de DA's die geconfigureerd zouden moeten zijn. Met het commando slptool findsrvs service:ndap.novell vind je alle informatie over partities en replica's.

Server configuratie Windows

Ook een Windows server die is geconfigureerd voor eDirectory kan meedoen in het SLP verhaal. Een Windows server kun je zowel als SA als DA installeren en configureren. De installatie bestanden staan op de eDirectory cd voor Windows. Voor verdere installatie en configuratie verwijs ik je naar de eDirectory handleiding.

Infrastructuur

SLP verkeer gebruikt de TCP en UDP poort 427, deze zal dus opengezet moeten worden. Indien er gebruik wordt gemaakt van multicast om DA's te ontdekken zal multicast verkeer naar 224.0.1.22 (SA verzoeken) en 224.0.1.35 (DA verzoeken) open gezet moeten worden. DHCP verkeer kan gebruikt worden om SLP info te verkrijgen, ook indien de werkstations geconfigureerd zijn met vaste IP-adressen. Echter, de Novell DHCP servers is één van de weinige die deze informatie correct kan aanleveren, deze heb je dus nodig indien je hiervan gebruik gaat maken. Bij het gebruik maken van multicast discovery kun je zowel op de servers als op de clients instellen hier geen gebruik van te maken zolang er nog een statische DA aanwezig is. Echter, als je alle aanwezige DA's configureert op de SA's en UA's is multicast discovery overbodig (omdat alle DA's al bekend zijn).

Windows client configuratie

Om de Windows Clients (UA) automatisch te configureren kun je gebruik maken van DHCP. DHCP heeft twee opties die te maken hebben met SLP, optie 78 en 79. Optie 78 is de enige waar gebruik van wordt gemaakt, 79 is namelijk om de scope aan te geven waarin de services geregistreerd kunnen worden, maar de clients hebben helemaal geen services om te registreren. In optie 78 kun je ook de scope aangeven, maar door deze leeg te maken neemt de client automatisch de scope over van de DA die hij opkrijgt. Hieronder zie je het scherm om DA's op te geven. Door op Add te klikken kun je een DA configureren voor de werkstations. Je kunt hier gewoon meerdere DA's laten uitrollen door twee DA's te configureren. Verder is de optie Mandatory geselecteerd. Dat houdt in dat lokale instellingen worden overschreven met de instellingen die je hier opgeeft. dhcpoptions.jpg
Verder kun je nog in de Novell Client configuratie een aantal instellingen aanpassen om bijvoorbeeld multicasting en time-outs te voorkomen:

  • Service Location Tab – Directory Agent List – Static aanvinken
    • Deze instelling zorgt ervoor dat er geen multicast verzoeken worden gegenereerd door de client en dat multicasts door DA's worden genegeerd.
  • Advanced Settings Tab – SLP Active Discovery op Off zetten
    • Door deze optie uit te vinken dwing je de UA om door middel van een unicast contact te leggen met de DA. De combinatie van static scopes en geen active discovery voorkomt geheel het gebruik van multicast vanuit de client.
  • Advances Settings Tab – SLP Cache replies: 15 minuten
    • Het veranderen van deze instelling van 1 naar 15 minuten voorkomt time-outs.

Deze drie instellingen vertalen zich op de volgende manier in het register:

  • [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SRVLOC\Parameters]
    • “Static DAs”=“ON”
    • “Active Discovery”=“OFF”
    • “TIME-0-CACHE-REPLIES”=dword:0000000f

De werkstation configuratie is te controleren op een werkstation met het commando slpinfo (op te geven in een command box). De switch /D geeft mooie informatie over de DA configuratie. Zowel de DHCP service als het werkstation moet herstart worden om alle veranderingen door te voeren. Indien je DA's gebaseerd zijn op OpenSLP (zoals bij OES Linux) moet je de volgende registry aanpassing maken: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SRVLOC\Parameters]

"Use SingleEquals in Where (V2)"=dword:00000001

Zonder deze aanpassing kan de Novell Client niet communiceren met een OpenSLP DA. Als je een Novell Client hebt nieuwer dan 4.90 SP1 (ouder dan december 2004) is deze instelling niet noodzakelijk.

Linux Client configuratie

De linux client configuratie kun je aanpassen door het /etc/slp.conf bestand aan te passen. Dit kun je doen met een editor als vi of vim, of elke andere willekeurige tekst editor. Je hebt wel root rechten nodig om dit te kunnen doen. De regels die je moet aanpassen zijn de volgende twee: net.slp.useScopes = <scopenaam>,<scopenaam2> net.slp.DAAddresses = <IP-adres van DA>,<IP-adres van tweede DA> Deze regels staan standaard niet geconfigureerd doordat ; ervoor is geplaatst. Deze moet je dus weghalen. Als je de wijzigingen hebt opgeslagen moet je nog twee dingen doen. Weer met rootrechten moet je het volgende commando geven: rcslpd restart. Verder moet je nog uitloggen en opnieuw inloggen om alle wijzigingen toe te passen.

Plaatsing van objecten in eDirectory

De beste wijze om te bepalen waar de SLP objecten in de TREE moeten komen is erg gemakkelijk. Ten eerste geldt: hoe hoger hoe beter. En verder is het aan te raden om alle objecten in dezelfde container te plaatsen. Er gelden vanuit Novell de volgende aanraders en of eisen:

  • De server die DA is moet minimaal een RW replica hebben van de partitie waar de Scope Unit in is geplaatst.
  • De scope unit kan het best zo hoog mogelijk onder het Organization object worden geplaatst.
  • Het is raadzaam het DA_server object en het NCP_server object in dezelfde container te houden.

Overig

DNS is belangrijker dan SLP (voor TREE name resolving). Sinds eDirectory 8.7.1 wordt DNS als eerste resolution protocol gebruikt om de tree te vinden indien de server of applicatie zelf geen weet hiervan heeft. Zodoende moet je de volgende DNS records aanmaken: A <tree-name>.<dns-suffix> <IP-adres server met replica> Indien eDirectory niet draait op poort 524 moet je in plaats van een A record een SRV record gebruiken.

slpedirectory.txt · Last modified: 2021/09/24 00:25 by 127.0.0.1