68
. Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR) im Sommersemester 2009 Andreas Janecek, Hannes Schabauer, Thomas Treutner 23. Juni 2009 . Mit Unterst¨ utzung unseres Studienassistenten Constantin Hofstetter

Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

  • Upload
    vonhi

  • View
    229

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

.Skriptum zum Praktikum aus

Internettechnologien (PI.INT.IT.PR)

im Sommersemester 2009

Andreas Janecek, Hannes Schabauer, Thomas Treutner

23. Juni 2009

.

Mit Unterstutzung unseres Studienassistenten

Constantin Hofstetter

Page 2: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

2

In diesem Skriptum haben wir Informationen zusammengefasst, die fur eine erfolgrei-

che Absolvierung des Praktikums aus Internettechnologien notig sind. Das Skriptum soll

Ihnen einen Uberblick und Hintergrundwissen uber den Stoff der jeweiligen Einheit bie-

ten, sowie Informationen uber die verwendeten Programme, Methoden und Techniken

geben, wobei die Bereitstellung praxisbezogener Information einer umfassenden Theorie-

lehre vorgezogen wurde (da es sich um ein Praktikum handelt).

Das Praktikum besteht aus insgesamt sechs Einheiten, die jeweils montags stattfinden

(Termine siehe eLearning-Seite): Die funf Kapitel dieses Skriptums beinhalten Grundla-

genwissen zu den ersten funf Einheiten (Einheit 1 -> Kapitel 1, Einheit 2 -> Kapitel 2...).

Die letzte Einheit umfasst eine Wiederholung des kompletten Semesterstoffs in einer Art

Abschlussprojekt.

Das Skriptum ist zum Losen der Aufgaben zu verwenden und dient als Vorbereitung

zu den Abgabegesprachen. Sie mussen uber den Stoff des Skriptums bei den Abgabe-

gesprachen Bescheid wissen – die Abgabegesprache werden OHNE Hilfe des Skriptums

durchgefuhrt.

Dieses Skriptum umfasst nur den Stoff des Praktikums und ist selbstverstandlich kein

Ersatz fur Vorlesungsfolien und weiterfuhrende Literatur, welche zum Bestehen der Vor-

lesungsprufung notwendig sind!

Page 3: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

Inhaltsverzeichnis

Einheit 1 - Uberblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.1 Netzwerk-Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.1.1 Arten von Netzwerken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.1.2 IP-Adressen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.1.3 Namensauflosung – Das Domain Name System . . . . . . . . . . . . . . . . . . 81.1.4 Ubertragungsstandards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.1.5 Vermittlungsgerate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.1.6 VPN - Virtual Private Network . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.2 TCP/IP-Einstellungen unter Windows/Linux . . . . . . . . . . . . . . . . . . . . . . 111.2.1 Der Befehl ping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.2.2 Tracerouting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.3 Packet Sniffing mit Wireshark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.3.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.3.2 Crashkurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.4 Rechnerlabor Lenaugasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.4.1 Virtualisierung und virtuelle Maschinen . . . . . . . . . . . . . . . . . . . . . . 171.4.2 Vor- und Nachteile virtueller Maschinen . . . . . . . . . . . . . . . . . . . . . 181.4.3 Programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.4.4 VMware Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.5 Weiterfuhrende Literatur – Fur interessierte LeserInnen . . . . . . . . . . . . . . . . . 19Einheit 2 - Das OSI und das TCP/IP-Referenzmodell . . . . . . . . . . . . . . . . . 20

2.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.2 Dienste und Protokolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.3 Das OSI-Referenzmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.4 Das TCP/IP-Referenzmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.5 Gegenuberstellung des OSI- und des TCP/IP-Referenzmodells . . . . . . . . . . . . . 262.6 Datenframes und IP-Pakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.6.1 Unterschied zwischen Datenframes und IP-Paketen . . . . . . . . . . . . . . . 272.6.2 Aufbau eines Datenframes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.6.3 Aufbau eines Internet Protocol-Pakets (IP-Paket) . . . . . . . . . . . . . . . . 282.6.4 Maximum Transfer Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.6.5 Datenframes und IP-Pakete in Wireshark . . . . . . . . . . . . . . . . . . . . . 29

