Que tan grande es la tabla de enrutamiento de internet ?

Fecha: 19 de julio del 2022

 

Escenario

 

La mayoría de las veces, un CCNA o futuro CCNA que trabaja de administrador de red realiza una

conexión a internet mediante IP, máscara y ruta por defecto (aquí no entra en tema el DNS).

 

Si la cosa se agranda, tal vez un PBR con una segunda conexión, pero seguimos usando una o dos

rutas por defecto. Pero que hay mas allá ?

Vimos en algunos labs como llegar con un trace a Alemania y eso consume varios saltos de internet,

pero cuantos hay, cuantas redes hay en esa nube ? que necesitamos para verlo todo ?

 

Bien, con acceso a un router decente, podemos poner manos a la obra y ver (sólo la parte IPv4).

Veamos un ejemplo de la tabla completa (con next-hops modificados por confidencialidad).

 

1.- Esquema de una conexión a internet tradicional:

 

  

2.- Esquema de dos conexiones a internet con PBR:

 

Con un PBR (Policy Based Routing) podemos decidir con una ACL y dos next-hop, que o cual

tráfico sale por un enlace determinado u otro (Mangle en Mikrotik, PBF en Palo Alto).

 

                               

 

3.- Esquema de dos conexiones a internet con BGP (y tal vez PBR):

 

Cada usuario o ISP que publique sus redes o subredes vía BGP “enseñarán” sus redes a otros

routers y además “aprenderan” de estos las que ellos publiquen, armando asi una toplogía en

una tabla BGP y luego en la tabla de enrutamiento. ¿ Cual usamos ? depende del problema.

 

     

 

4.- Como es un “mapa de internet” ?

 

Fuente: https://en.wikipedia.org/wiki/Internet_Mapping_Project

 

https://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/Internet_map_1024.jpg/1024px-Internet_map_1024.jpg

 

5.- Detalle “del barrio” :

 

Cada número aquí es un sistema autónomo (AS) y que posee una o mas redes/subredes

como la de nuestro router, y cada AS esta conectado a otros AS formando una suerte de

mesh orquestada por BGP. Internamente un AS puede tener (o no) un IGP como OSPF.

 

 

Por ejemplo, en el AS 22548 del gráfico, un router conectado a esta red debería tener una

IP del rango 200.160.0.0/20 y para alcanzar un host en el AS 20932 y con la red 185.68.204.0/22

deberá atravesar los AS 3549 y 3356 que son de tránsito, porque tienen 2 o mas “patas” y llegar

al 20932, con tantos saltos como routers haya en el camino.

Generalmente la ruta con menos AS que transitar es la óptima, aunque no importe cuantos

saltos haya (por ejemplo en OSPF). Pero no nos vamos a meter en BGP en este lab.

 

Fuente: https://bgp.he.net/AS22548#_prefixes

               https://bgp.he.net/AS20932#_prefixes

 

6.- Tabla de enrutamiento:

 

Para que nos demos una idea de que si hacemos un show ip route para ver todas las

rutas de internet, esto lleva un tiempo, unos 3 minutos, y si capturamos la salida a un

archivo de texto plano, será de unas 963691 líneas y 55 MB de peso.

Debemos saber que esto también será variable ya que internet muta todo el tiempo

(redes up/down, etc) dependiendo de los anuncios BGP.

 

 

Detalle: Las IP de los next-hops estan cambiadas por confidencialidad.

 

Con este comando hacemos que la tabla no nos pida presionar la barra espaciadora para seguir viendo,

(digamos como que pasa toda la tabla de una).

 

rt-internet-ros# terminal length 0

rt-internet-ros#

 

rt-internet-ros# sh clock (inicio sh ip route)

*14:37:00.064 ARG Wed Jul 13 2022

rt-internet-ros#

 

rt-internet-ros# 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, H - NHRP, l - LISP

       a - application route

       + - replicated route, % - next hop override

 

Gateway of last resort is 186.0.0.1 to network 0.0.0.0

 

B*    0.0.0.0/0 [20/0] via 190.0.0.1, 7w0d

      1.0.0.0/8 is variably subnetted, 2637 subnets, 14 masks (vemos las subredes publicadas de la clase A)

B        1.0.0.0/24 [20/2543] via 200.0.0.1, 1d06h

B        1.0.1.0/24 [20/2543] via 200.0.0.1, 1d06h

B        1.0.2.0/24 [20/2543] via 200.0.0.1, 1d06h

B        1.0.3.0/24 [20/2543] via 200.0.0.1, 1d06h

      ---omitido---

      2.0.0.0/8 is variably subnetted, 2411 subnets, 13 masks

B        2.0.0.0/24 [20/2543] via 200.0.0.1, 1d06h

B        2.0.1.0/24 [20/2543] via 200.0.0.1, 1d06h

B        2.0.2.0/24 [20/2543] via 200.0.0.1, 1d06h

B        2.0.3.0/24 [20/2543] via 200.0.0.1, 1d06h

      3.0.0.0/8 is variably subnetted, 64 subnets, 10 masks     (omitimos subredes por simplicidad)

      4.0.0.0/8 is variably subnetted, 46 subnets, 9 masks        (omitimos subredes por simplicidad)

      5.0.0.0/8 is variably subnetted, 6661 subnets, 12 masks (omitimos subredes por simplicidad)

      ---resumido---

