miércoles, 3 de septiembre de 2014

IP Transit para Death Star Communications Parte 3 Configuración eBGP

Luego de haber establecido el iBGP en nuestra red interna, ahora procederemos a establecer el eBGP(external BGP) con nuestro proveedor de internet con el cual tenemos tres enlaces, como podemos ver en la siguiente imagen.


Figura 1.

como podemos observar en la ilustración de la Figura 1, cada router cuenta con un enlace a los routers de nuestro proveedor, los cuales nos estarán enviando las "rutas de internet" + ruta por defecto.

usualmente cuando establecemos un enlace con un proveedor de internet debemos indicarle si deseamos recibir full routing, full routing + ruta por defecto o solo la ruta por defecto.

antes de establecer una sesión BGP con un proveedor hay algunas normas que se deben respetar para tener una convivencia saludable en internet, para esto debemos colocar filtros en nuestras salidas para ser un buen ciudadano de internet y a la entrada por seguridad de nuestra red.



Inicialmente tal vez desees bloquear todos los prefijos enviados y recibidos, para ello puedes aplicar este prefix list.

ip prefix-list deny_any seq 5 deny 0.0.0.0/0 le 32

y procedemos a configurar nuestra sesion EBGP en DS-INT1, podemos observar los comandos en amarillo a continuacion

!
router bgp 66
 bgp log-neighbor-changes
 neighbor IBGP-ISP peer-group
 neighbor IBGP-ISP remote-as 66
 neighbor IBGP-ISP update-source Loopback0
 neighbor 10.2.2.2 peer-group IBGP-ISP
 neighbor 10.3.3.3 peer-group IBGP-ISP
 neighbor 200.1.1.1 remote-as 9377
 !
 address-family ipv4
  neighbor 10.2.2.2 activate
  neighbor 10.3.3.3 activate
  neighbor 200.1.1.1 activate
  neighbor 200.1.1.1 prefix-list deny_any in
  neighbor 200.1.1.1 prefix-list deny_any out
  no auto-summary
  no synchronization
 exit-address-family

!

podemos verificar que la sesión se estableció ejecutando el comando show ip bgp summary, cuando vemos números en la ultima columna de este comando es buena señal este numero indica que la sesión se estableció y se están recibiendo esa cantidad de prefijos, en estos momentos dice 0 debido a que tenemos el filtro deny_any colocado

DS-INT1#sh ip bgp summary                                 
BGP router identifier 10.1.1.1, local AS number 66
BGP table version is 17, main routing table version 17
8 network entries using 936 bytes of memory
16 path entries using 832 bytes of memory
3/1 BGP path/bestpath attribute entries using 372 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 2164 total bytes of memory
BGP activity 8/0 prefixes, 24/8 paths, scan interval 60 secs

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.2.2.2        4    66      17      19       17    0    0 00:12:53        0
10.3.3.3        4    66      17      19       17    0    0 00:12:46        0

200.1.1.1       4  9377      13      14       17    0    0 00:02:30        0

luego de verificar que la sesión se estableció sin ningún problema podemos proceder a remover los filtros que rechazan todos los prefijos y colocar los filtros que nos aseguran buenas practicas para con el internet, en este filtro se incluyen las direcciones privadas, prefijos con mascaras mayores de 25 entre otras direcciones con propósitos especiales.

ip prefix-list deny-pro-esp deny 0.0.0.0/8 le 32
ip prefix-list deny-pro-esp deny 10.0.0.0/8 le 32
ip prefix-list deny-pro-esp deny 127.0.0.0/8 le 32
ip prefix-list deny-pro-esp deny 169.254.0.0/16 le 32
ip prefix-list deny-pro-esp deny 172.16.0.0/12 le 32
ip prefix-list deny-pro-esp deny 192.0.2.0/24 le 32
ip prefix-list deny-pro-esp deny 192.168.0.0/16 le 32
ip prefix-list deny-pro-esp deny 224.0.0.0/3 le 32
ip prefix-list deny-pro-esp deny 0.0.0.0/0 ge 25
ip prefix-list deny-pro-esp permit 0.0.0.0/0 le 32

