I ett utdrag från Jeff Doyle’s bok “Routing TCP/IP vol.1” står följande om historiken bakom OSPFv3:
As you have seen in previous chapters, routing IPv6 requires modifications to a protocol; primarily, the protocol messages must be modified to carry addresses four times as long as IPv4 addresses. In theory, this also could be done with Open Shortest Path First (OSPF), either by modifying the existing Link State Advertisements (LSA) or by defining new LSAs. But development of OSPF began in the very late 1980s, when router performance was low, latency was high, and memory was expensive. None of these are valid now, and several characteristics of OSPFv2 that were intended to accommodate or compensate for those early networking realities are now irrelevant. Further, extensive operational experience with OSPFv2 revealed several areas of inefficiency.
So when extension of OSPF to support IPv6 was first considered, it was recognized that there was an opportunity to improve the protocol itself. The result is that rather than just extending OSPFv2 for IPv6, a new and improved version of OSPF—OSPF version 3—has been created.
Vad är då nytt i OSPFv3?
- RFC 5340
- Ej bakåtkompatibelt med OSPFv2
- Använder “link” för att kommunicera med neighbors istället för tidigare network/subnet, vilket innebär att neighbors nu kan ligga i skilda subnät
- LSA Type-1 & 2 innehåller inte längre någon prefix-information
- Routrar identifieras nu alltid via Router-ID, även för broadcast & NBMA network-types per default
- LSA Type-3 Summary-network döptes om till inter-area-prefix-LSA
- LSA Type-4 Summary-ASBR döptes om till inter-area-router-LSA
- Två helt nya LSAs, Type 0008 link-LSA & Type 2009 intra-area-prefix-LSA
- Förlitar sig nu på IPv6 Authentication Head (AH) & Encapsulating Security Paylod (ESP) för autentisering & kryptering
- LSA Type skrivs nu i hex (16 bitar)
LSA Types
Se tidigare inlägg här (LSA 1-5) & här (area-types & LSA 7) för en mer ingående förklaring vad varje LSA-typ har för funktion och hur det fungerar i praktiken mellan olika area-typer etc.
Nu när vi gått över till IPv6 så benämns LSA-typerna i hex (16 bitar), men de har tack och lov ändå hållit det väldigt snarlikt som vi kan se i tabellen nedan:
Type-3 & 4 har bevisligen bytt namn, och tänker vi tillbaka hur dessa LSA-paket fungerar är det egentligen bara mer logiskt nu (Summary-network summerade ej per default osv).
Funktionen är fortfarande i princip densamma för alla LSA-typer, med några nya tillägg/modifieringar:
- LSA Type-2001 – Skickas endast inom arean (Router-ID)
- LSA Type-2002 – Skickas endast inom arean från DR (Router-ID)
- LSA Type-2003 – Skickas mellan areas från ABRs, annonserar O IA-routes
- LSA Type-2004 – Skickas mellan areas, annonserar gateway (ABR) för ASBR/LSA Type-4005
- LSA Type-4005 – Skickas mellan areas, annonserar O E1/E2-routes
- LSA Type-2007 – Skickas inom arean vid användandet av NSSA/T-NSSA, annonseras sedan av ABR som Type-4005 (O E1/E2-routes)
- LSA Type-0008 – Skickas endast link-local till neighbors som är “Directly connected”
- LSA Type-2009 – Skickas inom arean, annonserar de prefix som vi annars hade haft med i Type-2001/2002
Satte upp följande topologi så vi kan testa detta lite mer ingående. R6 redistributar förövrigt fyra statiska ipv6-routes till RIPng, som R4 i sin tur redist. till OSPF-processen (ASBR).
Kommer hoppa direkt in i OSPFv3-Konfigen nu men den är väldigt basic så känns inte som det krävs någon närmare förklaring:
R1
ipv6 unicast-routing ! interface Loopback0 ipv6 address 2001:DB8:6783:1111::1/64 ! interface FastEthernet0/0 ipv6 address FE80::1 link-local ipv6 address 2001:DB8:6783:1::1/64 ipv6 ospf 1 area 64 ! interface FastEthernet0/1 ipv6 address FE80::1 link-local ipv6 address 2001:DB8:6783::1/64 ipv6 ospf 1 area 0 ! ipv6 router ospf 1 router-id 1.1.1.1
R2
ipv6 unicast-routing ! interface Loopback0 ipv6 address 2001:DB8:6783:2222::2/64 ! interface FastEthernet0/0 ipv6 address FE80::2 link-local ipv6 address 2001:DB8:6783:2::2/64 ipv6 ospf 1 area 10 ! interface FastEthernet0/1 ipv6 address FE80::2 link-local ipv6 address 2001:DB8:6783::2/64 ipv6 ospf 1 area 0 ! ipv6 router ospf 1 router-id 2.2.2.2
R3
ipv6 unicast-routing ! interface Loopback0 ipv6 address 2001:DB8:6783:3333::3/64 ! interface FastEthernet0/0 ipv6 address FE80::3 link-local ipv6 address 2001:DB8:6783:3::3/64 ! interface FastEthernet0/1 ipv6 address FE80::3 link-local ipv6 address 2001:DB8:6783::3/64 ipv6 ospf 1 area 0 ! ipv6 router ospf 1 router-id 3.3.3.3
R4
ipv6 unicast-routing ! interface FastEthernet0/0 ipv6 address FE80::4 link-local ipv6 address 2001:DB8:6783:1::4/64 ipv6 ospf 1 area 64 ! interface FastEthernet0/1 ipv6 address FE80::4 link-local ipv6 address 2001:DB8:6783:64::4/64 ipv6 rip RIP-LAB enable ! ipv6 router ospf 1 router-id 4.4.4.4 redistribute rip RIP-LAB metric 100
R5
ipv6 unicast-routing ! interface FastEthernet0/0 ipv6 address FE80::5 link-local ipv6 address 2001:DB8:6783:2::5/64 ipv6 ospf 1 area 10 ! ipv6 router ospf 1 router-id 5.5.5.5
R6
ipv6 unicast-routing ! interface FastEthernet0/0 ipv6 address FE80::6 link-local ipv6 address 2001:DB8:6783:64::6/64 ipv6 rip RIP-LAB enable ! ipv6 route 2002:DB10::/64 Null0 ipv6 route 2002:DB10:1::/64 Null0 ipv6 route 2002:DB10:2::/64 Null0 ipv6 route 2002:DB10:3::/64 Null0 ! ipv6 router rip RIP-LAB redistribute static metric 5
För att få några inter-area routes la jag även till några loopbacks på R3 i efterhand:
int lo0 ipv6 address 2001:DB8:6783:200::1/64 ipv6 ospf 1 area 0 ipv6 ospf network point-to-point int lo1 ipv6 address 2001:DB8:6783:201::1/64 ipv6 ospf 1 area 0 ipv6 ospf network point-to-point int lo2 ipv6 address 2001:DB8:6783:202::1/64 ipv6 ospf 1 area 0 ipv6 ospf network point-to-point int lo3 ipv6 address 2001:DB8:6783:203::1/64 ipv6 ospf 1 area 0 ipv6 ospf network point-to-point
En show ip route på R1 visar nu följande:
Och R5:
So far so good.
OSPFv3s Hello-paket ser förövrigt ut såhär:
Om vi jämför med ett Hello-paket från OSPFv2 (IPv4) så kan vi se att det skiljer sig lite:
- OSPFv3 använder inte längre någon inbyggd autentisering utan förlitar sig på underliggande protokoll (IPv6)
- Använder Link-id istället för network
- Listar förutom DR&BDR även övriga neighbors i arean
Vad har vi då för LSAs snurrandes i vårat nät?
Vi rensar ospf-processen på R1 med clear ipv6 ospf process [yes] och ser vad som händer..
LSA Type-0008
Det första R1 skickar ut innehåller den nya Link-LSA typen 0008.
Paketet innehåller:
- Router-ID
- Link-id
- De ipv6-prefix som finns konfigurerade på interfacet
Vi kan även använda kommandot “sh ipv6 ospf database link” för att få ut samma information, och för enkelhetens skull skippar jag wireshark för resten av det här inlägget.
OSPFv3 Router with ID (1.1.1.1) (Process ID 1) Link (Type-8) Link States (Area 0) LS age: 1851 Options: (V6-Bit E-Bit R-bit DC-Bit) LS Type: Link-LSA (Interface: FastEthernet0/1) Link State ID: 5 (Interface ID) Advertising Router: 1.1.1.1 LS Seq Number: 80000005 Checksum: 0x2A3F Length: 56 Router Priority: 1 Link Local Address: FE80::1 Number of Prefixes: 1 Prefix Address: 2001:DB8:6783:: Prefix Length: 64, Options: None LS age: 1375 Options: (V6-Bit E-Bit R-bit DC-Bit) LS Type: Link-LSA (Interface: FastEthernet0/1) Link State ID: 5 (Interface ID) Advertising Router: 2.2.2.2 LS Seq Number: 80000004 Checksum: 0x2441 Length: 56 Router Priority: 1 Link Local Address: FE80::2 Number of Prefixes: 1 Prefix Address: 2001:DB8:6783:: Prefix Length: 64, Options: None LS age: 1431 Options: (V6-Bit E-Bit R-bit DC-Bit) LS Type: Link-LSA (Interface: FastEthernet0/1) Link State ID: 5 (Interface ID) Advertising Router: 3.3.3.3 LS Seq Number: 80000004 Checksum: 0x1C44 Length: 56 Router Priority: 1 Link Local Address: FE80::3 Number of Prefixes: 1 Prefix Address: 2001:DB8:6783:: Prefix Length: 64, Options: None
Vi kan se att vi tre Link-LSAs, vår egen samt R2 & R3s, Detta skickas som link-local och sprids endast till våra neighbors som är “Directly Connected”. Vad händer då med neighbors som EJ är DC? Ta detta exempel:
R5 kommer aldrig få information om vad R1 har för Link-ID & Prefix konfigurerat på sitt interface då R2 inte kommer vidarebefordra paketet. Det är istället här LSA Type-2009 intra-area-prefix-LSA kommer in i bilden, mer om den senare.
LSA Type-2001 Router-LSA
LSA Type-2001 Router LSA fungerar precis som i OSPFv2 med skillnaden att OSPF-Speakers EJ inkluderar intra-area prefixen den annars annonserar, detta skickas istället även det som ett LSA Type-2009 intra-area-prefix-LSA. Type-2001 innehåller endast information om Router-ID, Network-type & DR/BDR. Notera att den även hänvisar till interface-id vi lärt oss från LSA Type 0008 för att informera om vilket interface det gäller.
R1#sh ipv6 ospf database router [...] OSPFv3 Router with ID (1.1.1.1) (Process ID 1) Router Link States (Area 0) Routing Bit Set on this LSA LS age: 315 Options: (V6-Bit E-Bit R-bit DC-Bit) LS Type: Router Links Link State ID: 0 Advertising Router: 2.2.2.2 LS Seq Number: 80000012 Checksum: 0xBD08 Length: 40 Area Border Router Number of Links: 1 Link connected to: a Transit Network Link Metric: 10 Local Interface ID: 5 Neighbor (DR) Interface ID: 5 Neighbor (DR) Router ID: 3.3.3.3 [...]
LSA Type-2002 network-LSA
Detta skickas precis som vanligt endast av DR och innehåller i OSPFv3 endast information om vilka övriga routrar som finns i arean. I OSPFv2 har även tillhörande prefix inkluderats, men än en gång så har detta flyttats till LSA Type-2009 intra-area-prefix-LSA.
R1#sh ipv6 ospf database network OSPFv3 Router with ID (1.1.1.1) (Process ID 1) Net Link States (Area 0) LS age: 1286 Options: (V6-Bit E-Bit R-bit DC-Bit) LS Type: Network Links Link State ID: 5 (Interface ID of Designated Router) Advertising Router: 3.3.3.3 LS Seq Number: 80000006 Checksum: 0x7F57 Length: 36 Attached Router: 3.3.3.3 Attached Router: 1.1.1.1 Attached Router: 2.2.2.2
LSA Type-2003 inter-area-prefix-LSA
Detta fungerar precis som i OSPFv2, men då vi endast har två inter-area nät sett från area 0 blir det enklast att kontrollera detta i R3. Den bör se nätet R1 har i area 64 samt R2s nät i area 10:
R3#sh ipv6 ospf database inter-area prefix OSPFv3 Router with ID (3.3.3.3) (Process ID 1) Inter Area Prefix Link States (Area 0) Routing Bit Set on this LSA LS age: 1849 LS Type: Inter Area Prefix Links Link State ID: 0 Advertising Router: 1.1.1.1 LS Seq Number: 80000002 Checksum: 0x20F4 Length: 36 Metric: 10 Prefix Address: 2001:DB8:6783:1:: Prefix Length: 64, Options: None Routing Bit Set on this LSA LS age: 1238 LS Type: Inter Area Prefix Links Link State ID: 1 Advertising Router: 2.2.2.2 LS Seq Number: 80000004 Checksum: 0x607 Length: 36 Metric: 10 Prefix Address: 2001:DB8:6783:2:: Prefix Length: 64, Options: None
Kom ihåg att nätet vi redistributar från R4 EJ räknas som inter-area nät utan external (Type-4005).
LSA Type-2004 inter-area-router-LSA
Inget nytt från OSPFv2, möjliggör endast för routrar i andra areas att nå vår ASBR (annonseras av ABR).
R4 är ju i detta fall vår ASBR och R1 i rollen som ABR bör annonsera detta LSA-paket till resterande routrar i area 0.
R3#sh ipv6 ospf database inter-area router OSPFv3 Router with ID (3.3.3.3) (Process ID 1) Inter Area Router Link States (Area 0) Routing Bit Set on this LSA LS age: 134 Options: (V6-Bit E-Bit R-bit DC-Bit) LS Type: Inter Area Router Links Link State ID: 67372036 Advertising Router: 1.1.1.1 LS Seq Number: 80000003 Checksum: 0x27AF Length: 32 Metric: 10 Destination Router ID: 4.4.4.4
För R5 bör det vara samma sak med skillnaden att R2 agerar ABR:
R5#sh ipv6 ospf database inter-area router OSPFv3 Router with ID (5.5.5.5) (Process ID 1) Inter Area Router Link States (Area 10) Routing Bit Set on this LSA LS age: 63 Options: (V6-Bit E-Bit R-bit DC-Bit) LS Type: Inter Area Router Links Link State ID: 67372036 Advertising Router: 2.2.2.2 LS Seq Number: 80000003 Checksum: 0x6D5B Length: 32 Metric: 20 Destination Router ID: 4.4.4.4
LSA Type-4005 AS-external-LSA
Fungerar även den precis som i OSPFv2, sett från exempelvis R3:
R3#sh ipv6 ospf database external OSPFv3 Router with ID (3.3.3.3) (Process ID 1) Type-5 AS External Link States [...] Routing Bit Set on this LSA LS age: 1902 LS Type: AS External Link Link State ID: 0 Advertising Router: 4.4.4.4 LS Seq Number: 80000003 Checksum: 0xE962 Length: 36 Prefix Address: 2002:DB10:: Prefix Length: 64, Options: None Metric Type: 2 (Larger than any link state path) Metric: 100 [...]
LSA Type-2007 NSSA-LSA
Inget nytt här heller, används när vi konfigurerat NSSA alternativt T-NSSA, Type-4005 skickas då istället som Type-2007 NSSA inom arean.
Vi kan verifiera detta genom att konfigurera area 64 till NSSA:
R1(config)#ipv6 router ospf 1 R1(config-rtr)#area 64 nssa R4(config)#ipv6 router ospf 1 R4(config-rtr)#area 64 nssa
R4#sh ipv6 route ospf IPv6 Routing Table - 16 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route, M - MIPv6 I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 D - EIGRP, EX - EIGRP external OI 2001:DB8:6783::/64 [110/20] via FE80::1, FastEthernet0/0 OI 2001:DB8:6783:2::/64 [110/30] via FE80::1, FastEthernet0/0 OI 2001:DB8:6783:200::/64 [110/21] via FE80::1, FastEthernet0/0 OI 2001:DB8:6783:201::/64 [110/21] via FE80::1, FastEthernet0/0 OI 2001:DB8:6783:202::/64 [110/21] via FE80::1, FastEthernet0/0 OI 2001:DB8:6783:203::/64 [110/21] via FE80::1, FastEthernet0/0 OI 2001:DB8:6783:3333::/64 [110/21] via FE80::1, FastEthernet0/0
Men vi lyckas fortfarande annonsera våra externa routes till övriga areas:
R1#sh ipv6 ospf database NSSA OSPFv3 Router with ID (1.1.1.1) (Process ID 1) Type-7 AS External Link States (Area 64) Routing Bit Set on this LSA LS age: 468 LS Type: AS External Link Link State ID: 4 Advertising Router: 4.4.4.4 LS Seq Number: 80000001 Checksum: 0xCB94 Length: 36 Prefix Address: 2002:DB10:: Prefix Length: 64, Options: P Metric Type: 2 (Larger than any link state path) Metric: 100 [...] R3#sh ipv6 ospf database external OSPFv3 Router with ID (3.3.3.3) (Process ID 1) Type-5 AS External Link States Routing Bit Set on this LSA LS age: 500 LS Type: AS External Link Link State ID: 0 Advertising Router: 1.1.1.1 LS Seq Number: 80000001 Checksum: 0x4812 Length: 36 Prefix Address: 2002:DB10:: Prefix Length: 64, Options: None Metric Type: 2 (Larger than any link state path) Metric: 100
LSA Type-2009 intra-area-prefix-LSA
Detta har vi redan nämnt nu några gånger, Type-2009 är som sagt nytt för OSPFv3 och innehåller de prefix vi exkluderat från LSA Type-2001, 2002 & 0008 (i de fall vi ej är directly connected). R3 som i detta fall är DR sammanställer infon och skickar ut till sina neighbors. Observera att den även refererar till vilken LSA-typ prefixen hör till!:
R1#sh ipv6 ospf database prefix OSPFv3 Router with ID (1.1.1.1) (Process ID 1) Intra Area Prefix Link States (Area 0) Routing Bit Set on this LSA LS age: 297 LS Type: Intra-Area-Prefix-LSA Link State ID: 0 Advertising Router: 3.3.3.3 LS Seq Number: 80000009 Checksum: 0x8856 Length: 92 Referenced LSA Type: 2001 Referenced Link State ID: 0 Referenced Advertising Router: 3.3.3.3 Number of Prefixes: 5 Prefix Address: 2001:DB8:6783:203:: Prefix Length: 64, Options: None, Metric: 1 Prefix Address: 2001:DB8:6783:202:: Prefix Length: 64, Options: None, Metric: 1 Prefix Address: 2001:DB8:6783:201:: Prefix Length: 64, Options: None, Metric: 1 Prefix Address: 2001:DB8:6783:200:: Prefix Length: 64, Options: None, Metric: 1 Prefix Address: 2001:DB8:6783:3333:: Prefix Length: 64, Options: None, Metric: 1 Routing Bit Set on this LSA LS age: 559 LS Type: Intra-Area-Prefix-LSA Link State ID: 5120 Advertising Router: 3.3.3.3 LS Seq Number: 80000005 Checksum: 0x7846 Length: 44 Referenced LSA Type: 2002 Referenced Link State ID: 5 Referenced Advertising Router: 3.3.3.3 Number of Prefixes: 1 Prefix Address: 2001:DB8:6783:: Prefix Length: 64, Options: None, Metric: 0 [...]
Puhhh! Tror vi avslutar OSPFv3 här, tanken var som sagt att endast ta upp det som skiljer från när vi kör OSPF i IPv4. 🙂
1 reaktion på ”IPv6 – OSPFv3”