Fakultät Informatik, Institut für Systemarchitektur, Professur Rechnernetze Rechnernetzpraxis Routing [email protected] Einleitung 3 Sendender Host 2 3 Router 2 Router 4 Router 3 Host B 1 Host A Router 1 2 1 Woher kennt Host Pfad zu Router 1? Host C Adressierter Host 3 Speicherung aller Ziele auf jedem Router? 2 Behandlung alternativer Pfade? • Wie werden Informationen bezüglich der Topologie ausgetauscht? • Wie werden Pfade auf Grundlage der topologischen Informationen berechnet? • Welche Ansätze zur Verkleinerung der Routingtabellen existieren? • Wie kann Routing in einem mehrere hunderttausend Router umfassenden Netz realisiert werden? 2 Inhalte 1. Allgemeines zu Routing 2. Hierarchische Struktur des Internets (Autonome Systeme) • Übersicht • Klassifizierung von AS • AS und Routing 3. Distanzvektor- und Link-State-Protokolle • Übersicht • Bellman-Ford-Algorithmus • Dijkstra-Algorithmus 4. Ausgewählte Routing-Protokolle • Routing Information Protocol (RIP) • Open Shortest Path First (OSPF) • Border Gateway Protocol (BGP) 5. Router-Daemonen-Implementierung Quagga 3 Routingtabellen - Beispiel Host 1 192.168.64.0/18 192.168.10.7 eth1 Host 2 192.168.20.0/23 eth0 192.168.10.1 192.168.1.91/32 Internet 192.168.10.0/24 $ route -n Kernel IP routing table Destination Gateway Genmark Flags Metric Ref Use Iface 192.168.1.91 192.168.10.7 255.255.255.255 UGH 1 0 142 eth0 192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 42312 eth0 192.168.20.0 0.0.0.0 255.255.254.0 U 0 0 47234 eth1 192.168.64.0 192.168.10.7 255.255.192.0 UG 1 0 22511 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 121 lo 0.0.0.0 192.168.10.1 0.0.0.0 UG 1 0 523461 eth0 • • • Flags: • U: Verwendete Schnittstelle ist verfügbar („Up“) • G: Die Route verwendet einen Gateway • H: Über diese Route kann nur ein einzelner Host erreicht werden Ref: Anzahl weiterer Referenzen zu dieser Route Use: Anzahl der Lookups für diese Route Alternatives Kommando: ip route show 4 Schema für IP-Forwarding-Algorithmus Ziel: D N = Präfix bzw. Netz von D if(N ist direkt an lokalen Link angeschlossen){ ermittle MAC-Adresse für D sende Paket an MAC-Adresse von D } else if(es existiert einen Routingtabelleneintrag für N){ ermittle ausgehende Schnittstelle ermittle MAC-Adresse des nächsten Hops H (z.B. Gateway) sende Paket an H } else if(es existiert ein Default-Gateway G){ sende Paket an G } else { sende ICMP-Fehlermeldung an Quelle des Pakets } • Forwarding nutzt im Falle von IPv6 die durch das NDP gefüllten Datenstrukturen (z.B. Prefix-List); siehe für einen allgemeinen IPv6-Forwardingalgorithmus RFC 4861, Kapitel 5.2 5 Autonome Systeme ISP 1 ISP 2 Kunde 1 (ISP 1) Kunde 1 (ISP 2) AS X Kunde 2 (ISP 1) privates AS • • • registriertes Autonomes System 42 registriertes Autonomes System 102 Kunde 2 (ISP 2) Zur Ausbildung eines hierarchischen Netzwerkes und damit eines skalierbareren Routings wird das Internet unterteilt in Autonome Systeme (AS) “An AS is a connected group of one or more IP prefixes run by one or more network operators which has a SINGLE and CLEARLY DEFINED routing policy.” (aus RFC 1930) Unterscheidung in: 1. Registrierte AS: • Erhalten eine weltweit eindeutige 16-Bit bzw. 32-Bit AS-Nummer (ASN) • Werden von den Regional Internet Registries verwaltet • Aktuelle Liste registrierter AS kann eingesehen werden via http://www.iana.org/assignments/as-numbers/as-numbers.xhtml 2. Private AS • 16-Bit-ASN: 64512 - 65534 6 • 32-Bit-ASN: 4200000000 - 4294967294 Autonome Systeme - Klassifizierung • Relation zu AS: • Transit: Betreiber eines AS zahlt für die Weiterleitung von Daten durch das zweite AS • Peer: Aufgrund von Abkommen werden Daten zwischen AS kostenfrei ausgetauscht • Kunde / Customer: Kostenpflichtige Nutzung eines AS als Zugang zum Internet Router an der Grenze eines AS = AS Border Router Tier-2-Netzwerk (besitzt Peer-AS und Transit-AS) Netzbetreiber 2 (AS) Netzbetreiber 1 (AS) Tier-3-Netzwerk (besitzt nur Transit-AS) Regionaler ISP 1 (AS) Netze mit mehr als einem verbundenen AS werden als Internet„multi-homed“ nutzer bezeichnet (ISP 1) Tier-1-Netzwerk (besitzt ausschließlich Kunden bzw. Peer-AS; nur wenige AS dieser Kategorie weltweit verfügbar) ISP 3 (AS) Tier-2Netzwerk Regionaler ISP 2 (AS) Internetnutzer (ISP 2) Internetnutzer (ISP 3) 7 Autonome Systeme - Routing • • Routing-Protokolle für die Wegewahl zwischen AS: • Inter-AS-Protokolle / Exterior Gateway Protocols (EGP) • Müssen bei Routing betriebswirtschaftliche Aspekte berücksichtigen (Policy- / Regel-basiert) • Geben einen Pfads von AS vor, durch den ein Paket zu leiten ist • Beispiel (und gleichzeitig einziges praktisch bedeutsame EGP): • Border Gateway Protocol (BGP) Routing-Protokolle für die Wegewahl innerhalb eines AS: • Intra-AS-Protokolle / Interior Gateway Protocols (IGP) • Beispiele: • Routing Information Protocol (RIP Version 1 bzw. 2) • Open Shortest Path First (OSPF) • Enhanced Interior Gateway Routing Protocol (EIGRP) • Intermediate System to Intermediate System Protocol (ISIS) • Babel Routing-Informationen von Intra-AS-Protokoll RoutingTabelle Routing-Informationen von Inter-AS-Protokoll 8 C Distanzvektor- und Link-State-Protokolle • • Distanzvektorroutingprotokolle A • Router haben keine Informationen über die gesamte Topologie des Netzes, sondern speichern nur, welcher Knoten mit welcher Distanz (z.B. Anzahl Hops) über welchen Nachbarn erreichbar ist • Distanzinformationen für Ziele werden an Nachbarrouter in regelmäßigen Abständen propagiert • Vorteile: geringe Komplexität, geringes Nachrichtenaufkommen • Nachteile: Mangelnde Topologieinformation kann zu schlechten Routingentscheidungen / Problemen führen, z.B. das „klassische“ Count-to-Infinity-Problem • Beispiele: RIP, Babel, EIGRP Link-State-Routing-Protokolle • Regelmäßiger Versand von Informationen („Link-StateAdvertisements“ (LSA)) über alle bekannten Nachbarn eines Knotens samt Distanzangabe • Distanzinformation wird an Nachbarrouter propagiert und von dort weiter in das Netz geflutet • Aus den Informationen wird ein Graph konstruiert für den z.B. mittels Dijkstra-Algorithmus kürzeste Wege zu allen Zielen berechnet werden können • Vorteile: Jeder Router kennt Topologie des Netzes • Nachteile: hohe Komplexität, hohes Nachrichtenaufkommen • Beispiele: OSPF, IS-IS E D B A 1 B 0 C 1 E 2 D 1 z.B. von B verteilter Distanzvektor A 1 C 1 D 1 z.B. von B verteiltes LSA 9 Hintergrund: Bellman-Ford-Algorithmus • • • Verfahren, das in Distanzvektorverfahren eingesetzt wird Zeitkomplexität O(n * m) (n = Anzahl Knoten, m = Anzahl Kanten) Grundlegender Ablauf: • Grundgedanke: • Es wird für alle Kanten aller Knoten geprüft, ob Kosten zur Erreichung des Anfangsknotens der Kante plus Kosten für die Verwendung der Kante niedriger als aktuell gespeicherte Kosten des Zielknotens der Kante sind • Initialisierung: Setze Distanz zu lokalen Knoten auf 0 und zu allen anderen auf unendlich für j von 1 bis (n-1): für jede Kante (a, b) mit Gewicht w aus der Menge der Kanten: falls Distanz[a] + w < distance[b]: distance[b] := distance[a] + w predecessor[b] := a • • Abschließend wird geprüft, ob ein Zyklus mit negativem Gewicht existiert Nachteile für Routing-Algorithmen: • Keine gute Skalierbarkeit • Count-to-infinity-Problem → Zahlreiche Erweiterungen bzw. Alternativen (insb. Dijkstra) verfügbar 10 Hintergrund: Dijkstra-Algorithmus • • • Berechnung von kürzesten Pfaden in einem kantengewichteten Graphen Zeitkomplexität stark von Implementierung abhängig, z.B. mit Fibonacci-Heap wird Zeitkomplexität O(n * log n + m) erreicht (n = Anzahl Knoten, m = Anzahl Kanten) Grundlegender Ablauf: • Für jeden Zielknoten ungleich dem lokalen Knoten führe aus: 1. Setze Distanz zu lokalem Knoten auf 0 und zu allen anderen auf unendlich 2. Falls es noch unbesuchte Knoten gibt: 1. Selektiere Knoten mit geringster Distanz zum lokalen Knoten 2. Speichere selektierten Knoten als besucht 3. Berechne für alle unbesuchten Nachbarn des selektierten Knoten die Distanz zum lokalen Knoten 4. Falls berechnete Distanz kleiner als die bisher für Nachbarn berechnete Distanz, ersetze bisher gespeicherte Distanz und vermerke selektierten Knoten als Vorgänger für unbesuchten Nachbarn Zentraler Schritt des Algorithmus: (A,1) B 1 2 (A,2) 1 A Zielknoten 5 C 1 Besuchter Knoten Lokaler Knoten C Unbesuchter Knoten D (A,1) 5 (A,1) (B,6) E F 1 1 (D,6) 1 (*) G Knoten C wird Arbeitsknoten, da geringste Distanz unter unbesuchten Knoten B 5 2 (A,2) 1 A C 1 D 5 E F (B,6) 1 1 G (*) (C,3) (A,1) Update 11 Routing Information Protocol • • • • • • Sehr schlichtes und einfach zu implementierendes Protokoll Drei Versionen verfügbar: RIPv1 (praktisch irrelevant), RIPv2 und RIPng (IPv6-Unterstützung) RIPv1 besitzt im Gegensatz zu RIPv2 keine Classless-Inter-DomainRouting-Unterstützung (CIDR-Unterstützung) RIPv2 besitzt als einziges noch (sehr geringe) praktische Relevanz Router versenden Response-Nachrichten • in regelmäßigen Intervallen (Broadcast) • falls es eine Änderung in der Routing-Tabelle gab (Broadcast) • auf Anfrage (mittels RIP-Request-Nachricht) Jede Nachricht kann bis zu 25 RIP-Einträge beinhalten Ermöglicht RIP-Eintrag: 32 Bit Address Family Identifier IPv4 address Anzahl Hops (bis zu 15, 16 == unendlich) Subnet Mask Next Hop Metric route tag Kategorisierung von Routing-Einträgen, z.B. Markierung von via BGP gelernten Einträgen Falls nächster Hop abweichend von Nachrichtensender, wird Next Hop explizit angegeben 12 RIP - Nachteile • Ausgewählte Schwächen von RIPv2: Hop-Limit von 15 Keine Separation in BroadcastDomänen • Falls ein Knoten über mehr als 15 Hops erreichbar ist, gilt er für RIP als unerreichbar (Distanz = unendlich) • Netz wird durch Broadcasts geflutet; es besteht keine Möglichkeit, große Netze in RIPBereiche einzuteilen, die nur innerhalb eines Bereichs Informationen austauschen • Keine Möglichkeit, unterschiedliche Kosten für einen Link in Routing-Entscheidung einzubeziehen • Topologische Informationen jenseits des ersten Hops können für RoutingEntscheidungen nicht verwendet werden • Topologische Änderungen propagieren sich langsam durch das Netz, da jeder Knoten zunächst lokale Tabellen aktualisiert und dann Änderungen distributiert Hops als einzige Metrik Nur nächster Hop ist bekannt Langsame Konvergenz im Fall von topologischen Änderungen → RIP eignet sich nur für kleine Netze → Schwächen werden u.a. durch Open Shortest Path First adressiert 13 Open Shortest Path First (OSPF) • • • Eines der am häufigsten innerhalb von AS eingesetzten Protokolle im Internet Sowohl für IPv4 als auch für IPv6 verfügbar; Versionen für IPv4 und IPv6 weisen nur kleinere Unterschiede auf Ablauf • Nachbarn propagieren in regelmäßigen Intervallen Hello-Pakete • Nach der Ausbildung von Nachbarschaftsbeziehungen werden LSA an Nachbarn gesendet, die diese wiederum an ihre Nachbarn verteilen → Erzeugung von transitiven Beziehungen und aus diesen Graph mit gewichteten Kanten Einordnung des Protokolls Link-LayerIP-Header Header OSPF-Header Protocol / Next Header: 89 OSPF-Daten (abhängig vom Pakettyp) Fünf verschiedene Pakettypen definiert Aktuell praxisrelevante Versionen (inkl. Errata) RFC 1131 RFC 1247 RFC 1583 RFC 2178 RFC 2328 OSPF OSPFv2 OSPFv2 OSPFv2 OSPFv2 1989 1991 1994 1997 1998 RFC 2740 OSPF for IPv6 1999 RFC 5340 OSPF for IPv6 2008 14 OSPF Areas Hello-Pakete wie auch Link-State-Informationen werden geflutet Zur Reduktion der Paketzahl wurden Areas eingeführt Nur die Router, die in einer Area lokalisierte Schnittstellen aufweisen, nehmen an der gleichen Instanz des Routing-Algorithmus teil • Minimal liegt Area 0 (alternative Schreibweise: 0.0.0.0) vor, zu der alle anderen Areas direkt oder via virtuellen Links verbunden sein müssen • Routen zwischen Areas führen immer über Area 0 • Areas führen zu einer Klassifikation von Routern Internal-Router, Area-BorderInterfaces in nur einer Area AS-Boundary-Router, teilt Router, besitzt und muss nur eine Instanz Routing-Informationen mit Interfaces in mind. des Routing-Algorithmus anderen AS zwei Areas ausführen • • • Backbone-Area, besitzt immer Nummer 0 (bzw. 0.0.0.0) Area 0 Area 51 R Area 100 Backbone-Router, besitzt mind. ein Interface zur Backbone-Area R R R R Area 31 R R R Virtueller Link R Stub-Area, ist durch virtuellen Link an Backbone-Area 15 angebunden OSPF – Hello-Pakete • • • Dienen dem Detektieren von benachbarten Routern Nach Prüfung von in Paketen enthaltenen Informationen wird für jeden benachbarten Knoten ein Eintrag in einer dem empfangenden Interface zugeordneten Datenstruktur vermerkt Zu ausgewählten Nachbarn wird eine „Adjazenz“ ausgebildet Beinhalten u.a.: • Area-ID • Dead-Intervall: Ab wann bei Ausbleiben von Hello-Paketen davon ausgegangen wird, dass Nachbar nicht mehr verfügbar ist • Hello-Intervall: Abstand zwischen Hello-Paketen • Authentifizierungsinformationen • Liste aller Nachbarn an dem Interface • Designated Router / Backup-Designated Router Hello-Paket R1 Hello-Paket R2 Hello-Paket Hello-Paket R3 Werden als Nachbarn behandelt, falls: • Dead- und Hello-Intervall gleich lokalen Werten • Area-ID gleich lokaler ID • Authentifizierungsinformation valide • Netzwerkmaske gleich lokaler Maske 16 OSPF – Designated Router R2 • • • • • • Bei n Routern in einem Netz bestehen (n*(n-1))/2 mögliche Nachbarschaftsbeziehungen Führt zu extensivem Fluten mit LSAs bereits bei wenigen Routern in BroadcastNetzen Zur Vermeidung nimmt ein Router die Rolle des Designated Routers (DR) ein DR nimmt LSAs von adjazenten Routern entgegen und verteilt sie an alle anderen Router im Netz Bei Ausfall des DR übernimmt ein zweites Router-Interface unmittelbar dessen Rolle (Backup-Designated Router (BDR)) DR und BDR werden im Rahmen des HelloProtokolls bestimmt: • Im Hello-Paket enthaltene RouterPriorität wird zur Bestimmung verwendet (Höchste Priorität = DR) • Bei gleichen Prioritätswerten, wird Router mit höchster Router ID (meist IP) verwendet Austausch von LSA R1 R3 R4 R5 Designated Router R2 BackupDesignated Router R1 R3 R4 R5 17 OSPF – Link State Advertisements • • Nach der Ausbildung von Adjazenzen werden Link-State-AdvertisementNachrichten (LSA-Nachrichten) ausgetauscht Unterscheidung von fünf Typen von LSA-Nachrichten: 1. Router-LSA (Typ 1): • Versendet von allen Routern innerhalb einer einzelnen Area • Beschreibt die Zustände aller Interfaces des Routers innerhalb einer Area 2. Network-LSA (Typ 2): • Von DR innerhalb einer einzelnen Area versendet • LSA beinhaltet Liste von Routern, die mit einem speziellen Netzwerk verbunden sind 3. / 4. Summary-LSAs (Typ 3, Typ 4): • Versendet von Area Border Routers • Jedes LSA beschreibt eine Route zu einem Ziel außerhalb der OSPF-Area, aber noch innerhalb des AS • Typ 3 (Network Summary): Beschreiben Pfade zu Netzwerken • Typ 4 (ASBR Summary): Beschreiben Pfade zu AS Boundary Routers 5. AS-external-LSA (Typ 5): • Von AS Boundary Router in das AS geflutet • Jedes LSA beschreibt einen Pfad zu einem Ziel in einem anderen AS 18 OSPF – Link State Advertisements • Sendet an • R2 Network-LSA, das über Existenz von R1 und R2 im Netz 1 informiert • R3 Network-LSA, das über Existenz von R1 und R3 im Netz 2 informiert AS X Area 0 • Sendet SummaryLSA (Network Summary) zu Netz 3 an Area 0 Netz 1 R2 Area BR Area 23 R1 DR Area 0 Netz 2 R3 Area BR Area 42 Netz 3 • Sendet Summary-LSA (ASBR Summary) an R1 und R2 R4 R5 AS BR • Innerhalb jeder Area senden die Router über alle Schnittstellen Router LSAs, um die AreaRouter über Zustände der in der Area befindlichen Schnittstellen zu informieren • Sendet Pfade außerhalb des AS in das AS (ggf. Pfade, die über ein anderes Routing-Protokoll ermittelt wurden) 19 OSPF – Link State Advertisements • • Auf Grundlage der LSAs kann jeder Router eine spezifische Topologie des Netzes erstellen und über Dijkstra kürzeste Pfade berechnet werden Zusammenhang zu OSPF-Konzepten und Areas: • Typ-1-LSA: Kommuniziert LSAs an alle Router in einer Area • Typ-2-LSA: Reduziert LSA-Aufkommen indem LSAs nur durch DR versendet werden (implizit wird kommuniziert, wer DR ist) • Typ-3-LSA: Reduktion der LSAs aus benachbarten Areas (Propagieren von Default-Routen) • Typ-4-LSA: Dient der Kommunikation, wie AS verlassen werden kann • Typ-5-LSA: Identifizieren LSAs von außerhalb eines AS Area 0 R Area 51 R Area 100 R R R Area 31 R R R R Stub-Area Blockiert Weiterleitung an Area 31 von • Typ-1-LSA • Typ-5-LSA 20 Border Gateway Protocol (BGP) Zielsetzung: Routing von IP durch Autonome Systeme Aktuelle Version 4 beschrieben in RFC 4271 Zentrales Prinzip für BGP-Routing: „BGP does not enable one AS to send traffic to a neighboring AS for forwarding to some destination (reachable through but) beyond that neighboring AS, intending that the traffic take a different route to that taken by the traffic originating in the neighboring AS” (aus RFC 4271, S. 6 f.) → BGP ermöglicht keine Einflussnahme jenseits des eigenen AS • • • • Motivation zur Nutzung von BGP als Endkunde: Kein Einsatz von BGP → Realisierung mittels „Default-Route“ Kunde 1 R1 Kein Einsatz von BGP → Realisierung mittels Load-Balancing ISP 2 ISP 1 R2 Kunde 2 R3 Kunde 3 Einsatz von BGP, falls beide Verbindungen zu ISPs primäre Verbindungen (folglich keine FallbackVerbindungen) 21 BGP-Peers / -Nachbarschaften • • • BGP-Router etabliert Verbindung mit ausgewählten Peers (Nachbarn) und tauscht mit diesen Pfadinformationen aus Konfiguration von Verbindungen zu Peers erfolgt manuell BGP definiert vier wichtige Nachrichten für Kommunikation zwischen Peers: • OPEN: Teilt Peer initial BGP-Version, AS-Nr., Hold Timer, BGP Identifier mit • NOTIFICATION: Dient Beendigung einer Verbindung mit Fehlermeldung • KEEPALIVE: Wird für Verbindungserhaltung regelmäßig gesendet; Hold Timer bestimmt max. Zeitraum zwischen KEEPALIVE-Nachrichten • UPDATE: Informiert Peer über Routen Übersicht zur BGP-FiniteState-Machine (siehe RFC 4271 S. 53 ff. für Details) Connect OpenSent OpenConfirm Active Established Idle • • • • • • Idle: Initiieren von TCP-Verbindungen zu konfigurierten Nachbarn bzw. Lauschen auf eingehende Verbindungen (ohne Annahme der Verbindungen) Connect: Warten auf erfolgreichen TCP-Verbindungsaufbau Active: Lauschen auf und akzeptieren von TCP-Verbindungen OpenSent: OPEN-Nachricht wurde versendet und Warten auf eingehende OPEN-Nachricht OpenConfirm: Warten auf KEEPALIVE- oder NOTIFICATION-Nachricht 22 Established: Austausch von UPDATE-, KEEPALIVE- und NOTIFICATION-Nachrichten BGP-Peers / -Nachbarschaften • • • • Konfiguration von Nachbarschaftsbeziehungen erfolgt manuell Zur Konfiguration wird IP-Adresse des Nachbarn samt AS-Nummer angegeben Unterscheidung zwischen Nachbarschaftsbeziehungen: • innerhalb eines AS: internal BGP (iBGP) • Außerhalb eines AS: external BGP (eBGP) Beispiel: Konfiguration von BGP-Nachbarschaften via CLI auf Cisco-Router: As 50 Router 1 10.1.1.2 10.1.1.1 Router 2 141.76.40.1 141.76.40.2 As 200 Router 3 Router2(config)# router bgp 50 Router2(config-router)# neighbor 10.1.1.2 remote-as 50 Router2(config-router)# neighbor 141.76.40.2 remote-as 200 • Standardmäßig wird zum Nachbar nächstliegendes Interface als Quell-Interface für BGP-Kommunikation verwendet 23 BGP-Peers / -Nachbarschaften • • Nach dem Etablieren einer Verbindung zu einem Nachbarn werden in regelmäßigen Abständen UPDATE-Nachrichten ausgetauscht UPDATE-Nachricht dienen dem Bewerben neuer und dem Verwerfen invalid gewordener Ziele Withdrawn Routes Length (2 Oktette) Withdrawn Routes (variabel) Total Path Attribute Length (2 Oktette) Path Attributes (variabel) Network Layer Reachability Information (variabel) • Felder: • Withdrawn Routes: • Beinhaltet eine Liste von IP-Adress-Präfixen, deren RoutingInformationen nicht mehr valide sind • Path Attributes: • Eigenschaften / Attribute für die mit der UPDATE-Nachricht beworbenen Ziele (für alle in der Nachricht aufgeführten Routen identisch) • Network Layer Reachability Information: • Liste von Zielen, die die gleichen Eigenschaften teilen • Durch IP-Adress-Präfix spezifiziert 24 BGP-Peers / -Nachbarschaften BGP Attributes Well-known Attributes Mandatory Attributes Discretionary Attributes • In jeder Update- • Nicht in jeder Nachricht Updateenthalten Nachricht enthalten • Von jedem Router unterstützt • Optional Attributes Transitive Attributes Non-transitive Attributes • Nicht • zwangsläufig von jedem Router • unterstützt • Werden an nächsten Router immer weitergeleitet Müssen von Routern nicht unterstützt werden Keine Weiterleitung falls nicht unterstützt Mandatory Attributes: • ORIGIN: Definiert die allgemeine Herkunft der Pfadinformationen (drei Werte möglich: IGP, EGP, INCOMPLETE) • AS_PATH: Beschreibt den bisherigen Pfad von AS (Angabe der AS-Nummer), den das Update durchlaufen hat • NEXT_HOP: Verweist auf die IP-Adresse des Routers, der als nächster Router 25 auf dem im Update enthaltenen Pfad verwendet werden sollte BGP-Pfadauswahl • • • RFC 4271 macht keine Vorgaben zur Selektion eines Pfades (vgl. Sektion 9.3) Informationen zur Selektion sind sehr allgemein: • „If the local AS appears in the AS path of the new route being considered, then that new route cannot be viewed as better than any other route...” • „In order to achieve a successful distributed operation, only routes with a likelihood of stability can be chosen.” Möglicher Ansatz im folgenden Beispiel: Wahl der Route mit kürzestem AS-Pfad (via AS 500) UPDATE – AS_PATH = 700,600 UPDATE – AS_PATH = 400,700,600 • UPDATE beinhaltet Angabe eines spezifischen Netzes innerhalb von AS 600, z.B. 141.76.40.0/24 AS 400 AS 700 UPDATE – AS_PATH = 600 AS 100 UPDATE – AS_PATH = 500,600 AS 500 AS 600 UPDATE – AS_PATH = 600 • Beispiel Cisco: Selektion eines Pfads über Auswahlprozess mit etwa einem Duzend Regeln, die bis zu einem Match schrittweise durchlaufen werden, z.B.: • Der Pfad mit höchstem Weight-Wert (proprietäres Attribut) wird bevorzugt • Bei gleicher AS_PATH-Länge selektiere Pfad mit niedrigstem Origin-Typ (IGP < EGP < Incomplete) • Fallback: Bevorzuge Pfad mit niedrigster Router-ID des BGP-Nachbarn 26 Quagga • • • • • Verbreitete Sammlung von Routing-Daemonen für Unix-artige Betriebssysteme unter GPL (GNU Public License) Unterstützung von RIPv1, RIPv2, RIPng, OSPFv2, OSPFv3, BGPv4, IS-IS Weist modulare Architektur auf, die parallelen Betrieb von RoutingDaemonen ermöglicht Zugriff auf Routing-Tabelle des Betriebssystems wird durch Zebra-Daemon koordiniert Zentrale Verwaltung via Telnet über Command Line Interface durch Virtual TeletYpe SHell (VTYSH) möglich Konfigurationsdatei bgpd ospfd ospf6d ripd ripngd isisd Zebra z.B. Linux-Kernel vtysh babeld Admin Routing-Tabelle 27 Quagga – OSPF-Beispielkonfiguration • Nach Installation von Quagga anlegen von Konfiguration in /etc/quagga: • Datei daemons: Legt fest, welche Daemonen laufen sollen • Datei ospfd.conf: Gibt OSPF-Konfiguration vor (alternativ: Konfiguration über Command Line Interface (CLI), s.u.) • Datei zebra.conf: Legt Informationen zu den Netzwerkschnittstellen und allgemeine Zebra-bezogene Optionen fest (z.B. Logging); Konfiguration kann ebenfalls durch CLI erfolgen • Beispielkonfiguration über CLI: R1# configure terminal R1(config)# interface eth0 R1(config-if)# ip address 10.1.3.2/24 R1(config)# router ospf R1(config-router)# router-id 2.2.2.2 R1(config-router)# passive-interface default R1(config-router)# no passive-interface eth0 R1(config-router)# no passive-interface lo R1(config-router)# network 10.1.3.2/24 area 0 R1(config-router)# end Weist dem Interface eth0 IPAdresse 10.1.3.2 zu OSPF-Konfiguration: • Vorgabe der Router-ID • Default-Konfiguration der Interfaces: passive = Interfaces werden in LSAs aufgeführt, aber keine LSAs werden über Interfaces versendet • Aktivieren von OSPF für Interface zum Netzwerk 10.1.3.2/24 (Backbone-Area) → Weitere Betrachtung von Quagga erfolgt in der Übung 28 Zusammenfassung privates AS Kunde 1 (ISP 1) Manuelle Definition von BGP-Nachbarschaftsbeziehungen → Anschließend: Austausch von UPDATE-Nachrichten ISP 1 AS 12 Kunde 2 (ISP 1) AS 300 ISP 2 AS 100 AS 23 AS 42 Kunde 1 (ISP 2) Kunde 2 (ISP 2) Routing auf Ebene der AS: Border Gateway Protocol (BGP) öffentliches AS • Zwei Ansätze für Routing innerhalb eines AS: • Distanzvektorroutingprotokolle • Z.B. unter Verwendung von Bellman-Ford-Algorithmus • Beispiel: Router Information Protocol (RIP) • Einfach, allerdings zahlreiche Nachteile, insbesondere in großen Netzwerken • Link-State-Routing-Protokolle • Z.B. unter Verwendung von Dijkstra-Algorithmus • Beispiel: Open Shortest Path First (OSPF) • Aufbau einer Netztopologie nach Empfang von Link State Advertisements in jedem Router 29 Literatur Ausgewählte RFCs • • • • Informationen zur Registrierung eines Autonomen Systems Router Information Protocol 2 OSPF Version 2 Border Gateway Protocol 4 http://tools.ietf.org/html/rfc1930 http://tools.ietf.org/html/rfc2453 http://tools.ietf.org/html/rfc2328 http://tools.ietf.org/html/rfc4271 Webseiten • Website zum Babel-Protokoll: • http://www.pps.univ-paris-diderot.fr/~jch/software/babel/ • Website zur Software Quagga: • http://www.nongnu.org/quagga/ • BGP Looking Glasses: • http://www.bgp4.as/looking-glasses 30