OSPF (Open Shortest Path First) ist ein Verfahren aus der EDV-Netzwerktechnik. Es bezeichnet ein von der IETF entwickeltes Link-State Routing-Protokoll. Es ist im RFC 2328 (obsolet: RFC 1247 von 1991) festgelegt und basiert auf dem von Edsger W. Dijkstra entwickelten Algorithmus „Shortest Path First“.
Inhaltsverzeichnis |
OSPF ist ein dynamisches Routing-Protokoll innerhalb eines autonomen Systems. Es hat das Routing Information Protocol (RIP) als Standard-Interior Gateway Protocol (IGP) abgelöst, insbesondere bei großen Netzen. OSPF verwendet die Kosten eines Pfades als Metrik und kann bei gleichen Kosten lastverteilt arbeiten. Kosten werden bei OSPF standardmäßig aus der verfügbaren Bandbreite berechnet. Zur Berechnung der Kosten wird folgende Formel verwendet: 10^8/Bandbreite. Die Kosten addieren sich für jedes ausgehende Interface eines OSPF Routers. Im Gegensatz zu RIP ist OSPF ein Link-State-Protokoll.
Neuere Trends bei Betreibern von IP-Netzen zeigen, dass dort vermehrt IS-IS im Zusammenhang mit MPLS eingesetzt wird, weil die IS-IS-Features ausreichen, das Protokoll weniger komplex als OSPF ist und im Vergleich besser skaliert. Trotzdem ist OSPF heute noch das vorwiegend verwendete Routing-Protokoll.
Kernstück von OSPF ist die Nachbarschafts-Datenbank (Adjazenz-Datenbank)/LSD (Link State Database), die eine Liste aller benachbarten Router, zu denen eine bidirektionale Verbindung besteht, enthält. Sie spiegelt die Topologie des Netzes wider. Damit diese Datenbank aufgebaut oder bei Topologie-Änderungen aktualisiert wird, ist der Austausch von Routing-Informationen notwendig. Diese werden mittels Flooding übermittelt. Um den Umfang der auszutauschenden Informationen gering zu halten, wählen OSPF-Router einen designierten Router DR sowie einen Reserve-Router BDR (Backup Designated Router), die als Schnittstellen für den Austausch dienen. Der OSPF-Router, dessen Multi-Access-Schnittstelle die höchste Router-Priorität besitzt, wird DR. Haben zwei Router die gleiche Priorität, wird der Router mit der höheren Router-ID gewählt. Als Router-ID wird die IP-Adresse eines Loopback-Interfaces oder des Interfaces mit der numerisch höchsten IP-Adresse automatisch gewählt.
OSPF-Router tauschen Informationen über die erreichbaren Netzwerke mit sogenannten LSA-Nachrichten (Link State Advertisements) aus. Hierbei sind folgende LSA-Typen definiert:
| OSPF Open Shortest Path First header | |||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | |
| Version | Type | Length | |||||||||||||||||||||||||||||
| Router ID | |||||||||||||||||||||||||||||||
| Area ID | |||||||||||||||||||||||||||||||
| Checksum | AuType |
||||||||||||||||||||||||||||||
| Authentication | |||||||||||||||||||||||||||||||
| Authentication (ctd.) | |||||||||||||||||||||||||||||||
| Data | |||||||||||||||||||||||||||||||
| Typ | Beschreibung | Referenz |
|---|---|---|
| 1 | Hello. | RFC 2328, RFC 2740 |
| 2 | Database description. | RFC 2328, RFC 2740 |
| 3 | Link state request. | RFC 2328, RFC 2740 |
| 4 | Link state update. | RFC 2328, RFC 2740 |
| 5 | Link state acknowledgment. | RFC 2328, RFC 2740 |
| Authentication type | Beschreibung | Referenz |
|---|---|---|
| 0 | None. | RFC 2328 |
| 1 | Simple password authentication. | RFC 2328 |
| 2 | Cryptographic authentication. | RFC 2328 |
| 3 – 65535 |
Reserved. |
| OSPF Open Shortest Path First header version 3 | |||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Version (Version) |
Type (Typ) |
Length (Länge) |
|||||||||||||||||||||||||||||
| Router ID (Routerbezeichner) |
|||||||||||||||||||||||||||||||
| Area ID (Bereichsbezeichner) |
|||||||||||||||||||||||||||||||
| Checksum (Prüfsumme) |
Instance ID (Instanzbezeichner) |
Reserved (reserviert) |
|||||||||||||||||||||||||||||
| Data (Daten) |
|||||||||||||||||||||||||||||||