Análisis del update OSPF para 2048 rutas

Fecha: 25 de octubre del 2023

 

Escenario

 

Este lab es una consecuencia del escenario del análisis de cuantos paquetes/segmentos se necesitaban para

anunciar 2048 rutas en BGP y del anterior sobre la redistribución en OSPF de la tabla BGP de todo internet.

Mientras realizaba las pruebas, me preguntaba si también en OSPF se generaba fragmentación y esas cosas,

y también meditaba que OSPF no trabaja sobre TCP ni UDP y ahí mismo nació este lab.

 

 

 

No nos enfocamos en todo el handshacking OSPF sino en estudiar como se intercambia el volúmen de información

correspondiente a las 2048 rutas.

 

 

1.- Verificación inicial de adyacencias:

 

Router-A#

Oct 25 16:26:07.406: %OSPF-5-ADJCHG: Process 1, Nbr 10.0.0.2 on Vlan1 from LOADING to FULL, Loading Done

Router-A#

 

Router-B#

Oct 25 16:26:08.879: %OSPF-5-ADJCHG: Process 1, Nbr 10.0.0.1 on Vlan1 from LOADING to FULL, Loading Done

Router-B#

 

Router-A#sh ip ospf nei

 

Neighbor ID     Pri   State                       Dead Time   Address       Interface

10.0.0.2            0     FULL/DROTHER    00:00:39      10.0.0.2        Vlan1

Router-A#

 

Router-B#sh ip ospf nei

 

Neighbor ID     Pri   State           Dead Time   Address       Interface

10.0.0.1          1   FULL/DR         00:00:34     10.0.0.1        Vlan1

Router-B#

 

 

2.- Verificación en las tablas de enrutamiento:

 

2.1.- Rutas en Router-A:

 

Router-A#sh ip route summary

IP routing table name is default (0x0)

IP routing table maximum-paths is 32

Route Source    Networks    Subnets     Replicates  Overhead    Memory (bytes)

connected       0            2           0           120             360

static          2048           0           0           122880       368640

application       0           0           0           0                 0

bgp 65534       0           0           0           0                 0

  External: 0 Internal: 0 Local: 0

ospf 1              0           0           0           0                  0

  Intra-area: 0 Inter-area: 0 External-1: 0 External-2: 0

  NSSA External-1: 0 NSSA External-2: 0

internal            1                                                        82340

Total           2049        2           0             123000      451340

Router-A#

 

 

2.2.- Rutas en Router-B:

 

Router-B#sh ip route summary

IP routing table name is default (0x0)

IP routing table maximum-paths is 32

Route Source    Networks    Subnets     Replicates  Overhead    Memory (bytes)

connected         0                  2           0           112            344

static                 0                  0           0            0                0

bgp 65535        0                  0           0            0                0

  External: 0 Internal: 0 Local: 0

ospf 1         2048                 0           0            114688      360448

  Intra-area: 0 Inter-area: 0 External-1: 0 External-2: 2048

  NSSA External-1: 0 NSSA External-2: 0

internal        1                                                  82436

Total           2049                 2           0             114800      443228

Router-B#

 

 

2.3.- De la tabla de enrutamiento:

 

Router-B#sh ip route

Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP

       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

       E1 - OSPF external type 1, E2 - OSPF external type 2

       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

       ia - IS-IS inter area, * - candidate default, U - per-user static route

       o - ODR, P - periodic downloaded static route, + - replicated route

 

Gateway of last resort is not set

 

      10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

C        10.0.0.0/30 is directly connected, Vlan1

L        10.0.0.2/32 is directly connected, Vlan1

O E2  200.1.0.0/24 [110/20] via 10.0.0.1, 00:01:07, Vlan1

O E2  200.1.1.0/24 [110/20] via 10.0.0.1, 00:01:07, Vlan1

O E2  200.1.2.0/24 [110/20] via 10.0.0.1, 00:01:07, Vlan1

O E2  200.1.3.0/24 [110/20] via 10.0.0.1, 00:01:07, Vlan1

---resumido---

O E2  200.8.253.0/24 [110/20] via 10.0.0.1, 00:03:55, Vlan1

O E2  200.8.254.0/24 [110/20] via 10.0.0.1, 00:03:55, Vlan1

