En el taller vamos a utilizar un ambiente dual-stack donde inicialmente tenemos configuraciones IPv4 y durante las prácticas desplegaremos IPv6.
Los bloques de direcciones IPv4 e IPv6 que vamos a utilizar en las interfaces de los routers R1 y R2 y los sistemas autónomos se muestran en la siguiente tabla:
R1 | R2 | ||
---|---|---|---|
ASN 65011 | BGP | ASN 65012 | |
eth1 | WAN | eth1 | |
10.10.10.1/30 2001:db8:beca:d0::1/64 | 10.10.10.2/30 2001:db8:beca:d0::2/64 | ||
eth2 | LAN | eth2 | |
192.168.11.1/24 2001:db8:11:e100::1/64 | 192.168.12.1/24 2001:db8:12:cafe::1/64 | ||
network | network | ||
2001:db8:11:e100::/64 | 2001:db8:12:cafe::/64 |
En la siguiente figura se muestra la topología y la asignación de direcciones IPv4 e IPv6 que se definió en la tabla previa:
Antes de correr el laboratorio es necesario crear un bridge ejecutando
sudo ip link add name briutec type bridge
sudo ip link set dev briutec up
Verificamos que el bridge se encuentre activo si el comando nos devuelve el estado UP
xip link show briutec
13: briutec: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/ether 42:c8:0e:85:7d:13 brd ff:ff:ff:ff:ff:ff
Descargamos el archivo de topología que contiene configuraciones de los diferentes contenedores a correr.
Descomprimimos el archivo descargado
xxxxxxxxxx
tar xvzf riuteclab.tar.gz
Y nos posicionamos en nuestro nuevo directorio de trabajo
xxxxxxxxxx
cd riuteclab
Corremos nuestro laboratorio
xxxxxxxxxx
sudo clab deploy -t riutec.yml
Esperamos el despliegue de todos los contenedores hasta que nos devuelva un listado similar al que se muestra a continuación con los contenedores en ejecución
xxxxxxxxxx
+---+-----------------+--------------+--------------------------+-------+---------+----------------+----------------------+
| # | Name | Container ID | Image | Kind | State | IPv4 Address | IPv6 Address |
+---+-----------------+--------------+--------------------------+-------+---------+----------------+----------------------+
| 1 | lab-riutec-DHCP | 901c6801803d | networkboot/dhcpd:latest | linux | running | 172.20.20.7/24 | 2001:172:20:20::7/64 |
| 2 | lab-riutec-H1 | 728e50759766 | ubuntu:latest | linux | running | 172.20.20.4/24 | 2001:172:20:20::4/64 |
| 3 | lab-riutec-H2 | c1f849c9c8cb | ubuntu:latest | linux | running | 172.20.20.5/24 | 2001:172:20:20::5/64 |
| 4 | lab-riutec-NS1 | 0c3b11560ff0 | ubuntu/bind9:latest | linux | running | 172.20.20.8/24 | 2001:172:20:20::8/64 |
| 5 | lab-riutec-R1 | 67667febc744 | frrouting/frr | linux | running | 172.20.20.2/24 | 2001:172:20:20::2/64 |
| 6 | lab-riutec-R2 | e2a522a9baf8 | frrouting/frr | linux | running | 172.20.20.3/24 | 2001:172:20:20::3/64 |
+---+-----------------+--------------+--------------------------+-------+---------+----------------+----------------------+
Para ver la topología del laboratorio corremos primero en una nueva terminal de mi máquina el siguiente "servicio" en el directorio de trabajo
xxxxxxxxxx
containerlab graph -t riutec.yml
La salida muestra que se ejecuta un servicio web en el puerto 50080
xxxxxxxxxx
WARN[0000] Could not write rendered topology: open /home/santiago/containerslab/riutec/riuteclab/.riutec.yml.bak: permission denied
INFO[0000] Parsing & checking topology file: riutec.yml
INFO[0000] Serving static files from directory: /etc/containerlab/templates/graph/nextui/static
INFO[0000] Serving topology graph on http://0.0.0.0:50080
y luego desde un navegador accedemos al siguiente enlace:
xxxxxxxxxx
http:://localhost:50080
Para ingresar a la consola de los hosts H1 y H2 corremos el siguiente comando docker con bash como argumento. (Ej: para H1)
xxxxxxxxxx
docker exec -ti lab-riutec-H1 bash
Para ingresar a la consola de los routers R1 y R2 ejecutamos el siguiente comando docker con vtysh como argumento (Ej: para R1)
xxxxxxxxxx
docker exec -ti lab-riutec-R1 vtysh
Para verificar la configuración en cualquiera de los hosts podemos usar:
xxxxxxxxxx
ip a s
ip r s
ip -6 r s
El laboratorio ya tiene establecidas las sesiones BGP en IPv4 entre los routers. Podemos verificarlo por ingresando a H1 y ver si llegamos a H2
xxxxxxxxxx
docker exec -ti lab-riutec-H1 bash
[root@H1 /]# mtr 192.168.12.2
H1 (192.168.11.2) -> 192.168.12.2 2023-08-12T20:25:37+0000
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. 192.168.11.1 0.0% 3 0.1 0.1 0.1 0.2 0.0
2. 10.10.10.2 0.0% 3 0.1 0.1 0.1 0.2 0.1
3. 192.168.12.2 0.0% 3 0.2 0.2 0.2 0.3 0.1
Ingresamos por ejemplo a R2 para verificar el estado de BGP
xxxxxxxxxx
docker exec -ti lab-riutec-R2 vtysh
y corremos estos 2 comandos
xxxxxxxxxx
R2# sh bgp summary
xxxxxxxxxx
R2# sh bgp
Analice la salida de ambos comandos.
¿Qué puede observar?
¿Qué debo ejecutar?