Koblenz am 1. März 2010 15:15 Uhr, Hörsaal D028 Klausur zur Vorlesung Vertiefung Rechnernetze Prof. Dr. Ch. Steigner Wintersemester 2009/2010 Name: Vorname: Matrikel-Nr.: Studiengang: Musterlösung Punkte: 1 2 3 4 5 6 7 8 9 10 11 12 13 13 12 6 10 10 17 14 18 7 10 12 Gesamt: 142 Note: Name: Matrikel-Nr.: Aufgaben: Punkte: 13 1a. Was sind die wesentlichen Konstruktionsprinzipien einer Rechnernetz-Architektur? 3 • Protokolle • Schichten • Adressen 1b. In welche Schichten wird das TCP/IP Schichten-Modell aufgegliedert und welches Adressierungssystem kommt auf der jeweiligen Schicht zum Einsatz? Nennen Sie die Schichten und das jeweils zugehörige Adresssystem. Beginnen Sie mit der obersten Schicht. (Von oben nach unten in der richtigen Reihenfolge, Top-Down). 4 • Anwendung (Application) – Portnummer • Transport – Protokollnummer • Internet/Netzwerk (Network) – IP-Adresse • Netzzugang/Bitübertragung (Data-Link) – MAC-Adresse 1c. Welche zusätzliche Funktionen bietet das UDP-Protokoll gegenüber dem IP-Protokoll? 2 • Stichwort: Multiplexing / Prozessdemultiplexing – UDP bietet über die Portnummern die Möglichkeit Daten zwischen verschiedenen Anwendungen anzusprechen. 1d. Ordnen Sie die Begriffe richtig zu. (Mehrfachzuweisung möglich) 1 2 3 4 4 UDP N connection-less TCP connection-oriented N congestion-control N flow-control N unicast N N N multicast broadcast N best-effort N realtime 1 Name: Matrikel-Nr.: Aufgaben: Punkte: 13 2a. Nennen Sie die drei elementaren Festlegungen, die für ein Protokoll ausgemacht werden sollten! 3 • Syntax • Semantik • Zeitbedingungen 2b. Nennen Sie die zwei Eigenschaften, die ein endlicher Protokoll-Spezifikations-Automat aufweisen sollte! 2 • Erreichbarkeit • Beendbarkeit (Rückführung) 2c. Geben Sie die kommunizierenden Mealy-Automaten an, die sich aus dem abgebildeten endlichen Protokoll-Spezifikations-Automaten ergeben. (Zustand 0 ist Start- und Endzustand!) CON 0 P-REQ 1 ACC 2 3 P-STOP LIF 5 Lösung: 2 4 P-RES P-START REJ REG 8 Name: Matrikel-Nr.: Aufgaben: Punkte: 12 3a. Beschreiben Sie den prinzipiellen Übertragungsablauf beim Stop-and-Wait-Protokoll und begründen Sie, warum hier nur eine 1-Bit-Sequnznummer benötigt wird. 3 • Sender wartet nach jeder Übertragung eines Frames auf ein ACK • Kommt das ACK innerhalb einer bestimmten Zeit nicht, läuft ein Timer ab (Timeout) und der Sender überträgt den Original-Frame erneut • Gehen ACKs verloren, kann der Empfänger ohne eine 1-Bit-Sequnznummer nicht zwischen Frame-Duplikaten und neuen Frames unterscheiden. 3b. Welche Vorteile bietet das Sliding Window Protokoll? 2 • zuverlässige Übertragung • Übertragung in der richtigen Reihenfolge • Flusskontrolle zwischen Sender und Empfänger • Bandbreite wird besser genutzt 3c. Wie kann man beim Sliding-Window-Verfahren die optimale Fenstergröße ermitteln? Wieso wird die so ermittelte Fenstergröße als optimal bezeichnet? 3 • Der Sender soll solange Frames schicken können, bis frühestens eine Antwort vom Empfänger ankommen kann. • Sendefenstergröße = RTT / Sendezeit für ein Frame • Die Leitungskapazität soll bestmöglichst ausgenutzt werden • keeping the pipe full 3d. Erklären Sie kurz was unter Flußkontrolle und was unter Staukontrolle verstanden wird. 2 Flußkontrolle: Der Empfänger wird nicht überlastet. Staukontrolle: Das Netz wird nicht überlastet. 3e. Über welche Größe wird bei TCP die Flusskontrolle und über welche Größe die Staukontrolle gesteuert? Flußkontrolle: advertised window Staukontrolle: congestion window 3 2 Name: Matrikel-Nr.: Aufgaben: Punkte: 6 4. Zeichnen Sie ein Interaktionsdiagramm für den einfachen Sliding-Window-Algorithmus mit fester Fenstergröße von SWS=RWS=4 Frames, kumulativen ACKs (ohne FastRetransmit) und einem Timeout-Intervall von etwa 2xRTT. Zu übertragen sind 12 Frames, das erste zu übertragende Frame habe die Sequenznummer 1. Bei der Übertragung gehe die Bestätigung für Frame 2, also ACK 2, auf dem Weg vom Empfänger an den Sender und der Frame 6 auf dem Weg vom Sender zum Empfänger verloren. Das Interaktionsdiagramm soll den Übertragungsablauf (ohne Verbindungsauf- bzw. Abbau) vollständig darstellen. Aus dem Diagramm soll zudem ersichtlich sein, dass die Sendefenstergröße auf die RTT abgestimmt wurde. Lösung: Sender Empfänger F1 F2 RTT F3 A1 F4 A2 F5 A3 A4 F6 A5 X 2 * RTT F7 F8 F9 Timeout F6 F6 A9 F10 F11 F12 A10 A11 A12 4 X 6 Name: Matrikel-Nr.: Aufgaben: Punkte: 10 5. Ein Kommunikationsprotokoll benutze den Sliding-Window-Algorithmus mit kumulativen Acknowledgments. Im Folgenden ist jeweils der aktuelle Zustand auf der Empfängerseite dargestellt. Dabei bedeuten grau hinterlegte Felder, dass der entsprechende Frame bereits zuvor angekommen ist. 5a. Wie groß ist in den Beispielen unten jeweils das Empfangsfenster? LAF−LFA=5 5b. Das Emfangsfenster befindet sich in folgendem Zustand: 0 1 2 3 4 5 LFA 6 7 8 9 1 3 10 LAF Nun trifft ein Frame mit der Sequenznummer 2 ein. Geben Sie den resultierenden Zustand auf der Empfängerseite an indem Sie die nachfolgende Graphik vervollständigen! 0 1 2 3 4 5 6 LFA 7 8 9 10 LAF Hat der Empfänger eine Nachricht an den Sender geschickt und wenn ja, welche? ACK 2 5c. Das Emfangsfenster befindet sich in folgendem Zustand: 0 1 2 3 4 5 6 7 LFA 8 9 3 10 LAF Nun trifft ein Frame mit der Sequenznummer 5 ein. Geben Sie den resultierenden Zustand auf der Empfängerseite an indem Sie die nachfolgende Graphik vervollständigen! 0 1 2 3 4 5 6 7 LFA 8 9 10 LAF Hat der Empfänger eine Nachricht an den Sender geschickt und wenn ja, welche? Nein (Bei Fast-Retransmit ACK 3) 5d. Das Emfangsfenster befindet sich in folgendem Zustand: 0 1 2 3 4 5 6 LFA 7 8 9 10 LAF Nun trifft ein Frame mit der Sequenznummer 3 ein. Geben Sie den resultierenden Zustand auf der Empfängerseite an indem Sie die nachfolgende Graphik vervollständigen! 0 1 2 3 4 5 LFA 6 7 8 9 10 LAF Hat der Empfänger eine Nachricht an den Sender geschickt und wenn ja, welche? 5 ACK 5 3 Name: Matrikel-Nr.: Aufgaben: Punkte: 10 6. Beschreiben Sie kurz die folgenden Mechanismen, die bei der Staukontrolle von TCP vorgesehen sind. 6a. Slow Start • exponentielle Vergrößerung des Congestion Windows • Name wurde gewählt, weil früher zu Beginn einer Übertragung ein volles Advertised Window gesendet wurde • für jedes empfangene ACK wird das Congestion Window um 1 erhöht 6b. Additive Increase Multiplicative Decrease • Solange kein TCP-Segment verloren geht (d.h. die ACKs ankommen), wird das Congestion Window pro RTT um einen festen Wert inkrementiert (Typischer Wert: +1). • additive increase • Tritt ein Timeout auf (keine ACKs kommen an), wird das Congestion Window halbiert • multiplicative decrease 6c. Fast Retransmit • Kommen Segmente Out-Of-Order, entstehen also Lücken im Eingangspuffer des Empfängers, dann • schickt der Empfänger jeweils das letzte schon gegebene ACK erneut (DupACK) • der Sender deutet die DupACKs als Hinweis auf verlorene Segmente • das dritte DupACK löst dann die Retransmission aus 6d. Fast Recovery • Überspringen der Slow-Start-Phase nach einem Stauereignis • gleich Additive Increase mit halbem Congestion Window 6e. Welcher der hier genannten Mechanismen kann als “fair” bezeichnet werden und warum? • Additive Increase Multiplicative Decrease • Durch das Verfahren wird die vorhandene Bandbreite gleichmäßig auf die Benutzer verteilt. 6 10 Name: Matrikel-Nr.: Aufgaben: Punkte: 17 7a. Sie haben den Auftrag ein Netzwerk für eine neue Zweigstelle ihrer Firma einzurichten. Es gibt 6 Abteilungen (A-F), von denen jede ihr eigenes Subnetz (A-F) erhält. Jede Abteilung hat einen entsprechenden Bedarf an IP-Adressen. Von ihrem Internet Service Provider (ISP) haben Sie dafür das Klasse-C Netz 205.26.69.0 erhalten. Die verfügbaren IP-Adressen müssen nun wie folgt verteilt werden: SubnetA benötigt 105 IP-Adressen, die aus dem unteren Bereich kommen sollen (die niedrigsten IP-Adressen). SubnetF benötigt 34 IP-Adressen aus dem oberen Bereich (die höchsten IP-Adressen). Die übrigen IP-Adressen sollen der Reihe nach, aufsteigend, auf die verbliebenen Subnetze verteilt werden. SubnetB und SubnetC benötigen je 5 IPAdressen, SubnetD 10 IP-Adressen und SubnetE 18 IP-Adressen. Vervollständigen Sie die Tabelle: Internet 12 ISP SubnetA R1 SubnetF R3 R2 SubnetB SubnetC R4 SubnetD SubnetE Subnetz Anzahl IPs Subnet-IP Broadcast-IP CIDR-Notation SubnetA 105 205.26.69.0 205.26.69.127 205.26.69.0/25 SubnetB 5 205.26.69.128 205.26.69.135 205.26.69.128/29 SubnetC 5 205.26.69.136 205.26.69.143 205.26.69.136/29 SubnetD 10 205.26.69.144 205.26.69.159 205.26.69.144/28 SubnetE 18 205.26.69.160 205.26.69.191 205.26.69.160/27 SubnetF 34 205.26.69.192 205.26.69.255 205.26.69.192/26 7b. Notieren Sie die Weiterleitungstabelle von Router R1 aus der obigen Topologie. Aggregieren Sie die Adressbereiche soweit möglich. Die Default-Route zum Internet Service Provider wurde bereits eingetragen. CIDR-Notation 3 Nexthop-Router default ISP 205.26.69.0/25 −−− 205.26.69.128/28 R2 205.26.69.144/28 R3 205.26.69.160/27 R3 205.26.69.192/26 R3 7c. Welche Probleme sollten mit der Einführung der CIDR-Adressnotation behoben werden? • Anwachsen der Routing-Tabellen • Adressmangel 7 2 Name: Matrikel-Nr.: Aufgaben: 8a. Nennen Sie vier Vorteile, die NAT bietet bzw. Einsatzgebiete für NAT! Punkte: 14 4 • IPv4-Adressmangel entschärfen • Verbergen der internen Netzinfrastruktur nach außen • Migration (zu einem anderen Provider) bzw. Providerfusion • Lastverteilung (load distribution) • Unterstützung virtueller Server 8b. Nennen Sie Probleme, die durch die Verwendung von NAT auftreten können! 2 • Die End-to-End Semantik bei verbindungsorientierten Protokollen wird aufgegeben – Folge u.a.: – Application-Layer-Protokolle laufen eventuell nicht über NAT – IPsec ist nicht nutzbar 8c. Erläutern Sie, welche Gültigkeitsbereiche bei NAT betroffen sind, bzw. welche Adressen auf welche ersetzt werden, unter Verwendung der Begriffe local, global, inside, outside, wenn: 4 • ein IP-Packet von innen nach außen gesendet wird. Inside local Adresse wird durch inside global Adresse ersetzt Outside local Adresse wird durch outside global Adresse ersetzt • ein IP-Packet von außen nach innen gesendet wird. – Inside global Adresse wird durch inside local Adresse ersetzt – Outside global Adresse wird durch outside local Adresse ersetzt . 8d. Erläutern Sie den folgenden iptables-Befehl. 2 iptables -t nat -A POSTROUTING -o eth1 -s 10.1.3.1 -j SNAT --to 205.26.69.1 Source-NAT in der POSTROUTING-Chain IP-Pakete, die über eth1 hinausgehen und als Source-Adresse 10.1.3.1 haben, wird diese SourceAdresse durch 205.26.69.1 ersetzt 8e. Geben Sie für Aufgabe 8d. den iptables-Befehl für die entgegengesetzte Richtung an. Hinweis: Auf der letzten Seite der Klausur finden Sie eine Auswahl von iptablesOptionen. 2 iptables -t nat -A PREROUTING -i eth1 -d 205.26.69.1 -j DNAT --to 10.1.3.1 Destination-NAT in der PREROUTING-Chain IP-Pakete, die über eth1 hereinkommen und als Ziel-Adresse 205.26.69.1 haben, wird diese Ziel-Adresse durch 10.1.3.1 ersetzt. 8 Name: Matrikel-Nr.: Aufgaben: Punkte: 18 9a. Nennen Sie 3 Möglichkeiten, wie Einträge in die BGP-Tabelle eines Routers gelangen können. 3 • durch das network oder aggregate-addess Kommando • durch Redistribution • durch eine Update-Nachricht eines BGP-Peers 9b. Welche 4 Nachrichtentypen kennt BGP und welche Bedeutung fällt ihnen zu? 8 • Open – erste Nachricht, die ausgetauscht wird. – Grundeinstellungen und Parameter werden ausgetauscht. • Update – Austausch von Routen-Informationen • Notification – Fehlerbenachrichtigung • Keepalive – “Heart Beat” – sicherstellen, dass die TCP-Verbindung steht 9c. Bei BGP unterscheidet man die Protokollvarianten I-BGP, E-BGP und ConfederationE-BGP. Wann wird welche Variante verwendet d.h. was sind die Kriterien nach denen festgelegt ist, ob eine BGP-Verbingung eine I-BGP-, E-BGP- oder Confederation-EBGP-Verbindung ist? 3 • Bei BGP-Verbindungen zwischen Peers im gleichen autonomen System wird I-BGP verwendet. • Bei BGP-Verbindungen zwischen Peers in unterschiedlichen autonomen Systems wird E-BGP verwendet. • Bei BGP-Verbindungen zwischen Peers in unterschiedlichen subautonomen Systemen einer Confederation wird Confederation-E-BGP verwendet. 9d. Welches Problem lässt sich durch die Verwendung von Route Reflectors oder Confederations in einem Autonomen System lösen und warum tritt dieses Problem überhaupt auf? 2 Das Skalierungsproblem, dass durch den Full-Mesh von I-BGP-Peers verursacht wird. 9e. Wofür werden Communities und wofür werden Peer-Groups in BGP verwendet? Peer-Groups: Durch Peer Groups werden Router gruppiert. Communities: Durch Communities werden Routen gruppiert. 9 2 Name: Matrikel-Nr.: Aufgaben: Punkte: 7 10. Geben Sie die BGP-Konfiguration des Routers Meribel an, d.h. nur die Befehle, die zum BGP-Verbindungsaufbau zu Innsbr(ck) und Cervini(a), nötig sind, ohne Weitergabe spezieller Prefixe oder Einrichtung von Routing-Policies. Verwenden Sie als Adressen die angegebenen Router-IDs welche über Loopbackinterfaces eingerichtet sind und berücksichtigen Sie die Konfigurationen, die bei der Verwendung der Loopbackinterfaceadresse als Sourceadresse und zum Verbindungsaufbau über E-BGP nötig sind. Hinweis: Auf der letzten Seite der Klausur finden Sie eine Auswahl von BGP-Kommandos. router bgp 50 bgp router-id 10.50.250.1 neighbor 10.100.83.1 remote-as 100 neighbor 10.100.83.1 update-source neighbor 10.100.83.1 ebgp-multihop neighbor 10.200.60.1 remote-as 200 neighbor 10.200.60.1 update-source neighbor 10.200.60.1 ebgp-multihop 10 10.50.250.1 2 10.50.250.1 2 7 Name: Matrikel-Nr.: Aufgaben: Punkte: 10 11a. Wozu wird das MED-Attribut bei BGP eingesetzt und welche Regeln gelten für dessen Weitergabe über BGP und dessen Auswertung (kleinere Werte gegenüber höheren Werten)? 3 • Das MULTI-EXIT-DISC-Attribut (MED) ist dazu gedacht, den bevorzugten Eintrittspunkt in ein AS nach außen bekannt zu geben. • Dabei gilt im Unterschied zur local preference: Je kleiner der MED-Wert, desto höher die Präferenz. • Der MED-Wert wird üblicherweise im Rahmen einer Outbound-Policy auf einer E-BGP-Verbindung gesetzt. • Der MED-Wert wird dann nur über I-BGP weitergegeben und wandert über keine weitere AS-Grenze. 11b. Es soll eine Routing-Policiy konfiguriert werden, die im auf Seite 10 abgebildeten Szenario bewirkt, dass Verkehr zum Prefix 192.168.100.0/24 bevorzugt über die Verbindung Innsbruck-Zermatt in AS30 hinein fließt. Warum läßt sich in dieser konkreten Topologie das für diese Art von Routing-Policy vom BGP-Standard vorgesehene Attribut MED nicht verwenden? 3 • Der MED-Wert üblicherweise über eine Outgoing-Policy für ein Nachbar-AS gesetzt und verläßt dieses AS dann nicht mehr, d.h. er wird dann nur noch über I-BGP weitergegeben. • Da Innsbruck und Cervinia in verschiedenen AS liegen, kommt ein MED-Wert, der z.B. auf Zermatt als Outgoing-Policy auf der BGP-Verbindung zu Innsbruck gesetzt wird, nicht bei Cervinia an. • Der MED-Wert wird zudem nur zur Bewertung zweier Routen herangezogen, wenn diese in das gleiche Nachbar-AS führen. • Da Innsbruck und Cervinia in verschiedenen AS liegen, ist das hier nicht der Fall, da immer eine Route direkt zu AS 30 mit einer Route über AS 100 (oder AS 200) nach AS 30 verglichen werden müßte. 11c. Wie können Sie stattdessen die Routing-Policy aus Aufgabe 11b über AS-Pfad-Verlängerung auf dem Router Moritz umsetzen? Geben Sie die BGP-Konfigurationszeilen für den Router Moritz an. BGP-Konfiguration auf Moritz: neighbor 10.200.60.1 route-map PFAD out ip prefix-list 1 permit 192.168.100.0/24 route-map PFAD permit 10 match ip address prefix-list 1 set as-path prepend 30 30 11 4 Name: Matrikel-Nr.: Aufgaben: Punkte: 12 12. Community-Attribute können z.B. auch dazu verwendet werden, die Austrittspunkte von Traffic aus einem Autonomen System fernzusteuern. Wir wollen nun mithilfe von Community-Attributen von AS30 aus das Setzen von Local-Preference-Werten in AS50 und AS75 steuern. Für Prefixe, die Zermatt an Innsbruck annonciert, setzen wir das Community-Attribut 30:1 und für Routen, die Moritz an Cervinia annonciert, setzen wir das Community-Attribut 30:2. Meribel und Lillehammer können dann die CommunityAttribute auswerten und entsprechende Local-Preference-Werte setzen. Dabei soll folgendes erreicht werden: Traffic von AS 50 nach AS 30 soll über Moritz in AS 30 fließen und Traffic von AS 75 nach AS 30 soll über Zermatt in AS 30 fließen. Geben Sie die Konfigurationsergänzungen für Zermatt und Moritz an, die die richtigen Communities setzen und geben Sie diejenigen Ergänzungen für Meribel und Lillehammer an, die die Communities auswerten und die Local-Preference-Werte passend setzen. Konfiguration auf Zermatt: neighbor 10.100.83.1 route-map SETCOM out route-map SETCOM permit 10 set community 30:1 Konfiguration auf Moritz: neighbor 10.200.60.1 route-map SETCOM out route-map SETCOM permit 10 set community 30:2 Konfiguration auf Lille: neighbor 10.100.83.1 route-map COMM in neighbor 10.100.60.1 route-map COMM in neighbor 10.50.250.1 route-map COMM in ip community-list 301 permit 30:1 ip community-list 301 deny any ip community-list 302 permit 30:2 ip community-list 302 deny any route-map COMM permit 10 match community 301 set local-preference 200 route-map COMM permit 20 match community 302 set local-preference 50 Konfiguration auf Meribel: neighbor 10.100.83.1 route-map COMM in neighbor 10.75.100.1 route-map COMM in neighbor 10.100.60.1 route-map COMM in ip community-list 301 permit 30:1 ip community-list 301 deny any ip community-list 302 permit 30:2 ip community-list 302 deny any route-map COMM permit 10 match community 301 set local-preference 50 route-map COMM permit 20 match community 302 set local-preference 200 12 12 Auswahl an BGP-Kommandos: BGP router router bgp <asn> bgp router-id <A.B.C.D> bgp cluster-id <a.b.c.d> BGP route/Route Aggregation network <A.B.C.D/M> aggregate-address <A.B.C.D/M> aggregate-address <A.B.C.D/M> summary-only Redistribute to BGP redistribute kernel redistribute static redistribute connected redistribute rip redistribute ospf BGP Peer commands neighbor <peer> remote-as <asn> neighbor <peer> ebgp-multihop neighbor <peer> next-hop-self neighbor <peer> update-source neighbor <peer> send-community neighbor <peer> route-reflector-client Peer filtering neighbor <peer> distribute-list <name> [in|out] neighbor <peer> filter-list <name> [in|out] neighbor <peer> prefix-list <name> [in|out] neighbor <peer> route-map <name> [in|out] access-list <name> (permit|deny) <prefix> ip as-path access-list <name> (permit|deny) <reg-expression> ip prefix-list <name> (permit|deny) <prefix> ip community-list <name> (permit|deny) <community> route-map <route-map-name> permit <priority> match match match match set set set set ip address prefix-list <name> ip address <name> as-path <name> community <name> metric <metric> local-preference <local_pref> as-path prepend <as-path> community <community> ip community-list <name> (permit|deny) <community> Auswahl an iptables-Optionen: -t -A -i -o -s -d -j -j -j <tabelle> <chain> [!] <interface> [!] <interface> [!] <adresse>[/<maske>] [!] <adresse>[/<maske] SNAT --to-source <adresse>[-<adresse>][:<port>-<port>] DNAT --to-destination <adresse>[-<adresse>][:<port>-<port>] MASQUERADE 13