IPv6 – RIPng

Detta blir ett kortare inlägg om RIPng då det inte finns speciellt mycket att gå igenom, det är fortfarande precis lika basic som RIP/RIPv2 (IPv4). Det mesta är sig även likt när det kommer till hur själva protokollet fungerar.

  • Kommunicerar över UDP 521
  • Skickar uppdateringar över Multicast, dst-adr; FF02::9
  • Metric – Hop count (max 16)
  • Använder link-local som source-adress i sina uppdateringar
  • Har fortfarande en AD på 120
  • Skickar periodiska uppdateringar var 30:e sekund med hela sin rip-databas
  • Skickar även “triggered-updates” när ex. ett nät går ner/läggs till (innehållandes endast de påverkade näten)
  • RFC 2080

Den lilla skillnaden som finns är att routern vid en inkommande uppdatering alltid tar Hopcount + 1 innan den installerar routen i sin databas. Detta gör att om vi jämför en identisk topologi mellan RIPv2 & RIPng kommer vi se 1 högre hop-count för routes i RIPng. Vi aktiverar även själva RIPng-processen direkt på interfacet istället för via “router rip”.

Har i tidigare inlägg visat hur vi aktiverar RIPng så detta får bli lite repetition.

ipv6-simple-topology

R1 / R2 / R3:

int fa0/0
ipv6 rip RIP-LAB enable
int s0/0
ipv6 rip RIP-LAB enable
int s0/1
ipv6 rip RIP-LAB enable
int lo0
ipv6 rip RIP-LAB enable

Show ipv6 rip visar följande:

RIP process "RIP-LAB", port 521, multicast-group FF02::9, pid 192
 Administrative distance is 120. Maximum paths is 16
 Updates every 30 seconds, expire after 180
 Holddown lasts 0 seconds, garbage collect after 120
 Split horizon is on; poison reverse is off
 Default routes are not generated
 Periodic updates 4, trigger updates 2
 Interfaces:
 Loopback0
 Serial0/1
 Serial0/0
 FastEthernet0/0
 Redistribution:
 None

RIPng-Databasen vi skickar var 30:e sekund kan vi lista genom “show ipv6 rip database”:

RIP process "RIP-LAB", local RIB
 2001:DB8:6783:2::/64, metric 2, installed
 Serial0/0/FE80::2, expires in 177 secs
 2001:DB8:6783:3::/64, metric 2, installed
 Serial0/1/FE80::3, expires in 175 secs
 2001:DB8:6783:12::/64, metric 2
 Serial0/0/FE80::2, expires in 177 secs
 2001:DB8:6783:13::/64, metric 2
 Serial0/1/FE80::3, expires in 175 secs
 2001:DB8:6783:23::/64, metric 2, installed
 Serial0/1/FE80::3, expires in 175 secs
 Serial0/0/FE80::2, expires in 177 secs
 2001:DB8:6783:2222::/64, metric 2, installed
 Serial0/0/FE80::2, expires in 177 secs
 2001:DB8:6783:3333::/64, metric 2, installed
 Serial0/1/FE80::3, expires in 175 secs

En show ipv6 ip route visar väl inte direkt något nytt den heller:

IPv6 Routing Table - 14 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
R 2001:DB8:6783:2::/64 [120/2]
 via FE80::2, Serial0/0
R 2001:DB8:6783:3::/64 [120/2]
 via FE80::3, Serial0/1
R 2001:DB8:6783:23::/64 [120/2]
 via FE80::2, Serial0/0
 via FE80::3, Serial0/1
R 2001:DB8:6783:2222::/64 [120/2]
 via FE80::2, Serial0/0
R 2001:DB8:6783:3333::/64 [120/2]
 via FE80::3, Serial0/1

En av skillnaderna från RIP/RIPv2 var som sagt att vi nu lägger till ett extra hop count. Vi kan verifiera detta med en “debug ipv6 rip” som låter oss inspektera uppdateringarna som inkommer från R2 & R3:

Från R2:

*Mar 1 00:09:12.975: RIPng: response received from FE80::2 on Serial0/0 for RIP-LAB
*Mar 1 00:09:12.975: src=FE80::2 (Serial0/0)
*Mar 1 00:09:12.979: dst=FF02::9
*Mar 1 00:09:12.979: sport=521, dport=521, length=132
*Mar 1 00:09:12.979: command=2, version=1, mbz=0, #rte=6
*Mar 1 00:09:12.979: tag=0, metric=1, prefix=2001:DB8:6783:2222::/64
*Mar 1 00:09:12.979: tag=0, metric=1, prefix=2001:DB8:6783:2::/64
*Mar 1 00:09:12.983: tag=0, metric=1, prefix=2001:DB8:6783:12::/64
*Mar 1 00:09:12.983: tag=0, metric=1, prefix=2001:DB8:6783:23::/64
*Mar 1 00:09:12.983: tag=0, metric=2, prefix=2001:DB8:6783:3333::/64
*Mar 1 00:09:12.983: tag=0, metric=2, prefix=2001:DB8:6783:3::/64

R3:

*Mar 1 00:09:37.155: RIPng: response received from FE80::3 on Serial0/1 for RIP-LAB
*Mar 1 00:09:37.155: src=FE80::3 (Serial0/1)
*Mar 1 00:09:37.159: dst=FF02::9
*Mar 1 00:09:37.159: sport=521, dport=521, length=132
*Mar 1 00:09:37.159: command=2, version=1, mbz=0, #rte=6
*Mar 1 00:09:37.159: tag=0, metric=1, prefix=2001:DB8:6783:3333::/64
*Mar 1 00:09:37.159: tag=0, metric=1, prefix=2001:DB8:6783:3::/64
*Mar 1 00:09:37.163: tag=0, metric=1, prefix=2001:DB8:6783:23::/64
*Mar 1 00:09:37.163: tag=0, metric=1, prefix=2001:DB8:6783:13::/64
*Mar 1 00:09:37.163: tag=0, metric=2, prefix=2001:DB8:6783:2::/64
*Mar 1 00:09:37.163: tag=0, metric=2, prefix=2001:DB8:6783:2222::/64

Om vi tittar närmare på prefix=2001:DB8:6783:3333::/64″ vi lärde oss från R3 så har den i uppdateringen metric satt till 1.  Men en show ipv6 route 2001:DB8:6783:3333::/64 visar:

R 2001:DB8:6783:3333::/64 [120/2]
 via FE80::3, Serial0/1

Om vi vill annonsera en default-route (::/1) till våra neighbors så använder vi följande kommando:

R1:
int s0/0ipv6 rip RIP-LAB default-information originateint s0/1ipv6 rip RIP-LAB default-information originate

En debug ip R2 visar att vi nu även får en default-route från R1:

*Mar 1 00:17:03.411: src=FE80::1 (Serial0/0)
*Mar 1 00:17:03.415: dst=FF02::9
*Mar 1 00:17:03.415: sport=521, dport=521, length=152
*Mar 1 00:17:03.415: command=2, version=1, mbz=0, #rte=7
*Mar 1 00:17:03.415: tag=0, metric=1, prefix=2001:DB8:6783:1111::/64
*Mar 1 00:17:03.415: tag=0, metric=1, prefix=2001:DB8:6783:1::/64
*Mar 1 00:17:03.419: tag=0, metric=1, prefix=2001:DB8:6783:13::/64
*Mar 1 00:17:03.419: tag=0, metric=1, prefix=2001:DB8:6783:12::/64
R2#sh ipv6 route 
*Mar 1 00:17:03.419: tag=0, metric=2, prefix=2001:DB8:6783:3333::/64
*Mar 1 00:17:03.419: tag=0, metric=2, prefix=2001:DB8:6783:3::/64
*Mar 1 00:17:03.423: tag=0, metric=1, prefix=::/0
R2#sh ipv6 route ::/1 | beg ::
R ::/0 [120/2]
 via FE80::1, Serial0/0

En liten notis är att till skillnad från RIP/RIPv2 så annonseras även nätet som är “Directly connected” med dess neighbor. Exempelvis så annonserar R1 den seriella länken mellan R1 & R2 om vi kan se i följande wireshark-dump:

ipv6-ripng

Det är ungefär allt som finns att ta upp om RIPng, Ska försöka få upp två inlägg om EIGRP & OSPFv3 asap så jag kan börja med lite roligare grejjer sen, det här känns inte direkt superspännande.. 🙂

1 reaktion på ”IPv6 – RIPng

Lämna ett svar

Din e-postadress kommer inte publiceras.