aplicamos el prefix-list
address-family ipv4
  neighbor 200.1.1.1 prefix-list deny_any in
  neighbor 200.1.1.1 prefix-list deny_any out

y procedemos a  verificar los prefijos recibidos

DS-INT1#sh ip bgp summary   
BGP router identifier 10.1.1.1, local AS number 66
BGP table version is 25, main routing table version 25
8 network entries using 936 bytes of memory
24 path entries using 1248 bytes of memory
3/1 BGP path/bestpath attribute entries using 372 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 2580 total bytes of memory
BGP activity 8/0 prefixes, 32/8 paths, scan interval 60 secs

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.2.2.2        4    66      30      33       25    0    0 00:24:10        0
10.3.3.3        4    66      30      33       25    0    0 00:24:04        0
200.1.1.1       4  9377      25      27       17    0    0 00:13:47        8
DS-INT1#

(Usualmente en internet se reciben muchos mas prefijos que 8 pero en nuestro ambiente experimental desde "internet" hemos anunciado 8 redes)
Luego de esto procedemos a realizar lo mismo en nuestro 3 routers PE, después de hacer esto debemos poder ver las rutas a través de iBGP.

DS-INT1#sh ip bgp summary 
BGP router identifier 10.1.1.1, local AS number 66
BGP table version is 25, main routing table version 25
8 network entries using 936 bytes of memory
24 path entries using 1248 bytes of memory
3/1 BGP path/bestpath attribute entries using 372 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 2580 total bytes of memory
BGP activity 8/0 prefixes, 32/8 paths, scan interval 60 secs

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.2.2.2        4    66      44      47       25    0    0 00:38:30        8
10.3.3.3        4    66      44      47       25    0    0 00:38:24        8
200.1.1.1       4  9377      40      43       25    0    0 00:28:07        8
DS-INT1#

podemos ver las rutas de nuestro pequeño "internet" con el comando show bgp

DS-INT1#sh bgp            
BGP table version is 25, local router ID is 10.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 22.22.22.0/24    200.1.1.1                0             0 9377 i
* i                 200.3.3.1                0    100      0 9377 i
* i                 200.2.2.1                0    100      0 9377 i
*> 33.33.33.0/24    200.1.1.1                0             0 9377 i
* i                 200.3.3.1                0    100      0 9377 i
* i                 200.2.2.1                0    100      0 9377 i
*> 44.44.44.0/24    200.1.1.1                0             0 9377 i
* i                 200.3.3.1                0    100      0 9377 i
* i                 200.2.2.1                0    100      0 9377 i
*> 55.55.55.0/24    200.1.1.1                0             0 9377 i
* i                 200.3.3.1                0    100      0 9377 i
* i                 200.2.2.1                0    100      0 9377 i
*> 66.66.66.0/24    200.1.1.1                0             0 9377 i
* i                 200.3.3.1                0    100      0 9377 i
* i                 200.2.2.1                0    100      0 9377 i
*> 77.77.77.0/24    200.1.1.1                0             0 9377 i
* i                 200.3.3.1                0    100      0 9377 i
* i                 200.2.2.1                0    100      0 9377 i
*> 88.88.88.0/24    200.1.1.1                0             0 9377 i
* i                 200.3.3.1                0    100      0 9377 i
* i                 200.2.2.1                0    100      0 9377 i
*> 99.99.99.0/24    200.1.1.1                0             0 9377 i
* i                 200.3.3.1                0    100      0 9377 i
* i                 200.2.2.1                0    100      0 9377 i

DS-INT1#

podemos observar tres caminos para cada ruta y nos indica el camino preferido mediante un ">", ahora te invito estimado lector a reflexionar, estamos recibiendo las rutas mediante eBGP e iBGP, el camino preferido sera el eBGP, sin embargo que piensas que ocurra si cortamos el enlace directo que tenemos en nuestro router DS-INT1 con internet, podremos acceder a internet mediante los otros dos enlaces?
pues veamos nuestra tabla de rutas show ip route

