
Transcription
Einführung Unix/LinuxKapitel: NetzwerkeJens Roesen [email protected] Würzburg, März 2010Version: 0.1.5 – sehr beta –
c Copyright 2002 - 2010 Jens RoesenDie Verteilung dieses Dokuments in elektronischer oder gedruckter Form ist gestattet,solange sein Inhalt einschließlich Autoren- und Copyright-Angabe unverändert bleibtund die Verteilung kostenlos erfolgt, abgesehen von einer Gebühr für den Datenträger,den Kopiervorgang usw.Die in dieser Publikation erwähnten Software- und Hardware-Bezeichnungen sind in denmeisten Fällen auch eingetragene Warenzeichen und unterliegen als solche den gesetzlichen Bestimmungen.Dieses Dokument wurde in vim (http://www.vim.org) bzw. TEXnicCenter(http://www.texniccenter.org/) geschrieben und mit LATEX(http://www.latex-project.org/) formatiert und gesetzt.Die jeweils aktuelle Version ist unter http://www.roesen.org erhältlich.
InhaltsverzeichnisVorwortiv1 Netzwerke1.1 Das Open Systems Interconnect Modell . . . . .1.1.1 Application Layer / Anwendungsschicht1.1.2 Presentation Layer / Darstellungsschicht1.1.3 Session Layer / Sitzungsschicht . . . . .1.1.4 Transport Layer / Transportschicht . . .1.1.5 Network Layer / Vermittlungsschicht . .1.1.6 Data Link Layer / Sicherungsschicht . .1.1.7 Physical Layer / Bitübertragungsschicht1.2 TCP/IP Referenzmodell . . . . . . . . . . . . .1.2.1 Application layer / Anwendungsschicht .1.2.2 Transport Layer / Transportschicht . . .1.2.3 Internet Layer / Internetschicht . . . . .1.2.4 Link layer / Netzzugangsschicht . . . . .1.3 IP Adressierung und Subnetting . . . . . . . . .1.3.1 IP-Adressen und Subnetze . . . . . . . .1.3.2 Subnetting . . . . . . . . . . . . . . . . .1.4 ARP - Address Resolution Protocol . . . . . . .1.5 Routing . . . . . . . . . . . . . . . . . . . . . .1.6 Interfacekonfiguration . . . . . . . . . . . . . . .1.6.1 Interfacekonfiguration unter Solaris . . .1.6.2 Interfacekonfiguration unter Linux . . . .1.7 Statische Routen . . . . . . . . . . . . . . . . .1.7.1 statische Routen unter Solaris . . . . . .1.7.2 statische Routen unter Linux . . . . . .11122222333334445678910121212iii.
VorwortMotivationIm Rahmen interner Schulungsmassnahmen kam die Frage nach geeigneten Schukungsmaterialien bzw. einem Skript für Unix-Neulinge auf. Schulungsunterlagen und Skriptefür Einsteiger, aber letztendlich hat mir bei den meisten entweder etwas gefehlt, oder eswar für unseren Zweck viel zu viel irrelevanter Stoff. Da wir in der Hauptsache mit Solarisund Linux-Systemen arbeiten und dabei Themen wie X-Windows oder Druckerverwaltung komplett ausklammern können, aber auf Themen wie Netzwerke, Troubleshooting,Mailserver oder DNS-Server Wert legen, habe ich mich irgendwann hingesetzt und angefangen dieses Skript zu schreiben.Es ist der Versuch Systemadministratoren mit Grundkenntnissen in Unix den Arbeitsalltag zu erleichtern und dabei zwei verschiedene Unix-Geschmacksrichtungen, nämlichSolaris1 und Red Hat Enterprise Linux, gleichermassen zu betrachten.Mir ist durchaus klar, dass nicht alles im Folgenden beschriebene state of the art“ ist”bzw. sein kann und sicher auch noch etliche Fehler übersehen wurden. Wer einen solchenfindet, weiss wie man einige Aufgaben besser lösen kann oder bessere Beispiele kennt istherzlich eingeladen mir eine Mail an [email protected] zu schicken.ZielgruppeDieses Kurzscript ist als Crashkurs zur Einführung in die Administration von Unixund Linux Systemen gedacht. Es wird dabei ausschliesslich auf der Konsole und ohnegrafische Oberfläche gearbeitet. Die gezeigten Beispiele beziehen sich auf Systeme unterSun Solaris und RedHat Enterprise Linux.Ohne Vorkenntnisse und Erfahrung mit Unix und/oder Linux Systemen wird derangesprochene Stoff teils nur schwer zu verstehen sein. Als alleiniges Lehrskript fürblutige Anfänger ist es daher nicht geeignet obwohl in einigen Kapiteln vereinzelt kurzauf Grundlagen eingegangen wird (z.B. Kapitel 2).Aufbau des SkriptsWirr. Durch und durch. Aber zu mehr ist momentan keine Zeit. Ich habe versucht dieKapitel und Themen in eine halbwegs sinnvolle Reihenfolge zu bringen. Im Lauf der Zeitwird da sicherlich noch einiges umgestellt werden.1In der vorliegenden Version des Skripts nur bis Version 9.iv
VorwortTypographischesDa sich alle Beispiele, Kommandos und Ausgaben auf der Konsole abspielen, werdendiese Bereiche entsprechend formatiert um sich vom regulären Text abzusetzen. Nachdem Login als User root, mit dem wir in diesem Skript hauptsächlich arbeiten werden,landet man in einem Command Prompt der so aussehen koennte:[[email protected] root]#Da dieser Prompt ja nach name des Systems oder aktuellem Verzeichnis mal kürzeraber auch sehr viel länger sein kann, wird der root Prompt auf#verkuerzt. Bitte den Hash (#) hier nicht als Kommentarcharakter verstehen, der unterLinux/Unix z.B. in Shellskripten die folgende Zeile vor der Ausführung durch die Shellschützt. Der normale User-Prompt, falls er uns wirklich einmal begegnen sollte, wirdanalog dazu auf zusammengestrichen.Für Konsolenausgaben, Konfigurationsdateien oder Teile von Skripten wird eine nichtproportionale Schrift verwendet:if [ -n " INIT NET IF" -a " INIT NET STRATEGY" "dhcp" ]; then/sbin/dhcpagent -afiWerden in einem Beispiel Konsoleneingaben vom Benutzer erwartet, wird die in einernichtproportionale Schrift dargestellt, wobei die Benutzereingaben fett gedruckt sind:# uname -aSunOS zoidberg 5.9 Generic 118558-21 sun4u sparc SUNW,Sun-Blade-100Kommandos, Dateinamen oder Benutzerkennungen im laufenden Text werden ebenfalls in einer nichtproportionalen Schrift dargestellt: Mit dem Befehl pwd kann überprüft”werden, in welchem Verzeichnis man sich gerade befindet.“.Müssen in einem Beispiel noch Teile der erwarteten Benutzereingaben durch die richtigen Werte ersetzt werden, so wird dieser Teil in kursiver Nichproportionalschrift dargestellt: Für jedes Interface welches beim boot konfiguriert werden soll muß eine Datei”/etc/hostname.interface existieren.“.Eigennamen, Personen oder Organisationen erscheinen manchmal (ich bin gerade zufaul alle Vorkommen entsprechend zu formatieren) in Kapitälchen: Eine sehr große”Rolle hierbei hat die University of California in Berkley (UCB) gespielt, an derThompson im Winter 76/77 eine Vorlesung zum Thema Unix abhielt.“.v
1 NetzwerkeA name indicates what we seek.An address indicates where it is.A route indicates how we getthere.(Jon Postel, RFC 791)In diesem Kapitel werden wir kurz das OSI Modell1 , das Adress Resolution Protocol2und die IP Adressierung wiederholen, bevor wir uns der Konfiguration von Netzwerkinterfaces widmen. Dabei betrachten wir nur IPv43 und lassen IPv64 außen vor.1.1 Das Open Systems Interconnect ModellBereits 1979 begann die Entwicklung eines mehrschichtigen Referenzmodells mit dessenHilfe Kommunikationsprotokolle beschrieben und entwickelt werden können. Dieses Modell regelt welche Anforderungen die im einzelnen beteiligten Protokolle erfüllen müssenum eine reibungslose Kommunikation zu gewährleisten. Die Standardisierung des Referenzmodells erfolgte 1983.Das OSI Modell besteht aus sieben Schichten von Diensten die eine Grundlage fürNetzwerkommunikation und Kommunikationsprotokolle bilden. Jede Schicht (layer) mussbei der Kommunikation die ihr zugedachten Aufgaben erfüllen und reicht danach diebearbeiteten Daten an die nächst niedrigere (beim senden) bzw. nächst höhere (beimempfangen) Schicht weiter. Jede Schickt verpackt die Daten zusätzlich indem sie einenHeader und einen Footer hinzufügt. Dieser Vorgang wird data encapsulation genanntund ermöglichet die Kommunikation der einzelnen Layer untereinander.Abbildung 1.1 auf Seite 2 zeigt den Aufbau des Modell mit einigen bekannten Protokollund Servicebeispielen.1.1.1 Application Layer / AnwendungsschichtDer Application layer stellt als oberste Schicht des OSI Modells den darüberliegendenAnwendung eine Schnitstelle zum Netzwerk dar. Dies können Browser, Mail Clients und1Durch die Internationale Organisation für Normung (ISO) im Jahrt 1983 standardisiert.RFC 826 http://tools.ietf.org/html/rfc8263RFC 791 http://tools.ietf.org/html/rfc7914Unter anderem RFC 2460 http://tools.ietf.org/html/rfc246021
1 NetzwerkeOpen Systems Interconnect ModellAufgabeProtokoll7654321OSI SchichtApplicationPresentation rtorientiertData LinkPhysicalHTTP, FTP, SMTPEinheitDatenTCP UDPIP ICMP IGMPSegmentePaketeFramesEthernet, Token RingBitsAbbildung 1.1: OSI Schichtenmodellähnliches sein.1.1.2 Presentation Layer / DarstellungsschichtDiese Schicht setzt die verschiedenen Datenformate beteiligter Systeme in eine einheitliche Form um und stellt sicher, dass die Daten von der Anwendungsschicht des Kommunikationspartners auch gelesen werden können.1.1.3 Session Layer / SitzungsschichtDiese schickt kümmert sich um die Verbindung, session, und die Prozesskommunikationbeteiligter Systeme.1.1.4 Transport Layer / TransportschichtDie Transportschicht stellt eine Ende-zu-Ende Kommunikation für Sender und Empfängerzur Verfügung und sorgt dafür, dass die Daten auch beim Empfänger ankommen.1.1.5 Network Layer / VermittlungsschichtDie Vermittlungsschicht kümmert sich um die Weiterleitung der Datenpakete, stellt dieAdressierung (z.B. IP) sicher und verwaltet die Routingtabellen.1.1.6 Data Link Layer / SicherungsschichtDie Sicherungsschicht soll eine zuverlässige und fehlerfreie Kommunikation durch die unter ihr liegenden Netzwerkschichten gewährleisten. Die übetragenden Frames enthalteneine Prüfsumme und können so bei Bedarf neu angefordert werden. Die Sicherungsschicht ist in zwei Unterschichten geteilt: die obere namens Logical Link Control (LLC)und darunter die Media Access Control (MAC).2
1 Netzwerke1.1.7 Physical Layer / BitübertragungsschichtDie unterste Schickt des OSI Modells definiert die zugrundeliegende Hardware und dieArt der Signale welche für die Datenübertragung genutzt werden.1.2 TCP/IP ReferenzmodellDas TCP/IP Modell ist wie das OSI Referenzmodell in Schichten aufgebaut. Es bautauf dem vom US Verteidigungsministerium 1970 entwickelten DoD-Schichtenmodell auf.Im Gegensatz zum OSI Modell besteht das TCP/IP Modell aus nur vier Schichten, diesich aber auf im OSI Modell wiederfinden. Abbildung 1.2 beschreibt die vier Schichtenund nennt die vergleichbaren OSI Schichten.TCP/IP SchichtenmodellTCP/IP-Schicht OSI-SchichtProtokoll BeispielApplication layer5-7HTTP, FTP, SMTPTransport Layer4TCP, UDP, SPXInternet Layer3IPv4, IPv6Link Layer1-2Ethernet, FDDI, Token RingAbbildung 1.2: TCP/IP Schichtenmodell1.2.1 Application layer / AnwendungsschichtDie Anwendungsschicht beinhaltet Protokolle, die entsprechenden Anwendungen Dienstzur Verfügung stellen.1.2.2 Transport Layer / TransportschichtDas wichtigste Protokoll der Transportschicht, das Transmission Control Protocol (TCP),stellt eine End-zu-End-Verbindung her. Es arbeitet verbindungsorientiert und soll so eine zuverlässige Datenübertragung ohne Paketverluste garantieren. Verbindungen werdenüber einen three-way-handshake (SYN, SYN,ACK, ACK,DATA) hergestellt. Zu dieser Schichtgehoren aber auch unzuverlässige“ Protokolle wie das verbindungslose User datagram”Protocol (UDP).1.2.3 Internet Layer / InternetschichtDie Internetschicht kümmert sich um das Routing und die Vermittlung der Segmenteund Pakete höherliegender Schichten als Datagramm zum nächsten Wegpunkt/Hop. Sieist außerdem für die Adressierung der beteiligten Systeme sowie für Fragmentierung undDefragmentierung der Datagramme verantwortlich.3
1 Netzwerke1.2.4 Link layer / NetzzugangsschichtDie Netzzugangsschicht des TCP/IP-Models beinhaltet keine eigenen Protokolle, sondern verlässt sich auf die unteren beiden Schichten des OSI-Modells.1.3 IP Adressierung und SubnettingIm Grunde setze ich voraus, daß jeder der dieses Skript liest wenigstens in Ansätzen dieIP-Adressierung verstanden hat. Wer noch völlig unbefleckt auf diesem Gebiet ist sollsich entweder im Internet schlau machen oder das Buch TCP/IP Netzwerkadministra”tion“ aus dem O’Reilly Verlag (ISBN 3897211793) besorgen. Ich werden das Thema,genauer gesagt die IPv4 Adressierung, daher nur kurz zur Wiederholung anschneiden.1.3.1 IP-Adressen und SubnetzeIP-Adressen sind 32 Bit lang und werden in der Regel als dotted decimal“ notiert: vier”ganze Dezimalzahlen zwischen 0 und 255 und je durch einen Punkt getrennt. Jede Zahlstellt ein Oktett bzw. Byte dar. Hier im Vergleich die IP-Adresse 192.168.2.28 einmalbinär und dezimal:11000000 {z } . 00000010 {z } . 00011100 {z } {z } . 10101000192.168.2.28Das erste Oktett aus den 8 Bits 11000000 entspricht dezimal also dem Wert 192. Wieso?Jedes der 8 Bits entspricht einem Wert. Von links nach rechts5 : 128 64 32 16 8 4 2 1. Sindnun die ersten beiden Bits je 1 und alle folgenden Bits 0 muß man für den Dezimalwertdie Werte der ersten beiden Bits addieren. 128 64 192. Genauso für das zweite Oktett10101000: 128 32 8 168. Und so weiter. Eigentlich ganz einfach.Zu jeder IP-Adresse gehoert auch eine Subnetzmaske welche die Größe des Netzwersin dem sich unsere IP befindet bestimmt. Diese Subnetzmaske teilt die IP in einenunveränderlichen Netzwerk- und einen veränderlichen Hostteil. Subnetzmasken könnenentweder ebenfalls dottet decimal oder als CIDR-Suffix gaschrieben werden. CIDR6 ,Classless Inter-Domain Routing, wurde eingeführt um die IP-Adressräume effizienterzu nutzen und Routingtabellen verkleinern zu können. Vor CIDR gab es drei Subnetzgrößen. Class-A Netz (Subnetzmaske 255.0.0.0) mit 16777214 Hosts pro Netz, Class-B(255.255.0.0) mit 65534 Hosts pro Netz und schliesslich Class-C (255.255.255.0) mit 254Hosts pro Netz. Wenn Example Corp. nun also ein offizielles Netz mit 600 Hosts gebrauchte hätte, wäre ein Class-C Netz zu klein und ein Class-B Netz eine gigantischeVerschwendung von Adressen gewesen. Natürlich hätte man Example Corp. entsprechend viele Class-C Netze zuweisen können, dadurch wären aber die Routingtabellenweiter angewachsen.5Ja, es wird binär von rechts nach links, von klein nach groß, gelesen, aber das finde ich persönlichbeim Thema IP und Subnetze nur verwirrender.6RFC 1518 (http://tools.ietf.org/html/rfc1518) und RFC 1519 (http://tools.ietf.org/html/rfc1519)von 19934
1 NetzwerkeEin Subnetzmaske bei der man früher von einem Class-C Netz gesprochen hat lässt sichalso dotted decimal als 255.255.255.0 oder nach CIDR als Suffix /24 an die IP-Adresseanfügen: 192.168.2.28/24. Warum die 24? Weil bei einer Netzmaske von 255.255.255.0die ersten 3 Oktette oder eben die ersten 24 Bits auf 1 stehen.11111111 {z } . 11111111 {z } . 00000000 {z } {z } . 11111111255.255.255.0Der Netzanteil der IP-Adresse ist, wie vorhin schon erwähnt, unveränderlich. Das heisstdie IP-Adresse alle Hosts aus diesem Netz (192.168.2.0/24) beginnen mit 192.168.2. undunterscheiden sich erst in der letzten Zahl der IP, dem Hostteil. 19228. 168{z . 2 }. {z}N etzwerkteilHostteilIn jedem Netz mit n IP-Adressen koennen maximal n-2 Hosts existieren, denn die ersteIP des Netzes ist fuer die Netzwerdadresse und die letzte IP fuer die Broadcastadresse reserviert7 . In unserem Beispiel sind von den 256 möglichen IPs (192.168.2.0 bis192.168.2.255) 254 für Hosts nutzbar.1.3.2 SubnettingDa Subnetting vielen angehenden (und teils auch gestandenen Admins) ein Dorn imAuge ist werde ich das Thema auch nicht herumkommen. Solltest du Subnetting mitlinks und verbundenen Augen beherrschen überspring dieses Teil, denn ich verwendeletztendlich eine etwas andere Art der Berechnung als die offiziell“ propagierte und will”mögliche Verwirrung vermeiden.In den meisten Lehrbüchern wird auf die Formel 2n 2 bzw. 2n verwiesen. Wennman ein Subnetz mit Suffix /27 hat sind 27 Bits für den Netteil und die übrigen 5 Bits(32 27 5) für den Hostteil vorgesehen. Pro Subnet können 25 2 30 Hosts existieren.Mit Betrachtung auf ein Class-C Netz mit Suffix /24 verwendet unser Subnetz mit Suffix/27 zusätzliche 3 Bits für die Netzmaske. Es kann also 23 2 6 bzw., da wir anständigeHardware besitzen die ip subnet-zero8 verstehen, 23 8 Subnetze. Auf die Weise,mit Bits zählen und Potenzen bilden, kommt man prima durch jedes Subnetting. Ichpersönlich hab das zwar verstanden, fand es aber nicht sonderlich anschaulich und habin all den Jahren so manchen Auszubildenden und CCNA-Anwärter daran verzweifelnsehen. Also: 2n 2 und 2n my ass!Bleiben wir bei dem Beispiel von oben: ein Netz mit eine Netzmaske /27. Die 3zusätzlichen Bytes im Vergleich zu /24 bewirken eine in dotted decimal geschriebeneNetzmaske von 255.255.255.224. Von den 256 IPs (0 bis 255) eines /24 Netzes ziehe ichdie 224 der /27 Netzmaske ab und ich komme auf meine 32 IPs pro Subnetz. Abzüglich7Theoretisch kann die Netzadresse auch frei benutzt werden, solang sich keine Windows 9x Hosts imNetz befinden. Aber laut sagen darf man das eigentlich nicht. om/application/pdf/paws/13711/40.pdf5
1 NetzwerkeNetzwerkadresse und Broadcast bleiben 30 IPs fuer Hosts. Ich kann 256/32 8 /27 Subnetze bilden. Wer ungern teilt kann sich auch die Reihe 128 64 32 16 8 4 2“ vorstellen”und dann einfach an der 16 spiegeln“: bei 32 IPs gibt es 8 Netze, bei 64 Netzen nur”4 IPs pro Netz usw. Klingt komisch, funktioniert aber auch. Supernetting ist so auchmöglich.Letztendlich gibt es verschiedene Möglichkeiten Subnetting im Kopf zu betreiben.Wichtig ist nur, das man es verstanden hat und seine Auswirkungen versteht. Zur Notgibt es ja auch noch ipcalc9 .# ipcalc -n .00000010.000 00001Netmask:255.255.255.224 27 11111111.11111111.11111111.111 00000Wildcard: 0.0.0.3100000000.00000000.00000000.000 11111 00 .000 0.000 11110Broadcast: 192.168.2.3111000000.10101000.00000010.000 11111Hosts/Net: 30Class C, Private Internet1.4 ARP - Address Resolution ProtocolDas Address Resolution Protocol ist ein Protokoll der Netzzugangsschicht des TCP/IPModells und ermittelt die zu einer IP-Adresse zugehörige 48Bit lange Hardwareadresse, auch MAC-Adresse, eines Netzwerkgeräts im lokalen Netz. Falls die MAC-Adresseeines Zielrechners noch nicht in der ARP-Tabelle ist, schickt der Host einen ARPRequest als Paket mit der Destination-IP des gesuchten Rechners per ARP-Broadcast(ff-ff-ff-ff-ff-ff) an alle Rechner im Lan. Findet ein Rechner seine eigene IP alsEmpfänger in dem ARP-Request antwortet er dem Absender mit seiner MAC-Adresse.14:34:22.611372 arp who-has server-b.example.com tell server-a.example.com14:34:22.611641 arp reply server-b.example.com is-at 00:03:ba:09:bf:51Ist der Empfänger eines IP-Pakets im lokalen Netz, werden alle Pakete für diesenEmpfänger direkt an seine MAC-Adresse gesendet. Liegt der Empfänger ausserhalb desLAN werden die Pakete an die MAC-Adresse des entsprechenden Gateways gesendet,die Destination-IP wird dabei nicht geändert.Die ARP-Tabelle kann mit arp (Linux) bzw. arp -a (Solaris, unter Linux Ausgabe imBSD-Stil) abgefragt und bei Bedarf manipuliert werden. Der Switch -n unterdrückt dieNamensauflösung.# arp -aNet to Media Table: IPv4DeviceIP AddressMaskFlagsPhys Addr------ -------------------- --------------- ----- --------------9Online Tool und Download unter http://jodies.de/ipcalc6
1 5.255.255.255subint255.255.255.255 55.255.255.255zoidberg255.255.255.255 SPBASE-ADDRESS.MCAST.NET 3:ba:25:6c:a901:00:5e:00:00:00Wie lange Einträge in der ARP-Tabelle bestehen bleiben ist unterschiedlich. UnterSolaris liegt das arp cleanup interval von /dev/arp normalerweise bei 300000 Millisekunden (5 Minuten). Unter Linux liegt der Defaultwert für die gc stale time10 bei 60Sekunden. Notfalls muß ein Eintrag mit arp -d ipadresse manuell aus der Tabellegelöscht werden.1.5 RoutingWenn man einen Host erreichen will, der nicht im eigenen (Sub)netz liegt, müssen diePakete an jemanden geschickt werden, der entweder den Weg zum Ziel kennt oder zumindest eine Ahnung hat in welche Richtung es geht. Das ist der Router. Während Hubsnur auf Layer 1 und Switche nur auf Layer 2 des OSI-Modells arbeiten und daher Paketenur im lokalen Netz verteilen, arbeitet ein Router auf Layer 3 und ist in mehreren Netzenbeheimatet zwischen denen er die Pakete weiterleiten kann.Um also Daten in entferne Netze zu schicken, muss ein Host zumindest einen Router kennen, an den er diese Pakete schicken kann. Das ist der Defaultrouter. Der Hostadressiert die Daten an die IP-Adresse des Zielhosts, schickt sie aber, wie im letzten Abschnitt schon erwähnt, an die MAC-Adresse vom Router. Dieser sucht in seiner RoutingTabelle nach dem besten Weg zum Ziel, im Zweifel ist das der Defaultrouter des Routers,und leitet sie entsprechend weiter. Das geht solange bis das Paket das Ziel erreicht hatoder aus irgendeinem Grund nicht zugestellt werden kann11 . Die Ziel IP wird auf alldiesen Wegen nicht geändert12 . Dieser Vorgang des Entscheiden über den besten Wegund das anschließende Weiterreichen der Pakete von einer Zwischenstation, einem Hop,zum nächsten wird Forwarding“ genannt. Routing“ bezeichnet ansich den gesamten””Weg durch das Netz bis zum Ziel.Das Defaultgateway wird unter Solaris über die Datei /etc/defaultrouter vorgegeben.Sie entält pro Zeile die IP oder den Hostnamen13 eines oder mehrerer Defaultgateways.Unter Linux wird der Defaultrouter in der Datei /etc/sysconfig/network14 über denParameter GATEWAY gateway-IP vorgegeben.Die Routing Tabelle eines Hosts kann man sich mit dem Befehl netstat und denOptionen -rvn anzeigen lassen. Dabei bedeutet das -rvn das die Ausgabe der Routing10Dieser Parameter entspricht nicht dem absoluten ARP-Timeout.In dem Fall wird der letzte beteiligte Router wahrscheinlich eine Internet Control Message Protocol(ICMP) Nachricht wie Destination Unreachable“ an den Absender schicken”12Solange keine Network Address Translation (NAT) beteiligt ist.13Dieser muss dann über die /etc/hosts auflösbar sein.14Siehe auch Kapitel 1.6.2117
1 Netzwerketabelle ausführlich, verbose, und ohne Namensauflösung erfolgen soll. Folgendes Beispiel zeigt die Routingtabelle eines Solaris Hosts mit einem Interface eri0 mit der IP192.168.2.200/27. Das Defaultgateway ist die 192.168.2.193. Als Gateway für das Subnetz 192.168.2.192/27 in dem sich der Host befindet ist die eigene IP angegeben, dadieses Netz direkt erreicht werden kann. Directly connected, wie der Cisco sagt.# netstat -rvnIRE Table: Device Mxfrg Rtt Ref Flg Out In/Fwd------ ----- ----- --- --- ----- -----eri01500*01 U226320eri01500*01 U001500*01 UG 2242380lo08232*02 UH380Unter Linux tut es auch schon ein einfaches route zum Abfragen der Tabelle. # routeKernel IP routing h0Die Flags (Flg) haben folgende Bedeutung: U - Route ist up, H - Hostroute und G Route zeigt auf ein Gateway.Das Solaris route bietet mit dem sub-command“ (betrachtes wir es als Option oder”Switch) get einen praktischen Weg, um auf Solaris Hosts die über mehrere Netzinterfacesverfügen oder gar selber routen15 die Route zu einem Ziel zu erfragen.# route get www.example.comroute to: www.example.comdestination: defaultmask: defaultgateway: 192.168.2.193interface: eri0flags: UP,GATEWAY,DONE,STATIC recvpipe sendpipe ssthreshrtt,ms rttvar,ms00000hopcount0mtu1500expire01.6 InterfacekonfigurationViele der grundsätzlichen Einstellungen eines Interfaces werden sowohl unter Solaris alsauch unter Linux mit ifconfig vorgenommen bzw. abgefragt. Mit ifconfig -a werden alle15Erkennt das init-Script /etc/rc2.d/S69inet beim starten mehr als zwei Netzwerkinterfaces wirdIP-Forwadring automatisch aktiviert. Bei Bedarf kann es mit /usr/sbin/ndd -set /dev/ipip forwarding 0 wieder deaktiviert werden.8
1 Netzwerkekonfigurierten Interfaces abgefragt und die momentan aktiven Einstellungen ausgegeben.Einzelne Interfaces lassen sich gezielt mit infconfig interface abfragen. Dabei ähnelnsich die Ausgaben von Solaris# ifconfig hme0hme0: flags 1000843 UP,BROADCAST,RUNNING,MULTICAST,IPv4 mtu 1500 index 2inet 192.168.200.154 netmask fffffffc broadcast 192.168.200.155ether 8:0:20:a2:8d:d6und Linux# ifconfig eth0eth0Link encap:Ethernet HWaddr 00:0A:E4:7E:4B:8Ainet addr:192.168.178.178 Bcast:192.168.178.183 Mask:255.255.255.248UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:120870162 errors:0 dropped:0 overruns:0 frame:0TX packets:114609847 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:3045188142 (2904.1 Mb) TX bytes:2423390401 (2311.1 Mb)Base address:0x2400 Memory:dd220000-dd240000Diese Einstellungen können mit ifconfig auch geändert werden. Ein ifconfig hme010.1.2.108 mask 255.255.255.128 wuerde z.B. dem Interface hme0 die IP 10.1.2.108in einem 25-Bit Subnetz zuweisen. Diese Änderung würde einen reboot der Maschineallerdings nicht überstehen. Solaris und die diversen Linux Distributionen gehen daverschiedene Wege.1.6.1 Interfacekonfiguration unter SolarisUm ein Interface bereits beim booten richtig ins das System einzubinden müssen unter Solaris einige Dateien konfiguriert werden. Für jedes Interface welches beim bootkonfiguriert werden soll muß eine Datei /etc/hostname.interface existieren. In dieserDatei existiert nur ein Eintrag: entweder der Hostname (wird in die IP aufgelöst) oderdie IP-Adresse des Interfaces. Gegebenenfalls muss in der Datei /etc/netmasks nochdie passende Netzmaske angegeben werden, damit Netzmaske ind Broadcast für dasInterface richtig und nicht class-full gesetzt werden.Angenommen das Interface eri0 soll die IP 192.168.2.12 bekommen und das Netz hateine 27-Bit Maske. In die Datei /etc/hostname.eri0 enhält folgenden Eintrag:192.168.2.12bzw.eri0falls der Hostname eri0 z.B. über einen Eintrag192.168.2.12eri09
1 Netzwerkein der /etc/hosts aufgelöst werden kann. Zusätzlich muss die Netzmaske des Netzesnoch in der /etc/netmasks angegeben werden:192.168.2.0255.255.255.224Damit wird das Interface nach dem booten richtig initialisiert. Duplex-Verfahren undÜbertragungsgeschwindigkeit werden mittels Autonegotiation ausgehandelt. Da das inder Praxis aber oft nicht so klappt wie gedacht und letztendlich das eine Interface auf100 full und das andere auf 100 halb oder noch grausameren Einstellungen endet, istes sicherer das Interface fest einzustellen. Dazu müssen mit ndd die Treibereinstellungendes Interfaces geändert werden. Ein kleines Initskript welches beim booten ausgeführtwird kann dies erledigen:#!/bin/shndd -set /dev/cendd -set /dev/cendd -set /dev/cendd -set /dev/cendd -set /dev/cendd -set /dev/cendd -set /dev/cendd -set /dev/ceinstance 0adv 1000fdx cap 0adv 1000hdx cap 0adv 100fdx cap 1adv 100hdx cap 0adv 10fdx cap 0adv 10hdx cap 0adv autoneg cap 0Der erste Befehl stetzt die Instanz fuer /dev/ce auf 0, also alle nachfolgenden ndd-set Anweisungen wirken sich auf das Interface ce0 aus. Der Vollständigkeit halber seierwähnt, dass für den Fall das alle Instanzen eines Interfaces gleich eingestellt werden sollen, die entsprechenden Anweisungen auch in die /etc/system bzw. in die interface.cfgunter /plattform/ (uname -m)/kernel/drv eingetragen werden können. Der Weg überein Initskript ist allerdings der gebräuchlichste und sollte daher auch gewählt werden.Mit ndd -get können die aktuellen Einstellungen ausgelesen werden. Einfacher geht dasallerdings mit dem Skript nicstatus.sh16 :# nicstatus.shLink: Auto-Neg:Status:Speed:Mode: Ethernet 4:6c:a9Die Defaultroute wird über den entsprechenden Eintrag in /etc/defaultrouter konfiguriert.1.6.2 Interfacekonfiguration unter LinuxUnter RHEL spielt sich die Netzwerkkonfiguration in /etc/sysconfig und dessen Unterverzeichnissen ab. Die Grundlage der Netwerkkonfiguration bildet die Datei/etc/sysconfig/network. Sie enthält maximal sechs Angaben, in den meisten Fällenaber mindestens diese edScripts/nicstatus.txt10
1 NetzwerkeNETWORKING yesHOSTNAME server1.example.comGATEWAY 192.168.2.1HOSTNAME kann auch über DHCP vergeben werden. Ausserdem können noch NETWORKING IPV6,NISDOMAIN und GATEWAYDEV (Interface über das GATEWAY erreicht werden kann) definiertwerden falls nötig.Über die Skripte in /etc/sysconfig/network-scripts werden alle nötigen Netzwerinformationen bezogen und gesteuert. Für uns sind an dieser Stelle in erster Linie dieifcfg-interface Skripte interessant.Um beispielsweise dem Interface eth0 die IP 192.168.2.13 im Netz 192.168.2.0/27 zuvergeben würde folgende ifcfg.eth0 ausreichen:DEVICE eth0BOOTPROTO staticIPADDR 192.168.2.12NETMASK 255.255.255.224ONBOOT yesTYPE EthernetZusätzlich können noch weitere Optionen wie die Broadcast-Adresse, DNS-Server oderInterfacebonding übergeben werden. Interessant ist im Vergleich zur Netzwerkkonfiguration unter Solaris noch die Option ETHTOOL OPTS. Unter Linux werden Duplex-Modu
Im Gegensatz zum OSI Modell besteht das TCP/IP Modell aus nur vier Schichten, die sich aber auf im OSI Modell wieder nden. Abbildung 1.2 beschreibt die vier Schichten und nennt die vergleichbaren OSI Schichten. TCP/IP Schichtenmodell TCP/IP-Schicht OSI-Schicht Protokoll Beispiel Application