SLP - Service Location Protocol

Transcrição

SLP - Service Location Protocol
SLP - Service Location Protocol
http://www.computerworld.ch/domino/...6617654125686a0046d145?OpenDocument
SLP - Service Location Protocol
Der Internetstandard SLP hilft in reinen IP-Umgebungen unter Netware 5, NCP-Dienste zu
lokalisieren.
Erscheinungsdatum: 03.01.2000
Rubrik:
Hintergrund
Autor:
Silvia Hagen*
Vorlieb nehmen. Zwar hat IPX den Vorteil, dass es nicht konfiguriert werden muss. Dafür belastet es mit vielen
Broadcasts das Netzwerk. Schliesslich führte Novell vor einigen Jahren Netware/IP ein. Dabei wurde der
IPX-Header einfach im IP-Paket eingebettet. Das war jedoch nicht das, was die Anwender wollten, sie verlangten
vielmehr eine reine IP-Umgebung. Mit Netware 5 kam Novell diesem Wunsch entgegen: Wenn man sich ein
Netware 5 Packet im Protokoll Analyzer ansieht, findet man endlich den NCP-Header (Netware Core Protocol)
direkt über dem TCP- (Transport Control Protocol) oder UDP-Header (User Datagram Protocol) - Pure IP!
Möglich wird dies unter anderem dank dem in Netware 5 implementierten Service Location Protocol (SLP), einem
Protokoll, das für das Lokalisieren von Diensten in einer TCP/IP Umgebung benützt werden kann. SLP ist keine
Erfindung von Novell, sondern ein Internet Standard. SLP Version 1 wurde im Juni 1997 standardisiert (Request
for Comment, RFC 2165). Netware 5 ist eine der ersten und zur Zeit wahrscheinlich die gängigste Implementation
dieses noch relativ jungen Protokolls. Im Juni 1999 wurde SLP Version 2 standardisiert (RFC 2608). Das Protokoll
wurde skalierbarer gestaltet, damit es den Anforderungen grosser Netzwerke gerecht wird. Wer heute Netware 5
und den neusten Novell Client installiert, arbeitet mit SLP Version 1. Novell wird allerdings SLPv2 so bald wie
möglich implementieren.
Mitspieler
Dieser Artikel soll erklären, wie SLP (Service Location Protocol) funktioniert und wie es in Netware 5 implementiert
ist. Um zu verstehen, wann und wie Netware Clients und -Applikationen SLP benützen, sollen hier erst ein Paar in
diesem Zusammenhang gebräuchliche Begriffe erklärt werden.
· User Agents:Ein User Agent (UA) ist ein Agent, der für eine Applikation einen SLP-Request macht, um einen
Dienst zu finden. Wenn der Netware 5 Client mit TCP/IP auf Windows installiert wird, so wird ein SLP UA
mitinstalliert. Dessen Aufgabe ist es nun, für den Client einen Login-Server zu finden, damit sich der Benutzer im
Netzwerk anmelden kann. Bei einer Standardinstallation des Clients ist der UA aktiv und wird während des
Bootprozesses initialisiert. In einer reinen IP-Umgebung unter Netware 5 ist SLP die einfachste Methode, einen
Login-Server zu finden. Eine andere Variante wäre zum Beispiel, dies über die Konfiguration durch einen DHCP
(Dynamic Host Configuration Protocol) Server zu machen.
· Service Agents: Ein Service Agent (SA) agiert, wie es sein Name schon sagt, für einen Dienst. Er antwortet direkt
auf SLP Service Requests von UAs. Gibt es jedoch im Netzwerk einen oder mehrere Directory-Agents (siehe
unten), so wird der SA seine Dienste bei diesem Directory Agent eintragen. Jeder Netware 5 Server, der mit
TCP/IP konfiguriert ist, hat einen SA.
· Directory Agents: Ein Directory Agent (DA) führt ein Verzeichnis von Diensten. Er beantwortet die Anfragen von
UA nur dann, wenn er Information über den gesuchten Dienst hat. Um in einem Netware-5-Netzwerk einen
Directory Agent aufzusetzen, wird auf dem Server ein spezielles Zusatzmodul (Netware Loadable Module, NLM)
geladen (slpda.nlm). Nicht jeder Netware-5-Server braucht ein DA zu sein. Üblicherweise wird pro Lokation
lediglich ein Server als DA aufgesetzt, und alle anderen Server registrieren ihre Services bei diesem DA. Wenn ein
User Agent bootet, sucht er einen DA, der sich mit einer sogenannten DAAdvert Message meldet. Nun kann der
Anwender seine SLP-Requests an diesen DA senden, der alle Service Agents im Netz kennt. Zusätzlich kann im
NWADMIN, dem Administrationsprogramm von Netware) SLP konfiguriert werden.
· Scopes: Verschiedene Dienste lassen sich durch die Konfiguration von sogenannten Scopes in administrative
Gruppen zusammenfassen. Die Scopes können frei gewählt werden. Eine gängige Art, Scopes zu definieren ist
nach geografischen Merkmalen. Also zum Beispiel ein Scope pro Lokation. Eine andere Variante wäre, Scopes
nach Diensten zu gruppieren. Also beispielsweise ein Scope für die Printer, ein Scope für die Server und so
1 of 4
6/23/00 4:34 PM
SLP - Service Location Protocol
http://www.computerworld.ch/domino/...6617654125686a0046d145?OpenDocument
weiter. In der Praxis hat sich der geografische Ansatz bewährt.
SLP-Netzwerk-Design
Wie ein SLP Netzwerk aufgebaut wird, hängt von der Grösse des Netzwerkes und den Anforderungen ab. In
einem kleinen Netzwerk etwa braucht man keinen Directory Agent. Die User Agents senden ihre SLP-Anfragen via
Multicast ins Segment und die vorhandenen Service Agents beantworten diese Anfragen direkt (siehe Abbildung
1). Dieses Netzwerkdesign lässt sich sehr einfach aufsetzen, es entspricht den client- und serverseitigen
Grundeinstellungen von Netware 5. Das ist sozusagen die «Plug-and-play»-Variante von SLP.
In grösseren Installationen mit vielen Service Agents kann dieser Netzwerkaufbau ungünstig sein. Denn wenn
Hunderte von Service Agents die User-Anfragen beantworten, gibt das ziemlich viel unkontrollierten
Netzwerkverkehr. In diesem Fall wird ein Server als Directory Agent aufgesetzt. Die Service Agents registrieren
nun ihre Dienste bei diesem DA, der seinerseits mittels Unicast (direkte TCP/IP-Kommunikation zwischen zwei
Rechnern) die Anfragen der UAs beantwortet.
Abbildung 2 zeigt das Netzwerk einer Firma, die eine Geschäftsstelle in Zürich und eine in Paris hat. Die beiden
Niederlassungen sind mit einem WAN-Link verbunden. An beiden Orten wird ein Server als Directory Agent
konfiguriert. Alle drei Agenten (UA, SA und DA) erhalten einen administrativen Scope für das jeweilige Netzwerk.
Also Scope «Paris» für alle Pariser Benutzer, die Pariser Server und den DA und Scope «Zürich» für alle Zürcher
Benutzer, den dortigen Server und den Zürcher DA.
Die Service Agents registrieren ihre Dienste beim lokalen Directory Agent. Dieser beantwortet die SLP-Requests
der Anwender (Clients). Der DA in Zürich führt nun eine Dienst-Datenbank für alle Dienste in der Lokation Zürich,
während der DA in Paris ein Verzeichnis aller Pariser Dienste hat. Dadurch, dass auf beiden Seiten des
WAN-Links ein Directory Agent vorhanden ist, verhindert man, dass SLP-Requests über das WAN gehen. Die
Anfragen für lokale Dienste können vom lokalen DA beantwortet werden. Diese Konfiguration erweist sich dann
als proble-matisch, wenn Benutzer in Zürich auf Dienste in Paris (und umgekehrt) zugreifen wollen.
Der SLP-Standard definiert kein Protokoll für die Kommunikation zwischen Directory Agents. Die beiden DAs
können also so ihre Service-Datenbanken nicht abgleichen. Damit der Zugriff auf Dienste in der anderen
Zweigstelle möglich sind, gibt es verschiedene Varianten.
· Man kann die User Agents so konfigurieren, dass sie beide Directory Agents kennen. Damit geht jedoch unter
Umständen ein Teil des SLP-Verkehrs über den WAN-Link - was vertretbar ist, wenn es nur einzelne Anwender
betrifft.
· Service Agents lassen sich auch so konfigurieren, dass sie sich bei beiden Directory Agents registrieren. Damit
verfügen beide DAs über ein Verzeichnis aller Dienste von beiden Niederlassungen. SLP-Anfragen von Usern
können in jedem Fall vom lokalen DA beantwortet werden. Der Nachteil ist, dass jeder Service Agent sich zweimal
registrieren muss, einmal beim lokalen DAs und einmal übers WAN beim DAs der anderen Geschäftsstelle. Dazu
muss man auch wissen, dass die Registrierungen für Dienste dynamisch behandelt werden. Das heisst, sie haben
eine Lebensdauer (Lifetime) und müssen regelmässig erneuert werden, damit das Verzeichnis auf dem Directory
Agent möglichst aktuell ist.
· Einen äusserst eleganten Ersatz für die fehlende DA-DA Kommunikation bieten die NDS (Novell Directory
Services). Novell liefert mit Netware 5 ein SLPDA.NLM mit. Dieses lädt man auf diejenigen Servern, auf denen
man einen Directory Agent wünscht. In der NDS gibt es für jeden DAs ein entsprechendes Objekt. Im obigen
Szenario können die beiden DA-Objekte in der NDS so konfiguriert werden, dass sie beide die Scopes von beiden
Niederlassungen kennen. Nun können die beiden DAs ihre Dienstetabellen austauschen. Dies geschieht über
NDS-Replikation.
Wann braucht es einen DA?
Wie schon gesagt, ist es in einem kleinen Netzwerk durchaus vertretbar, die «Plug-and-play»-Variante ohne DA
zu benützen. Folgende Gründe sprechen aber dafür, einen oder mehrere DA zu konfigurieren.
· Sobald User Agents und Service Agents in verschiedenen Netzwerksegmenten implementiert sind, und auf den
Routern Multicast ausgeschaltet ist, funktioniert SLP nur mit einem DA. Sowohl beim UA als auch beim Service
Agent kann die IP-Adresse des DA statisch konfiguriert werden. Dann funktioniert SLP auch ohne Multicast.
2 of 4
6/23/00 4:34 PM
SLP - Service Location Protocol
http://www.computerworld.ch/domino/...6617654125686a0046d145?OpenDocument
· Wenn beide SLP-Versionen eingesetzt werden und Interoperabilität gebraucht wird, funktioniert dies nur mit
einem Directory Agent. In diesem Falle setzt man einen SLPv2 Directory Agent auf. Er beherrscht beide
Protokollversionen und kann somit Anfragen beider Versionen beantworten.
· Schliesslich ist es auch ratsam, einen Directory Agent aufzusetzen, sobald die Zahl der Dienste hoch ist. Wo
diese Grenze liegt, lässt sich nicht allgemein festlegen. Es hängt vom Netzwerk, der allgemeinen Netzlast, der
eingesetzten Hardware und weiteren Komponenten ab. Viele Dokumentationen zum Thema geben 30 Server
innerhalb eines Multicast Radius als Grenzwert an. Diese Zahl ist jedoch als sehr generelle Richtlinie mit viel
Vorsicht zu geniessen.
SLP-Kommunikation
SLP kann sowohl via UDP als auch über TCP kommunizieren. In beiden Fällen wird Port 427 benützt. Meistens
kommt UDP zum Einsatz. TCP wird höchstens für den Austausch von grösseren Datenmengen eingesetzt.
Während des Boot-Vorgangs sendet ein SLP Device - das kann ein UA oder ein SA sein - ein sogenanntes
Directory Agent Discovery Packet aus. Dieses geht an die Multicast Adresse 224.0.1.35. Das ist die offiziell
registrierte Multicast-Adresse für Directory Agents. Jeder DA, der ein solches Paket sieht, antwortet dem
SLP-Device mit einem sogenannten DA-Advert-Packet. Darin gibt er dem SLP-Device seine IP-Adresse und seine
Scope-Information bekannt. Somit hat der SLP-Device nun eine Liste aller verfügbaren DAs.
Ist der SLP-Device ein User Agent, so wird er nun seine SLP-Requests nicht mehr an eine Multicast-Adresse
senden, sondern direkt via Unicast an den DA. Ist der SLP-Device ein Service Agent, so registriert und
deregistriert er seine Dienste direkt beim DA.
Wenn es keinen Directory Agent gibt, so schickt der User Agent seinen SLP Service Request an die General
Service Location Multicast Adress 224.0.1.22. Jeder Service Agent hört auf diese Multicast-Adresse und wenn er
die vom User Agent gewünschten Dienste kennt, antwortet er direkt auf diese Anfrage.
Multicasting
Broadcasts werden nur im lokalen Segment (Netzwerk) verbreitet. Denn Router, deren Aufgabe es ist,
verschiedene Netzwerksegmente miteinander zu verbinden, geben keine Broadcasts weiter. SLP kann zwar so
konfiguriert werden, dass es statt Multicast Broadcast verwendet, doch ist dies keine wünschenswerte
Konfiguration. Vor allem in Netzwerken mit modernen Switches bringt das einige Nachteile. Vorzuziehen wäre die
Einschränkung des Multicast-Radius auf 1. Das limitiert Multicast auf das lokale Netzwerksegment, wobei es
trotzdem von Switches optimal weitergeleitet wird .
Im Unterschied zu Broadcast kann Multicast geroutet werden. Jeder SLP-Device schickt beim Boot-Vorgang ein
sogenanntes IGMP (Internet Group Management) Membership Packet ins Netz. Wenn Router solche Pakete
sehen, merken sie sich, auf welcher Schnittstelle welche IGMP-Gruppen vorhanden sind. So können sie bei
Multicast-Paketen entscheiden, ob sie diese an andere Netzwerksegmente weitergeben müssen. IP-Router geben
Multicast-Pakete nur an die Netzwerksegmente weiter, in denen andere Devices derselben Multicast-Gruppe
vorhanden sind.
In vielen grösseren Netzwerken wird Multicast auf den Routern ausgeschaltet. In diesem Falle können alle
SLP-Devices auch statisch oder mit DHCP (Dynamic Host Configuration Protocol) konfiguriert werden.
SLP Service Types
Services werden in SLP als URL (Uniform Resource Locator) angegeben. Diese sind im RFC 1738 beschrieben.
Häufig vorkommende Diensttypen sind bei IANA (Internet Assigned Numbers Authority, http://www.iana.org)
registriert.
Service Types werden von Service Agents gebraucht, um ihre Dienste bei DA zu registrieren und deregistrieren.
Sie werden ebenso von DA und SA gebraucht, um Dienste an User Agents weiterzugeben. Wenn URL registriert
werden, haben sie als Attribute unter anderem eine Lifetime (Lebensdauer) und ein Längenfeld.
Wer in einem Netware-5-Umfeld SLP Service Types anschaut, wird voraussichtlich folgende Dienste finden:
· MGW.NOVELL (Compatibility
3 of 4
6/23/00 4:34 PM
SLP - Service Location Protocol
http://www.computerworld.ch/domino/...6617654125686a0046d145?OpenDocument
Mode Gateway / Migration Agent)
· NDAP.NOVELL (NDS) - vergleichbar mit SAP Type 0x0278
· BINDERY.NOVELL (Netware Server) vergleichbar mit SAP Type 0x0004
· SAPSRV.NOVELL (Netware 5
Server mit IPX CMD
· RMS.NOVELL (Resource Management
Service von NDPS)
· SRS.NOVELL (NDPS Broker)
· RCONSOLE.NOVELL (Java Rconsole)
· DIRECTORY.AGENT
Lerne Dein Protokoll kennen
Es gibt unterschiedliche Möglichkeiten, sich näher mit SLP zu befassen. Die schnellste Art, ein Protokoll
kennenzulernen, ist der Gebrauch eines Netzwerkanalyzers. Es gibt verschiedene Werkzeuge in diesem Bereich,
angefangen bei Snoop, das alle Unix-Benutzer kennen, bis hin zu Tools wie Novells Lanalyzer für Windows,
Etherpeek/Tokenpeek von der AG Group, Surveyor von Shomiti oder High-end-Analyzern wie Network Associates
Sniffer Pro und Hewlett-Packards Internet Advisor.
Wenn man sich die Kommunikation eines Protokolls in einem Analyzer-Tracefile anschaut, versteht man schnell,
wie und welche Informationen ausgetauscht werden. Weiss man erst einmal, wie eine normale Kommunikation
aussehen muss, wird man im Ernstfall auch effizient Troubleshooten können.
* Die Autorin arbeitet als Beraterin und Instruktorin für Netzwerke. Ihre Firma Sunny Connection ist unter
http://www.sunny.ch erreichbar.
Weitere Literatur zu SLP
Wer sich lesenderweise mit SLP befassen möchte, dem stehen unter anderem folgende Quellen zur Verfügung:
· Novells Support-Site (http://support.novell.com) hält ein paar gut geschriebene Dokumente zum Thema bereit.
Sie sind über die Suchmaschine der Knowledgebase leicht aufzufinden (SLP als Suchbegriff eingeben).
· Bücher gibt es erst sehr wenige. Empfehlenswert ist etwa «Service Location Protocols for Enterprise Networks»
von James Kempf und Pete St. Pierre, erschienen im Wiley Verlag. Ebenfalls sehr hilfreich ist «Novell's Guide to
Troubleshooting TCP/IP» von Silvia Hagen und Stephanie Lewis, erschienen bei Novell Press. Es behandelt SLP
und Novells Implementation von SLP.
· Im Internet gibt es die Service Location Protocol Homepage. Ohne viel Schnickschnack, aber äusserst
informativ. Sie ist unter http://www.svrloc.org zu finden.
· Last but not least: Lesen Sie die entsprechenden RFC! RFC 2165 für SLPv1 und RFC 2608 für SLPv2. RFC
finden Sie unter verschiedenen Webadressen, so unter: http://www.faqs.org/rfcs/rfcsearch.html.
[Copyright Computerworld (CH), International Data Group Inc.]
...........................
4 of 4
6/23/00 4:34 PM

Documentos relacionados