DS-INT1#sh ip route
Codes: 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

Gateway of last resort is not set

     186.1.0.0/30 is subnetted, 1 subnets
C       186.1.1.0 is directly connected, FastEthernet1/0
     33.0.0.0/24 is subnetted, 1 subnets
B       33.33.33.0 [20/0] via 200.1.1.1, 00:21:31
     55.0.0.0/24 is subnetted, 1 subnets
B       55.55.55.0 [20/0] via 200.1.1.1, 00:21:31
     99.0.0.0/24 is subnetted, 1 subnets
B       99.99.99.0 [20/0] via 200.1.1.1, 00:21:31
     200.1.1.0/30 is subnetted, 1 subnets
C       200.1.1.0 is directly connected, FastEthernet2/0
     190.0.0.0/30 is subnetted, 1 subnets
C       190.0.0.0 is directly connected, FastEthernet0/0
     66.0.0.0/24 is subnetted, 1 subnets
B       66.66.66.0 [20/0] via 200.1.1.1, 00:21:33
     22.0.0.0/24 is subnetted, 1 subnets
B       22.22.22.0 [20/0] via 200.1.1.1, 00:21:33
     77.0.0.0/24 is subnetted, 1 subnets
B       77.77.77.0 [20/0] via 200.1.1.1, 00:21:33
     10.0.0.0/32 is subnetted, 3 subnets
i L2    10.2.2.2 [115/10] via 192.168.0.2, Serial3/1
i L2    10.3.3.3 [115/10] via 192.168.1.2, Serial3/0
C       10.1.1.1 is directly connected, Loopback0
     192.168.0.0/30 is subnetted, 1 subnets
C       192.168.0.0 is directly connected, Serial3/1
     88.0.0.0/24 is subnetted, 1 subnets
B       88.88.88.0 [20/0] via 200.1.1.1, 00:21:33
     192.168.1.0/30 is subnetted, 1 subnets
C       192.168.1.0 is directly connected, Serial3/0
     192.168.2.0/30 is subnetted, 1 subnets
i L2    192.168.2.0 [115/20] via 192.168.1.2, Serial3/0
                    [115/20] via 192.168.0.2, Serial3/1
     44.0.0.0/24 is subnetted, 1 subnets
B       44.44.44.0 [20/0] via 200.1.1.1, 00:21:34
DS-INT1#

podemos ver marcadas con B nuestras rutas BGP accesibles mediante el enlace directo, veamos ahora que ocurre si se cae el enlace directo con internet en este router.

DS-INT1(config)#int fastEthernet 2/0
DS-INT1(config-if)#shut   
DS-INT1(config-if)#
DS-INT1(config-if)#
DS-INT1(config-if)#
DS-INT1(config-if)#
*Mar  1 00:51:04.843: %BGP-5-ADJCHANGE: neighbor 200.1.1.1 Down Interface flap
DS-INT1(config-if)#
*Mar  1 00:51:06.807: %LINK-5-CHANGED: Interface FastEthernet2/0, changed state to administratively down
*Mar  1 00:51:07.807: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet2/0, changed state to down

DS-INT1(config-if)#

DS-INT1#sh ip route
Codes: 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

Gateway of last resort is not set

     186.1.0.0/30 is subnetted, 1 subnets
C       186.1.1.0 is directly connected, FastEthernet1/0
     190.0.0.0/30 is subnetted, 1 subnets
C       190.0.0.0 is directly connected, FastEthernet0/0
     10.0.0.0/32 is subnetted, 3 subnets
i L2    10.2.2.2 [115/10] via 192.168.0.2, Serial3/1
i L2    10.3.3.3 [115/10] via 192.168.1.2, Serial3/0
C       10.1.1.1 is directly connected, Loopback0
     192.168.0.0/30 is subnetted, 1 subnets
C       192.168.0.0 is directly connected, Serial3/1
     192.168.1.0/30 is subnetted, 1 subnets
C       192.168.1.0 is directly connected, Serial3/0
     192.168.2.0/30 is subnetted, 1 subnets