B     223.255.254.0/24 [20/2553] via 190.0.0.1, 2d23h (el rango 224.x.x.x ya pasa a ser clase D y es utiluzado

rt-internet-ros#                                                                       en multicast por lo que no aparecerá en una tabla unicast)

 

rt-internet-ros#sh clock

*14:39:34.616 ARG Wed Jul 13 2022 (fin sh ip route)

rt-internet-ros#

 

7.- Mostramos mejor:

 

rt-internet-ros#sh clock

*14:37:00.064 ARG Wed Jul 13 2022 (inicio sh ip route)

*14:39:34.616 ARG Wed Jul 13 2022 (fin sh ip route)

rt-internet-ros#

 

8.- Resumen del total de la tabla:

 

Podemos ver como “creció la tabla” en casi dos años de diferencia.

 

rt-internet-ros# sh ip route summary (31 de julio del 2020)

IP routing table name is default (0x0)

IP routing table maximum-paths is 32

Route Source    Networks   Subnets     Replicates  Overhead   Memory (bytes)

connected         0                   8                 0               768              2368

static                    0                   1                 0                 96                 296

application        0                   0                 0                    0                   0

bgp 28082         205516        662863      0           83364384    257040184

  External:         868379     Internal: 0 Local: 0

internal             8496                                                                       67325376

Total                   214012       662872       0           83365248    324368224

rt-internet-ros#

 

rt-internet-ros# sh ip route summary (13 de julio del 2022)

IP routing table name is default (0x0)

IP routing table maximum-paths is 32

Route Source   Networks    Subnets     Replicates  Overhead    Memory (bytes)

connected         0           8           0                          480         1440

static                    0           1           0           60          180

application        0           0           0            0           0

bgp 28020         217423      731081       0           56917260    170730720

  External:         284193 Internal: 664311 Local: 0

internal             8747                                                                     37704160

Total                 226170      731090        0           56917800    208436500

rt-internet-ros#

 

Para tener un ejemplo de la tabla completa click aqui , esta tabla esta modificada por confidencialidad.

A esta tabla podemos estimarle las subredes con las máscarada y a cada subred podemos estimarle los host

también por la máscara. Podemos especular que cada IP tiene N hosts detrás si por ejemplo se le realiza PAT.

 

9.- Que router conectamos ?

 

Las pruebas las realizamos con un router Cisco ASR 1000 y también con un Cisco 3925, ya discontinuado.

 

Cisco ASR 1000                                                                                   Cisco 3925

 

rt-internet-ros# sh version

Cisco IOS XE Software, Version 16.03.05

---omitido---

Cisco ASR1001-X (1NG) processor (revision 1NG) with 3728915K/6147K bytes of memory.

Processor board ID FXSXXXXXXXX

6 Gigabit Ethernet interfaces

2 Ten Gigabit Ethernet interfaces

32768K bytes of non-volatile configuration memory.

8388608K bytes of physical memory. (unos 8 gigas de memoria para alojar la tabla BGP y de rutas)

6594559K bytes of eUSB flash at bootflash:.

---omitido---

rt-internet-ros#

 

10.- Detalle de consumo de CPU al momento de la convergencia BGP:

 

rt-internet-ros# sh proc cpu

CPU utilization for five seconds: 100%/0%; one minute: 17%; five minutes: 4%

---resumido---

rt-internet-ros#

 

11.- Ejemplo de la búsqueda de una red en la tabla:

 

rt-internet-ros#sh clock

*07:35:28.123 ARG Thu Jul 30 2020

rt-internet#sh ip route | incl 223.255.255.0 (buscamos la última red posible en clase C (y encima no está))

rt-internet-ros#

rt-internet-ros#sh clock

*07:36:13.051 ARG Thu Jul 30 2020 (~45 segundos después)

rt-internet-ros#

 

rt-internet-ros #sh proc | incl CPU

CPU utilization for five seconds: 100%/1%; one minute: 21%; five minutes: 14% (durante la búsqueda)

---resumido---

rt-internet-ros #sh proc | incl CPU

CPU utilization for five seconds: 2%/0%; one minute: 25%; five minutes: 16%     (luego de la búsqueda)

rt-internet-ros#

 

12.- Otros detalles locos:

 

No existen en internet redes privadas del RFC 1918 (por ejemplo 10.x.x.x/8 o 192.168.x.x/16).

 

B        8.246.192.128/25 [20/3606] via 190.0.0.1, 1d13h

      9.0.0.0/24 is subnetted, 2 subnets

B        9.5.26.0 [20/0] via 186.0.0.1, 2d23h

B        9.9.9.0 [200/0] via 200.0.0.1, 00:02:13

      11.0.0.0/8 is variably subnetted, 287 subnets, 14 masks

B        11.0.0.0/8 [20/2553] via 190.0.0.1, 1d00h

 

B     192.167.0.0/16 [200/0] via 200.0.0.1, 2d23h

B     192.167.59.0/24 [200/0] via 200.0.0.1, 2d23h

B     192.169.5.0/24 [200/0] via 200.0.0.1, 00:02:30

B     192.169.6.0/24 [200/0] via 200.0.0.1, 2d23h

 

Tampoco el rango 169.254.x.x/16 que es usado por direcciones APIPA (si no saben que es, tienen tarea para estudiar).

 

B        169.253.172.0/22 [200/0] via 200.0.0.1, 03:45:18

      169.255.0.0/16 is variably subnetted, 146 subnets, 3 masks

B        169.255.0.0/22 [200/0] via 200.0.0.1, 2d23h

 

 

 

(2022) How deep is the ocean ? how high is the sky ?

Rosario, Argentina