Home IPv6 - OSPFv3
Post
Cancel

IPv6 - OSPFv3

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: OSPFv3-LSAtypes

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

OSPFv3-Topology 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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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

1
2
3
4
5
6
7
8
9
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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: ospfv3-r1

Och R5: ospfv3-r5

So far so good. OSPFv3s Hello-paket ser förövrigt ut såhär: ospv3-hello

Om vi jämför med ett Hello-paket från OSPFv2 (IPv4) så kan vi se att det skiljer sig lite: ospv2-hello

  • 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. lsa-link 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.

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
32
33
34
35
36
37
38
39
40
41
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: lsa-linktype9 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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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:

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
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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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:

1
2
3
4
5
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 får inte längre in några OE1/2 routes (type-4/5 blockeras):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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:

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
**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!:

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
32
33
34
35
36
37
38
39
40
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. :)

This post is licensed under CC BY 4.0 by the author.

IPv6 - RIPng

IPv6 - EIGRP