i L2    192.168.2.0 [115/20] via 192.168.1.2, Serial3/0
                    [115/20] via 192.168.0.2, Serial3/1

DS-INT1#

o_O nuestras rutas desaparecieron, por lo cual no tenemos acceso a internet :(, pero si las habíamos visto con show bgp, habían tres caminos !!!!

DS-INT1#sh bgp 
BGP table version is 33, local router ID is 10.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
* i22.22.22.0/24    200.3.3.1                0    100      0 9377 i
* i                 200.2.2.1                0    100      0 9377 i
* i33.33.33.0/24    200.3.3.1                0    100      0 9377 i
* i                 200.2.2.1                0    100      0 9377 i
* i44.44.44.0/24    200.3.3.1                0    100      0 9377 i
* i                 200.2.2.1                0    100      0 9377 i
* i55.55.55.0/24    200.3.3.1                0    100      0 9377 i
* i                 200.2.2.1                0    100      0 9377 i
* i66.66.66.0/24    200.3.3.1                0    100      0 9377 i
* i                 200.2.2.1                0    100      0 9377 i
* i77.77.77.0/24    200.3.3.1                0    100      0 9377 i
* i                 200.2.2.1                0    100      0 9377 i
* i88.88.88.0/24    200.3.3.1                0    100      0 9377 i
* i                 200.2.2.1                0    100      0 9377 i
* i99.99.99.0/24    200.3.3.1                0    100      0 9377 i
* i                 200.2.2.1                0    100      0 9377 i

aun las vemos :s veamos si el próximo salto indicado es accesible desde nuestro router

DS-INT1#ping 200.3.3.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 200.3.3.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
DS-INT1#ping 200.2.2.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 200.2.2.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
DS-INT1#

podemos ver porque no llegamos, el próximo salto es inaccesible para nosotros, entonces es cuando entra en juego el comando next-hop-self, este comando le indica al router al pasar las rutas que tomen al router que las anuncia como próximo salto, veamos que ocurre al aplicarlo en DS-INT2 y DS-INT3.

DS-INT2(config-router)#neighbor IBGP-ISP next-hop-self 
DS-INT3(config-router)#neighbor IBGP-ISP next-hop-self 

DS-INT1#SH BGP
BGP table version is 41, local router ID is 10.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*>i22.22.22.0/24    10.2.2.2                 0    100      0 9377 i
* i                 10.3.3.3                 0    100      0 9377 i
*>i33.33.33.0/24    10.2.2.2                 0    100      0 9377 i
* i                 10.3.3.3                 0    100      0 9377 i
*>i44.44.44.0/24    10.2.2.2                 0    100      0 9377 i
* i                 10.3.3.3                 0    100      0 9377 i
*>i55.55.55.0/24    10.2.2.2                 0    100      0 9377 i
* i                 10.3.3.3                 0    100      0 9377 i
*>i66.66.66.0/24    10.2.2.2                 0    100      0 9377 i
* i                 10.3.3.3                 0    100      0 9377 i
*>i77.77.77.0/24    10.2.2.2                 0    100      0 9377 i
* i                 10.3.3.3                 0    100      0 9377 i
*>i88.88.88.0/24    10.2.2.2                 0    100      0 9377 i
* i                 10.3.3.3                 0    100      0 9377 i
*>i99.99.99.0/24    10.2.2.2                 0    100      0 9377 i
* i                 10.3.3.3                 0    100      0 9377 i
DS-INT1# 

podemos ver que el próximo salto de nuestros prefijos ha cambiado, ahora veamos nuestra tabla de rutas.

DS-INT1#sh ip route
Codes: 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

Gateway of last resort is not set

     186.1.0.0/30 is subnetted, 1 subnets
C       186.1.1.0 is directly connected, FastEthernet1/0
     33.0.0.0/24 is subnetted, 1 subnets
B       33.33.33.0 [200/0] via 10.2.2.2, 00:04:08
     55.0.0.0/24 is subnetted, 1 subnets
B       55.55.55.0 [200/0] via 10.2.2.2, 00:04:08
     99.0.0.0/24 is subnetted, 1 subnets
B       99.99.99.0 [200/0] via 10.2.2.2, 00:04:08
     190.0.0.0/30 is subnetted, 1 subnets
C       190.0.0.0 is directly connected, FastEthernet0/0
     66.0.0.0/24 is subnetted, 1 subnets
B       66.66.66.0 [200/0] via 10.2.2.2, 00:04:09
     22.0.0.0/24 is subnetted, 1 subnets
B       22.22.22.0 [200/0] via 10.2.2.2, 00:04:09
     77.0.0.0/24 is subnetted, 1 subnets
B       77.77.77.0 [200/0] via 10.2.2.2, 00:04:09
     10.0.0.0/32 is subnetted, 3 subnets
i L2    10.2.2.2 [115/10] via 192.168.0.2, Serial3/1
i L2    10.3.3.3 [115/10] via 192.168.1.2, Serial3/0
C       10.1.1.1 is directly connected, Loopback0
     192.168.0.0/30 is subnetted, 1 subnets
C       192.168.0.0 is directly connected, Serial3/1
     88.0.0.0/24 is subnetted, 1 subnets
B       88.88.88.0 [200/0] via 10.2.2.2, 00:04:09
     192.168.1.0/30 is subnetted, 1 subnets
C       192.168.1.0 is directly connected, Serial3/0
     192.168.2.0/30 is subnetted, 1 subnets
i L2    192.168.2.0 [115/20] via 192.168.1.2, Serial3/0
                    [115/20] via 192.168.0.2, Serial3/1
     44.0.0.0/24 is subnetted, 1 subnets
B       44.44.44.0 [200/0] via 10.2.2.2, 00:04:09

DS-INT1#

tenemos nuevamente nuestras rutas hacia internet :)

