Routing - TU Dresden

Werbung
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
Herunterladen