O E2  200.8.255.0/24 [110/20] via 10.0.0.1, 00:03:55, Vlan1

Router-B#

 

 

3.- Verificación en Wireshark:

 

Podemos ver que cada anuncio de Router-A será devuelto desde Router-B como ruta aprendida por Router-A, el algoritmo Dijkstra

del OSPF se encargará de calcular y descartar los bucles que se generen por estos retornos B-A.

También podemos ver que el intercambio de rutas son paquetes unicast a diferencia de otros anuncios que se realizan mediante

paquetes multicast en 224.0.0.5 y 224.0.0.6.

 

---resumido---

 

 

---resumido---

 

Frame 4: 1498 bytes on wire (11984 bits), 1498 bytes captured (11984 bits) on  id 0

Ethernet II, Src: cc:46:d6:2b:5a:54, Dst: 70:81:05:b5:77:82 (layer 2)

Internet Protocol Version 4, Src: 10.0.0.1, Dst: 10.0.0.2       (layer 3)(paquetes unicast)

Open Shortest Path First  (layer 3+1 (no layer 4))

    OSPF Header

    OSPF DB Description

        Interface MTU: 1500

        Options: 0x52, O, (L) LLS Data block, (E) External Routing

        DB Description: 0x02, (M) More

            .... 0... = (R) OOBResync: Not set

            .... .0.. = (I) Init: Not set

            .... ..1. = (M) More: Set   (aquí señala que hay mas rutas por anunciar)

            .... ...0 = (MS) Master: No

        DD Sequence: 4697   (se irá incrementando en cada paquete)

    LSA-type 1 (Router-LSA), len 36

    LSA-type 1 (Router-LSA), len 36

    LSA-type 2 (Network-LSA), len 32

    LSA-type 5 (AS-External-LSA (ASBR)), len 36  (primera ruta anunciada)

        .000 0011 0001 1101 = LS Age (seconds): 797

        0... .... .... .... = Do Not Age Flag: 0

        Options: 0x20, (DC) Demand Circuits

        LS Type: AS-External-LSA (ASBR) (5)

        Link State ID: 200.1.0.0

        Advertising Router: 10.0.0.1

        Sequence Number: 0x80000002

        Checksum: 0x4783

        Length: 36

    LSA-type 5 (AS-External-LSA (ASBR)), len 36  (segunda ruta anunciada)

        .000 0011 0001 1101 = LS Age (seconds): 797

        0... .... .... .... = Do Not Age Flag: 0

        Options: 0x20, (DC) Demand Circuits

        LS Type: AS-External-LSA (ASBR) (5)

        Link State ID: 200.1.1.0

        Advertising Router: 10.0.0.1

        Sequence Number: 0x80000002

        Checksum: 0x3c8d

        Length: 36

    LSA-type 5 (AS-External-LSA (ASBR)), len 36  (tercera ruta anunciada)

        .000 0011 0001 1101 = LS Age (seconds): 797

        0... .... .... .... = Do Not Age Flag: 0

        Options: 0x20, (DC) Demand Circuits

        LS Type: AS-External-LSA (ASBR) (5)

        Link State ID: 200.1.2.0

        Advertising Router: 10.0.0.1

        Sequence Number: 0x80000002

        Checksum: 0x3197

        Length: 36

   LSA-type 5 (AS-External-LSA (ASBR)), len 36 (anuncio de la 200.1.3.0)

   LSA-type 5 (AS-External-LSA (ASBR)), len 36 (anuncio de la 200.1.4.0)

   LSA-type 5 (AS-External-LSA (ASBR)), len 36 (anuncio de la 200.1.5.0)

      ---resumido---  (anuncios de la 200.1.6.0 a 200.1.66.0)

   LSA-type 5 (AS-External-LSA (ASBR)), len 36 (última ruta anunciada en este paquete)

        .000 0011 0001 1101 = LS Age (seconds): 797

        0... .... .... .... = Do Not Age Flag: 0

        Options: 0x20, (DC) Demand Circuits

        LS Type: AS-External-LSA (ASBR) (5)

        Link State ID: 200.1.67.0  (ruta 68 de este paquete)

        Advertising Router: 10.0.0.1

        Sequence Number: 0x80000002

        Checksum: 0x6324

        Length: 36

    OSPF LLS Data Block

        Checksum: 0xfff6

        LLS Data Length: 12 bytes

        Extended options TLV

 

