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