ya tenemos nuestras rutas a internet pero no hemos anunciado nuestras "redes" por lo que no tenemos acceso a internet 

utilizaremos interfaces loopback para simular nuestras "redes"
!
interface Loopback123
 ip address 123.123.123.1 255.255.255.0
!
interface Loopback124
 ip address 124.124.124.1 255.255.255.0
!
interface Loopback125
 ip address 125.125.125.1 255.255.255.0

!

procedemos a anunciarlas

router bgp 66
 address-family ipv4
  network 123.123.123.0 mask 255.255.255.0
  network 124.124.124.0 mask 255.255.255.0

  network 125.125.125.0 mask 255.255.255.0

comprobamos conectividad

DS-INT1#ping 44.44.44.1 source lo123

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 44.44.44.1, timeout is 2 seconds:
Packet sent with a source address of 123.123.123.1 
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/32/44 ms
DS-INT1#ping 44.44.44.1 source lo124

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 44.44.44.1, timeout is 2 seconds:
Packet sent with a source address of 124.124.124.1 
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/32/68 ms
DS-INT1#ping 44.44.44.1 source lo125

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 44.44.44.1, timeout is 2 seconds:
Packet sent with a source address of 125.125.125.1 
!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 12/22/44 ms

Consideraciones:

  • Es importante que dentro de nuestro iBGP sea full mesh debido a la regla de BGP que dice "un router iBGP no anuncia rutas aprendidas por iBGP", hay método para evitar tener una topologia full mesh dentro de nuestra red, como por ejemplo implementar un route reflector, esto lo veremos mas adelante.
  • Al anunciar una ruta en BGP, la misma antes debe encontrarse dentro de la tabla de rutas, verifique esto con el comando show ip route.
  • Tenga en cuenta el efecto del comando next-hop-self.
  • En caso de tener mas de un proveedor de servicio implemente los filtros necesarios para evitar convertirse en un sistema de transito.
  •  Utilice autenticación para sus sesiones BGP.



Espero que haya sido informativo, nos vemos en la próxima entrega donde estableceremos la sesión con nuestro primer cliente, cualquier comentario o feedback es bienvenido.


No hay comentarios:

Publicar un comentario