Frame 6,8,10, etc… a 58: anuncios desde la 200.1.68.0 a 200.8.192.0 (~70 rutas en este paquete)

 

Frame 60: 1338 bytes on wire (10704 bits), 1338 bytes captured (10704 bits) on  id 0

Ethernet II, Src: cc:46:d6:2b:5a:54, Dst: 70:81:05:b5:77:82

Internet Protocol Version 4, Src: 10.0.0.1, Dst: 10.0.0.2

Open Shortest Path First

    OSPF Header

    OSPF DB Description

        Interface MTU: 1500

        Options: 0x52, O, (L) LLS Data block, (E) External Routing

        DB Description: 0x02, (M) More

            .... 0... = (R) OOBResync: Not set

            .... .0.. = (I) Init: Not set

            .... ..1. = (M) More: Set  (aquí señala que hay mas rutas por anunciar)

            .... ...0 = (MS) Master: No

        DD Sequence: 4725

    LSA-type 5 (AS-External-LSA (ASBR)), len 36

        .000 0011 0001 1101 = LS Age (seconds): 797

        0... .... .... .... = Do Not Age Flag: 0

        Options: 0x20, (DC) Demand Circuits

        LS Type: AS-External-LSA (ASBR) (5)

        Link State ID: 200.8.193.0

        Advertising Router: 10.0.0.1

        Sequence Number: 0x80000002

        Checksum: 0x9f62

        Length: 36

    LSA-type 5 (AS-External-LSA (ASBR)), len 36  (anuncio de la 200.8.194.0)

    LSA-type 5 (AS-External-LSA (ASBR)), len 36  (anuncio de la 200.8.195.0)

    LSA-type 5 (AS-External-LSA (ASBR)), len 36  (anuncio de la 200.8.196.0)

    ---resumido---   (anuncio de la 200.8.197.0 a 200.8.254.0)

    LSA-type 5 (AS-External-LSA (ASBR)), len 36

        .000 0011 0001 1101 = LS Age (seconds): 797

        0... .... .... .... = Do Not Age Flag: 0

        Options: 0x20, (DC) Demand Circuits

        LS Type: AS-External-LSA (ASBR) (5)

        Link State ID: 200.8.255.0 (última ruta de las 2048)

        Advertising Router: 10.0.0.1

        Sequence Number: 0x80000002

        Checksum: 0xf2d0

        Length: 36

    OSPF LLS Data Block

        Checksum: 0xfff6

        LLS Data Length: 12 bytes

        Extended options TLV

 

Frame 63: 78 bytes on wire (624 bits), 78 bytes captured (624 bits) on  id 0

Ethernet II, Src: cc:46:d6:2b:5a:54, Dst: 70:81:05:b5:77:82 (layer 2)

Internet Protocol Version 4, Src: 10.0.0.1, Dst: 10.0.0.2       (layer 3)

Open Shortest Path First  (layer 3+1 (no layer 4))

    OSPF Header

    OSPF DB Description

        Interface MTU: 1500

        Options: 0x52, O, (L) LLS Data block, (E) External Routing

        DB Description: 0x00

            .... 0... = (R) OOBResync: Not set

            .... .0.. = (I) Init: Not set

            .... ..0. = (M) More: Not set (aquí vemos que no hay mas rutas para anunciar)

            .... ...0 = (MS) Master: No

        DD Sequence: 4726  (29 paquetes en la secuencia)

    OSPF LLS Data Block

        Checksum: 0xfff6

        LLS Data Length: 12 bytes

        Extended options TLV

 

4.- Resumen:

 

Al intercambiar información DBD (DataBase Descriptor) los paquetes se generan de manera de no

ser fragmentados, no se utiliza TCP ni UDP y contienen un flag de que llegarán mas rutas mediante

(More) y un número de secuendia para poder verificar la integridad de la base recibida.

Otro detalle es que en los anuncios no se encuentran las máscaras explícitamente detalladas, ya que

se redistribuyeron redes clase C y no subredes o rutas resúmen.

 

 

(2023) routes to madness

Rosario, Argentina