2.7 Die Protokolle der Internetschicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.7.1 Address Resolution Protocol (ARP) . . . . . . . . . . . . . . . . . . . . . . . . 302.7.2 Internet Control Message Protocol (ICMP) . . . . . . . . . . . . . . . . . . . . 302.7.3 Internet Group Management Protocol (IGMP) . . . . . . . . . . . . . . . . . . 302.7.4 Internet Protocol (IP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.8 Weiterfuhrende Literatur – Fur interessierte LeserInnen . . . . . . . . . . . . . . . . . 31Einheit 3 - Protokolle der Transportschicht . . . . . . . . . . . . . . . . . . . . . . . 32

3.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.1.1 Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.1.2 IP-Fragmentierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.1.3 TCP-Segmentierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.2 UDP – User Datagram Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.3 TCP – Transmission Control Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.3.1 Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.3.2 Zuverlassigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3

Page 4: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

Inhaltsverzeichnis 4

3.3.3 Verbindungsaufbau und Drei-Wege-Handshake: . . . . . . . . . . . . . . . . . 353.3.4 Sliding Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.3.5 End-to-End Flow Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.3.6 Congestion Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.4 Streaming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.4.1 Streaming mittels TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.4.2 Streaming mittels UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.5 Weiterfuhrende Literatur – Fur interessierte LeserInnen . . . . . . . . . . . . . . . . . 41Einheit 4 - Protokolle der Anwendungsschicht und Webserver . . . . . . . . . . . . 42

4.1 Arbeiten auf entfernten Rechnern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.1.1 Telnet (Telecommunication Network) . . . . . . . . . . . . . . . . . . . . . . 424.1.2 SSH (Secure Shell) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.2 Dateiubertragung via FTP/SFTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.2.1 FTP (File Transfer Protocol) . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.2.2 SFTP (Secure File Transfer Protocol) . . . . . . . . . . . . . . . . . . . . . . 44

4.3 Programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.4 Webserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.4.1 Abrufen von Webseiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.4.2 Apache (v2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.5 Weiterfuhrende Literatur - Fur interessierte LeserInnen . . . . . . . . . . . . . . . . . 47Einheit 5 - Firewalls (iptables) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

5.1 Grundlagen von iptables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485.1.1 Regeln und Ziele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.1.2 Tabellen (

”Tables“) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

5.1.3 Ketten (”Chains“) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

5.1.4 Ablaufreihenfolge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505.1.5 Regelverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

5.2 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515.2.1 Anweisungen und Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525.2.2 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5.3 Weiterfuhrende Literatur – Fur interessierte LeserInnen . . . . . . . . . . . . . . . . . 53Anhang A Einrichten einer VMware Testumgebung . . . . . . . . . . . . . . . . . . 54

A.1 Installation des VMware Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54A.1.1 Installation des VMware Player unter Microsoft Windows XP / Vista . . . . . 54A.1.2 Installation des VMware Player unter Ubuntu 7.10 (Gusty Gibbon) / Linux . 54

Anhang B Einrichten von virtuellen Gastbetriebssystemen . . . . . . . . . . . . . . 56B.1 Einbinden eines vorgefertigten Gastsystems . . . . . . . . . . . . . . . . . . . . . . . . 56

B.1.1 Linux Distribution: Ubuntu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56B.1.2 Windows Distribution: Vorgefertigte (leere) Festplatte . . . . . . . . . . . . . . 56

B.2 Einrichten einer eigenen Windows Distribution . . . . . . . . . . . . . . . . . . . . . . 57B.3 Einrichten einer eigenen Linux Distribution . . . . . . . . . . . . . . . . . . . . . . . . 58

B.3.1 Vorbereitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58B.3.2 Installation der Linux Distribution . . . . . . . . . . . . . . . . . . . . . . . . 59B.3.3 Konfigurieren der Linux Distribution . . . . . . . . . . . . . . . . . . . . . . . 64

Page 5: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

5

Einheit 1 - Uberblick

Ganz zu Beginn dieses Skriptums wollen wir auf die wichtigsten Grundlagen von Computernetzwerken(Rechnernetzwerken) eingehen. Hierbei handelt es sich selbstverstandlich nur um eine sehr kleineAuswahl an Themen, welche fur die erste Einheit des Praktikums wichtig sind—fur eine umfassendereBehandlung des Themas sei auf die Vorlesung bzw. die Vorlesungsliteratur verwiesen.

1.1 Netzwerk-Grundlagen

Bei Computernetzwerken handelt es sich um verteilte Systeme von autonomen Rechnern (Compu-tern), die uber unterschiedliche Arten miteinander verbunden sein konnen. Dieser Zusammenschlussvon technisch unterschiedlichen, primar selbstandigen Systemen ermoglicht die Kommunikation dereinzelnen Systeme untereinander, wobei alle Gerate eines Verbunds unter ihrer Adresse erreichbarsind und sich an der Kommunikation beteiligen konnen. Die Kommunikation selbst erfolgt uber ver-schiedene Protokolle. Geregelt und definiert sind diese Protokolle in Referenzmodellen wie dem sehrallgemein gehaltenen und theoretisch wichtigen OSI-Modell (Kapitel 2.3), oder dem eher anwen-dungsorientierten TCP/IP-Modell (Kapitel 2.4).

Verweise auf einzelne Schichten dieser beiden Modelle werden uns auch schon in Kapitel 1 des Ofterenbegegnen. Einstweilen begnugen wir uns jedoch mit dem Wissen, dass es Referenzmodelle mit meh-reren Schichten gibt, welche die Kommunikation zwischen verschiedenen Systemen regeln. Auf dieeinzelnen Schichten und deren Aufgaben (z.B. physikalische Ubertragung der Daten) gehen wir indiesem Kapitel aber noch nicht naher ein.

1.1.1 Arten von Netzwerken

Netzwerke konnen bezuglich ihrer Ausdehnungen eingeteilt werden. Im Folgenden finden Sie ein paarBeispiele (die Grenzen der ersten vier Beispiele verschmelzen in der Regel stark miteinander).

LAN (Local Area Network): Ein ortlich begrenztes, in sich geschlossenes Netzwerk, das sich innerhalbeines oder mehrerer Gebaude befindet.

WAN (Wide Area Network): Bezeichnet oft firmenubergreifende Netze, wobei es keine Rolle spielt,ob sich einzelne Filialen innerhalb der gleichen Stadt befinden oder nicht.

MAN (Metropolitan Area Network): Ein “Stadtnetz”, in Europa kaum von Bedeutung, in den USAjedoch weit verbreitet.

GAN (Global Area Network): Eine zutreffende aber wenig gebrauchliche Bezeichnung fur das weltum-fassende Internet.

WLAN (Wireless LAN, manchmal auch als Wi-Fi bezeichnet): Ein drahtloses lokales Funknetz,welches meist den IEEE 802.11 Standard zur Ubertragung nutzt.

Netzwerktopologien

Als Topologie wird die Struktur der Verbindungen der zu einem Netzwerk zugehorigen Gerate be-zeichnet, also die Art der Anordnung, wie Computer miteinander verbunden sind. Bekannte Topolo-gien sind z.B. die Bus-, Baum-, Stern-, Mesh oder Zelltopologie. In großen Netzen wie dem Internetwerden die einzelnen Topologien oft vermischt.

Page 6: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

1.1 Netzwerk-Grundlagen 6

1.1.2 IP-Adressen

Eine IP-Adresse (Internet Protocol -Adresse) dient zur eindeutigen Adressierung von Rechnern undanderen Geraten (z.B. Host, Router, . . . ) in einem TCP/IP-Netzwerk. Eine IP-Adresse besteht nor-malerweise aus einer 32 Bit (=4 Byte) langen Ziffernfolge. Die Dezimalwerte der vier Byte werdendurch Punkte voneinander getrennt (“Dotted-Quad Format”). Die Dezimalzahl fur jedes Byte kanneinen Wert von 0 bis 255 haben, ist also mindestens ein- und hochstens dreistellig. Eine IP-Adresse(IPv4) sieht in Binar- bzw. in Dezimalschreibweise folgendermaßen aus:

• Binar: 10000110.01100110.11100100.00000010

• Dezimal: 134.102.228.2

IPv4 vs. IPv6

Aufgrund des steigenden Bedarfs an IP-Adressen wurde mit IPv6 eine neue Version des Internet Pro-tocol eingefuhrt. Eine IPv6-Adresse besteht aus 128 Bit (=16 Byte), es sind also 2128 unterschiedlicheIP-Adressen vorhanden (gegenuber 232 bei IPv4). Im Rahmen dieses Praktikums werden uns aberfast ausschließlich nur IPv4-Adressen begegnen.

Zuweisung von IP-Adressen

Von einer dynamischen Adressierung (automatische Zuweisung von IP-Adressen) spricht man,wenn ein Rechner bei jeder neuen Verbindung mit einem Netzwerk eine neue IP-Adresse zugewiesenbekommt. Durch die Verwendung von DHCP (Dynamic Host Configuration Protocol) konnenjedem Rechner in einem TCP/IP-Netzwerk die IP-Adresse sowie die TCP/IP-Konfigurationsparameter(Gateway, Nameserver, Timeserver, ...) automatisch zugewiesen werden.

Die statische Adressierung (statische Zuteilung der IP-Adressen) wird verwendet, wenn die dyna-mische Adressierung technisch nicht moglich oder nicht sinnvoll ist (z.B. bei Servern). Eine statischeoder feste IP-Adresse wird nicht bei jedem Verbindungsaufbau neu vergeben, sondern wird dauerhaftin der Netzwerkkonfiguration eingetragen. Abbildung 1 zeigt die statische Zuteilung von IP-Adressenin Windows XP.

Abbildung 1: TCP/IP-Einstellungen unter Windows XP

Page 7: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

1.1 Netzwerk-Grundlagen 7

Media Access Control (MAC)-Adresse

Die IP-Adresse darf nicht mit der MAC-Adresse verwechselt werden. Die MAC-Adresse ist dieHardware-Adresse jedes einzelnen Netzwerkadapters, die zur eindeutigen Identifikation des Geratsim lokalen Netzwerk dient. Im Falle von Ethernet-Netzen besteht die MAC-Adresse aus 48 Bit (sechsByte), die meist hexadezimal geschrieben werden (z.B: 08-00-20-ae-fd-7e). Die ersten drei Byteidentifizieren den Hersteller1 des Netzwerkadapters, die letzten drei Byte werden vom Hersteller ver-geben und entsprechen einer Art Seriennummer.

Subnetzmaske

Die Große eines Rechnernetzes (also die Anzahl an IP-Adressen innerhalb eines Netzes) wird uberdie Subnetzmaske (oder Netzmaske) angegeben. Die Subnetzmaske trennt dabei jede IP-Adressein einen Netzwerk-Teil (linker Teil der Subnetzmaske) und Host-Teil (Gerate-Teil, rechter Teil derSubnetzmaske) auf. Wahrend der Netzwerk-Teil der IP-Adressen bei allen Geraten innerhalb einesNetzes gleich ist, ist der Gerate-Teil bei jedem Gerat des Netzes unterschiedlich. Je nach verwendeterNetzwerk-Adresse und Subnetzmaske wird eine bestimmte Anzahl an Netzwerkstationen (Hosts) ineinem Subnetz adressierbar.

Genauso wie IPv4-Adressen haben Subnetzmasken eine Lange von 32 Bit, wobei alle Bits desNetzwerk-Teils auf 1 gesetzt sind, alle Bits des Gerate-Teils auf 0. Wie schon erwahnt, gibt derlinke Teil der Subnetzmaske den Netzwerk-Teil an. In Binarschreibweise enthalt die Subnetzmaskealso auf der linken Seite lauter 1er, auf der rechten Seite lauter 0er. Die Stelle, an der die 1er in 0erubergehen, gibt die Trennung zwischen Netzwerk- und Gerate-Teil an.

Beispiel: 255.255.255.192 Dezimalsystem = 11111111.11111111.11111111.11000000 Binarsystem

Die Anzahl der gesetzten Bits (in unserem Bsp. 26) und der ungesetzten Bits (in unserem Bsp.6) gibt an, wie viele unterschiedliche Adressen fur den Netz-Teil bzw. Gerate-Teil zur Verfugungstehen. Subnetzmasken werden auch oft in CIDR-Notation (Classless Inter-Domain Routing) dar-gestellt, wobei einfach die Anzahl der gesetzten Bits angezeigt wird (z.B: /26). In unserem Beispielverbleiben 6 Bits fur den Gerate-Teil, also 26 = 64 Adressen.

Wichtig: Nicht alle 64 Adressen stehen als nutzbare Adressen innerhalb des Netzes zur Verfugung.Die kleinste Adresse beschreibt das Netz selbst, die großte Adresse ist fur den Broadcast reserviert.Eine vollstandige Liste aller moglichen Subnetzmasken ist unter [8] zu finden.

Broadcast (Rundruf)

Broadcast steht fur den Versand von Nachrichten innerhalb eines Netzwerkes, die nicht nur an eineneinzelnen Rechner gerichtet sind, sondern an alle angeschlossenen Gerate innerhalb des Netzwerks.Eine Broadcast-Nachricht muss von allen Empfangern (Computern, Routern, etc.) entgegengenom-men werden. Ist der Empfanger nicht zustandig, kann die Nachricht verworfen werden, falls derEmpfanger zustandig ist, wird die Nachricht dementsprechend verarbeitet. Der Sender braucht beimBroadcasting (und auch beim Multicasting) nur so viel Bandbreite wie ein einzelner Empfanger – eskonnen also gleichzeitig Nachrichten an mehrere Teilnehmer ubertragen werden, ohne dass sich beimSender die Bandbreite mit der Zahl der Empfanger multipliziert. Broadcasts werden oft verwendet,wenn die Adresse eines Empfangers der Nachricht noch unbekannt ist (z.B. um eine IP-Adresse in

1Sie konnen unter http://standards.ieee.org/regauth/oui/index.shtml selbst herausfinden, welcher Herstellersich hinter der Kennung 08-00-20 verbirgt.

Page 8: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

1.1 Netzwerk-Grundlagen 8

eine eindeutige MAC-Adresse umzuwandeln (siehe ARP, Kapitel 2.7), oder auch, falls ein DHCP-Server gesucht wird.).

Im Gegensatz zu einem Broadcast sendet ein Multicast eine Nachricht nicht an alle Gerate in-nerhalb eines Netzwerks, sondern nur an eine bestimmte Gruppe. IPv6 unterstutzt keine Broadcastsmehr sondern verwendet stattdessen nur noch Multicasts.

1.1.3 Namensauflosung – Das Domain Name System

Das Domain Name System (DNS) ist ein verteiltes, hierarchisches System zur Auflosung von Compu-ternamen in IP-Adressen. DNS ermoglicht es also, IP-Adressen uber die zugehorigen Domainnamenzu erreichen, welche fur Menschen viel einfacher zu merken und zu lesen sind. So kann die Internetsei-te der Uni Wien sowohl uber ihren Domainnamen (http://www.univie.ac.at, auch FQDN – FullyQualified Domain Name genannt) als auch uber ihre numerische IP-Adresse (http://131.130.1.78/)erreicht werden.

Namensraum

Es ist ein nicht-triviales Problem, die große Anzahl von Domainnamen zu verwalten, die sich daruberhinaus auch noch andauernd andern. Konzeptionell ist das Internet in mehrere Hundert Top-Level-Domains unterteilt. Jede Domain ist untergliedert in Sub-Domains, diese sind weiter unterteilt inSub-Sub-Domains usw. All diese Domains konnen durch eine Baumstruktur dargestellt werden (sie-he Abbildung 2). Die Knoten (z.B. ac) und Blatter (z.B: cs) des Baums nennt man Labels. EinDomainname ist also eine Verkettung aller Labels eines Pfades, wobei die einzelnen Labels durchPunkte voneinander getrennt sind. Ein Domainname wird immer von rechts nach links delegiert undaufgelost, das heißt je weiter rechts ein Label steht, umso hoher steht es im Baum (also at vor ac

vor univie vor cs).

.

atcom ...net

derstandardac ..

univieuibk ...

bank-austria

prics ...

cs.univie.ac.at

Top Level Domain (.at)

Sub Domain (.ac.at)

. . . univie.ac.at

Root

. . . cs. univie.ac.at

Abbildung 2: DNS Baum fur cs.univie.ac.at

Top Level Domains

Es gibt zwei Arten von Top-Level-Domains: Allgemeine und landerspezifische. Beispiele fur allgemeine

Page 9: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

1.1 Netzwerk-Grundlagen 9

Top-Level-Domains sind:

• com: Domain, in der kommerzielle Unternehmen Platz finden.

• edu: Bildungseinrichtungen, von Grundschule bis Universitat (Großteils in Nord-Amerika).

• net: Domain fur Netzwerk-Provider.

• org: Domain fur nicht-kommerzielle Organisationen.

Die Lander-Top-Level-Domains beinhalten genau einen Eintrag fur jedes Land (z.B: .at fur Osterreich,.de fur Deutschland).

Ein Beispiel, wie man eine (sehr glucklich zugewiesene) Lander-Domain zu viel Geld machen kann,zeigt die Inselgruppe Tuvalu im Sud-Pazifik. Tuvalu hatte das Gluck, die Lander-Domain Endung.tv zugewiesen zu bekommen. Der Internet-Dienstleister DotTV hatte um die Jahrtausendwendeherum die Rechte an der Domain erworben und zahlte innerhalb von 10 Jahren 50 Millionen US-Dollar an den Zwergstaat (was insgesamt einer Zahlung des zweieinhalbfachen BIPs (pro Jahr) vonTuvalu entspricht 2). Weitere interessante Beispiele fur zweckendfremdete Landerdomains sind dieFederated States of Micronesia (Domain .fm, Bsp.: last.fm), oder ab 30.09.2009 auch die neue TopLevel Domain von Montenegro (.me, eignet sich z.B. fur ask.me, love.me, etc. )

DNS-Server bzw. Nameserver

Als Nameserver werden einerseits Programme bezeichnet, die DNS-Anfragen bearbeiten, andererseitsauch Computer, auf denen diese Programme laufen. Z.B. wird in Abbildung 1 der Rechner, auf demProgramme zur Namensauflosung laufen, als DNS-Server bezeichnet.

1.1.4 Ubertragungsstandards

Ethernet

Ethernet ist ein Protokoll, welches die kabelgebundene Datenubertragung fur lokale Datennetze(LANs) regelt. Ethernet ermoglicht den Datenaustausch in Form von Datenframes (Paketen) zwi-schen allen in einem lokalen Netz angeschlossenen Geraten. Um den Austausch der Daten zu ermoglichen,werden diese in elektrische Signale umgewandelt, welche uber ein Tragermedium (z.B. Kupferdrahte)ubertragen werden.

WLAN

Nicht nur eine bestimmte Art von Netzwerken sondern auch die Familie der IEEE-802.11 Standardswird meist mit dem Begriff WLAN bezeichnet. In diesem kabellosen Telekommunikationssystem wer-den Informationen (wiederum in Form von Datenframes bzw. Paketen) mittels elektromagnetischerWellen ubertragen, die sich auch in Luft (und sogar im Vakuum) ausbreiten konnen.

UMTS-HSDPA

In den letzten Jahren wurden mit HSDPA 3 – einem Ubertragungsverfahren des Mobilfunkstan-dards UMTS 4 – Ubertragungsgeschwindigkeiten in Mobilfunknetzwerken ermoglicht, die den Verkehrgroßer Datenmengen ohne Kabel- oder WLAN-Verbindung ermoglichen.

2http://www.heise.de/newsticker/Inselstaat-Tuvalu-sahnt-ab-mit-tv–/meldung/117033High Speed Downlink Packet Access4Universal Mobile Telecommunications System

Page 10: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

1.1 Netzwerk-Grundlagen 10

1.1.5 Vermittlungsgerate

Router

Bei einem Router handelt es sich um eine Schnittstelle (Kopplungs- bzw. Entkopplungseinheit)zwischen zwei Netzwerken, die eine Verbindung zwischen diesen Netzwerken herstellt (auch wenndiese Netzwerke unterschiedliche Topologien verwenden). Router lassen sich zum Aufteilen eineslokalen Netzwerks in mehrere kleinere Netze oder aber als Bindeglied zwischen mehreren lokalenNetzwerken innerhalb großerer Netze (z.B. Internet) einsetzen. Router arbeiten auf Schicht 3 desOSI-Schichtenmodells (Kapitel 2.3).

Switch

Ein Switch dient zur Verbindung mehrerer Computer bzw. Netz-Segmente in einem lokalen Netz-werk (LAN). Switches werden oft auch als intelligente Hubs bezeichnet und funktionieren ahnlichwie Bridges. Switches arbeiten ublicherweise auf Schicht 2 des OSI-Schichtenmodells (Kapitel 2.3).

Hub

Ein Hub verbindet mehrere Computer bzw. Netz-Segmente oder Peripheriegerate sternformig mit-einander. Hubs arbeiten auf Schicht 1 des OSI-Schichtenmodells (Kapitel 2.3).

Gateway

Unter einem Gateway (der Ausdruck wird oft – nicht ganz korrekt – mit Routern gleichgesetzt) ver-steht man ein Vermittlungsgerat, an welches ein Computer in einem Netzwerk seine Pakete schickt,wenn die Zieladresse außerhalb des eigenen Netzwerkes liegt, das heißt, wenn der Computer den“Weg” zu seiner Zieladresse nicht kennt. Unter “Weg” werden dabei alle Knoten verstanden die einPaket durchgehen muss um an die Zieladresse zu kommen. Die einzelnen Netzwerke konnen dabeiauf unterschiedlichen Protokollen basieren. Gateways arbeiten auf den OSI-Schichten 4 bis 7.

Standardgateway

Standardgateways stellen eine Standardroute bereit, die bei der Kommunikation mit anderen Netz-werken verwendet wird – es ist aber auch moglich, alternative Gateways einzurichten.

1.1.6 VPN - Virtual Private Network

VPNs sind ubergelagerte (virtuelle) Netzwerke, die auf bestehenden physischen (realen) Netzen auf-bauen. (Vgl, [9, p.779]: VPNs are overlay networks on top of public networks but with most of theproperties of public networks.) Zum Beispiel kann ein Computer eines Mitarbeiters uber VPN vonzu Hause aus einen gesicherten Zugriff auf das Firmennetz erlangen. Um die Daten vertraulich zuhalten, wird der Verkehr und damit die Information verschlusselt uber das offentliche Netz geschickt.Wesentliche Eigenschaften von VPN sind

• Vertraulichkeit: Die Information wird vom Sender verschlusselt bevor sie uber das Netzwerkgesendet wird.

• Datenintegritat: Der Empfanger kann verifizieren, dass die Daten bei der Ubertragung durchdas Internet nicht verandert wurden.

• Authentizitat der Datenquelle: Der Empfanger kann die Datenquelle und damit die Herkunftder Information eindeutig identifizieren und verifizieren.

Page 11: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

1.2 TCP/IP-Einstellungen unter Windows/Linux 11

1.2 TCP/IP-Einstellungen unter Windows/Linux

In Linux und Windows gibt es unterschiedliche Befehle um die aktuellen TCP/IP-Konfigurationswerteanzeigen zu lassen. Unter beiden Betriebssystemen lassen sich die Netzwerkeinstellungen unter an-derem uber die Kommandozeile auslesen, unter Linux offnen Sie dazu ein Terminal, unter Windowsdie Eingabeaufforderung (Start/Ausfuhren, danach den Befehl cmd eingeben und bestatigen).

Unter Linux: ifconfig

Wird ifconfig ohne Parameter aufgerufen, so wird der Zustand der im Augenblick aktiven Netzwerk-Schnittstellen (Interfaces) angezeigt. Im Folgenden werden ein paar wichtige Informationen der Aus-gabe von ifconfig naher erklart, Abbildung 3 ist ein Beispiel wie eine solche Ausgabe aussehenkann.

• eth0 ist das Netzwerk-Interface, von welchem die Informationen angezeigt werden

• HWaddr ist die MAC-Adresse der Ethernet-Karte

• Inet addr ist die IP-Adresse des Rechners

• Mask ist die Subnetzmaske

• RX sind die empfangenen Pakete/Bytes

• TX sind die gesendeten Pakete/Bytes

Abbildung 3: Ausgabe von ifconfig unter Linux

Wichtige Aufruf-Optionen von ifconfig:

• ifconfig -help: Anzeigen aller Optionen.

• ifconfig -a: zeigt den Zustand aller Schnittstellen an, selbst wenn diese inaktiv sind.

Der Befehl man ifconfig ruft die Manual-Page (Anleitung) auf 5. Darin werden alle Optionen sowiedie Syntax des Befehls angezeigt.

Unter Windows: ipconfig

Wird ipconfig ohne Parameter aufgerufen, so werden die IP-Adresse, die Subnetzmaske und dasStandardgateway der installierten Netzwerk-Interfaces angezeigt. Wird ipconfig mit der Option-all bzw. /all aufgerufen, so werden zusatzlich die Windows-IP-Konfiguration sowie weitere Infor-mationen ausgegeben.

5Abkurzung fur “Manual Page” (Handbuch-Seite) unter Linux/UNIX und verwandten Betriebssystemen. Um nachBegriffen zu suchen geben Sie “/” gefolgt vom Suchbegriff ein

Page 12: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

1.2 TCP/IP-Einstellungen unter Windows/Linux 12

Abbildung 4: Ausgabe von ipconfig -all unter Windows

Mittels ipconfig /? werden alle Optionen des Befehls angezeigt.

1.2.1 Der Befehl ping

Mit dem Netzwerk Tool ping (benannt nach dem ublichen Ton, den ein Sonar von sich gibt6) kanngetestet werden, ob und wie schnell eine Verbindung zu einem Remote-Rechner aufgebaut werdenkann. Dabei werden Pakete an den Remote-Rechner geschickt und uberpruft, ob diese retour ge-schickt werden.

Ping verwendet das ICMP (Internet Control-Message Protocol, siehe Kapitel 2.4), wel-ches in Netzwerken zum Austausch von Fehler- und Informationsmeldungen dient. Mittels ping wirdein ICMP-“Echo-Request” (ping) an die Zieladresse des zu uberprufenden Hosts geschickt. DerEmpfanger muss laut Protokollspezifikation eine Antwort zurucksenden: ICMP-“Echo-Reply” (pong).

Ausfuhren von ping

Sowohl in Linux als auch in Windows konnen Sie ping uber die Eingabezeile ausfuhren, unter Linuxoffnen Sie dazu ein Terminal, unter Windows die Kommandozeile. Um ping benutzen zu konnen,geben Sie ping gefolgt von einem Ziel-Host (Servername, wie z.B. www.yahoo.com oder numerischeIP-Adresse ) ein. Das Ergebnis eines erfolgreichen ping-Befehls ist in Abbildung 5 zu sehen.

Der Output zeigt an, wie lange ein Datenpaket braucht, um von dem Rechner von dem es losgeschicktwird zu einem spezifizierten Host und wieder zuruck zu gelangen.

• In diesem Beispiel ist www.yahoo-ht3.akadns.net der volle Name des Hosts, wie er von ping

gefunden wurde, 87.248.113.14 ist die dazugehorige IP-Adresse.

• “Bytes” gibt die Große des gesendeten Datenpaketes an (meist 32 in Windows, 128 in Linux)

• “Zeit” gibt die Round Trip Time in Millisekunden an (also die Zeit, in der ein Paket von derQuelle zum Ziel und zuruck reist)

6http://ftp.arl.mil/~mike/ping.html

Page 13: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

1.2 TCP/IP-Einstellungen unter Windows/Linux 13

• “TTL” (Time To Live) gibt die Lebensdauer eines Datenpaketes an (als Anzahl der Router,von denen ein Paket weitergeleitet wird, bevor die Suche nach dem Host aufgegeben wird).

Werden alle verschickten Pakete empfangen, so gibt es eine funktionierende Verbindung zum Host,wobei einzelne verlorene Paket auf eine fehlerhafte oder zu langsame Verbindung hinweisen. Wenngar keine Pakete empfangen wurden, dann wird die Meldung “Zeituberschreitung der Anforderung”ausgegeben.

Abbildung 5: ping unter Windows

1.2.2 Tracerouting

Datenpakete werden im Internet nicht direkt von einem Rechner zu einem anderen geschickt, sondernmeist von mehreren IP-Routern (beziehungsweise Computern mit Routing-Funktion) weitergeleitet(“geroutet”). Traceroute ist ein Diagnose-Werkzeug, mit dem ermittelt werden kann, uber welcheIP-Router Datenpakete bis zum Ziel-Host vermittelt werden. Traceroute zeigt an, welchen Weg dieDatenpakete durch das Internet nehmen, und welche Knoten sie dabei durchqueren mussen, umdas Ziel zu erreichen. Um diese Information herauszufinden, werden ICMP-Pakete mit steigendenTTL-Werten an den Ziel-Host gesendet. Bei einem Time To Live-Wert von 0 wird das Paket sofortverworfen, bei einem Wert von 1 passiert dies beim ersten Router, bei einem Wert von 2 beim zweiten,und so weiter. Wird ein Paket verworfen, wird der Absender des Pakets verstandigt – so kann dervollstandige Weg zum Ziel-Host rekonstruiert werden. Erreichen die Datenpakete ihr Ziel nicht, sokann daher mittels Traceroute herausgefunden werden, welcher Knoten ausgefallen ist.

Vorsicht: Manchmal kann der von Traceroute angezeigte Weg durch verschiedene Faktoren (Firewall,fehlerhafte Implementierungen, . . . ) vom tatsachlichen Weg, uber den ein Paket gesendet wurde,abweichen.

Ausfuhren von traceroute

Unter Linux konnen Sie traceroute uber den Befehl traceroute im Terminal ausfuhren, unter Win-dows uber den Befehl tracert in der Eingabeaufforderung. Die man pages von Linux konnen wiedermittels man traceroute aufgerufen werden, die Windows Optionen mittels tracert /?.

Page 14: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

1.3 Packet Sniffing mit Wireshark 14

1.3 Packet Sniffing mit Wireshark

Nun geht es darum, das Netzwerk-Analysetool Wireshark kennenzulernen und erste Schritte damit zuunternehmen. Wireshark (fruher: Ethereal) [4, 3] ist ein “packet sniffer” – ein Programm zur Ana-lyse von Netzwerk-Kommunikationsverbindungen. Mit Wireshark kann man z.B. einige Zeit lang alleNetzwerk-Pakete (Datenframes) mitprotokollieren und danach in aller Ruhe filtern, auswerten etc.Dabei konnen prinzipiell alle Pakete mitprotokolliert werden, welche die eigene Netzwerk-Hardwareerreichen.

Normalerweise verwirft eine Netzwerk-Karte7 Pakete fur Ziel-Adressen, die ihr nicht zugeordnet sind.Packet sniffer setzen das entsprechende Netzwerk-Interface (jenes, auf dem mitprotokolliert werdensoll) jedoch in den sog. “promiscuous mode” – es werden dadurch alle empfangenen Pakete sichtbar.Dies ist mit ein Grund dafur, warum Sie ohne Einsatz einer Verschlusselung nie echte Zugangsda-ten/Passworter in diesem Praktikum verwenden sollten!

(Daten-)Pakete und (Daten-)Frames: Auf den letzten Seiten kamen sehr oft die Begriffe Pa-kete bzw. Datenpakete und Frames bzw. Datenframes vor. Auf den Unterschied zwischen Paketenund Datenframes bzw. deren Aufbau wird in Kapitel 2.6 genauer eingegangen (dafur sind Kenntnissedes TCP/IP-Modells notig). An dieser Stelle sei nur soviel gesagt: Daten werden in Netzwerken nichtim Ganzen gesendet (z.B. ein komplettes Bild) sondern in Pakete unterteilt, die einzeln versendetbzw. empfangen werden. In Wireshark werden Pakete als “Frames” bzw. “Datenframes” bezeichnet.

1.3.1 Installation

• Unter Ubuntu konnen Sie Wireshark entweder mit Hilfe des Paketmanagers bzw. uber folgendesKommando installieren (starten Sie dazu ein Terminal und geben Sie diesen Befehl dort ein):

$ sudo apt-get install wireshark

Sie benotigen wahrscheinlich root-/Administrator-Rechte 8, um Wireshark ohne Einschrankungverwenden zu konnen.

• Unter Windows konnen Sie das Setup-Programm von http://www.wireshark.org/download.

html beziehen. Der Installations-Weg sollte selbsterklarend sein, evt. ist nach der Installationein Neustart notig.

Sie konnen Wireshark zu Hause zu Testzwecken entweder unter Ihrem normalen Betriebssystem oderinnerhalb einer virtuellen Maschine installieren (wie im Computerlabor Lenaugasse). Hinweise zurInstallation einer VM-Software finden Sie im Anhang.

1.3.2 Crashkurs

1. Unter Linux mussen Sie Wireshark mit root-/Administratorrechten starten ($ sudo wireshark),unter Windows wie jedes andere Programm. Sie sollten nun eine Programm-Oberflache ahnlich

7egal ob Onboard/PCI-Ethernet, PCMCIA/USB-WLAN, o.a.8Erkarung sudo: (substitute user do) ein Linux/UNIX Befehl, der dazu benutzt wird, Prozesse mit den Rechten eines

anderen Benutzers (z. B. des Superusers root) zu starten. Der dauerhafte Wechsel der Identitat erfolgt durch sudo-s, bzw. mit dem Befehl su, sofern ein Passwort fur root gesetzt ist. Wird Wireshark ohne sudo aufgerufen, sokonnen Sie moglicherweise kein Capture starten, da hierzu Superuser (Root) Rechte notig sind

Page 15: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

1.3 Packet Sniffing mit Wireshark 15

zu dieser sehen:

Abbildung 6: Wireshark Hauptseite

2. Im Menu Capture konnen Sie den Mitschnitt bestimmter Interfaces starten/stoppen/konfigurierenetc. (Achten Sie darauf, das richtige Interface auszuwahlen!) Wenn Sie unter Capture/Optionsim Feld “Display Options” die Markierung bei “Hide capture info dialog” loschen, sehen siewahrend des Mitschnittes das Capture des ausgewahlten Netzwerk-Interfaces.

Abbildung 7: Wireshark Capture Info Dialog

3. Wird der Mitschnitt beendet, wird eine Liste der protokollierten Datenframes (siehe Section 2.6)angezeigt (Abb. 8).

• Im oberen Teil des Protokollfensters werden die wichtigsten Informationen zu den einzel-nen Frames angezeigt. Die Frames lassen sich auch nach wichtigen Eigenschaften aufstei-gend oder absteigend ordnen.

• Im mittleren Fenster werden die Informationen der einzelnen OSI bzw. TCP/IP-Schichten(siehe 2.1) fur das aktuell markierte Frame angezeigt.

• Im untersten Teil sind die einzelnen Bytes des aktuell ausgewahlten Frames zu sehen.

Page 16: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

1.3 Packet Sniffing mit Wireshark 16

Abbildung 8: Wireshark Protokollfenster

4. Des Weiteren ist es in Wireshark moglich, sich einen kompletten Stream/Flow (der sich ublicherWeise aus mehreren Paketen zusammensetzt) anzeigen zu lassen. Klicken Sie hierzu mit derrechten Maustaste auf ein Paket und dann “Follow TCP bzw. UDP Stream”.

Abbildung 9: Wireshark TCP Stream

5. Im Menu Statistics gibt es eine Vielzahl interessanter Features mit denen sich unterschied-lichste Auswertungen realisieren lassen.

6. Eine der wichtigsten Funktionen von Wireshark ist der Filter, mit dem bestimmte Frames (bzw.Pakete), die von Interesse sind, gezielt herausgefiltert werden konnen. Ein Filter kann uber dieFilter-Toolbar (oben links in Abbildung 6) oder uber das Menu Analyze/Display Filter

gesetzt werden. Zum Beispiel konnen Frames gefiltert werden, die von einer bestimmten IP-Adresse aus gesendet wurden oder an eine bestimmte IP-Adresse geschickt wurden. Ebensokann etwa nach Große, verwendetem Transportprotokoll, verwendeter Anwendung und vielenweiteren Dingen gesucht werden.

7. Neben Filter gibt es in Wireshark auch die Moglichkeit manuell nach Paketen zu suchen(Edit/Find Packet). Hier konnen Sie zum Beispiel nach einem String suchen, der in denFrames vorkommt.

Page 17: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

1.4 Rechnerlabor Lenaugasse 17

1.4 Rechnerlabor Lenaugasse

In diesem Abschnitt geht es darum, die Software-Umgebung des Rechnerlabors in der Lenaugassekennen zu lernen. Um gleichzeitig bzw. parallel mit zwei unterschiedlichen Betriebssystemen arbeitenzu konnen und um Ihnen in den jeweiligen Betriebssystemen root- bzw. Administrator-Rechte gebenzu konnen, verwenden wir in diesem Praktikum virtuelle Maschinen.

Auf den nachsten Seiten erhalten Sie eine kurze Einfuhrung in die Themen Virtualisierung undvirtuelle Maschinen, sowie in das Programm VMware Server, welches im Praktikum verwendet wird.Des Weiteren gibt es im Anhang ein Tutorial, welches Ihnen helfen soll, zu Hause die Software-Umgebung des Rechnerlabors nach zu bauen. Sie mussen also zum Losen der Beispiele nicht in dasRechnerlabor kommen, sondern konnen alles von zu Hause aus losen.

Software-Anforderungen: Falls sie die Aufgaben aus ihrem eigenen System losen wollen, mussen aufihrem System ZWEI virtuelle Betriebssysteme laufen (davon mind. ein Linux-Devariat (idealerweiseUbuntu)).

ACHTUNG: Es wird vorausgesetzt, dass Sie bei den Abgabegesprachen mit der Software-Umgebungdes Rechnerlabors (siehe Beiblatt Softwareumgebung Rechnerlabor Lenaugasse) arbeiten konnen(eigene Laptops werden bei den Abgabegesprachen NICHT akzeptiert). Sie sollten sich vor der erstenAbgabe also mit dem Rechnerlabor Lenaugasse vertraut machen.

1.4.1 Virtualisierung und virtuelle Maschinen

Durch Virtualisierung werden die Voraussetzungen geschaffen, um auf einer Hardware mehrere (oftauch unterschiedliche) Betriebssysteme parallel und unabhangig voneinander nutzen zu konnen.Das Betriebssystem wird dabei von der darunter liegenden Hardware entkoppelt. Diese Entkoppelungwird dadurch erreicht, dass zwischen Hardware und Betriebssystem eine Abstraktionsschicht gescho-ben wird, welche den installierten Gast-Betriebssystemen das Vorhandensein von echter Hardwarevortauscht [7]. In Abbildung 10 wird diese Abstraktionsschicht als Virtual Machine Monitor (VMM)dargestellt. Auf diesem Virtual Machine Monitor konnen mehrere virtuelle Maschinen laufen, indenen verschiedene Gast-Betriebssysteme installiert werden konnen.

9

Abbildung 10: Drei virtuelle Maschinen die in einem VMM laufen

9http://edoc.hu-berlin.de/cmsj/28/herbst-roland-22/HTML/6.xml

Page 18: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

1.4 Rechnerlabor Lenaugasse 18

Virtuelle Maschinen

Einfach gesagt ist eine virtuelle Maschine also ein Programm (in dem das Gast-Betriebssystem in-stalliert wird und lauft), welches auf einem Computer lauft und dabei eine unabhangige Betriebsum-gebung schafft. Dem Benutzer entsteht also der Eindruck, als wurde er auf einem anderen Computerarbeiten [1]. Zum Beispiel kann man auf einem Mac oder Windows Rechner ein virtuelles Linux instal-lieren (bzw. umgekehrt), oder aber auch unterschiedliche Linux-Distributionen auf einem Rechner.Jede virtuelle Maschine besitzt dabei ihre eigene Hardware-Ausstattung (z. B. CPU, RAM, Netz-werkkarte). Achtung! Die virtuelle Maschine darf nicht mit dem Gast-Betriebssystem gleichgesetztwerden, sondern das Gast-Betriebssystem wird in eine virtuelle Maschine hinein installiert.

1.4.2 Vor- und Nachteile virtueller Maschinen

Es gibt unterschiedliche Argumente, die fur den Einsatz von virtuellen Maschinen sprechen. In die-sem Praktikum sind vor allem folgende Vorteile dafur ausschlaggebend, dass virtuelle Maschinenverwendet werden:

• Partitionierung: Auf einem physikalischen System konnen gleichzeitig verschiedene Applika-tionen und Betriebssysteme genutzt werden (ohne neu booten zu mussen), ohne dass sich dieeinzelnen Installationen gegenseitig beeinflussen konnen.

• Isolation: Virtuelle Maschinen sind vollstandig vom Host-System und den anderen virtuellenMaschinen entkoppelt. Wenn eine virtuelle Maschine absturzt, sind die anderen nicht von die-sem Crash betroffen.

• Sicherheit: Alle Studenten konnen die virtuellen Maschinen mit root- bzw. Administrator-Rechten nutzen, ohne jedoch die Sicherheit des Host-Systems zu gefahrden.

Die Nachteile die durch den Einsatz virtueller Maschinen entstehen betreffen vor allem die Effizienzdes Systems: Eine virtuelle Maschine braucht viel Speicherplatz. Zum einen betrifft das den erhohtenAnspruch an Festplattenplatz, da jede virtuelle Maschine eine eigene Partition oder zumindest eineDatei benotigt, die als virtuelle Festplatte des Gast-Betriebssystems fungiert. Zum anderen benotigtjedes gestartete Gast-Betriebssystem auch Hauptspeicher, welcher dann fur das Host-Betriebssystemnicht mehr verfugbar ist.

1.4.3 Programme

Hier eine kleine Auswahl an frei zur Verfugung stehender VM Software:

• VMware-Player und Server http://www.vmware.com/

• Virtual PC 2007 http://www.microsoft.com/windows/products/winfamily/virtualpc/

default.mspx

• Parallels Desktop-fur MAC http://www.parallels.com/

1.4.4 VMware Server

Im Praktikum verwenden wir das Programm VMware Server [2]. VMware Server ist ein kostenlosesVirtualisierungsprodukt fur Windows- und Linux-Server. Ein Tutorial zur Installation des VMwarePlayer finden Sie im Anhang.

Page 19: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

1.5 Weiterfuhrende Literatur – Fur interessierte LeserInnen 19

1.5 Weiterfuhrende Literatur – Fur interessierte LeserInnen

Netzwerk-Grundlagen

Es gibt eine Vielzahl an Buchern, die sich mit Netzwerk-Grundlagen befassen. Einige bekannte Bei-spiele die auch den Großteil des Praktikum-Stoffs beinhalten sind z.B.

Andrew. S. Tanenbaum - Computernetzwerke(Pearson Studium - Auflage: 4, 2003; ISBN 3827370469)

Andrew. S. Tanenbaum, Maarten von Steen - Verteilte Systeme: Prinzipien und Paradigmen(Pearson Studium - Auflage 2, 2007; ISBN 3827370574)

George Coulouris et al. - Verteilte Systeme: Konzepte und Design(Pearson Studium; Auflage: 3, 2005 - ISBN: 3827371864)

Original Literature in English:

Andrew. S. Tanenbaum - Computer Networks (International Students Edition)(Prentice Hall International; 4th ed, 2003; ISBN: 0130384887)

Andrew. S. Tanenbaum, Maarten von Steen - Distributed Systems: Principles and Paradigms(Prentice Hall International; 2nd rev. ed., 2008; ISBN: 0136135536)

George Coulouris et al. - Distributed Systems: Concepts and Design(Addison Wesley; 4th ed, 2005; ISBN: 0321263545)

Wireshark

Unter http://wiki.wireshark.org gibt es ein ausfuhrliches Wiki zur Benutzung von Wireshark inwelchem Sie samtliche Informationen zum Umgang und zur Bedienung dieses Tools finden. Weitereskonnen Sie sich direkt unter Wireshark im Menu Hilfe die Manual Pages von Wireshark und Wi-reshark Filter anzeigen lassen.

Wireshark Tutorials gibt es u.a. unterhttp://www.wireshark.org/news/20060714.html

bzw. in Deutsch unterhttp://www.nwlab.net/tutorials/ethereal/ethereal-tutorial.html.

Virtualisierung

Als weiterfuhrende Literatur zu Virtualisierung wollen wir auf zwei Online-Artikel verweisen:

http://www.vmware.com/pdf/virtualization.pdf

http://softwarecommunity.intel.com/isn/downloads/virtualization/pdfs/An_Introduction_

to_Virtualization.pdf

Als aktuelles Praxisbuch zu VMware Server sei folgendes Werk erwahnt:

Dirk Larisch - VMware Server 2(Hanser Fachbuch; Auflage: 2., 2008; ISBN: 3446415580)

Page 20: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

20

Einheit 2 - Das OSI und das TCP/IP-Referenzmodell

Nachdem wir uns in Einheit 1 mit Netzwerk-Grundlagen beschaftigt haben, mochten wir nun aufReferenzmodelle eingehen, welche die Kommunikation zwischen unterschiedlichen Netzen bzw. Sy-stemen regeln. Wir beginnen hier mit einer eher abstrakten und allgemeinen Einleitung, die auch alsMotivation fur die Verwendung dieser Modelle dienen soll. Danach werden das OSI- und das TCP/IP-Referenzmodell (Literatur: [10], [11]) kurz behandelt. Das OSI-Modell ist sehr allgemein formuliertund besitzt immer noch Gultigkeit, obwohl die darin definierten Protokolle kaum noch verwendetwerden. Die Protokolle des TCP/IP-Modells werden dagegen sehr haufig verwendet, dafur existiertpraktisch keine allgemein gultige Beschreibung des Modells. Im Anschluss daran widmen wir unsdem Unterschied von Datenframes und IP-Paketen sowie den Protokollen der Internetschicht.

2.1 Motivation

Das Internet ist langst ein Bestandteil des taglichen Lebens geworden. Beinahe jede und jeder vonuns benutzt es - sei es, um Webseiten zu besuchen, E-Mails zu senden und abzurufen, uber Instant-Messenger (ICQ, Skype) zu kommunizieren, Chatrooms zu besuchen oder Dateien untereinanderauszutauschen. Die Kommunikation uber ein derart komplexes Netzwerk wie das Internet ist keinetriviale Sache.

Computer konnen auf verschiedenste Art miteinander verbunden werden. Z.B. konnten sie direktmiteinander verbunden werden, in dem man alle Gerat direkt miteinander verbindet. Diese Methodeeignet sich nur fur sehr wenig Rechner, da man fur jede Verbindung eine eigene Netzwerkkartebenotigt, und der Verkabelungsaufwand nahezu quadratisch mit der Anzahl angeschlossener Geratesteigt.

Der Verkabelungsaufwand kann verringert werden, in dem man Verteiler verwendet (ahnlich derVerteilersteckdose beim Strom). Solche Gerate werden (je nachdem, welche Steuerlogik sie besitzen)Switch, Hub oder Router genannt. Sind Rechner uber Router miteinander verbunden, dann liegtkeine direkte Verbindung mehr vor.

Eine typische Aufgabe, die ein Anwender in einem Netzwerk erledigen mochte, ist das Versenden vonDaten (z.B versenden einer Email, aber auch beim Speichern einer Datei auf einem Server). Alleinfur diese einfache Aufgabe stellt sich eine Vielzahl von Fragen:

• Wie findet mein Rechner den Zielrechner?

• Wie kann man sicherstellen, dass die Daten korrekt ankommen?

• Was passiert bei einem Ubertragungsfehler?

• . . .

Fur den Anwender sind diese Fragen uninteressant. Dem Anwender, der ein E-Mail nach Australiensenden mochte, ist egal ob sein Computer uber WLAN oder mit einem Netzwerkkabel mit demInternet verbunden ist. Ebenso ist es ihm egal, ob das E-Mail uber Server in Amerika oder Asienoder uber einen Satelliten ubertragen wird. Der Anwender muss sich darum nicht kummern. Dochwie kann diese Komplexitat der Ubertragung vor dem Anwender verborgen werden?

Damit die Komplexitat verringert werden kann, werden Netze aus mehreren Schichten (Ebenen)aufgebaut. Jede Schicht besitzt klar definierte Aufgaben, die sie als Dienste der jeweils

Page 21: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

2.2 Dienste und Protokolle 21

hoheren Schicht zur Verfugung stellt. Als Beispiel, hier ein Vergleich aus dem “normalen Le-ben”: Die Schicht “Postabteilung” bietet einer Firma den Dienst “Empfange und Versende Post” an.Die Postabteilung verwendet ihrerseits die Dienste “Stelle Post zu” und “Hole Post ab” der darun-terliegenden Schicht “Zustelldienst” (Post, DHL, UPS,...). Auch hier bleibt die eigentliche Art derUbertragung (Zustellung der Post) vor dem Anwender verborgen.

Das gleiche passiert in Netzwerkschichten. Damit die Schichten miteinander kommunizieren konnen,mussen Regeln und Konventionen vereinbart werden, wie die Kommunikation ablauft. Die Kommu-nikation zwischen Rechnern erfolgt immer zwischen gleichen Schichten (Postabteilung von Firma 1kommuniziert mit Postabteilung der Firma 2). Die Regeln zur Kommunikation zwischen den (glei-chen) Schichten werden Protokolle der Schicht genannt.

Zwischen zwei benachbarten Schichten eines Systems befindet sich immer eine Schnittstelle. DieSchnittstelle definiert, welche Operationen und Dienste die untere der oberen Schicht anbietet (dieSchicht “Sekretariat” bietet der Schicht “Management” beispielsweise die Dienste “Terminverwal-tung”, “Schriftverkehr”, “Kopiertatigkeit” und “Kaffee kochen”). Wie viele Dienste in einer Schichtdefiniert werden, bestimmen die Netzentwickler (man kann also entweder den Dienst “Zur Post gehen”in der Schicht “Sekretariat” implementieren, oder eine eigene Schicht “Postabteilung” entwickeln,die dann den Dienst “Post verschicken” der Schicht “Sekretariat” bereitstellt). Die Komplexitat undUbersichtlichkeit von Netzarchitekturen hangt also stark von der Definition der Schichten und Dien-ste ab. Hier wird auch der wesentliche Vorteil von Schichtmodellen sichtbar: Die hoheren Schichten(“Management”) werden von der technischen Umsetzung in den unteren Schichten vollstandig ge-trennt! Ob das Paket zu Fuß, mit dem Auto oder per Luftpost an sein Ziel gelangt und welchen Wegder Zusteller nimmt (entspricht dem Routing), ist dem Management vollig egal.

2.2 Dienste und Protokolle

Dienste und Protokolle basieren auf verschiedenen Konzepten, auch wenn sie oft verwechselt werden.Wir wollen den Unterschied nochmal klar machen: Ein Dienst ist eine Sammlung von Operationen,die eine Schicht der uber ihr liegenden Schicht zur Verfugung stellt. Der Dienst definiert, welcheOperationen diese Schicht fur ihre Benutzer ausfuhren kann, sagt aber nichts daruber aus, wie dieseOperationen implementiert sind (beispielsweise kann der Dienst “Kopiere Dokument” sowohl durchdas Einlegen des Dokuments in einen Kopierer oder durch das Abtippen und Neuausdrucken realisiertsein. Das fur den Dienstnutzer sichtbare Ergebnis ist in beiden Fallen ein kopiertes Dokument).Dienste beziehen sich also auf Schnittstellen zwischen den Schichten innerhalb eines Rechners.

Protokolle hingegen beziehen sich auf den Austausch von Nachrichten, die zwischen zwei gleichge-stellten Einheiten (also gleichen Schichten) auf verschiedenen Rechnern verwendet werden. Protokollespezifizieren die Regeln, das Format und die Bedeutung der ausgetauschten Nachrichten zwischenden Einheiten.

2.3 Das OSI-Referenzmodell

Das OSI-Referenzmodell (engl. Open Systems Interconnection Reference Model, siehe Abbil-dung 12) basiert auf einem Vorschlag der ISO (International Standards Organization) aus dem Jahr1983, daher nennt man es auch ISO/OSI-Modell (manchmal findet man auch die BezeichnungenOSI-Schichtenmodell, OSI-Modell oder 7-Schichten-Modell). Das OSI-Modell ist darauf ausgelegt,die Kommunikation in offenen Systemen zu regeln. Ein offenes System ist ein System, das darauf

Page 22: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

2.3 Das OSI-Referenzmodell 22

vorbereitet ist, mit anderen offenen Systemen zu kommunizieren, und zwar unter Verwendung vonStandardregeln, die das Format, den Inhalt und die Bedeutung der gesendeten und empfangenenNachrichten regeln. Diese Regeln sind formalisiert und werden auch als Protokolle bezeichnet [11].

Die Aufgaben der Kommunikation wurden im OSI-Modell in sieben aufeinander aufbauenden Schich-ten (Englisch: Layer) unterteilt. Fur jede Schicht existiert eine Beschreibung, in der definiert ist,was diese Schicht zu leisten hat. Diese Anforderungen mussen von den Kommunikationsprotokol-len realisiert werden. Die konkrete Umsetzung wird dabei nicht vorgegeben und kann daher sehrunterschiedlich sein. Somit existieren mittlerweile fur jede Schicht zahlreiche solcher Protokolle.

Wie schon erwahnt, werden bei einer Kommunikation die Daten von einer Schicht zur nachstenweitergereicht, das heißt die Kommunikation erfolgt in vertikaler Richtung. Auf der Senderseite lauftdie Kommunikation von oben nach unten und auf der Empfangerseite von unten nach oben (sieheAbbildung 11).

Wenn also ein Prozess A auf Rechner 1 mit Prozess 2 auf Rechner B kommunizieren will, erzeugter eine Nachricht und ubergibt sie seiner Applikationsschicht. Die Applikationsschicht fugt vor dereigentlichen Nachricht einen Header ein (damit die Applikationsschicht auf Rechner B weiß, wiesie diese Nachricht verarbeiten kann und soll) und ubergibt die (nun um den Header erweiterte)Nachricht uber die Schnittstelle von Schicht 6/7 an die Darstellungsschicht (siehe Abbildung 11).

10

Abbildung 11: Schichten und Nachrichtenverschachtelung im OSI-Modell

Die Schichten im Einzelnen

Die sieben Schichten kann man sich gut mit dem Merksatz “Please do not throw salami pizza away”einpragen, wobei die Anfangsbuchstaben jeweils fur die englische Bezeichnung stehen:

1. Physical Layer – BitubertragungsschichtJede Datei, jedes Mail, jede Webseite usw. wird im Endeffekt als Folge von Bits ubertragen. DieBitubertragungsschicht ist dafur zustandig, eine physikalische Verbindung zu erstellen (bzw. zu de-

10http://www2.themanualpage.org/networks/networks osi2.php3

Page 23: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

2.3 Das OSI-Referenzmodell 23

aktivieren) und regelt die Art und Weise, in welcher Form die Informationen dieser Bits (0 oder 1)ubertragen werden. Beispielsweise konnen Bits uber elektromagnetische Wellen (WLAN), elektrische(Ethernet) oder optische Signale (Glasfaser) ubertragen werden.

2. Data Link Layer – SicherungsschichtBei jeder Ubertragung kann es zu Fehlern kommen. Einerseits konnen durch Storungen Informatio-nen verloren gehen, andererseits kann es passieren, dass der Sender Daten schneller sendet, als sie derEmpfanger aufnehmen kann. Um eine gesicherte Ubertragung zu erzielen, werden die zu versenden-den Daten in kleine Einheiten aufgeteilt (Pakete bzw. Datenframes genannt (siehe Abschnitt 2.6)).Die Sicherungsschicht kummert sich nun darum, dass die Pakete korrekt ankommen (etwa durchPrufsummen) und der Empfanger nicht mit Paketen uberflutet wird.

3. Network Layer – VermittlungsschichtNur in seltenen Fallen lauft die Kommunikation zwischen direkt verbundenen Rechnern ab. Meistmussen Pakete uber mehrere Stationen (Knoten, Router) ihr Ziel finden. Die Vermittlungsschichtsorgt fur die Weitervermittlung von Datenpaketen uber das gesamte Kommunikationsnetz hinweg,einschließlich der Wegesuche (Routing) zwischen den Knoten des Netzes. Die weitervermitteltenPakete gelangen nicht in hohere Schichten, sondern werden mit einem neuen Zwischenziel (nachsterRouter) versehen und dorthin gesendet. Zu den Aufgaben der Vermittlungsschicht zahlen der Aufbauund die Aktualisierung von Routingtabellen. Da ein Kommunikationsnetz aus mehreren Teilnetzenunterschiedlicher Technologien bestehen kann (LAN, MAN, WAN, ...), sind in dieser Schicht auchdie Umsetzungsfunktionen angesiedelt, die fur eine Weiterleitung notwendig sind. Ein Tool, mit demSie sich die Route eines Pakets zu seinem Empfanger ansehen konnen, ist traceroute.

4. Transport Layer – TransportschichtDie Transportschicht realisiert eine direkte logische Ende-zu-Ende-Kommunikation zwischen zweiTeilnehmern. Der transparente Datentransport uber die Netzwerkverbindungen kann dabei durchMechanismen fur die Flusskontrolle gesteuert werden. Zu den Aufgaben der Transportschicht zahlendie Segmentierung von Datenpaketen und die Stauvermeidung (engl. congestion control). Sie bietetden anwendungsorientierten Schichten 5-7 einen einheitlichen Zugriff, sodass diese die spezifischenEigenschaften des Kommunikationsnetzes nicht zu berucksichtigen brauchen (so wie vorher erwahnt,mussen sich die oberen Schichten nicht um die tatsachliche Art der Ubertragung kummern).

5. Session Layer – SitzungsschichtDie Sitzungsschicht ermoglicht es Benutzern an verschiedenen Rechnern Sitzungen untereinanderaufzubauen. Sitzungen stellen verschiedene Dienste zur Verfugung, etwa die Dialogsteuerung, dieverfolgt, wer gerade Daten ubertragen darf (vgl. Moderator bei einer Diskussionsrunde). Ein wichtigesProtokoll dieser Schicht ist RPC (Remote Procedure Call) – ein Protokoll, welches den Aufruf vonFunktionen anderer Adressraume (auf anderen Computern) ermoglicht .

6. Presentation Layer – DarstellungsschichtAufgabe der Darstellungsschicht ist die Codierung und Darstellung der Informationen, welche zwi-schen offenen Systemen ausgetauscht werden, also z.B.: die Umsetzung von systemabhangiger Dar-stellung in eine unabhangige Form, oder auch Datenkompression und Verschlusselung.

7. Application Layer – AnwendungsschichtDie oberste der sieben hierarchischen Schichten ist die Anwendungsschicht. Ihre Aufgabe ist dieBereitstellung von anwendungsorientierten Grunddiensten mit entsprechenden Datenstrukturen undProtokollen. Dabei stellt die Anwendungsschicht eine Vielzahl von Funktionalitaten (Protokolle) zurVerfugung. Zum Beispiel HTTP (HyperText Transfer Protocol, Webserver und Webbrowser), POP3(Post Office Protocol, Empfang von E-Mails), FTP (File Transfer Protocol, Dateitransfer), SSH(Secure Shell, verschlusselte Fernwartung), DNS (Domain Name System), . . .

Page 24: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

2.3 Das OSI-Referenzmodell 24

Abbildung 12: OSI 7-Schichten-Modell

Page 25: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

2.4 Das TCP/IP-Referenzmodell 25

2.4 Das TCP/IP-Referenzmodell

Der Terminus TCP/IP bezeichnet zunachst zwei Protokolle: Das Transmission Control Protocol

(TCP) und das Internet Protocol (IP). Diese beiden Protokolle sind jedoch nur ein Teil einerweitaus großeren Protokollsammlung, der TCP/IP-Protokollfamilie. TCP/IP ist heute und vermut-lich auch in ferner Zukunft die Standardmethode zur systemubergreifenden Datenkommunikation.Sie ermoglicht das Verbinden unterschiedlicher Betriebssysteme und Netzwerkkomponenten. Hierzubietet sie Protokolle, die den meisten Diensten ihre Datenkommunikation ermoglichen.

Das TCP/IP-Referenzmodell ist also speziell auf (Internet) Protokolle zugeschnitten, die den Daten-austausch uber die Grenzen lokaler Netzwerke hinaus ermoglichen (“Internetworking”). Dabei wirdjedoch weder der Zugriff auf ein Ubertragungsmedium noch die genaue Datenubertragungstechnikdefiniert. Vielmehr sind die TCP/IP-Protokolle dafur zustandig, Datenpakete uber mehrere Punkt-zu-Punkt-Verbindungen (Hops) weiterzuvermitteln und auf dieser Basis Verbindungen zwischen Netz-werkteilnehmern uber mehrere Hops herzustellen.

Im Gegensatz zum OSI-Modell besteht das ursprungliche TCP/IP-Modell aus vier Schichten, wo-bei manche Schichten des TCP/IP-Modells die Aufgaben von mehreren Schichten des OSI-Modellsubernehmen (Abbildung 13). Die unterste (Host-to-Network) Schicht wird dabei manchmal auch inzwei Schichten aufgeteilt (wie beim OSI-Modell, Sicherungs- und Vermittlungsschicht) wodurch inder Literatur oftmals auch von einem funf-schichtigen TCP/IP-Modell die Rede ist. Im Rahmendieses Praktikums gehen wir ausschließlich auf das vier-schichtige Modell ein. Diese vier Schichtensind:

1. Host-to-Network Layer – Host-zu-Netz SchichtUnterhalb der Internetschicht herrscht im TCP/IP-Modell große Leere. Das TCP/IP-Modell sagt imGrunde nicht viel daruber aus, was hier passiert, abgesehen von dem Hinweis, dass ein Host uber einbestimmtes Protokoll zum Netz eine Verbindung aufbauen muss, um IP Pakete daruber versendenzu konnen. Die Host-zu-Netz Schicht wird auch manchmal als Netzwerkzugangsschicht bezeichnet.

2. Internet Layer – InternetschichtDie Internetschicht ermoglicht den Hosts (Rechner im Netz) Pakete in jedes beliebige Netz einzu-speisen und unabhangig voneinander an das (potentiell in einem anderen Netz liegende) Ziel zusenden. Die Pakete konnen auch in einer anderen Reihenfolge ankommen, als sie abgeschickt wurden(z.B. wenn verschiedene Pakete verschiedene Routen nehmen). In diesem Fall ist es die Aufgabeder ubergeordneten Schicht, die Daten richtig anzuordnen, falls die exakte Sendereihenfolge benotigtwird.

Die Internetschicht definiert ein offizielles Paketformat und Protokoll namens IP (Internet Protocol).Wie IP fur den Transport und die Steuerung von Paketen verwendet wird ist Teil von Kapitel 2.7.

3. Transport Layer – TransportschichtDie zwei wichtigsten Protokolle der Transportschicht sind das verbindungsorientierte Transportpro-tokoll TCP (siehe Kapitel 3.3) sowie das verbindungslose Netzwerkprotokoll UDP (siehe Kapitel 3.2).TCP verwaltet auch die Flusskontrolle, um sicherzustellen, dass ein langsamer Empfanger nicht voneinem Sender mit Nachrichten uberschwemmt wird.

4. Application Layer – AnwendungsschichtDas TCP/IP-Modell hat weder eine Sitzungs- noch eine Darstellungsschicht. Man sah dafur keineNotwendigkeit (fur diese beiden Schichten besteht tatsachlich kaum Bedarf). Die Anwendungsschichtumfasst alle Protokolle der hoheren Schichten, ursprunglich Telnet, FTP, SMTP, spater dann DNS(Domain Name Service) und HTTP.

Page 26: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

2.5 Gegenuberstellung des OSI- und des TCP/IP-Referenzmodells 26

2.5 Gegenuberstellung des OSI- und des TCP/IP-Referenzmodells

Das OSI- und das TCP/IP-Modell basieren beide auf dem Konzept eines Stapels unabhangigerProtokolle und die Funktionalitat der einzelnen Schichten ist im Allgemeinen sehr ahnlich (siehe Ab-bildung 13). Dennoch gibt es wichtige Unterschiede zwischen den beiden Modellen: Das OSI-Modellbasiert auf den drei explizit unterscheidbaren Konzepten Dienste, Schnittstellen und Protokolle. Die-se Unterscheidung zwischen den drei Konzepten ist beim TCP/IP-Modell nicht so deutlich bis garnicht vorhanden.

11

Abbildung 13: Schema des 7- bzw. 4-Schichtenmodells inkl. Anwendungen

Im Gegensatz zu TCP/IP wurde das OSI-Modell vor der Erfindung der entsprechenden Protokolleentwickelt, es ist daher sehr (im Gegensatz zu TCP/IP) allgemein und nicht auf Protokolle ausgelegt.Weitere Informationen zur Gegenuberstellung der beiden Modelle sind in [10] ab Seite 61 aufgezahlt.

Kritik am OSI- bzw. TCP/IP-Modell

Tanenbaum [10] zahlt ab Seite 63 mehrere Nachteile des OSI- sowie des TCP/IP-Modells auf. Zusam-menfassend meint Tanenbaum, das OSI-Modell (abzuglich Sitzungs- und Darstellungsschicht) wurdesich zur Diskussion von Rechnernetzen als außergewohnlich nutzlich erweisen. Um Probleme derNetzwerkkommunikation im Allgemeinen zu betrachten, greift man also auf das OSI-Referenzmodellzuruck. Dafur sind die Protokolle des OSI-Modells nicht sehr beliebt. Beim TCP/IP-Modell trifft lautTanenbaum das Gegenteil zu: Das (theoretische) Modell existiere praktisch nicht, jedoch wurden dieProtokolle sehr haufig verwendet. Das TCP/IP-Modell lasst sich jedoch auch mit Hilfe des OSI-Modells gut erklaren, da ja auch TCP/IP mit Protokollen arbeitet, die fur die Ubertragung vonDaten zwischen den Rechnern benotigt werden.

Im weiteren Verlauf dieses Praktikums wird uns fast ausschließlich das TCP/IP-Modell bzw. dieProtokolle und Dienste dieses Modells begegnen. Auch bei allen Paketen, die in Wireshark mitpro-tokolliert werden, lassen sich die vier Schichten des TCP/IP-Modells gut erkennen. Im Folgendenwollen wir nun etwas genauer auf Pakete und Datenframes eingehen. Die vier TCP/IP-Schichtenwerden uns auch hier gleich wieder begegnen.

11http://www.tcp-ip-info.de/glossar/tcp-ip-modell-vs-osi-modell.gif

Page 27: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

2.6 Datenframes und IP-Pakete 27

2.6 Datenframes und IP-Pakete

Die Daten, die im Netzwerk ubertragen werden, werden normalerweise nicht im Ganzen ubertragen,sondern vor der Ubertragung in kleine Pakete zerlegt. In Wireshark werden generell komplette Da-tenframes (im Wireshark-Wiki “Ethernet packet” genannt) mitprotokolliert, welche aus mehrerenunterschiedlichen Headern (Kopfdaten mit protokollrelevanten Informationen) sowie den Daten, dieubertragen werden sollen, bestehen. Um den Unterschied zwischen Datenframes und IP-Paketen zuverstehen, ist ein Grundverstandnis des OSI- bzw. TCP/IP-Modells notwendig.

2.6.1 Unterschied zwischen Datenframes und IP-Paketen

Bisher wurde immer von Paketen und Datenframes gesprochen, ohne genau auf deren Unterschie-de einzugehen. Das Problem ist, dass die Begriffe auch in der Literatur oft gemischt werden undnicht einheitlich sind. Im weiteren Verlauf wollen wir deshalb nur noch von Datenframes und IP-Paketen sprechen, deren Unterschiede auf den nachsten Seiten erklart werden. Der Begriff “Paket”soll weiterhin fur eine allgemeine Bezeichnung von Datenframes bzw. IP-Paketen verwendet werden.Ein Datenframe ist ein Datagramm auf Schicht 2 des OSI-Modells bzw. Schicht 1 des TCP/IP-Modells. Ein IP-Paket hingegen, ist ein Datagramm auf Schicht 3 des OSI-Modells bzw. Schicht 2 desTCP/IP-Modells. Der grundlegende Unterschied besteht also darin, dass ein Datenframe zusatzlicheInformationen enthalt, welche in einem IP-Paket nicht vorhanden sind.

2.6.2 Aufbau eines Datenframes

Ein Datenframe beinhaltet folgende Informationen:

• Preamble: Trennzeichen, um Beginn und Ende des Frames festzustellen

• Destination MAC address: Ziel-Adresse

• Source MAC address: Quell-Adresse

• Type/Length: Steuerinformationen

• User Data: Die Daten des Pakets aus Schicht 3 (komplettes IP-Paket)

• Frame Check Sequence: Prufsummen zum Erkennen von Ubertragungsfehlern

Ein Datenframe auf Ethernetebene sieht also etwa so aus:

12

Abbildung 14: Ein Ethernet-Datenframe

Da die Preamble von der Hardware gefiltert wird und die meisten Ethernet-Schnittstellen die FrameCheck Sequence nicht unterstutzen, werden diese in Wireshark auch nicht angezeigt. Es werden al-so nur die grunen (inneren) Felder aus Abbildung 14 angezeigt, weshalb sich auch unterschiedlicheMinimal- bzw. Maximalgroßen fur Datenframes ergeben. Die minimale Große eines Datenframes be-tragt normalerweise 64 Byte. Diese gliedern sich in 14 Byte fur den Header (DestMAC, SourceMAC,

12http://wiki.wireshark.org/Ethernet

Page 28: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

2.6 Datenframes und IP-Pakete 28

Type), mind. 46 Byte fur die Daten (=IP-Paket), sowie 4 Byte fur die FCS. Da in Wireshark je-doch nicht alle Teile des Headers bzw. Trailers (FCS) angezeigt werden, kann diese minimale Großevariieren.

2.6.3 Aufbau eines Internet Protocol-Pakets (IP-Paket)

Ein IP-Paket ist ein Datenpaket auf Schicht 3 des OSI-Modells (bzw. Schicht 2 des TCP/IP-Modells),welches wiederum aus Kopfdaten (Header) und Nutzdaten bestehet. Der Header eines IP-Paketeshat eine Mindestgroße von 20 Byte. Ein IP-Paket hat den folgenden Aufbau (die ersten 6 Zeilenbetreffen den Header):

13

Abbildung 15: Ein IP-Paket

Ein IP-Paket kann bis zu 65 000 Byte groß sein und wurde somit nicht in einen Datenframe passen.Deshalb werden die IP-Pakete von der Internetschicht nur so groß gemacht, dass sie auch in einenDatenframe passen. Wird ein großes IP-Paket hierbei zerlegt, so spricht man von Fragmentierung(die maximale Große einzelner Pakete wird hierbei durch die Maximum Transmission Unit (MTU,siehe spater) bestimmt).

Die Daten des IP-Paketes bestehen wiederum aus Kopfdaten und Nutzdaten der daruber liegen-den Transportschicht (TCP, UDP, ICMP, . . . ). Dadurch ergibt sich die folgende Abhangigkeit zwi-schen Datenframes (Network Access Layer), IP-Paketen (Internet Layer), TCP oder UDP Paketen(Transport Layer) und den Daten der eigentlichen Anwendung (Aplication Layer). Dieselbe Art derDatenverschachtelung findet sich auch in Abbildung 11 und 12 fur das OSI-Modell wieder.

14

Abbildung 16: Verschachtelung der Daten (TCP/IP-Modell)

13http://edoc.hu-berlin.de/e_rzm/23/herbst-roland-2002-05-01/XML/16.xml14http://www.unix.org.ua/orelly/networking/firewall/ch06_03.htm

Page 29: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

2.7 Die Protokolle der Internetschicht 29

2.6.4 Maximum Transfer Unit

Die Große der Pakete wird uber die Maximum Transmission Unit (MTU) bestimmt. Die MTUeiner Netzwerk-Schnittstelle gibt die maximale Große von IP-Paketen an, welche ohne Fragmentie-rung (Aufsplittung in mehrere kleinere Pakete) uber diese Schnittstelle transportiert werden konnen.Fur eine Ethernet-Ubertragung betragt die MTU eines IP-Paketes 1 500. Ein Datenframe (DF) kanndaher maximal 1 500 + 14 (DF Header) + 4 (FCS) = 1 518 Bytes groß sein (in Wireshark ist es abermax. 1 514 Byte groß, da die FCS in Wireshark ja nicht angezeigt wird). Die MTU wird fur vieleAnwendungen (bzw. auch von vielen VPN Routern) auf 1 420 verringert, weshalb die großten Paketein Wireshark oft nur 1 434 Byte groß sind (Daten plus DF Header).

2.6.5 Datenframes und IP-Pakete in Wireshark

In Wireshark werden—wie oben bereits erwahnt—generell komplette Datenframes angezeigt, welcheaus Header und den eigentlichen Daten (das komplette IP-Paket) bestehen. Die Daten dieser Daten-frames werden im unteren Teil des Protokollfensters (siehe Abbildung 17) gemaß der Verschachtelungvon Abbildung 16 gegliedert angezeigt (umgekehrte Reihenfolge).

Abbildung 17: Wireshark Datenframe Information

Zuerst werden allgemeine Informationen des Frames angezeigt (Frame). Danach werden fur jedeeinzelne Schicht die Header-Informationen dargestellt. Zuerst auf Datenframe-Ebene (Ether-net), dann auf IP-Ebene (Internet Protocol) zuletzt auf Transport-Ebene (hier TCP). Erst aufAnwendungs-Ebene sind die tatsachlichen (Nutz-)Daten zu sehen (Vergleich Abbildung 17).

2.7 Die Protokolle der Internetschicht

Zum Abschluss dieses Kapitels beschaftigen wir uns noch mit der Internetschicht des TCP/IP-Modells, welche fur die Weitervermittlung von Paketen und das Routing von Paketen (also dieEntscheidung, uber welche Hops ein Paket ubertragen wird) zustandig ist. Die Aufgabe der In-ternetschicht ist es, ein empfangendes Paket zu uberprufen, das nachste Zwischenziel zu ermittelnund das Paket dorthin weiterzuleiten. Falls das Paket sein Ziel schon erreicht hat, verarbeitet die In-ternetschicht den IP-Header des Paketes und ubergibt das Paket an die nachsthohere Schicht (Trans-portschicht). Die Internetschicht entspricht im ISO/OSI-Referenzmodell der Vermittlungsschicht.

Kern dieser Schicht ist ein Netzwerkprotokoll namens Internet Protocol, weshalb die Internetschichtmanchmal auch einfach nur als Internet Protocol Schicht (IP-Schicht) bezeichnet wird. Es gibt abernoch andere Protokolle in dieser Schicht (siehe Abbildung 13), die zuerst kurz erwahnt werden.

Page 30: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

2.7 Die Protokolle der Internetschicht 30

2.7.1 Address Resolution Protocol (ARP)

Jede Ethernet-Karte besitzt eine eindeutige Hardware(MAC)-Adresse. Jedem Host im Netz ist aberauch noch eine IP-Adresse zugeordnet, was ein Problem darstellt: Mit der IP-Adresse 192.168.23.1

weiß das Ethernet Protokoll nichts anzufangen, mit der MAC-Adresse 08:00:00:04:72:98 allerdingsschon, daher ubersetzt ARP die IP-Adressen in Ethernet-Adressen.

2.7.2 Internet Control Message Protocol (ICMP)

Das Internet Control Message Protocol ist fur die Kontrolle des Datenflusses zustandig und dientzur Ubermittlung von Fehler- und Status-Informationen. ICMP wird auch von IP selbst verwendet,um beispielsweise Fehler zu melden. Eine sehr bekannte Anwendung von ICMP ist z.B. ping (sieheAbschnitt 1.2.1).

2.7.3 Internet Group Management Protocol (IGMP)

Das Internet Group Management Protocol ist ein Hilfsprotokoll der Internetschicht und unterstutztdie Gruppenkommunikation. IGMP wird fur IP-Multicast, also fur das Rundsenden an mehrereInterfaces eingesetzt, so u.a. fur die Live-Ubertragung von Internet-Fernsehen (IPTV).

2.7.4 Internet Protocol (IP)

Das Internet Protocol (IP) ist zurzeit in den Versionen IPv4 und IPv6 verfugbar, wobei IPv6 dasbisher gebrauchliche IPv4 nur sehr langsam ersetzt (da zumindest in Europa und den USA zurzeitnoch kein Mangel an IP-Adressen vorliegt). IP beschreibt das Verfahren, mit dem Daten von einemComputer uber das Internet zu einem anderen Computer gesendet werden. Jeder dieser Computerverfugt dabei uber mindestens eine eigene IP-Adresse (genauer gesagt: jedes Netzwerk-Interface einesComputers verfugt uber genau eine IP-Adresse).

Routing

Eine wichtige Eigenschaft von IP ist es uber verschiedene “Zwischenstationen” Pakete auszuliefern.Als Beispiel denke man sich einen Host A, der mit einem Host B verbunden ist, und einen Host C,der mit Host B verbunden ist. Uber Ethernet oder WLAN konnen A und C nicht kommunizieren.Uber IP funktioniert das, da IP in diesem Fall ein an C adressiertes IP-Paket in ein oder mehrere anB adressierte Datenframes einpackt.

Diese Frames werden dann von B empfangen und die Netzwerkschicht von B wirft die Zusatze desDatenframes weg, nachdem diese verarbeitet wurden. Ubrig bleibt das IP-Paket (mehrere Headerplus Daten). Nun erkennt B an der IP-Adresse, dass das Paket an C gesendet werden soll und packtes daher wieder in ein Datenframe, welches diesmal jedoch an C adressiert ist (B kann ja C erreichen)und sendet es. Diesen Vorgang bezeichnet man als Routing. Durch das Zusammenspiel von Fragmen-tierung (siehe Abschnitt 2.6) und Routing kann ein Datenframe in Form von mehreren Fragmentenbeim Empfanger eventuell in falscher Reihenfolge ankommen. Das IP setzt diese Fragmente wiederordentlich und in korrekter Reihenfolge zusammen.

Dabei arbeitet das Protokoll verbindungslos und ungesichert, d.h. vor dem Versenden der Pakete wirdkeine explizite Verbindung zum Empfanger hergestellt, sondern diese werden einfach abgeschickt.Es existieren auf IP-Ebene keine Sicherungsmechanismen, die sicherstellen, dass die Daten auch

Page 31: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

2.8 Weiterfuhrende Literatur – Fur interessierte LeserInnen 31

korrekt beim Empfanger ankommen, lediglich der Header ist mit einer Prufsumme versehen, umUbertragungsfehler zu erkennen. Die Daten selbst sind jedoch nicht durch Prufsummen geschutzt.Dies wird gegebenenfalls von hoheren Schichten (z. B. TCP) erledigt.

2.8 Weiterfuhrende Literatur – Fur interessierte LeserInnen

Referenzmodelle

Unzahlige Bucher und Internetseiten beschreiben sowohl das OSI- als auch das TCP/IP-Modell.Einen guten allgemeinen Uberblick geben die Bucher von Tanenbaum et al. und Coulouris et al.,welche schon im Literaturteil von Kapitel 1 erwahnt wurden.

Als Internetquellen sind

http://www.selflinux.org/selflinux/html/osi.html und

http://www.selflinux.org/selflinux/html/tcpip.html

hervorzuheben.

Auch fur lesefaule Studenten bietet das Internet hier praktische Quellen, z.B. gibt es auf youtu-be einige gute Tutorials zum OSI- und dem TCP/IP-Modell.

OSI-Model Tutorial:

Teil 1: http://www.youtube.com/watch?v=03Q3p3ZT-xI

Teil 2: http://www.youtube.com/watch?v=vAY9uD1tb7U

TCP/IP-Modell Tutorial:

http://www.youtube.com/watch?v=nd7yh-b47xc

RFCs - Requests for Comments

Eine interessante Quelle um die kompletten Spezifikationen einzelner Protokolle nachzulesen bie-ten RFCs. RFCs sind technische und organisatorische Dokumente zu unterschiedlichen Themen desInternets, in denen verschiedenste Internet-Standards und Protokolle genau deklariert sind (http://www.rfc-editor.org).

Interessante RFCs zu den Themen dieses Kapitel sind unter anderem:

rfc791 – IP: http://www.faqs.org/rfcs/rfc791.html

rfc792 – ICMP: http://tools.ietf.org/html/rfc792

rfc1122 - Communication Layers: http://tools.ietf.org/html/rfc1122

rfc2460 – IPv6: http://tools.ietf.org/html/rfc2460

Page 32: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

32

Einheit 3 - Protokolle der Transportschicht

Nachdem wir uns in Einheit 2 mit Referenzmodellen (OSI, TCP/IP) sowie den Protokollen der In-ternetschicht befasst haben, werden wir uns in dieser Einheit mit den konkreten Protokollen derTransportschicht beschaftigen (und uns dabei am TCP/IP-Modell orientieren). Die Transportschichtrealisiert eine direkte logische Ende-zu-Ende-Kommunikation zwischen zwei Teilnehmern. Der trans-parente Datentransport uber die Netzwerkverbindungen kann dabei durch Mechanismen fur dieFluss-kontrolle gesteuert werden. Zu den Aufgaben der Transportschicht zahlen die Segmentierungvon Datenpaketen und die Stauvermeidung (engl. congestion control). Sie bietet den anwendungs-orientierten Schichten 5-7 einen einheitlichen Zugriff, sodass diese die spezifischen Eigenschaften desKommunikationsnetzes nicht zu berucksichtigen brauchen.

3.1 Einleitung

Im Folgenden werden die zwei wichtigsten Protokolle der Transportschicht (Schicht 3 des TCP/IP-Referenzmodells), und zwar

1. das verbindungslose UDP (User Datagram Protocol), sowie

2. das verbindungsorientierte TCP (Transmission Control Protocol)

genauer erklart. Weitere Protokolle der Transportschicht sind z.B. das Sequenced Packet ExchangeProtocol (SPX) von Novell (ahnlich zu TCP, aber kaum noch verwendet) und das Stream ControlTransmission Protocol (SCTP, eine Denial of Service-Attacken resistente TCP-Variante). TransportLayer Security (TLS) bzw. Secure Socket Layer (SSL) stellen daruber hinaus ein hybrides Ver-schlusselungsverfahren zur Verfugung, welches auf TCP aufsetzt und im TCP/IP-Modell zwischender Transportschicht und der Anwendungsschicht angesiedelt ist. Im weiteren Verlauf dieser Einheitwerden wir jedoch nur auf die beiden wichtigsten Protokolle – TCP und UDP – eingehen.

Beim verbindungsorientiertem TCP mussen Sender und Empfanger zunachst eine Verbindung ein-richten, bevor Daten ausgetauscht werden konnen. Nach der Ubertragung muss diese Verbindungwieder abgebaut (freigegeben) werden. Das Telefon ist z.B. auch ein verbindungsorientiertes Kom-munikationssystem. Beim verbindungslosen UDP ist keine Verbindungseinrichtung vorab notwen-dig. Der Sender uberliefert einfach die erste Nachricht, ohne den aktuellen Status des oder derEmpfanger(s) zu kennen. Das Abgeben eines Briefes in einen Briefkasten ist ein Beispiel fur verbin-dungslose Kommunikation. In Computern sind beide Kommunikationsarten (verbindungsorientiertund verbindungslos) gebrauchlich [11].

3.1.1 Ports

Mit TCP und UDP konnen Daten zu einem anderen Rechner ubertragen werden. Da auf einemRechner im Allgemeinen jedoch mehr als eine Anwendung (z.B. Mail-Client, Web-Browser) oder einDienst (z.B. POP3-, HTTP-Server) Netzwerkzugriff benotigen, muss neben der IP-Adresse ein weite-res Adressierungsmerkmal eingefuhrt werden, um den verschiedenen Diensten und Anwendungenvoneinander getrennte Kommunikationskanale zuweisen zu konnen. Genau dafur werden Ports ver-wendet.

Sie sollten folgende Begriffe nicht verwechseln – Adressen sind Teile von IP, Ports sind Teile der Trans-portschicht (also von UDP und TCP). Es gibt damit also keine IP-Ports, sondern nur UDP-Ports

Page 33: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

3.2 UDP – User Datagram Protocol 33

und TCP-Ports. UDP- und TCP-Ports sind außerdem voneinander unabhangig, d.h. der UDP-Port1234 und der TCP-Port 1234 konnen vollig verschiedenen Diensten oder Anwendungen zugewiesensein!

Unter Linux sind in der Datei /etc/services etliche allgemein bekannte Ports, so-genannte “well-known ports”, aufgefuhrt. So erreicht man z.B. den Dienst FTP auf einem Rechner in der Regel aufTCP Port 21, HTTP auf TCP Port 80, DNS auf UDP Port 53.

3.1.2 IP-Fragmentierung

Ist ein IP-Paket großer als die MTU (siehe Kapitel 2.6.4) der Netzwerkschnittstelle, uber die esversandt werden soll, muss es in mehrere Teile zerlegt – fragmentiert – werden, um versendet werdenzu konnen. Fragmentierung ist nicht zu verwechseln mit der Zerlegung eines Datenstroms in vieleTCP-Segmente (Segmentierung). Fragmentierung kostet Zeit und damit Performance, und solltedaher a priori vom Programmierer/Entwickler vermieden werden. Der Empfanger bzw. dessen IP-Stack muss fragmentierte Pakete wieder zusammensetzen um sie anschließend an die nachsthohereSchicht weitergeben zu konnen. Fehlt ein Fragment, muss das gesamte Paket verworfen und neuubertragen werden.

3.1.3 TCP-Segmentierung

Um eine Datei per TCP zu versenden, wird diese meist in viele TCP-Segmente aufgeteilt (außerdie Datei ist klein genug, um in ein Segment zu passen). Da jedes TCP-Segment in ein Paket derdarunter liegenden Schicht (meist IP) passen muss, ist die Große eines TCP-Segments bereits durchdie MTU von IP begrenzt. Weiters mussen fur TCP und IP jeweils noch 20 Byte fur die Headerreserviert werden. Bsp: Betragt die MTU einer Netzwerkschnittstelle z.B. 1420 Byte, so kann einTCP Segment max. 1380 Byte groß sein (MTU - TCP-Header - IP-Header).

Die maximale Große von TCP Segmenten (die Menge der TCP-Nutzdaten) wird durch die MaximumSegment Size (MSS) geregelt. Empfanger und Sender einigen sich vor dem Datenaustausch uber dasOptions-Feld des TCP-Headers auf die Große der MSS. Im Standardfall betragt die MMS einerEthernet-Verbindung maximal 1460 Byte (1500 Byte Ethernet MTU - 20 Byte - 20 Byte).

Achtung: Im Fall von DSL (Digital Subscriber Line), mussen noch weitere 8 Byte fur den PPP-Rahmen (Point-to-Point-Protocol) abgezogen werden.

3.2 UDP – User Datagram Protocol

UDP ist das einfachste Protokoll auf der Transportebene. UDP ist ein verbindungsloses Protokoll,das bedeutet, es stellt nicht sicher, ob die versendeten Pakete auch wirklich beim Empfanger an-kommen, sondern die Pakete werden nach dem Motto “fire and forget” gesendet. Dafur ist UDPsehr schnell und erzeugt nur eine geringe Netzlast. Somit eignet es sich gut fur Anwendungen, diekleine Datenmengen schnell austauschen, wie verteilte Dateisysteme (Network File System, NFS)oder Nameserveranfragen (DNS).

Da uber das Internet Protocol nur eine Station adressierbar ist, konnte man zunachst ja nur eineVerbindung von Station zu Station verwenden. UDP verwendet daher (genauso wie TCP) so genanntePortnummern zur Adressierung eines Kommunikationskanals. Wie schon oben erwahnt, konnen durch

Page 34: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

3.3 TCP – Transmission Control Protocol 34

die Einfuhrung von Ports mehrere verschiedene, voneinander unabhangige logische Kanale zwischenzwei IP-Adressen (und damit zwei Netzwerkteilnehmern) erstellt werden. Dies ist notig, um mehrerenDiensten oder Anwendungen die Kommunikation uber ein Netzwerk zu ermoglichen. UDP ermoglicht65 535 verschiedene Portnummern, also theoretisch 65 535 unterscheidbare UDP-Kanale. Die meistenHosts unterstutzen jedoch weit weniger gleichzeitig, beispielsweise 1 024 oder 4 096. Die Informationendes Absender- bzw. Empfangerports werden im UDP-Header vermerkt. Zusatzlich zum eigentlichenIP-Paket besitzt ein UDP-Paket also noch einige wenige zusatzliche Daten wie etwa Portnummer,eine Prufsumme zur Fehlererkennung etc.

3.3 TCP – Transmission Control Protocol

3.3.1 Eigenschaften

Im Gegensatz zu UDP ist TCP ein verbindungsorientiertes Protokoll. TCP stellt eine zuverlassigeVerbindung uber ein unzuverlassiges Medium her. Die meisten Internetanwendungen verwen-den TCP als Ubertragungsprotokoll (z.B. HTTP, FTP, SSH usw.). Folgende funf Eigenschaften[5]liefern einen guten Uberblick uber TCP:

1. Stream Orientation: Zwischen zwei Applikationen, die uber ein Netzwerk Daten austauschen,fließt ein Datenstrom, in Einheiten von 8-bit Oktetten (Byte). Durch die Kontrolle desDatenflusses wird sichergestellt, dass der Ziel-Applikation die Daten in exakt der Reihenfolgezugestellt werden, wie sie die Quell-Applikation abgesendet hat.

2. Virtual Circuit Connection: Zwischen zwei Applikationen wird eine virtuelle Verbin-dung hergestellt. Beiden Endpunkten der Verbindung wird der Eindruck vermittelt, sie hatteneine exklusive, dedizierte, fehlerfreie Hardware-Verbindung miteinander. Dies ist naturlich eineIllusion – eine Illusion, die durch verschiedene Mechanismen der Datenflusskontrolle aufrechterhalten wird.

3. Buffered Transfer: Die Daten, die eine Anwendung in die virtuelle Verbindung einspeist,konnen beliebige Großen annehmen (in Einheiten von Byte) – von einem einzelnen Oktett biszu mehreren Gigabyte ist daher alles moglich. Um die Ubertragung moglichst effizient und dieNetzwerkbelastung gering zu halten, wird gewartet bis genug Daten zusammenkommen, um einSegment von sinnvoller Große versenden zu konnen. Im umgekehrten Fall (z.B. beim Downloadeines DVD-ISO-Images) wird die verhaltnismaßig riesige Datei automatisch in kleine Blocke(Segmente) zerteilt. TCP speichert also Daten in einem Buffer, um stets fur eine effizienteUbertragung sorgen zu konnen.

4. Unstructured Stream: TCP kummert sich (entsprechend des Schichtenmodells) nicht umdie innere Struktur der Daten, die zwischen den beiden beteiligten Applikationen ausgetauschtwerden.

5. Full Duplex Connection: Uber eine TCP-Verbindung konnen Daten in beide Richtungengleichzeitig ubertragen werden. Aus der Sicht einer beteiligten Applikation besteht eineVoll-Duplex-Verbindung aus zwei voneinander unabhangigen Stromen, uber die Daten indie jeweils entgegengesetzte Richtung fließen. Werden Daten nur in eine Richtung versendet,wird die Verbindung half-duplex genannt.

Page 35: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

3.3 TCP – Transmission Control Protocol 35

3.3.2 Zuverlassigkeit

TCP stellt wie gesagt eine zuverlassige Verbindung uber ein unzuverlassiges Medium her.Wie ist dies prinzipiell moglich? Eine grundlegende Technik dafur ist ein Prinzip namens positiveacknowledgement with retransmission. Dabei bestatigt der Empfanger dem Sender den Emp-fang von Daten. Der Sender fuhrt uber jedes versandte Paket (hier: Segment) Protokoll und wartetauf eine Bestatigung (acknowledgement, ACK), bevor das nachste Paket versendet wird. Kommt inner-halb einer gewissen Zeitspanne keine Bestatigung, wird das Paket erneut versendet (retransmit). Abb.18 illustriert dieses Verhalten eines sehr simplen positive ack + retransmission Protokolls (Vorsicht,nicht 1:1 auf TCP ubertragbar - siehe sliding window !):

Events at sender Events at receiver

Network messages

Send Packet 1

Receive Packet 1

Send ACK 1

Receive ACK 1

Send Packet 2

Receive Packet 2

Send ACK 2

Receive ACK 2Packet lost!

Send Packet 3 and start timer

ACK 3 wouldnormally arrive

at this time

Timer expires

Cancel TimerReceive ACK 3

Retransmit Packet 3

ACK 3 should be sent

Packet should arrive

Send ACK 3

Receive Packet 3

and start Timer

Abbildung 18: positive acknowledgement and retransmission[?]

Ein Problem, das in der obigen Abbildung bereits”implizit“ gelost wurde, ist das von duplizierten

Paketen. Pakete konnen z.B. von tiefer liegenden Schichten dupliziert werden oder auch von TCPdirekt, falls große Verzogerungen im Netzwerk TCP dazu ermuntern, Pakete erneut zu versenden(da kein ACK kam). Paket-Duplikate konnen nicht vollstandig vermieden, aber erkannt werden, undzwar uber eine Sequenznummer (sequence number im TCP-Header). Jedes Paket einer Verbindungbekommt eine eindeutige Nummer und jede Bestatigung bezieht sich auf ein konkretes Paket.

3.3.3 Verbindungsaufbau und Drei-Wege-Handshake:

Bisher sind wir davon ausgegangen, dass bereits eine TCP-Verbindung zwischen zwei Hosts (bzw.zwischen zwei Applikationen, die miteinander kommunizieren mochten) besteht. Doch wie kommteine TCP-Verbindung uberhaupt zu Stande?

Der Aufbau einer TCP-Verbindung erfolgt nach einem bestimmten Schema, welches vereinfacht als“three-way-handshake” (Drei-Wege-Handshake) bezeichnet wird und in Abbildung 19 darge-stellt ist.

Page 36: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

3.3 TCP – Transmission Control Protocol 36

15

Abbildung 19: Three-Way-Handshake zur Initialisierung einer TCP-Verbindung

In diesem Fall mochte Host A (nennen wir sie Alice) eine TCP-Verbindung zum Host B (nennen wirihn Bob) erstellen. Dazu sendet Alice ein spezielles TCP-Segment (mit einem gesetzten SYN-Control-Bit16 und einer initial sequence number, ISN - Sequenznummer) an Bob. Der konkrete Wert der ISNist hier unbedeutend, wir bezeichnen diesen daher mit der Variablen x. Je nach konkreter Implemen-tierung von TCP wird dieser Wert verschieden gewahlt. Er sollte jedenfalls moglichst zufallig unddamit nicht vorhersehbar sein, um Sicherheitsrisiken zu vermeiden.17

Etwas spater empfangt Bob dieses spezielle SYN-Segment und verarbeitet die darin enthaltene In-formation. Bob erkennt, dass Alice gerne eine TCP-Verbindung zu ihm aufbauen mochte. Falls erdiesem Vorhaben zustimmt, muss er Alice daruber Bescheid geben. Bob sendet daher ebenfalls einSYN-Segment (mit einer eigenen ISN, namlich y), in dem weiters das ACK-Bit18 auf den Wert x + 1gesetzt ist, um den Empfang des vorigen SYN-Segments (dessen Wert x war) zu bestatigen bzw. zusignalisieren, dass er das Segment erfolgreich empfangen hat und als nachstes ein Segment mit derSequenznummer x + 1 erwartet.

Wieder etwas spater empfangt Alice dieses kombinierte SYN/ACK-Segment von Bob und weiß daher,dass Bob ihre Anfrage bekommen hat und einem Verbindungsaufbau zustimmt (falls Bob dem Ver-bindungsaufbau nicht zustimmte, wurde er ein RST-Segment19 an Alice senden). Damit auch Bobweiß, dass Alice seine Bestatigung bekommen hat, sendet Alice ebenfalls noch ein ACK-Segment anBob, und zwar mit dem Wert y + 1.

Nach diesen drei Segmenten, die zwischen Alice und Bob ausgetauscht wurden, besteht eine festeVerbindung zwischen den beiden Partnern. Da drei Schritte erforderlich sind, um eine Verbindungaufzubauen, bezeichnet man diesen Vorgang eben als “three-way-handshake”.

Sobald eine Verbindung besteht konnen Daten ubertragen werden, bis entweder der Server oder derClient die Verbindung trennt. Der Verbindungsabbau kann - grob erklart - auf zwei verschiedene

15http://condor.depaul.edu/~jkristof/technotes/tcp.html16von engl. synchronize17Wireshark zeigt per default nur relative Sequenznummern, beginnend bei 0, um die Lesbarkeit zu erhohen.18von engl. acknowledgment = Bestatigung19von engl. reset

Page 37: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

3.3 TCP – Transmission Control Protocol 37

Arten ablaufen:

1. Analog zum Verbindungsaufbau, nur dass statt SYN-Paketen FIN-Pakete20 ausgetauscht werden.Die Verbindung wird damit sofort vollstandig abgebaut und entspr. Sockets auf Betriebssystem-Ebene werden entsorgt.

2. Die Verbindung kann auch einseitig beendet werden und wird damit zu einer Halb-Duplex-Verbindung. Nach dem ersten FIN/ACK-Paar in Abb. 20 kann die Gegenstelle noch Daten anden anderen Host senden, umgekehrt jedoch nicht (Bestatigungen sind davon naturlich ausge-nommen).

21

Abbildung 20: Abbau einer TCP-Verbindung, 2. Variante

Erst wenn die Gegenstelle ein FIN-Segment versendet, wird die Verbindung vollstandig abge-baut. Der Sinn dieser Variante ist z.B. sicherzustellen, dass

”herumirrende“, verzogerte Pakete

schlussendlich doch zugestellt werden konnen. Solche halb-offenen TCP-Verbindungen sind re-lativ haufig im Output von netstat (ein CLI-Programm fur Linux, Windows, etc.) zu finden,und sind meist durch den Eintrag Schliessen Warten bzw. Time Wait gekennzeichnet.

3.3.4 Sliding Window

Um eine zuverlassige Ubertragung eines Datenstroms auch effizient und performant zu machen, mussdas oben erwahnte positive ack + retransmission Protokoll noch verbessert werden. Wie in Abb. 18zu sehen, ist zu einem gewissen Zeitpunkt immer nur ein Paket unterwegs, selbst wenn die darunterliegenden Schichten gleichzeitig in beide Richtungen ubertragen konnten. Wahrend die beteiligtenHosts ihre Berechnungen anstellen, findet uberhaupt kein Netzwerkverkehr statt. Bei Verbindungenmit hohen Verzogerungen wird dies sehr schnell zu einem großen Problem.

Das sliding-window -Verfahren ist eine Moglichkeit, Abhilfe zu schaffen. Dabei kann eine gewisseMenge an Daten (in Byte) versendet werden, bevor auf eine Bestatigung gewartet (und damit derVersand von neuen Daten eingestellt) wird. Wie groß diese Menge an Daten ist, wird durch diewindow size definiert (die sich uber die Zeit auch andern kann - aber dazu spater mehr).

20von engl. finish21http://upload.wikimedia.org/wikipedia/de/2/2c/Tcp-teardown.png

Page 38: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

3.3 TCP – Transmission Control Protocol 38

Abbildung 21 zeigt den auftretenden Netzwerkverkehr, wenn nicht auf jede Bestatigung einzelngewartet wird, wie es in Abb. 18 der Fall war.

22

Abbildung 21: Paket-Diagramm bei Verwendung des sliding-window -Verfahrens, hier mit einer win-dow size, die 3 Paketen entsprache.

Es sind also im Allgemeinen mehrere Pakete gleichzeitig unterwegs, auch werden beide Kommuni-kationsrichtungen gleichzeitig beansprucht. Allein dadurch ist bereits eine deutliche Steigerung derPerformance moglich.

23

Abbildung 22: Sliding window

Abbildung 22 zeigt die Position des Fensters im Laufe der Zeit. Zu Beginn der Ubertragung befindetsich das Fenster am Anfang der zu versendenden Daten (Pakete); es wurden noch keine Paketeversendet. In diesem Beispiel gilt windowsize = 4; es konnen daher immer nur maximal 4 Paketeversendet, aber noch unbestatigt sein. Nachdem der Empfang von Paket 1 und 2 bestatigt wurde,wird das Fenster nach rechts verschoben, womit die Pakete 5 und 6 versendet werden durfen. Dieswiederholt sich bei jedem Empfang von ACKs (daher der Begriff sliding). Wurde z.B. das Paket

22http://www.tutorialsweb.com/networking/tcp-ip/udp-tcp.htm23http://condor.depaul.edu/~jkristof/technotes/tcp.html

Page 39: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

3.3 TCP – Transmission Control Protocol 39

3 nicht rechtzeitig bestatigt werden, muss es erneut versendet werden und das Fenster kann nicht

”hinter“ das Paket 3 verschoben werden.

3.3.5 End-to-End Flow Control

Mit einer window size von 1 kame wieder dasselbe Verhalten raus wie beim oben erwahnten, simplenpositive ack protocol. Der Trick liegt nun darin, die window size so zu erhohen, dass Leerlaufzeiten desNetzwerks moglichst vollstandig eliminiert werden konnen. Im Gleichgewichtszustand bedeutet dies,dass der Sender die Daten genauso schnell versendet wie sie das Netzwerk transferieren kann bzw.so schnell wie sie der Empfanger verarbeiten kann (genau genommen: das Minimum beider). Damitder Empfanger nicht vom Sender uberfordert wird, fuhrt auch dieser Protokoll uber die empfangenenund bestatigten Pakete. Der Empfanger teilt dem Sender per window advertisement (Header-Eintragwindow size in den ACKs) mit, wie viele Daten jener noch versenden darf – d.h., wie viel noch inden Empfangspuffer passt. In Endeffekt lauft dies darauf hinaus, dass der Empfanger dem Sendermit jeder Bestatigung ein Fenster von gultigen Sequenznummern mitteilt.

Je nach Vergroßerung oder Verkleinerung der window size (des Empfangers) reagiert der Sender mitder Vergroßerung seiner window size und dem Versand zusatzlicher Daten bzw. der Verkleinerungseiner window size und im Extremfall mit dem Einstellen des Versands, um den Empfanger nichtweiter zu uberlasten.

Fur die Flusskontrolle existiert also beim Sender ein Sendepuffer und beim Empfanger ein Emp-fangspuffer, deren Fenstergroße durch den Empfanger bestimmt und uber das Feld window size imTCP-Header mitgeteilt wird.

3.3.6 Congestion Control

Um auf die Uberlastung (congestion) von zwischengeschaltenen Systemen (z.B. Routern) zu reagie-ren, werden Mechanismen zur congestion control verwendet. Diese Mechanismen sind (anders alsbei der Flusskontrolle) notwendigerweise beim Sender zu finden. Ist ein Router (oder dessen Ver-bindungen zu anderen Routern) uberlastet, mussen Pakete in einer Warteschlange darauf warten,weitergeleitet werden zu konnen. Im schlimmsten Fall kann dies dazu fuhren, dass Pakete weggewor-fen werden mussen. Im Rahmen der Flusskontrolle wurde TCP auf Verzogerung bzw. Paketverlustmit retransmission reagieren, was die Uberlastung i.A. nur noch schlimmer macht (bis zum congestioncollapse).

Wie bereits oben angedeutet wird zusatzlich zum (vom Empfanger bestimmten) Empfangsfensterein vom Sender bestimmtes Uberlastungsfenster eingefuhrt. Dieses Uberlastungsfenster beschranktzusatzlich die vom Sender maximal ohne Bestatigung versendete Datenmenge, indem zu jedem Zeit-punkt nur das Minimum dieser beiden Fenster versendet werden darf.

Congestion Avoidance Fur jedes verlorene Paket halbiert TCP das Uberlastungsfenster (multi-plicative decrease). Gehen weiterhin Pakete verloren, verringert TCP das Fenster also exponentiell.Dadurch kann sehr schnell auf uberlastete Netzwerk-Infrastruktur reagiert werden. Die Halfte desWerts des Uberlastungsfensters, bei dem es zum Paketverlust kam, wird als slow start threshold(ssthresh) gespeichert.

Page 40: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

3.4 Streaming 40

Slow Start Diese Bezeichnung ist leider etwas unglucklich gewahlt, da der Start alles andere alslangsam verlauft. TCP beginnt mit einem congestion window von 1, und sendet das erste Paket.Kommt die Bestatigung, wird auf 2 erhoht und 2 Pakete werden versendet. Beim Eintreffen der 2Bestatigungen wird das Fenster um 2 erhoht, also auf 4, und 4 Pakete werden versendet. Kommenwieder alle Bestatigungen an, wird auf 8, dann 16 usw. erhoht. Hier wird das Uberlastungsfensteralso exponentiell vergroßert – wurde das jedoch endlos so weitergehen, ware das System alles an-dere als stabil und wurde zwischen zwei Extremen oszillieren. Um dies zu vermeiden, wird dasUberlastungsfenster ab Erreichen von ssthresh nur mehr linear vergroßert (additive increase) – undzwar um 1, falls alle Pakete bestatigt wurden. Diese Phase wird auch congestion avoidance phasegenannt. Resultat24 ist die Sagezahn-artige Entwicklung der Transfergeschwindigkeit, die sich an diemaximal mogliche Bandbreite herantastet. Auch in der Gegenwart von anderen TCP-Verbindungenwird die verfugbare Bandbreite optimal aufgeteilt, und zwar durch diese Verbindungen selbst!

3.4 Streaming

Streaming von Medieninhalten ist ein sehr komplexes und spannendes Thema, welches immer mehr anBedeutung gewinnt25. Im Gegensatz zum (analogen) Broadcasting (terrestrisches Radio/TV) wird derInhalt (z.B. ein Gesprach oder ein Video) in diskrete26 Pakete aufgeteilt, welche dann per Netzwerkverschickt werden. Streaming stellt insofern hohe Anspruche an die verwendete Ubertragungstechnikund -architektur, da oft nur sehr kurze Verzogerungen erlaubt sind und insgesamt riesige Datenmen-gen aus der Sicht des Content-Providers bewaltigt werden mussen [11].

3.4.1 Streaming mittels TCP

TCP garantiert die korrekte Ubermittlung jedes einzelnen Pakets eines Streams. Dies bedeutet je-doch, dass das Streaming-System mit einem deutlichen Overhead arbeiten muss. Geht ein Paketverloren, wird der Datenstrom angehalten bis das entsprechende Paket erfolgreich ubermittelt wurde– erst dann lauft der Transfer weiter. Um eine dadurch entstandene Verzogerung abzufangen, sindPuffer (Speicher fur die Zwischenlagerung von Daten) notwendig, die jedoch wiederum den Live-Charakter des Streams verringern (Wartezeit bis Puffer gefullt ist). Streaming per TCP kann beivielen Seiten der Art von YouTube.com beobachtet werden.

3.4.2 Streaming mittels UDP

UDP arbeitet schnell und effizient, garantiert jedoch nicht, dass ein Stream vollstandig beim Clientankommt—darum muss sich die daruber liegende Applikation kummern. Bei Multimedia-Inhaltenist es jedoch oft nicht so schlimm, wenn kleine Teile verloren gehen, diese bleiben vom User oftunbemerkt. Wichtiger ist, dass sich keine merkbaren Verzogerungen/Pausen ergeben. Dies wurdebei TCP jedoch oft passieren, wenn auf Pakete gewartet wird. Meist mussen verspatet eintreffendePakete vom Client verworfen werden, weil der entsprechende Teil des Streams bereits ausgespieltwurde. Fur Live-Streams (IPTV, VoIP, etc.) ist UDP oft die bessere Wahl. Streaming per UDP kannz.B. mit dem VideoLAN-Client (VLC) ausprobiert werden.

24fast recovery dieser additive increase, multiplicative decrease (AIMD) genannten Strategie ist zusatzlich notig, furInteressierte

25Interessierten sei die LV Netzwerktechnologie fur Multimedia-Anwendungen empfohlen26d.h., voneinander unterscheidbare, trennbare

Page 41: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

3.5 Weiterfuhrende Literatur – Fur interessierte LeserInnen 41

3.5 Weiterfuhrende Literatur – Fur interessierte LeserInnen

Interessante Literatur zu den Themen dieses Kapitel befindet sich unter anderem hier:

Als weiterfuhrende Literatur ist im Prinzip jedes allgemeine Buch uber Netzwerke zu empfehlen,einige davon wurden bereits in Kapitel 1 angefuhrt. Die Inhalte zu TCP sind sehr stark an [?]angelehnt. Auch im Web gibt es Unmengen an Literatur zum Thema, z.B.:

http://www.selflinux.org/selflinux/html/tcpip.html

http://www.youtube.com/watch?v=zzXs0EnCin0

Eine hochst interessante Demo des Sliding Window Protocol befindet sich hier: Sliding Window Demo- http://www2.rad.com/networks/2004/sliding_window/index.html

Interessante RFCs zu den Themen dieses Kapitel sind unter anderem:

• TCP/IP Resources List, http://www.faqs.org/faqs/internet/tcp-ip/resource-list/

• RFC 793, TCP/IP: http://www.faqs.org/rfcs/rfc793.html

• RFC 1180, TCP/IP Tutorial, http://www.faqs.org/rfcs/rfc1180.html

• TCP/IP FAQ, http://www.faqs.org/faqs/internet/tcp-ip/tcp-ip-faq/part1/

• http://www.selflinux.org/selflinux/html/tcpip.html

Page 42: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

42

Einheit 4 - Protokolle der Anwendungsschicht und Webserver

Diese Einheit lasst sich grob in zwei Teile gliedern. Im ersten Teil geht es um ausgesuchte Protokolleder Anwendungsschicht, die fur das Anmelden bzw. Arbeiten auf entfernten Rechnern und fur dieDateiubertragung benotigt werden. Außerdem wird auf Sicherheitsaspekte im Zusammenhang mitdiesen Protokollen eingegangen. Im zweiten Teil dieser Einheit geht es um Webserver.

4.1 Arbeiten auf entfernten Rechnern

Das Arbeiten auf entfernten Computern (remote working) ist eine der wichtigsten Anwendungen desInternets. Die Anwendungsschicht des TCP/IP-Modells definiert hier verschiedene Protokolle, mitdenen remote working realisiert werden kann. Wir werden im Rahmen dieses Praktikums auf zweiallgemeine Protokolle – telnet und SSH – eingehen. Software, welche fur diese Arbeiten oft verwendetwird (zB. VNC, KRDC, ...) wird hier nicht erklart.

4.1.1 Telnet (Telecommunication Network)

Telnet ist ein Netzwerkprotokoll, welches den Zugang zu Internetrechnern uber die Kommandozeileermoglicht. Laut Spezifikation 27, bietet das Telnet-Protokoll “eine ziemlich allgemeine, bidirektionaleKommunikationsmoglichkeit”.

Telnet ist außerdem der Name eines Programms, welches Verbindungen zu einem entfernten Rechnerermoglicht (bei Eingabe von telnet in der Kommandozeile, rufen wir also das Programm auf, welchesdann wiederum das Netzwerkprotokoll telnet nutzt).

Aufgrund der fehlenden Verschlusselung der Kommunikation zwischen Client und Server wird das tel-net Protokoll heute kaum noch verwendet. Es werden also alle Daten – auch Username und Passworter– uber eine ungesicherte Verbindung unverschlusselt ubermittelt. Ahnlich unsicher sind auch ver-wandte Methoden wie rsh (remote shell) und rlogin (remote login).

Syntax unter Linux: im Terminal telnet <hostname> eingeben, um eine telnet Verbindung zueinem Host herzustellen (fur Details, siehe man telnet). Naturlich muss der Host so konfiguriertsein, dass er eingehende telnet Verbindungen verarbeiten kann.

Telnet kann aber nicht nur zur Anmeldung auf entfernten Systemen verwendet werden. Man starte dieKommandozeile und tippe (unter Windows) telnet towel.blinkenlights.nl bzw. (unter Linux)telnet <enter>, danach open towel.blinkenlights.nl. Viel Spaß bei Star Wars Episode 4.

4.1.2 SSH (Secure Shell)

SSH 28 ermoglicht es, eine verschlusselte Verbindung zwischen zwei Hosts uber ein ungesichertesNetzwerk (wie das Internet) herzustellen. SSH stellt dabei sicher, dass die beteiligten Hosts wirklichdie sind, fur die sie sich ausgeben (Authentifizierung), und SSH sichert die Kommunikation krypto-grafisch ab. Dabei kann die Authentifizierung des Benutzers zusatzlich zur Passwortuberprufung mit

27http://tools.ietf.org/html/rfc85428wie telnet, bezeichnet auch SSH sowohl ein Netzwerkprotokoll als auch entsprechende Programme, mit deren Hil-

fe man auf eine sichere Art und Weise eine verschlusselte Netzwerkverbindung mit einem entfernten Computerherstellen kann.

Page 43: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

4.2 Dateiubertragung via FTP/SFTP 43

einer Verschlusselung nach dem Public-Key-Verfahren durchgefuhrt werden (Vergleich [11, p.495]).Der offentliche Schlussel wird dabei auf dem Zielsystem hinterlegt, der private Schlussel wird vomBenutzer zur Authentifizierung benutzt.

Secure Shell wird haufig fur Dateikopiervorgange eingesetzt und fur das Verwalten von Firewalls,VPN-Gateways oder Webservern verwendet. Es gibt drei große Anwendungsbereiche, in denen diesesProtokoll von Bedeutung ist:

• Secure System Administration (Sichere Systemverwaltung) zur Absicherung der Fernverwal-tung von Servern. Ersetzt telnet, rlogin etc.

• Secure Application Tunneling (Sicheres Tunneln) zum transparenten Schutz TCP/IP-basierenderAnwendungen als End-to-End-Security

• Secure File Transfer (Sicherer Dateitransfer) zur Herstellung sicherer, automatisierter und in-teraktiver Dateitransfers. Dabei dient SSH als Sicherungsprotokoll fur die Dateiubertraungs-Protokolle, z.B. SFTP oder SCP (siehe nachster Abschnitt)

Das SSH-Protokoll gibt es in den zwei inkompatiblen Varianten SSH1.x und SSH2.x

Syntax unter Linux: im Terminal ssh <hostname> eingeben, um eine SSH-Verbindung zu einemHost herzustellen (fur Details, siehe man ssh).

4.2 Dateiubertragung via FTP/SFTP

Um Dateien von entfernten Rechnern herunter zu laden (”download“), oder Daten auf einen Rechner

hoch zu laden (”upload“), wird FTP (

”File Transfer Protocol“) bzw. ein verwandtes Protokoll ver-

wendet.”FTP“ bezeichnet dabei sowohl das verwendete Protokoll, als auch eine haufig unter UNIX

bzw. Linux verwendete Clientsoftware. Eine wichtige Frage bei der Wahl des zu verwendenden Pro-tokolls ist, ob Verschlusselung erwunscht ist. Wahrend bei FTP sowohl die einzelnen Kommandos,als auch die Daten unverschlusselt gesendet werden, bietet SFTP eine verschlusselte Alternative an.Unter UNIX bzw. Linux stehen sowohl FTP als auch SFTP bei den meisten Systemen als auf derKommandozeile zu bedienende Dienstprogramme zur Verfugung. Unter Windows gibt es nur FTPals Client via Kommandozeile. Ein sowohl fur Linux als auch Windows verfugbarer Client fur FTPund SFTP ist Filezilla29, unter Windows ist PuTTy eine verbreitete Alternative30.

4.2.1 FTP (File Transfer Protocol)

Das Protokoll FTP unterstutzt nicht nur das reine Versenden von Daten, sondern auch das Um-benennen, Loschen, sowie einige weitere Anweisungen. FTP verwendet fur die Steuerung und Da-tenubertragung jeweils separate Verbindungen. Auch wird fur jede Aktion des Clients eine neueVerbindung aufgebaut (

”verbindungsorientiert“) und diese danach wieder getrennt. Es gibt zwei

grundlegende Modi von FTP, wobei beide jeweils einen Port fur Daten, einen weiteren fur Kom-mandos verwenden. Serverseitig ist FTP meist via Port 21 erreichbar, die Daten werden beim Serverzumeist an Port 20 empfangen bzw. gesendet.

Aktives FTP Der Client offnet einen Port (i.a. >1023) und teilt diesen, inklusive einer IP-Adresse,dem Server mittels des

”Port“-Kommandos mit.

29siehe http://www.filezilla.de/30siehe http://www.chiark.greenend.org.uk/~sgtatham/putty/

Page 44: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

4.3 Programme 44

Passives FTP Der Client sendet ein PASV-Kommando zum Server, welcher daraufhin einen Port(>1023) offnet und diesen mitsamt IP-Adresse dem Client mitteilt. Passives FTP ist notwendig,wenn der Server den Client nicht direkt erreichen kann, weil sich z.B. ein Paketfilter (Firewall,Breitband-Router) zwischen ihnen befindet.

Syntax unter Linux: im Terminal ftp <hostname> eingeben, um eine FTP-Verbindung zu einemHost herzustellen (fur Details, siehe man ftp).

4.2.2 SFTP (Secure File Transfer Protocol)

SSH FTP31 bzw. dessen Clientprogramm SFTP sind eine Weiterentwicklung von FTP und erlaubensichere Datenubertragung und Dateizugriffe auf entfernte Systeme. Ist ein SSH-Zugang zu einemRechner vorhanden, ist damit fast automatisch auch SFTP moglich – man erspart sich also denBetrieb eines FTP-Servers und den Einsatz des unsicheren FTP. SFTP verschlusselt nicht selbstsondern uberlasst diese Aufgabe dem darunterliegenden SSH. Bei sensiblen Daten ist der Einsatzvon SFTP jenem von FTP vorzuziehen, bei nicht-sensiblen Daten spricht jedoch nichts gegen dasbewahrte FTP (beispielsweise Download eines Ubuntu-Image von einem anonymen FTP-Server).SFTP wird serverseitig normalerweise uber Port 22 betrieben.

Syntax unter Linux: im Terminal sftp <benutzername>@<host> eingeben, um eine Verbindungzu einem Host herzustellen (fur Details, siehe man sftp).

4.3 Programme

Unter Ubuntu konnen alle zuvor erwahnten Protokolle uber die Kommandozeile verwendet werden.Unter Windows ist PuTTY 32 der wohl bekannteste telnet und SSH Client. Außerdem gibt es mitPSFTP einen SFTP-Client.

WinSCP 33 ist ein grafischer Open Source-SFTP-Client fur Windows, der sowohl SSH wie auch dasalte SCP-Protokoll unterstutzt.

Weit verbreitet ist auch der Secure Shell Client 34 der Firma SSH Communications Security.

4.4 Webserver

Im folgenden Abschnitt lernen Sie die Aufgaben eines Webservers kennen und erfahren was geschiehtwenn Webseiten im Internet abgerufen werden. Als praktisches Beispiel verwenden wir den freienund kostenlosen Apache-Webserver.

Definition 1 (Webserver). Webserver sind von Providern betriebene Server, die mit dem Internetoder Intranets verbunden sind, Websites und andere Online-Informationen bereitstellen, die beispiels-weise auf Anforderung eines Browsers uber das HTTP-Protokoll angefordert werden konnen 35.

31siehe http://tools.ietf.org/id/draft-ietf-secsh-filexfer-00.txt32siehe http://www.chiark.greenend.org.uk/~sgtatham/putty/33http://winscp.net/eng/docs/lang:de34http://gd.tuwien.ac.at/utils/shells/ssh35http://www.itwissen.info/definition/lexikon/Webserver-web-server.html

Page 45: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

4.4 Webserver 45

Soll im Web-Browser beispielsweise eine bestimmte Webseite aufgerufen werden, dann wird die inden Browser eingegebene URL zum Nameserver geleitet, der aus dem Domain-Namen die IP-Adresseermittelt. Danach baut der HTTP-Client des Web-Browsers eine TCP-Verbindung zum HTTP-Serverdes Webservers auf. Der HTTP-Server ladt die vom HTTP-Client angeforderte Webseite und schicktsie an den HTTP-Client, der sie uber den HTTP-Interpreter auf dem Bildschirm darstellt. Die TCP-Verbindung wird nach Erhalt der Webseite wieder abgebaut.

4.4.1 Abrufen von Webseiten

Aus Sicht des Benutzers besteht das World Wide Web aus einer riesigen weltweiten Sammlung vonDokumenten, die Webseiten oder Seiten (Pages) genannt werden. Jede Seite kann Hyperlinks zuanderen Seiten enthalten, die Benutzer konnen diesen Links durch Anklicken folgen. Dieses Konzept,Hypertext genannt, wurde bereits 1945 erstmals offentlich publiziert 36.

Webseiten werden in einem Programm namens Browser angezeigt. Der Browser holt die angeforderteSeite von einem Server, interpretiert den Text und die enthaltenen Formatierungsbefehle und zeigtdie Seite richtig formatiert am Bildschirm an 37.

Die Client-Seite

Wird ein Hyperlink einer Seite ausgewahlt, folgt der Browser dem Hyperlink und ruft die ausgewahlteSeite ab. Seiten werden mit Hilfe von URLs (Uniform Resource Locators) identifiziert (beispielsweisehttp://www.blabla.at/seite.html). Eine URL besteht aus drei Teilen: (i) dem Namen des Pro-tokolls (http), (ii) dem Namen des Rechners, auf dem sich die Seite befindet (www.blabla.at) und(iii) der Datei (plus eventueller Subdirectories), in der sich die Seite befindet (seite.html). Klicktein Benutzer auf einen Hyperlink, fuhrt der Browser verschiedene Schritte aus, um die referenzierteSeite abzurufen. Im Folgenden werden die einzelnen Schritte angefuhrt, die ablaufen, wenn die URLhttp://www.blabla.at/seite.html in einem Webbrowser aufgerufen wird:

1. Der Browser fragt DNS nach der (numerischen) IP-Adresse von www.blabla.at

2. DNS gibt die Antwort xxx.xxx.xxx.xxx zuruck (IP-Adresse von www.blabla.at)

3. Der Browser baut eine TCP Verbindung zu Port 80 von xxx.xxx.xxx.xxx auf

4. Der Browser sendet dann eine Anforderung nach der Datei seite.html

5. Der Server von www.blabla.at sendet die Datei seite.html

6. Die TCP-Verbindung wird getrennt

7. Der Browser zeigt die Seite seite.html an

Fehlt bei der URL die Angabe des Dateinamens (wenn z.B. nur http://www.blabla.at angegebenwurde), wird automatisch nach der index-Datei 38 gesucht. Falls eine solche index-Datei vorhandenist, wird diese aufgerufen.

Die Server-Seite

Ein Webserver ist ein Programm, welches auf einem Rechner lauft und Dienste zur Verfugung stellt.Im Prinzip muss ein Webserver folgende Funktionen ausfuhren konnen:

36siehe Vannevar Bush, “As We May Think”, 1945: http://www.theatlantic.com/doc/194507/bush37An dieser Stelle soll nicht auf die unterschiedlichen Darstellungen in verschiedenen Browsern wie Internet Explorer,

Mozilla o.a. eingegangen werden, sondern es soll das Konzept erlautert werden38z.B. index.html, index.htm oder index.php

Page 46: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

4.4 Webserver 46

1. Eine TCP-Verbindung von einem Client (Browser) akzeptieren

2. Die Datei mit dem angeforderten Namen (von der Festplatte) abrufen

3. Die Datei an den Client senden

4. Die TCP-Verbindung wieder freigeben

Moderne Webserver erledigen aber viel mehr als nur Dateinamen zu akzeptieren und Dateien zuruck-zugeben. Webserver laufen daher oft multithreaded (quasi gleichzeitige Bearbeitung verschiedenerAnfragen), mit einem Front-End-Modul das alle eingehenden Anforderungen akzeptiert, und k Ver-arbeitungsmodulen. Das Front-End-Modul ubergibt dann jede eingehende Anforderung an das ersteverfugbare Verarbeitungsmodul, welches fur jede Anfrage dann einige der folgenden Schritte ausfuhrt(je nachdem was die Anforderung benotigt):

1. Namen der angeforderten Webseite auflosen

2. Client authentifizieren

3. Zugriffskontrolle auf dem Client durchfuhren

4. Zugriffskontrolle auf der Webseite durchfuhren

5. Cache prufen

6. Angeforderte Seite von Festplatte abrufen

7. MIME-Typ bestimmen, um diesen in die Nachricht aufzunehmen

8. Antwort an Client ubergeben

9. Eintrag im Server-Log vornehmen

Schritt 1 wird benotigt, falls die eingehende Anforderung die Datei nicht explizit angibt. Es muss dannauf die Standarderweiterung erganzt werden. Moderne Browser konnen auch die Standardsprache desBenutzers angeben (etwa Deutsch oder Englisch), so dass der Server eine Webseite in dieser Spracheauswahlen kann (wenn verfugbar).

Schritt 2 ist erforderlich, falls Seiten nicht fur die allgemeine Offentlichkeit bestimmt sind.

Schritt 3 pruft, ob es Einschrankungen fur die Erfullung der Anforderung gibt, die von Identitat undStandort des Clients abhangen.

Schritt 4 pruft, ob es fur die angeforderte Seite Zugriffsbeschrankungen gibt (etwa durch eine Datei.htaccess, die im Verzeichnis am Server liegt).

4.4.2 Apache (v2)

Es gibt eine Vielzahl an Webserver-Software, die beiden bedeutendsten sind Apache HTTP Serverder Apache Software Foundation (mittlerweile in der Version 2.2.x verfugbar) und Microsoft InternetInformation Services (kurz IIS).

Apache ist freie Software und kann unter http://httpd.apache.org heruntergeladen werden. InUbuntu konnen Sie Apache v2 einfach durch $ sudo apt-get install apache2 installieren. Apa-che (in der aktuellen Version 2.2.x) kann in verschiedenen Modi (genannt Multi-Processing-Module,

Page 47: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

4.5 Weiterfuhrende Literatur - Fur interessierte LeserInnen 47

MPM) betrieben werden (siehe Linux Befehl $ apt-cache search apache2-mpm). Die wichtigstenzwei sind 39:

• Prefork: Implementiert ein Verhalten ahnlich zu Apache 1.3. Fur jeden Request wird ein eigenerProzess gestartet (forked). Dies ist nicht besonders effizient und benotigt viel Speicher, wirdfur viel non-thread-safe Bibliotheken (wie etwa PHP4) benotigt. Vorteil der Methode ist, dassProbleme in der Verarbeitung eines Requests die anderen nicht beeinflussen konnen.

• Worker: Das Farmer-Worker-Modell lauft multithreaded, d.h. ein einzelner Kontroll-Prozessstartet mehrere Kind-Prozesse, die wiederum eine bestimmte Anzahl an Threads starten. DiesesModell ist sehr leistungsfahig und gleichzeitig speichereffizient.

Apache ist sehr modular aufgebaut, es gibt eine Fulle von Modulen, die uber a2enmod bzw. a2dismodaktiviert bzw. deaktiviert werden konnen. Weiteres konnen viele sog. Virtuelle Hosts betrieben wer-den, (a2ensite, a2dissite).

Konfiguration

Die Konfiguration wird in der Datei /etc/apache2 festgelegt. Relativ zu diesem Pfad befindet sichin der apache2.conf die grundlegende Konfiguration (wie etwa die Wahl des MPM). Externe Soft-ware, die die Apache-Konfiguration andern muss, wird nach conf.d/ verlinkt und damit automatischeingebunden.

Ein wichtiges Tool ist der Befehl $ sudo apache2ctl. Mit der Option -t kann die Syntax derKonfiguration uberpruft werden, bevor der Webserver neu gestartet wird (und dann vielleicht nichtmehr startet ;-)). Ob Ihr Apache-Webserver lauft, konnen Sie z.B. mit $ sudo apache2ctl status

herausfinden.

4.5 Weiterfuhrende Literatur - Fur interessierte LeserInnen

Arbeiten auf entfernten Rechnern

Jens Banning, Linux-Netzwerkadministration(Addison-Wesley, 2002; ISBN: 3827318556)

Dateiubertragung via FTP/SFTP

Jens Banning, Linux-Netzwerkadministration(Addison-Wesley, 2002; ISBN: 3827318556)

Apache Webserver

Eine praktische Referenz zum Apache Websever bietet das folgende Buch:Andrew Ford und Sascha Kersken, Apache - kurz und gut(O’Reilly - 2. Auflage, 2007; ISBN: 3897215306)

Als praxisorientiertes Online-Tutorial sei folgende Siete von Daniel Lopez Ridruejo erwahnt:http://tldp.org/HOWTO/Apache-Overview-HOWTO.html

39http://httpd.apache.org/docs/2.2/mod/

Page 48: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

48

Einheit 5 - Firewalls (iptables)

Firewalls (eine gangige deutsche Ubersetzung gibt es nicht), umfassen alle Maßnahmen, um einenRechner, oder ein Netzwerk von Rechnern, vor unbefugtem Zugriff von außen zu schutzen. Diefolgende englische Definition beschreibt Zweck und grundlegenden Aufbau einer Firewall.Definition 2 (Firewall).

”The purpose of a firewall is to monitor and control all communication

into and out of an intranet. A firewall is implemented by a set of processes that act as gateway toan intranet, applying a security policy determined by the organization.“ [6, p. 109]

Firewalls involvieren somit nicht nur Software, sondern auch organisatorische Maßnahmen, wie bei-spielsweise das Routen von Netzwerkverkehr uber einen zentralen Rechner, der die anfallenden Da-tenpakete inspiziert und entsprechend darauf reagiert. Ein solcher zentraler Rechner befindet sichdaher zwischen der

”Außenwelt“ und dem zu schutzenden Intranet, d.h. den lokalen Rechnern. Das

Inspizieren der anfallenden Datenpakete und die Reaktion darauf konnen unter Linux mittels iptablesrealisiert werden.

iptables ist ein Dienstprogramm der netfilter Software, welche die zentrale Komponente einer Firewall(insbesondere als Paketfilter) in Linux darstellen kann. Selbstverstandlich gibt es auch andere Pro-dukte, iptables ist jedoch besonders geeignet, weil es gratis verfugbar ist und auf sehr vielen Systemeingesetzt wird. Unter Windows und UNIX ist iptables normalerweise nicht verfugbar, stattdessengibt es alternative Dienstprogramme, die ebenso Paketfilterung etc. unterstzutzen.

Die Ausfuhrungen dieses Kapitels stellen nur einen kleinen Auszug der Moglichkeiten von firewallsbzw. iptables dar, fur eine eingehendere Befassung des Themas wird auf die angefuhrte Literatur amEnde dieses Kapitels verwiesen.

5.1 Grundlagen von iptables

iptables kann zur Realisierung der Funktionalitat einer Firewall eingesetzt werden, man kann da-mit Manipulationen auf Paketebene vornehmen. Der Aufbau von iptables umfasst Tabellen, Kettenund Regeln. Tabellen beziehen sich auf Ketten, welche Regeln enthalten. iptables wird ublicherweisein Routern und Firewalls eingesetzt, kann jedoch prinzipiell in jedem auf Linux basiertem PC zurAnwendung kommen. Beispielsweise kann man somit den Zugriff auf einem Computer auf bestimm-te IP-Adressen einschranken (IP-Adressen sperren) oder Pakete auf andere Computer weiterleiten(Forwarding). iptables ist standardmaßig in vielen Linux-Distributionen, inklusive Ubuntu, enthalten.Sollte es dennoch fehlen, so kann das entsprechende Paket mit $ sudo apt-get install iptables

nachinstalliert werden40.

Hinweis

Wir verwenden iptables via Kommandozeile, alle Aufrufe mussen mit root-Rechten durch-gefuhrt werden. Bei einem Neustart des Computers werden die Regeln geloscht sowie die Policiesstandardmaßig auf ACCEPT gesetzt 41. An Ketten sind zunachst INPUT, FORWARD und OUTPUTvorhanden.

40Dieses Kommando bezieht sich auf Ubuntu bzw. das Dienstprogramm apt-get, bei anderen Linux-Distributionenkann die Installation davon abweichen.

41Selbstverstandlich konnen Regeln auch gespeichert werden, Sie sollen jedoch die virtuellen Umgebungen im PCLabor Lenaugasse fur Ihren Nachfolger wieder im Originalzustand hinterlassen.

Page 49: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

5.1 Grundlagen von iptables 49

5.1.1 Regeln und Ziele

Mit einer Regel wird entschieden was mit einem Paket passieren soll. Jede Regel besitzt bestimmteParameter, mit denen sie uberpruft, ob Informationen eines Paketes auf sie zutreffen. Treffen dieParameter zu, so wird eine bestimmte Aktion ausgefuhrt, beispielsweise wird das Paket an ein neuesZiel verwiesen oder verworfen. Fur die Bearbeitung der Pakete gibt es Ziele (

”targets“), von denen

die folgenden haufig sind:

ACCEPT Das Paket wird angenommen und durchgelassen.

REJECT Das Paket wird zuruckgewiesen, und der Sender wird in Form eines Fehlerpakets benach-richtigt.

LOG Die Daten eines Pakets werden in das sogenannte Syslog geschrieben42. Anschließend wird dienachste Regel der Kette abgearbeitet und gegebenenfalls angewendet.

DROP Das Paket wird ignoriert, und der Sender wird nicht daruber verstandigt.

REDIRECT Das Paket wird zu einem lokalen Port weitergeleitet.

MASQUERADE (nur moglich im nat-Table, in der POSTROUTING-Kette) Das Paket erhalt alsQuelladresse die IP-Adresse der Ausgangsschnittstelle, meist in Verwendung falls sich mehrerelokale Rechner eine IP-Adresse teilen.

Regeln konnen als Glieder einer Kette aufgefasst werden, d. h. sie werden hintereinander abgearbeitet.

5.1.2 Tabellen (”

Tables“)

Die Art der Verarbeitung von Netzwerkpaketen ist in verschiedene Tabellen unterteilt. iptables weiststandardmaßig drei Tabellen auf:

filter Standardtabelle (falls die Option -t fehlt), welche alle zur Firewall ankommenden Pakete pruftund entscheidet, ob sie durchgelassen oder blockiert werden; enthalt die Ketten FORWARD,INPUT und OUTPUT.

nat Wird in der Regel eingesetzt, um interne und externe IP-Adressen zu ubersetzen (NAT oder Net-work Address Translation), und um spezielle Weiterleitungen (Port Forwarding) durchzufuhren;enthalt die Ketten PREROUTING, OUTPUT und POSTROUTING.

mangle Wird fur die Analyse und Manipulation des Netzwerkverkehrs benutzt; enthalt alle Ketten.

In den Tabellen werden die Regeln nach der Art ihrer Aufgabe zu unterschiedlichen Gruppen zu-sammengefasst. Jede Tabelle enthalt eine bestimmte Anzahl von eingebauten Ketten (

”Chains“), die

auch benutzerdefiniert sein konnen.

Im Rahmen dieses Praktikums werde wir nur die Standardtabelle filter verwenden.

5.1.3 Ketten (”

Chains“)

Ketten sind eine Sammlung von Regeln, d.h. jede Kette kann mehrere Regeln beinhalten, um einPaket passieren zu lassen, zu verandern oder zu blockieren. Es sind funf Typen von Standardkettenvorhanden. Manche dieser Ketten werden von allen Paketen durchlaufen, andere nur von den Paketen,

42Unter Ubuntu befindet sich das Syslog in /var/log/syslog.

Page 50: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

5.1 Grundlagen von iptables 50

die diese Kette als Ziel haben (siehe Abbildung auf der nachsten Seite). Die Regeln einer Kette werdennacheinander abgearbeitet, trifft eine Regel zu, so ist die Bearbeitung in dieser Kette beendet.iptables kennt funf vorgegebene Ketten (built-in chains)

PREROUTING Alle Pakete kommen hier durch bevor eine Routing-Entscheidung getroffen wird.

FORWARD Fur alle Pakete, die von der einen zu einer anderen Netzwerkschnittstelle weitergeleitetwerden – also keine Pakete die an einen lokalen Dienst gerichtet sind.

INPUT Fur Pakete die uber eine Schnittstelle hereinkommen und einen Dienst auf dem Rechneransprechen.

OUTPUT Fur die uber eine Schnittstelle herausgehenden Pakete, die von einem lokalen Dienstkommen.

POSTROUTING Alle Pakete kommen am Ende der Verarbeitung hier durch.

Die Ketten INPUT, FORWARD und OUTPUT besitzen immer eine Standardregel. Diese wird dannangewandt, wenn keine der in der jeweiligen Kette vorhandenen Regeln zutrifft oder keine Regelvorhanden ist. In den Ketten PREROUTING und POSTROUTING konnen nur Pakete manipuliert(mangle und/oder nat), nicht jedoch gefiltert werden. Zusatzlich zu den vorhandenen Ketten kannman noch benutzerdefinierte Ketten erstellen.

5.1.4 Ablaufreihenfolge

43

Abbildung 23: Der Weg der Pakete durch den Kernel.

43http://www.64-bit.de/dokumentationen/netzwerk/e/002/nfk-traversal.png

Page 51: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

5.2 Syntax 51

Die Reihenfolge, in der ein Paket Tabellen und Ketten durchlauft ist in Abbildung 23 dargestellt.

Grob gesprochen passiert hier Folgendes: Ein Paket passiert noch vor einer Routing-Entscheidungdie PREROUTING-Kette. Und zwar zuerst die der Tabelle mangle (Daten im Paket-Header konnenverandert werden) und dann die Kette der Tabelle nat (IP-Adressen konnen verandert werden).Dann wird vom Routing entschieden, ob es fur einen lokalen Dienst (z.B. Mailabruf, Samba-Freigabeusw.) auf dem Rechner bestimmt ist, oder ob es weitergeleitet werden soll (

”forwarding“). Es werden

also entweder die Kette FORWARD, oder nacheinander die Ketten INPUT und OUTPUT passiert.Danach kommt noch – egal wie gerouted wurde – die Kette POSTROUTING. Nun erkennt manauch, dass sich eine Regel in der Kette INPUT nicht auf ein Paket auswirkt, das weitergeleitetwird und umgekehrt. Regeln in den PRE - und POSTROUTING-Ketten werden jedoch auf allePakete angewandt. Mittels connection tracking (

”conntrack“) lasst sich sogenannte stateful packet

inspection einrichten, auf die in diesem Skriptum nicht eingegangen wird, hier wird insbesondere aufdie dazugehorige Homepage44 verwiesen.

5.1.5 Regelverarbeitung

In welcher Reihenfolge die Tabellen und Ketten abgearbeitet werden, wurde bereits erwahnt. Wieaber werden Regeln abgearbeitet? Beim Erstellen von Regeln bekommen diese eine fortlaufendeNummer und werden anhand derer nacheinander abgearbeitet. Wenn nun eine Regel zutrifft, wirddie Verarbeitung in der entsprechenden Kette beendet.

Ein Beispiel soll dies veranschaulichen:

1. Wir erstellen eine Regel, die einen Ping nicht zulasst – egal von wo er kommt.

2. Danach fugen wir eine Regel an, die einen Ping aus dem lokalen Netz zulassen soll

Was passiert? Der Ping wird nie ankommen – egal ob vom externen oder lokalen Netz. Die ersteRegel wird den Ping-Request ablehnen, die zweite Regel wird daher gar nicht mehr abgearbeitet.

Wurden wir die Regeln umgekehrt einfugen, ware alles in Ordnung: Ein Ping vom lokalen Netz wurdedie erste Regel passieren (die einen Ping aus dem lokalen Netz zulassen sollen) – und damit wurdedie Abarbeitung in dieser Kette beendet werden. Ein externer Ping wurde von der Regel, die daslokale Netz betrifft, nicht verarbeitet (er hat ja eine andere Quelle und damit ist die Regel nichtzutreffend). Die zweite Regel wurde den Ping-request jedoch blocken. An diesem Beispiel kann mandie Wichtigkeit der korrekten Reihenfolge der Regeln sehen, da sich Regeln gegenseitig aufhebenkonnen oder ein Blockieren nichts bringt, wenn vorher akzeptiert wurde.

5.2 Syntax

Die Struktur eines iptables-Befehls lautet allgemein:iptables [-t <Tabellenname>] <Befehl> <Kettenname> <Parameter/Option>

Tabellenname Der Benutzer kann eine andere Tabelle als die Standardtabelle (FILTER) auswahlen,auf die dann der Befehl angewendet wird.

Befehl Eine bestimmte Aktion wird durchgefuhrt, z.B. das Anhangen oder Loschen einer Filterregelin einer Kette, deren Name in der Option <Kettenname> angegeben wurde.

44siehe http://conntrack-tools.netfilter.org/

Page 52: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

5.2 Syntax 52

Parameter/Option Parameterpaare und Optionen legen fest, wie eine Filterregel angewendet wirdund welche Aktion(

”Target“) durchgefuhrt wird, falls eine Regel auf ein Paket zutrifft.

Je nach Zweck eines iptables-Befehls, konnen dessen Lange sowie Komplexitat variieren. Die Ver-wendung von bestimmten Parametern und Optionen kann bewirken, dass weitere Parameter undOptionen angegeben werden mussen, um die Anforderungen der ersten Option weiter spezifizierenzu konnen.

5.2.1 Anweisungen und Parameter

Pro iptables-Anweisung ist immer jeweils nur ein Befehl zulassig. Alle Befehle, außer dem Hilfebefehl,werden mit Großbuchstaben geschrieben.

Im Folgenden werden einige Befehle aufgelistet, die im Praktikum relevant sind (auf das Erstellenund manipulieren benutzerdefinierter Ketten wird hierbei nicht eingegangen):

-h Liste mit Befehlsstrukturen und eine kurze Zusammenfassung der Befehlsparameter und -Optionenausgeben.

-A Kette Anhangen einer Regel an das Ende einer bestimmten Kette.

-D Kette Regel Entfernen einer Regel an einer bestimmten Position in der Kette.

-F Kette Alle Regeln einer Kette loschen (”FLUSH“).

-L Kette Auflisten aller Regeln einer bestimmten Tabelle.

-I Kette Regel Eine neue Regel an einer bestimmten Position in einer Kette einfugen.

-R Kette Regelnummer Regel Eine Regel an einer bestimmten Position in einer Kette ersetzen.

Befehle erfordern entsprechende Parameter, die ebenso in der Kommandozeile anzugeben sind. Listeeiniger moglichen Parameter:

-d Adresse Bezeichnung des Ziels eines Pakets.

-j Ziel Zu einem festgelegten Target springen, wenn eine Regel auf ein bestimmtes Paket zutrifft.Als gultige Targets konnen zum Beispiel ACCEPT, DROP, QUEUE und RETURN angegeben werden.Es konnen aber auch erweiterte Optionen, wie zum Beispiel LOG, MARK und REJECT eingesetztwerden.

-p Protokoll Bezeichnung des Protokolls, ICMP, TCP, UDP oder ALL.

-s Adresse Die Quelle eines bestimmten Pakets spezifizieren.

-t Tabelle Die Regel gilt fur die Tabelle”Tabelle“.

Die verschiedenen Protokolle konnen uber -p tcp, -p udp, oder -p icmp angesprochen werden. DieTCP- beziehungsweise UDP-Ports werden mit den Optionen --sport (

”Source port“) und --dport

(”Destination port“) angegeben.

In manchen Fallen trifft keine Regel auf ein Paket zu. Somit muss die allgemeingultige Policy ausder entsprechenden Tabelle angewendet werden. Es muss fur jede Kette eine Policy (Grundsatzregel)definiert werden. Diese setzt sich aus dem Tabellennamen (optional), der Kette und der Aktionzusammen. Zum Beispiel wird durch die Policy: iptables -P INPUT DROP festgelegt, dass fur dieTabelle

”filter“ (Standard und wird deshalb im Befehl nicht explizit erwahnt) keines der eingehenden

Pakete angenommen wird, falls sie keiner Regel entsprechen.

Page 53: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

5.3 Weiterfuhrende Literatur – Fur interessierte LeserInnen 53

5.2.2 Beispiele

• iptables -A INPUT -p tcp --dport 23 -j DROP . . . Diese Regel bewirkt, dass alle TCP-Pakete abgewiesen werden, die als Ziel den Port 23 haben.

• iptables -A INPUT -s 192.168.0.1 -p icmp -j DROP . . . Mit dieser Regel werden alle ICMP-Pakete verworfen, die vom Rechner mit der IP-Adresse

”192.168.0.1“ kommen.

• iptables -F INPUT . . . Leeren der Kette”INPUT“.

5.3 Weiterfuhrende Literatur – Fur interessierte LeserInnen

Zu den Buchern, die iptables als zentrales Thema beinhalten, gehoren

Ralf Spenneberg – Linux-Firewalls mit iptables und Co(Addison-Wesley, 2006; ISBN: 3827321360)

sowie

Gregor N. Purdy – Linux iptables Pocket Reference(O’Reilly, 2004; ISBN: 0596005695. Teilweise als Google-Book abrufbar:http://books.google.com/books?id=CCk6xpGeYjwC&printsec=frontcover&dq=Linux+iptables+

Pocket+Reference&hl=de#PPP1,M1)

Weiteres sind im Internet zahlreiche Tutorials zu finden, wobei darauf zu achten ist, wie seriosdie Quelle ist. Die fundierteste (jedoch sehr technisch gehaltene) Quelle ist sicherlich die Homepagevon netfilter:http://www.netfilter.org/index.html.

Als Tutorials konnen u. a. “Linux Personal Firewall mit iptables” (kompakte Einfuhrung)http://www.fz-juelich.de/jsc/files/docs/tki/tki-0403.pdf,

“iptables – Die Firewall des Kernels 2.4”http://www.pl-forum.de/t_netzwerk/iptables.html

und das sehr ausfuhrliche “Iptables Tutorial”http://iptables-tutorial.frozentux.net/

empfohlen werden.

Bedenken Sie jedoch, dass es bei vielen Online-Quellen vorkommen kann, dass einzelne Details ver-altet sind, d.h. es empfiehlt sich, mehrere Quellen zu vergleichen! Als sicherste Quelle kann man diejeweiligen Manualseiten heranziehen (man iptables).

Page 54: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

54

Anhang A Einrichten einer VMware Testumgebung

In diesem Anhang wollen wir Ihnen eine kurze Anleitung geben, wie Sie eine virtuelle Umgebungselbst zu Hause installieren konnen. Hier wird auf den VMware Player eingegangen, welcher unterverschiedenen Linux Distributionen und verschiedenen Windows Versionen lauffahig ist.

A.1 Installation des VMware Player

VMware Player ist eine Software zum Betreiben virtueller Maschinen unter Microsoft Windows bzw.verschiedenen Linux Distributionen. VMware bietet die Applikation VMware Player kostenlos an—weitere Informationen zu VMware Player finden Sie auf der Feature Seite (http://www.vmware.com/products/player/features.html) und unter http://de.wikipedia.org/wiki/VMware#VMware_

Player.

Wir haben uns vorwiegend fur den VMware Player entschieden, da der VMware Server ab derVersion 2 nur noch unter Linux und Windows Server Umgebungen (ohne Probleme) lauffahig ist.Falls Sie Windows Server, Windows Vista Ultimate, Windows Vista Business, Red Hat Server oderUbuntu nutzen, konnen Sie jedoch auch den VMware Server installieren: http://www.vmware.com/products/server/.

In diesem Installations-Tutorial nutzen wir die Version 2.0.2 Build: 59824 des VMware Player aufdem Betriebssystem Windows XP (mit Service Pack 2) bzw. Ubuntu 7.10 (Gusty Gibbon), jedochsollten sich die Installationsroutinen von anderen Versionen nur marginal unterscheiden. Im Folgen-den finden Sie die Installationsroutine fur ein Windows Hostsystem, sowie die Installationsroutinefur ein Linux Hostsystem. Die Einbindung der virtuellen Gastbetriebssysteme ist unter Anhang Bzu finden.

A.1.1 Installation des VMware Player unter Microsoft Windows XP / Vista

Versichern Sie sich, dass Ihr (Windows) Betriebssystem auf dem neusten Stand ist und alle von Mi-crosoft empfohlenen Updates installiert sind (Windows Update).

Laden Sie die neuste Version des VMware Players fur Windows XP / Windows Vista von den Seitendes Herstellers (VMware) http://www.vmware.com/download/player/ (ca. 180 MB) herunter.

Nach einer Registrierung vor dem Download gelangen Sie zur eigentlichen Download Seite, wo Sie dieInstallationsdatei finden. Falls bei der Installation des VMware Player Probleme auftreten sollten,finden Sie weitere Informationen unter der Support Seite der Software (http://www.vmware.com/support/services/player.html).

Nachdem Sie die Datei heruntergeladen haben, fuhren Sie das Setup aus.

A.1.2 Installation des VMware Player unter Ubuntu 7.10 (Gusty Gibbon) / Linux

Versichern Sie sich, dass Ihr (Linux) Betriebssystem auf dem neusten Stand ist und alle empfohlenenUpdates installiert sind (Update).

Page 55: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

A.1 Installation des VMware Player 55

Laden Sie die neuste Version des VMware Players (im tar.gz Format) fur Linux von den Seitendes Herstellers (VMware) http://www.vmware.com/download/player/ (ca. 64 MB) herunter.

Nach einer Registrierung vor dem Download gelangen Sie zur eigentlichen Download Seite, wo Sie dieInstallationsdatei finden. Falls bei der Installation des VMware Player Probleme auftreten sollten,finden Sie weitere Informationen unter der Support Seite der Software (http://www.vmware.com/support/services/player.html).

Wechseln Sie ins Terminal um mit der Installation fortzufahren. Wechseln Sie nun in den Ordner, inwelchem sich die herunter geladene VMware Player Datei befindet. Um die Installation ausfuhren zukonnen, mussen Sie die passenden Linux Header Dateien fur Ihr System installieren. Um die VersionIhres Kernels bestimmen zu konnen, mussen Sie folgenden Befehl ausfuhren:

uname -r

In unserem Beispiel bekommen wir als Output:

2.6.22-14-generic

Deshalb installieren wir mit folgendem Befehl die passenden Linux Header Dateien:

sudo apt-get install linux-headers-2.6.22-14-generic

Anschließend entpacken Sie die VMware Player Datei und wechseln in das Installationsverzeichnis:

tar xzvf VMware-player-2.0.2-59824.i386.tar.gz

cd vmware-player-distrib

Fuhren Sie nun das Installationsskript aus:

sudo ./vmware-install.pl

Die Installation kann mit den Standardeinstellungen durchgefuhrt werden. Anschließend finden Sieden VMware Player in Ihrem Applikations-Menu. Sie konnen nun Gastbetriebsysteme in Ihren VM-ware Player einbinden (siehe Anhang B).

Page 56: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

56

Anhang B Einrichten von virtuellen Gastbetriebssystemen

In den folgenden Schritten wird Ihnen erklart, wie Sie ein von uns vorgefertigtes Ubuntu 7.10 (GustyGibbon) Gastsystem auf Ihrem Computer einrichten (Unter B.1.1), eine andere Linux Distributionals Gastsystem aufsetzen (Unter B.3) beziehungsweise ein Microsoft Windows Professional / Homeals Gastsystem einrichten (Unter B.1.2).

B.1 Einbinden eines vorgefertigten Gastsystems

Wir bieten Ihnen mehrere vorgefertigte virtuelle Maschinen an:

B.1.1 Linux Distribution: Ubuntu

Unter folgendem Link finden Sie Ubuntu Distributionen als VMware Player Abbilder (VMDK undVMX Dateien) in ZIP Dateien. Wahlen Sie eine gewunschte Distribution aus und laden Sie dieseherunter. Entpacken Sie die beiden Dateien auf Ihren Computer (z.B. mit WinZip) und offnen Siedie Datei mit der Endung *.vmx mit dem VMware Player (Installationshinweise unter A.1).

Folgende virtuelle Maschinen stehen zur Auswahl:

• Ubuntu Abbilder auf dem Ubuntu Server (*-desktop-i386.zip):http://isv-image.ubuntu.com/vmware/

(Benutzername und Passwort: ubuntu)

• Ubuntu (8.10 Intrepid Ibex, Englisch mit deutschem Tastaturlayout und inklusive der VMWare-Tools) Abbild fur i386 Prozessoren (externer Link, download auf eigene Gefahr!):http://www.visoracle.com/vm/ubuntu810/ (705 MB)(Benutzername und Passwort: user)

Weitere virtuelle Maschinen finden Sie unter: http://www.thoughtpolice.co.uk/vmware/

B.1.2 Windows Distribution: Vorgefertigte (leere) Festplatte

Aus lizenzrechtlichen Grunden konnen wir Ihnen leider kein Abbild mit installierter Windows Versionanbieten. Die Installation von Windows XP auf einer vorgefertigten Festplatte ist jedoch leicht zubewaltigen.Laden Sie hierzu einfach folgende ZIP Datei herunter und extrahieren Sie die (leere) Festplatte undbereitgestellte VMX Datei:http://tgs.ani.univie.ac.at/IT/WindowsXPPro.zip (4 KB)

Weitere Installationsschritte entnehmen Sie bitte aus B.2 (Einrichten einer eigenen Windows Dis-tribution)

Page 57: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

B.2 Einrichten einer eigenen Windows Distribution 57

B.2 Einrichten einer eigenen Windows Distribution

Nachdem Sie die passenden VMX und VMDK Dateien fur Ihr Windows System herunter geladenhaben (Siehe B.1.2) benotigen Sie noch eine Windows XP (Professional/Home) Installations-CD.Hierfur legen Sie Ihre Windows XP CD in Ihr CD-Rom Laufwerk und starten die VMX Datei mitdem VMware Player (Installationshinweise unter A.1).

Falls beim Booten der Maschine ein Fehler auftaucht, dass kein bootfahiges Medium gefunden wurde,mussen Sie die CD ggf. in Ihr anderes CD-Rom Laufwerk einlegen.

Die virtuelle Maschine sollte nun von der Windows XP CD booten - die Installationsroutine wirdgestartet. Folgen Sie den Installationshinweisen um die Installation durchzufuhren.

Page 58: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

B.3 Einrichten einer eigenen Linux Distribution 58

B.3 Einrichten einer eigenen Linux Distribution

Die Einrichtung einer eigenen Linux Distribution verlauft in mehreren Schritten. Wir bieten Ihnenjedoch schon einige vorgefertigte Gastsysteme auf Linux Basis an (Siehe B.1.1).

B.3.1 Vorbereitung

Um ein neues Gastsystem einzurichten benotigt der VMware Player zwei Konfigurations Dateien:- Eine Datei mit VMDK Endung, welche als virtuelle Festplatte dient- Eine Datei mit VMX Endung, welche die notigen System Parameter beinhaltet

Bitte laden Sie hier die relevanten Daten herunter und legen Sie alle Dateien in einen Ordner (z.B.C:\Gastsysteme\Linux\):

• VMDK Datei: http://tgs.ani.univie.ac.at/IT/15g.vmdkWir bieten Ihnen fur die Installation einer eigenen Linux Distribution eine virtuelle Festplattemit 15 Gigabyte. Denken Sie daran, dass das Gastsystem dann maximal 15 Gigabyte Festplat-tenspeicher beanspruchen wird - der wirkliche Speicherbedarf des Systems passt sich dynamischan.

• VMX Datei: http://tgs.ani.univie.ac.at/IT/linux.vmxDie von uns gelieferte VMX Datei ist fur die Installation einer Ubuntu Distribution vorgefertigtund weißt dem System 512 Megabyte Speicher zu. Des Weiteren wird ein CD-Rom Laufwerksimuliert, welches das Speicherabbild einer CD-Rom laden soll. Der Name des Speicherabbildswird als “cdrom.iso” vorgegeben.Bitte passen Sie die Datei entsprechend an:

displayName entspricht dem Namen des Gastsystems welcher im VMware Playerangezeigt wird (Default: “Ubuntu Linux”).

guestOS entspricht einem Kurzel fur die von Ihnen gewunschte Distribution(Default: “Ubuntu”) - hier ein Ausschnitt der popularsten Distribu-tionen:

Kurzel Distributionubuntu Ubuntu Linux (unser Defaultwert)redhat Red Hat Linuxrhel4 Red Hat Enterprise Linux 4rhel3 Red Hat Enterprise Linux 3rhel2 Red Hat Enterprise Linux 2suse SuSE Linuxsles SuSE Linux Enterprise Servermandrakr Mandrake Linuxnld9 Novell Linux Desktop 9sjds Sun Java Desktop Systemother26xlinux Andere Distro mit 2.6.x kernelother24xlinux Andere Distro mit 2.4.x kernellinux Andere Linux Distro

Page 59: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

B.3 Einrichten einer eigenen Linux Distribution 59

Memsize entspricht der Menge an zugewiesenem Speicher in Megabyte(Default: “512”).

scsi0:0.fileName entspricht dem Namen der Datei der virtuellen Festplatte wel-che beim Ausfuhren des Gastsystems geladen werden soll (Default:“15GB.vmdk”).

ide1:0.fileName entspricht dem Namen der Datei des Speicherabbilds einer CD-Rom, welches beim Ausfuhren des Gastsystems geladen werden soll(Default: “cdrom.iso”).

Laden Sie ein Speicherabbild der CD-Rom (die sog. ISO Datei) Ihrer gewunschten Distribution ausdem Internet (fur Ubuntu z.B. unter http://www.ubuntu.com/getubuntu/download) und speichernSie diese in den Ordner Ihrer VMX und VMDK Dateien. Passen Sie den Namen ihres Speicherab-bilds, entsprechend dem Wert der Variable ide1:0.fileName in der VMX Datei, an.

Sie konnen nun, nach erfolgreicher Installation des VMware Players (siehe Anhang A), dem Her-unterladen und ggf. Bearbeiten der entsprechenden Dateien (VMX, VMDK und der ISO Datei) mitder Installation Ihres Gastbetriebssystems beginnen.

B.3.2 Installation der Linux Distribution

In diesem Tutorial installieren wir die Linux Distribution “Ubuntu 7.10 (Gusty Gibbon)”. Die In-stallationsroutine Ihrer ausgewahlten Distribution kann sich von diesem Setup unterscheiden. FurHilfe zu Ihrer Distribution nutzen Sie bitte das Internet (z.B. http://google.com/).

Starten Sie den VMware Player, klicken Sie auf “Open” und offnen Sie die .vmx Datei (linux.vmx).Anschließend wird die virtuelle Maschine gestartet, nach dem “Post” wird automatisch die von unsin der VMX Datei festgelegte CD-Rom ISO-Abbild geladen.

Page 60: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

B.3 Einrichten einer eigenen Linux Distribution 60

Wahlen Sie zur Installation den Befehl “Start or install Ubuntu” aus und drucken Sie die ReturnTaste.

Die Ubuntu Oberflache wird geladen - wahlen Sie die Verknupfung “Install” auf dem Desktop aus.

Page 61: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

B.3 Einrichten einer eigenen Linux Distribution 61

Die Installationsroutine wird gestartet - wahlen Sie zu erst die Sprache aus, in welcher die Installationdurchgefuhrt werden soll (in unserem Fall “Deutsch”). Und klicken Sie dann auf “Vor”.

Geben Sie Ihren Standort an (um die richtige Zeitzone, Wahrung etc. zu wahlen). In unserem Fallist das “Vienna”. Klicken Sie anschließend auf “Vor”.

Page 62: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

B.3 Einrichten einer eigenen Linux Distribution 62

Wahlen Sie Ihr Tastaturschema (In unserem Fall Germany / Germany) und klicken Sie auf “Vor”um fortzusetzen.

Hier konnen Sie ggf. Einstellungen fur die Partitionierung der Festplatte vornehmen. In unserem Fallist die vorgegebene Einstellung (“Gefuhrt - verwende vollstandige Festplatte”) ausreichend. KlickenSie anschließend auf “Vor”.

Page 63: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

B.3 Einrichten einer eigenen Linux Distribution 63

In diesem Dialog mussen Sie einen Benutzernamen bestimmten, welcher sich nach der Installationam System anmelden darf. In unserem Fall heißt der Benutzer “internettechnolgien” mit dem Benut-zernamen “internettechnolgien” und dem Passwort “internettechnolgien”. Der Computername lautet“internettechnolgien-desktop”. Klicken Sie anschließend auf “Vor”.

Klicken Sie auf “Installieren” um die Installation auszufuhren. “Ubuntu” wird jetzt auf Ihr Systeminstalliert.

Page 64: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

B.3 Einrichten einer eigenen Linux Distribution 64

Nach dem Abschluss der Installation mussen Sie die virtuelle Maschine neustarten. Hierfur klickenSie auf “Jetzt neu starten”.

Um sicherzustellen, dass die CD entfernt wurde mussen Sie vom Gastbetriebssystem zu Ihrem Haupt-betriebssytem wechseln (STRG+ALT Drucken) und im VMware Player mit der linken Maustasteauf das Feld CD-Rom (IDE 1:0 ) klicken.

Falls der Neustart nicht reibungslos durchgefuhrt wird, konnen Sie die Maschine “Reseten” (ent-spricht dem Drucken des “Reset”-Knopfs an einem Computer). Hierfur klicken Sie auf “VMwarePlayer”, “Troubleshoot” und anschließend auf “Reset”.

B.3.3 Konfigurieren der Linux Distribution

Nach der erfolgreichen Installation Ihres Gastsystems sollten Sie noch einige (optionale) Schrittedurchfuhren um die Performance des VMware Players zu verbessern.

Page 65: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

B.3 Einrichten einer eigenen Linux Distribution 65

Installation der Aktualisierungen

Nach der Installation des Gastbetriebssystems (in diesem Fall “Ubuntu 7.10 (Gusty Gibbon)”) solltedas System fur erhohte Kompatiblitat mit dem VMware Player konfiguriert werden.

Nachdem Sie sich mit Ihrem Benutzernamen und Passwort eingeloggt haben, sollten Sie die verfugbarenUpdates installieren:

Hierfur klicken Sie bitte auf das zweite Icon von links, neben Ihrem Benutzernamen (in der oberstenEcke).

Die verfugbaren Updates werden angezeigt - klicken Sie auf ”Aktualisierungen installieren” um dieUpdates herunter zu laden und zu installieren.

Page 66: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

B.3 Einrichten einer eigenen Linux Distribution 66

Starten Sie nach der Installation das System neu.

Installation der VMware-Tools

Auf unserem Gastsystem installieren wir nun die VMware-Tools. Diese Installation ist optional,erlaubt aber eine bessere Kommunikation zwischen Gastsystem und Betriebssystem (z.B. dem Aus-tausch von Dateien uber Shared-Folders oder “Kopieren/Einfugen” zwischen den Systemen).

Hierfur offnen Sie bitte ein Terminalfenster in Ubuntu:

Page 67: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

B.3 Einrichten einer eigenen Linux Distribution 67

Und fuhren folgende Befehle aus:

wget http://launchpadlibrarian.net/11947455/open-vm-tools_2008.01.23-74039-0ubuntu1_i386.debdpkg -i open-vm-tools_2008.01.23-74039-0ubuntu1_i386.deb

Gegebenenfalls erscheinen zwei Fatal Errors ; die Installation der VMware Tools sollte jedoch trotz-dem erfolgreich sein.Weitere Informationen entnehmen Sie bitte von: https://launchpad.net/ubuntu/hardy/i386/

open-vm-tools/.

Starten Sie das Gastsystem neu, um die Einstellungen und neuen Treiber zu ubernehmen.

Page 68: Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT ...homepage.univie.ac.at/andreas.janecek/stuff/itscript2009.pdf · Skriptum zum Praktikum aus Internettechnologien (PI.INT.IT.PR)

Literatur 68

Literatur

[1] Msn encarta “ virtual machine”, 2007. http://encarta.msn.com/dictionary_1861734291/

virtual_machine.html.

[2] Vmware server, 2008. http://www.vmware.com/products/server/.

[3] Wikipedia/wireshark, 2008. http://de.wikipedia.org/wiki/Wireshark.

[4] Wireshark, 2008. http://www.wireshark.org/.

[5] Douglas E. Comer. Internetworking With TCP/IP. Prentice Hall, 3th edition, 1995. Vol I.

[6] George Coulouris, Jean Dollimore, and Tim Kindberg. Distributed Systems – Concepts andDesign. Addison-Wesley, 4th edition, 2006.

[7] Roland Herbst. Der computer als applikation. Online, 02 2006. http://edoc.hu-berlin.de/

cmsj/28/herbst-roland-22/HTML/6.xml.

[8] Elektronik Kompendium. Subnetting, 2008. http://www.elektronik-kompendium.de/sites/net/0907201.htm.

[9] Andrew. S. Tanenbaum. Computer Networks (International Students Edition). Prentice HallInternational, 4th edition, 2003.

[10] Andrew S. Tanenbaum. Computernetzwerke. Pearson Studium, August 2003.

[11] Andrew S. Tanenbaum and Marten van Steen. Verteilte Systeme. Pearson Studium, 2003.