En este post se representará un escenario donde simulamos que redes de internet se están comunicando con una red ISP a través de un Carrier. Los prefijos y ASN utilizados son sólo para emular el laboratorio generado en eve-ng
Se pretende llegar al siguiente diagrama
Archivo adjunto 4258
Configuración de router Google
Este router se usa para simular comunicación hacia Google. Como el router tiene su propio ASN esta publicando el prefijo 8.8.8.0/24 y 2.2.2.0/24 mediante BGP.
1 Configurar nombre al router y activar ip routing.
localhost>en
localhost#conf t
localhost(config)#hostname Google
Google(config)# ip routing
2 Configurar direccionamiento en las interfaces.
Este equipo tiene dos enlaces, uno hacia el router de Alestra y otro hacia un servidor que es a donde deben conectarse los clientes de la red ISP.
Google(config)# interface Ethernet2
Google(config-if-Et2)# no shutdown
Google(config-if-Et2)# no switchport
Google(config-if-Et2)# ip address 2.2.2.1/24
Google(config-if-Et2)# exit
Google(config)# interface Ethernet3
Google(config-if-Et3)# no shutdown
Google(config-if-Et3)# no switchport
Google(config-if-Et3)# ip address 3.3.3.1/24
Google(config)# interface Ethernet4
Google(config-if-Et4)# no shutdown
Google(config-if-Et4)# no switchport
Google(config-if-Et4)# ip address 8.8.8.1/24
3 Configurar el enrutamiento BGP y anuncio de rutas mediante BGP
Agregamos el ASN dentro de la interfaz de BGP, establecemos el peer con nuestro vecino y agregamos la red para que BGP se encargue de publicarlas a los demás peer.
Google(config)# router bgp 15169
Google(config-router-bgp)# router-id 2.2.2.1
Google(config-router-bgp)# neighbor 2.2.2.2 remote-as 6830
Google(config-router-bgp)# neighbor 2.2.2.2 maximum-routes 12000
Google(config-router-bgp)# neighbor 3.3.3.2 remote-as 272314
Google(config-router-bgp)# neighbor 3.3.3.2 maximum-routes 12000
Google(config-router-bgp)# address-family ipv4
Google(config-router-bgp-af)# neighbor 2.2.2.2 actívate
Google(config-router-bgp-af)# neighbor 3.3.3.2 activate
Google(config-router-bgp-af)# network 8.8.8.0/24
Google(config-router-bgp-af)# exit
Google(config-router-bgp)# exit
Google(config)# write
4 Configuración Servidor Google
Archivo adjunto 4259
/ip 8.8.8.8 255.255.255.0 8.8.8.1
Configuración de router Liberty
Para este laboratorio hemos colocado Liberty como representación de un Carrier, por lo cual sólo hemos puesto valores ficticios con el fin de la práctica. El prefijo anunciado por este router es el 181.191.190.48/28 mediante BGP.
1 Configurar nombre al router y activar ip routing.
localhost>en
localhost#conf t
localhost(config)#hostname Liberty
Liberty(config)# ip routing
2 Configurar direccionamiento en las interfaces.
Liberty(config)# interface Ethernet2
Liberty(config-if-Et2)# no shutdown
Liberty(config-if-Et2)# no switchport
Liberty(config-if-Et2)# ip address 2.2.2.2/24
Liberty(config-if-Et2)# exit
Liberty(config)# interface Ethernet3
Liberty(config-if-Et3)# no shutdown
Liberty(config-if-Et3)# no switchport
Liberty(config-if-Et3)# ip address 181.191.190.54/28
3 Configurar filtros para la ruta por defecto
Agregamos el prefix-list y creamos el route-map para despues asignar ese filtro en el peer con ISP-Borde.
Liberty(config)# ip prefix-list DEFAULT-ONLY
Liberty(config-ip-pfx-DEFAULT-ONLY)# seq 10 permit 0.0.0.0/0
Liberty(config-ip-pfx-DEFAULT-ONLY)# exit
Liberty(config)# route-map OUT-DEFAULT-ONLY permit 10
Liberty(config-route-map-OUT-DEFAULT-ONLY)# match ip address prefix-list DEFAULT-ONLY
Liberty(config-route-map-OUT-DEFAULT-ONLY)# exit
Liberty(config)# route-map OUT-DEFAULT-ONLY deny 20
Liberty(config-route-map-OUT-DEFAULT-ONLY)# exit
4 Configurar el enrutamiento BGP y anuncio de rutas mediante BGP
Agregamos el ASN dentro de la interfaz de BGP, establecemos el peer con nuestro vecino, agregamos la red para que BGP se encargue de publicarlas a los demás peer y asignamos filtros para solo entregar ruta por defecto.
Liberty(config)# router bgp 6830
Liberty(config-router-bgp)# router-id 181.191.190.54
Liberty(config-router-bgp)# neighbor 2.2.2.1 remote-as 15169
Liberty(config-router-bgp)# neighbor 2.2.2.1 maximum-routes 12000
Liberty(config-router-bgp)# neighbor 181.191.190.55 remote-as 270200
Liberty(config-router-bgp)# neighbor 181.191.190.55 maximum-routes 12000
Liberty(config-router-bgp)# address-family ipv4
Liberty(config-router-bgp-af)# neighbor 2.2.2.1 actívate
Liberty(config-router-bgp-af)# neighbor 181.191.190.55 actívate
Liberty(config-router-bgp-af)# neighbor 181.191.190.55 route-map OUT-DEFAULT-ONLY out
Liberty(config-router-bgp-af)# neighbor 181.191.190.55 default-originate
Liberty(config-router-bgp-af)# network 181.191.190.48/28
Liberty(config-router-bgp-af)# exit
Liberty(config-router-bgp)# exit
Liberty(config)# write
Configuración de router Cirion
Para este laboratorio hemos colocado Cirion como representación de un Carrier, por lo cual sólo hemos puesto valores ficticios con el fin de la práctica. El prefijo anunciado por este router es el 181.191.190.48/28 mediante BGP.
1 Configurar nombre al router y activar ip routing.
localhost>en
localhost#conf t
localhost(config)#hostname Cirion
Cirion(config)# ip routing
2 Configurar direccionamiento en las interfaces.
Cirion(config)# interface Ethernet2
Cirion(config-if-Et2)# no shutdown
Cirion(config-if-Et2)# no switchport
Cirion(config-if-Et2)# ip address 204.190.201.98/30
Cirion(config-if-Et2)# exit
Cirion(config)# interface Ethernet3
Cirion(config-if-Et3)# no shutdown
Cirion(config-if-Et3)# no switchport
Cirion(config-if-Et3)# ip address 3.3.3.2/24
3 Configurar filtros para la ruta por defecto
Agregamos el prefix-list y creamos el route-map para despues asignar ese filtro en el peer con ISP-Borde.
Cirion(config)# ip prefix-list DEFAULT-ONLY
Cirion(config-ip-pfx-DEFAULT-ONLY)# seq 10 permit 0.0.0.0/0
Cirion(config-ip-pfx-DEFAULT-ONLY)# exit
Cirion(config)# route-map OUT-DEFAULT-ONLY permit 10
Cirion(config-route-map-OUT-DEFAULT-ONLY)# match ip address prefix-list DEFAULT-ONLY
Cirion(config-route-map-OUT-DEFAULT-ONLY)# exit
Cirion(config)# route-map OUT-DEFAULT-ONLY deny 20
Cirion(config-route-map-OUT-DEFAULT-ONLY)# exit
4 Configurar el enrutamiento BGP y anuncio de rutas mediante BGP
Agregamos el ASN dentro de la interfaz de BGP, establecemos el peer con nuestro vecino, agregamos la red para que BGP se encargue de publicarlas a los demás peer y asignamos filtros para solo entregar ruta por defecto.
Cirion(config)# router bgp 272314
Cirion(config-router-bgp)# router-id 3.3.3.1
Cirion(config-router-bgp)# neighbor 3.3.3.1 remote-as 15169
Cirion(config-router-bgp)# neighbor 3.3.3.1 maximum-routes 12000
Cirion(config-router-bgp)# neighbor 204.190.201.97 remote-as 270200
Cirion(config-router-bgp)# neighbor 204.190.201.97 maximum-routes 12000
Cirion(config-router-bgp)# address-family ipv4
Cirion(config-router-bgp-af)# neighbor 3.3.3.1 actívate
Cirion(config-router-bgp-af)# neighbor 204.190.201.97 actívate
Cirion(config-router-bgp-af)# neighbor 204.190.201.97 route-map OUT-DEFAULT-ONLY out
Cirion(config-router-bgp-af)# neighbor 204.190.201.97 default-originate
Cirion(config-router-bgp-af)# network 204.190.201.96/30
Cirion(config-router-bgp-af)# exit
Cirion(config-router-bgp)# exit
Cirion(config)# write
Configuración de router ISP-Borde
Este router viene a representar a un ISP que esta haciendo peering con 2 Carriers (Liberty y Cirion para esta práctica), por lo lo que este anuncia su prefijo hacia los Carriers mediante BGP y recibe la ruta por defecto de internet en su tabla de ruteo.
1 Configurar nombre al router y activar ip routing.
localhost>en
localhost#conf t
localhost(config)#hostname ISP-Borde
ISP-Borde(config)# ip routing
2 Configurar direccionamiento en las interfaces.
ISP-Borde(config)# interface Ethernet2
ISP-Borde(config-if-Et2)# no shutdown
ISP-Borde(config-if-Et2)# no switchport
ISP-Borde(config-if-Et2)# ip address 204.190.201.97/30
ISP-Borde(config-if-Et2)# exit
ISP-Borde(config)# interface Ethernet3
ISP-Borde(config-if-Et3)# no shutdown
ISP-Borde(config-if-Et3)# no switchport
ISP-Borde(config-if-Et3)# ip address 181.191.190.55/28
ISP-Borde(config)# interface Ethernet4
ISP-Borde(config-if-Et4)# no shutdown
ISP-Borde(config-if-Et4)# no switchport
ISP-Borde(config-if-Et4)# ip address 190.9.108.1/24
3 Configurar filtros para el prepend
Agregamos el prefix-list y creamos el route-map para despues asignar ese filtro en el peer con ISP-Borde.
ISP-Borde(config)# ip prefix-list DEFAULT-ONLY
ISP-Borde(config-ip-pfx-DEFAULT-ONLY)# seq 10 permit 0.0.0.0/0
ISP-Borde(config-ip-pfx-DEFAULT-ONLY)# exit
ISP-Borde(config)# route-map IN-BACKUP permit 10
ISP-Borde(config-route-map-IN-BACKUP)# match ip address prefix-list DEFAULT-ONLY
ISP-Borde(config-route-map-IN-BACKUP)# set as-path prepend last-as 2
ISP-Borde(config-route-map-IN-BACKUP)# exit
ISP-Borde(config)# route-map IN-BACKUP permit 20
ISP-Borde(config-route-map-OUT-DEFAULT-ONLY)# exit
4 Configurar el enrutamiento BGP y anuncio de rutas mediante BGP
Agregamos el ASN dentro de la interfaz de BGP, establecemos el peer con nuestros vecinos, agregamos la red para que BGP se encargue de publicarlas a los demás peer y asignamos filtros para asignar prepend, asi tenemos un carrier como principal y otro como respaldo.
ISP-Borde(config)# router bgp 270200
ISP-Borde(config-router-bgp)# router-id 190.9.108.1
ISP-Borde(config-router-bgp)# neighbor 181.191.190.54 remote-as 6830
ISP-Borde(config-router-bgp)# neighbor 181.191.190.54 maximum-routes 12000
ISP-Borde(config-router-bgp)# neighbor 204.190.201.98 remote-as 272314
ISP-Borde(config-router-bgp)# neighbor 204.190.201.98 maximum-routes 12000
ISP-Borde(config-router-bgp)# address-family ipv4
ISP-Borde(config-router-bgp-af)# neighbor 181.191.190.54 actívate
ISP-Borde(config-router-bgp-af)# neighbor 204.190.201.98 actívate
ISP-Borde(config-router-bgp-af)# neighbor 204.190.201.98 route-map IN-BACKUP in
ISP-Borde(config-router-bgp-af)# network 190.9.108.0/24
ISP-Borde(config-router-bgp-af)# exit
ISP-Borde(config-router-bgp)# exit
ISP-Borde(config)# write
Verificación de ruta por defecto
1 Verificación de la sesión BGP de ISP-Borde con Liberty y Cirion
Archivo adjunto 4260
ISP-Borde(config)#show bgp instance
Archivo adjunto 4261
ISP-Borde(config)#show bgp summary vrf all
2 Verificación de la ruta por defecto que da Liberty y/o Cirion
Archivo adjunto 4262
ISP-Borde(config)#show ip route
Configuración de router ISP-Core
Este router viene a representar un router de agregación donde estamos colocando a los clientes de la red. Se ha puesto que el enlace hacia el borde use las ips públicas de la red para que se pueda natear directamente desde el router core.
1 Configurar direccionamiento en las interfaces.
Archivo adjunto 4263
/ip address
add address=190.9.108.2/24 comment=to-ISP-Borde interface=ether4 network=190.9.108.0
add address=192.168.20.1/24 comment=to-Cliente-Final interface=ether2 network=192.168.20.0
2 Colocamos la ruta por defecto hacia el router de borde
Archivo adjunto 4264
/ip route add distance=1 gateway=190.9.108.1
3 Agregamos el NAT para salida a internet de los clientes
Archivo adjunto 4265
/ip firewall nat add action=masquerade chain=srcnat
Script de router ISP-Core
/ip address
add address=190.9.108.2/24 comment=to-ISP-Borde interface=ether4 network=190.9.108.0
add address=192.168.20.1/24 comment=to-Cliente-Final interface=ether2 network=192.168.20.0
/ip dhcp-client
add disabled=no interface=ether1
/ip firewall nat
add action=masquerade chain=srcnat
/ip route
add distance=1 gateway=190.9.108.1
/system identity
set name=ISP-Core
Verificación en cliente final
1 Configuración Laptop Cliente Final
Archivo adjunto 4266
/ip 192.168.20.2 255.255.255.0 192.168.9.254
2 Validación del Ping y Tracer
Si entramos al equipo de laptop que tenemos conectado al ISP-Core, podemos hacer un ping a 8.8.8.8 y veremos como obtenemos respuesta.
Archivo adjunto 4267
ping 8.8.8.8
tracer 8.8.8.8