Análisis técnico de Cisco ASR1006: Desarrollo de pruebas


Analisis tecnico para comprar router Cisco ASR 1006
En la anterior publicación ya vimos la preparación de Escenario de pruebas con Router Cisco ASR1006. En los siguientes apartados se van a ir desarrollando las configuraciones y consideraciones necesarias para simular el escenario de pruebas de análisis técnico de router Cisco ASR1006.

Plan de direccionamiento

Para llevar a cabo las pruebas el plan de direccionamiento es el siguiente:

Red de interconexión entre los ISPs y el ISP propio: 10.90.0.0/16

  • Red Interna del ISP propio: 10.42.0.0/16

Red de Interconexión

La red de interconexión como se ha comentado en un apartado anterior simula una red MAN de nivel 2. La conexión entre los vecinos BGP de los ISPs y el ISP propio se va a realizar a través de esta red.

La asignación de AS e IPs son las siguientes:
Analisis tecnico router Cisco ASR1006 Desarrollo de pruebas

Red Interna

La red interna va a ser la red que va a conectar el Windows 6 con el ASR1002 para que el tráfico pase a través del router ASR1006 y se compruebe que efectos tiene sobre él
Analisis tecnico router Cisco ASR1006

Características técnicas de router Cisco ASR1006

En el apartado 2.2.1 ya se han analizado algunas de las características técnicas del Cisco ASR1006. En este caso nos centraremos en la RP2 que viene instalada en el equipo. Las capacidades de la RP2 van a determinar las limitaciones del router Cisco ASR1006 en relación a la capacidad de routing y van a ser el objeto de análisis de este informe.

Si hacemos referencia al datasheet que nos proporciona Cisco para la RP2 indica lo siguiente:

–          With 8-GB memory:

  • Up to 1,000,000 IPv4 routes or 1,000,000 IPv6 routes
  • BGP RR Scalability up to 8,000,000 IPv4 routes or 6,000,000 IPv6 routes

–          With 16-GB memory:

  • Up to 4,000,000 IPv4 routes or 4,000,000 IPv6 routes
  • BGP RR Scalability up to 24,000,000 IPv4 routes or 17,000,000 IPv6 routes

En el caso que nos ocupa el equipo dispone de 16Gb de memoria por lo que debe ser capaz de soportar hasta 4000000 millones de rutas. Este es el limite que vamos a intentar buscar con estas pruebas

Configuraciones de router Cisco ASR1006

El primer equipo que vamos a configurar de nuestro escenario de pruebas es el equipo motivo de análisis. Queda fuera del alcance de este documento las configuraciones de seguridad e iniciales del equipo. Nos centraremos única y exclusivamente en las configuraciones ip y BGP.

Configuración IP

El ASR1006 no dispone de puertos fijos. Para la realización de las pruebas se han instalado 2 sfps GLC-T de la marca ARPERS en una tarjeta SPA-8X1GE-V2

Para configurar el interfaz hacia la WAN (ISPs) realizaremos los siguientes pasos

config t
int gi0/0/0
ip adddress 10.90.50.54 255.255.0.0
no shut

Para configurar el interfaz hacia la red interna realizaremos los siguientes pasos

config t
int gi0/0/1
ip adddress 10.42.0.2 255.255.0.0
no shut

Configuración BGP

En la configuración del BGP realizaremos una configuración básica sin realizar filtrado de rutas, ni modificando ninguno de los atributos (MED, AS_PATH, etc.)

La configuración para conseguir la adyacencia con los peers BGP es la siguiente:

 config t
 router bgp 65000
 bgp router-id 10.90.50.54
 bgp log-neighbor-changes
 neighbor 10.90.50.50 remote-as 65001
 neighbor 10.90.50.50 description BGP1
 neighbor 10.90.50.51 remote-as 65002
 neighbor 10.90.50.51 description BGP2
 neighbor 10.90.50.52 remote-as 65003
 neighbor 10.90.50.52 description BGP3
 neighbor 10.90.50.53 remote-as 65004
 neighbor 10.90.50.53 description BGP4

Para publicar hacia los peers la red interna se deben realizar las siguientes modificaciones

config t
router bgp 65000
network 10.42.0.0 netmask 255.255.0.0
redistribute connected

Con estas configuraciones ya tendríamos el 50% de la configuración realizada. Nos faltaría por realizar la configuración en los peers BGP sobre las máquinas virtuales del host ESXi.

Máquinas virtuales BGP

Las máquinas virtuales del servidor ESXi son 4 servidores con el sistema operativo de Ubuntu server 14.04. Las 4 máquinas virtuales son equipos clónicos con la lógica diferencia de ips y sistemas autónomos.

Para realizar la configuración del BGP en Linux se va a hacer uso del paquete Quagga.

¿Qué es Quagga?

Haciendo un uso literal de la definición de la Wikipedia:

“Quagga es una suite de software libre para poder usar la familia de sistemas operativos Unix como routers. El mismo provee implementaciones de protocolos como Open Shortest Path First (OSPF), Routing Information Protocol (RIP), Border Gateway Protocol (BGP), and IS-IS. Está diseñado especialmente para NetBSD, FreeBSD, Solaris y Linux.

Actúa como conmutador del GNU Zebra, el cual a su vez es un demonio que se encarga de manejar las tablas de rutas del núcleo. Algunas de sus funciones están mejor adaptadas a Linux, es decir, lo maneja completamente como el demonio conmutador que es. En el caso de los BSDs, hay unas cuantas funciones que no maneja, es decir, no puede aprovechar las bendiciones del mismo.”

Instalación y puesta en marcha de Quagga

Para instalar quagga únicamente deberemos ejecutar el siguiente comando con privilegios de root desde un terminal

apt-get install quagga

Una vez finalizada la instalación se activarán los demonios necesarios para que funcione el bgp. Se va a editar el siguiente archivo daemons y se van a modificar los valores tal y como se muestra a continuación:

nano /etc/quagga/daemons
zebra=yes
bgp=yes

Configuración del BGP en Quagga

Para configurar el BGP en los distintos servidores se va a configurar un archivo llamado bgpd.conf que se ubicará en el directorio donde se ha instalado quagga. Normalmente esta ubicación es /etc/quagga.

El contenido del archivo bgpd.conf debe tener un aspecto parecido a esto:

hostname quagga-host
password zebra
enable password zebra
line vty
router bgp 65099
  bgp router-id 192.0.2.1
  neighbor 192.0.2.2 remote-as 65001
  network 70.0.0.0/24
  network 70.0.1.0/24
  network 70.0.2.0/24
  network 70.0.3.0/24

¿Qué ocurre si se quieren configurar 650000 rutas?

Existen varias posibilidades como por ejemplo escribir de forma manual una a una las 650000 rutas con lo que solo se puede decir…suerte. O existe otra posibilidad más viable que es mediante un script. En este caso hemos utilizado como base el script desarrollado por V. Glinsky.

Las modificaciones y pasos para ejecutar el script y generar el archivo bgpd.conf son los siguientes:

  • Crear un archivo por ejemplo sudo nano script.pl y copiar el siguiente contenido:

#!/usr/bin/perl
my $host=»quagga-host»;                   #quagga router name
my $logpass=»zebra»;                          #login password
my $enable=»zebra»;                           #enable password
my $myasn=»65001″;                          #local AS number
my $router_id=»10.90.50.50″;          #bgp router-id
my $remote_as=»65000″;                  #remote-as number
my $remote_ip=»10.90.50.54″;        #BGP neighbor ip address
my $route_count=0;
my $max_routes=650000;                  #max number of routers to generate

open (BGPCONF,’>bgpd.conf’)|| die «Can not open bgpd.conf for writing»;
print BGPCONF «hostname $host\npassword $logpass\nenable password $enable\nline vty \n»;
print BGPCONF «router bgp $myasn\n  bgp router-id $router_id\n  neighbor $remote_ip remote-as $remote_as\n»;
MAXR: while ($route_count <= $max_routes ) {
$octet1=int(rand(223))+1; #generate 1st octet randomly in 1-223 range, 224 and up is multicast and class E 
if ($octet1 ==127) {next;} #need to make sure that 127.X.X.0/24 is excluded
$octet2=0; 
while ( $octet2 <= 255 ){
$octet3=0;
while ( $octet3 <= 255 ) {
print BGPCONF »  network $octet1\.$octet2\.$octet3\.0/24\n»;
$octet3++;
$route_count++;
if ($route_count == $max_routes) {last MAXR;}
}
$octet2++;
}
}
close BGPCONF;

Los campos y parámetros que debemos adaptar a nuestro escenario son los siguientes

my $router_id=»10.90.50.50″;          #bgp router-id
my $remote_as=»65000″;                  #remote-as number
my $remote_ip=»10.90.50.54″;        #BGP neighbor ip address
my $max_routes=650000;                  #max number of routers to generate
my $myasn=»65001″;                          #local AS number

En este caso tenemos la configuración para generar el archivo bgpd.conf para el ISP1

  • Una vez creado el archivo y guardado el archivo hay que cambiarle los permisos al archivo para permitir la ejecución del script:

sudo chmod +x script.pl

  • Ejecutar el script:

sudo ./script.pl

  • Ahora se habrá creado un archive bgpd.conf que hay que copiar al directorio /etc/quagga

sudo cp bgpd.conf /etc/quagga/bgp.conf

  • Y por último faltaría reiniciar el servicio quagga para que aplique la configuración:

sudo /etc/init.d quagga restart

Si la configuración ha sido correcta se habrá creado la primera adyacencia entre el router Cisco ASR1006 y la máquina virtual BGP1

Para configurar el resto de adyacencias la configuración en el resto de máquinas va a ser idéntica modificando los parámetros de cada conexión con la excepción de la ejecución del script, que no deberíamos ejecutar en todas las máquinas virtuales

NOTA: Es muy importante que el archivo bgpd.conf contenga las mismas 4000000 rutas ya que si no es así puede generar un resultado incorrecto. Es recomendable usar el archivo generado en la primera máquina virtual y copiarlo al resto de máquinas modificando los parámetros del AS propio y el ID BGP.

Resto de configuraciones

Los otros elementos que forman parte del escenario planteado tienen una configuración básica.

Al equipo Windows 7 solo hay que cambiarle la IP. El switch 3750 funcionaria con una configuración básica por defecto sin modificar ya que todos los puertos están en acceso.

Comprobaciones

Conectividad IP

Una vez realizada la configuración de los equipos hay que comprobar la conectividad IP entre los distintos equipos. Lanzaremos ping entre los equipos y comprobaremos que si el resultado es correcto. Si alguno de los test no es correcto debe seguirse alguna de las estrategias para determinar dónde está el problema. Una buena estrategia puede ser seguir la capa OSI de abajo a arriba. Empezamos por el nivel físico o nivel 1 hasta llegar a la capa de red o nivel 3.

Conectividad BGP

Tras realizar las comprobaciones de conectividad ip el siguiente paso es revisar el correcto funcionamiento del protocolo BGP. Hay que confirmar las adyacencias entre los vecinos ISP1, ISP2, ISP3 e ISP4 se han realizado correctamente con el ISP Propio. Para comprobarlo se pueden ejecutar los siguientes comandos:

Router#sh ip bgp sum
BGP router identifier 10.90.50.54, local AS number 65000
BGP table version is 1189875, main routing table version 1189875
650000 network entries using 93600000 bytes of memory
2600000 path entries using 208000000 bytes of memory
4/1 BGP path/bestpath attribute entries using 608 bytes of memory
4 BGP AS-PATH entries using 96 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 301600704 total bytes of memory
BGP activity 919937/269937 prefixes, 2869937/269937 paths, scan interval 60 secs

Analisis tecnico router Cisco Asr1006

En rojo aparece el tiempo que el que la conexión esta activa o inactiva. ¿Cómo conocer si la conexión esta activa o inactiva? Por el valor del campo en azul State/PfxRcd. Si en este campo aparece valores numéricos significa que estamos recibiendo rutas de nuestro vecino. Si por el contrario aparecen estados como Active, Init, OpenSent puede significar que la vecindad no se ha creado todavía o que la adyacencia ha caído. En el ejemplo se puede observar como las 4 vecindades se han creado de forma correcta.

Otra información útil que puede obtenerse con este comando es el número total de redes que se conocen y la cantidad de memoria que están ocupando (texto en verde)

Otro dato importante que se ve con este comando es el número total de caminos que se reciben de los vecinos BGP. En este caso 650000 x 4 = 26000000 (texto en naranja). De los cuales se eligen los 650000 mejores que pasan a la tabla de rutas y que coincide con el valor anterior.

Uso de recursos de router Cisco ASR1006 (Memoria CPU)

Es importante mantener un control sobre los recursos del equipo y su uso. El ASR1002 dispone de un comando donde se puede el uso de la memoria de cada uno de los componentes del equipo (RP, ESP, SIP)

Router#show platform software status control-processor brief 
Load Average
 Slot  Status  1-Min  5-Min 15-Min
  RP0 Healthy   0.02   0.07   0.08
  RP1 Healthy   0.00   0.00   0.00
 ESP0 Healthy   0.05   0.12   0.12
 ESP1 Healthy   0.00   0.00   0.08
 SIP0 Healthy   0.00   0.00   0.00
 SIP1 Healthy   0.00   0.00   0.00
 SIP2 Healthy   0.00   0.00   0.00
 
Memory (kB)
 Slot  Status    Total     Used (Pct)     Free (Pct) Committed (Pct)
  RP0 Healthy 16312476  8953984 (55%)  7358492 (45%)  13751788 (84%)
  RP1 Healthy 16312476  5767676 (35%) 10544800 (65%)  13748072 (84%)
 ESP0 Healthy  3877032  2201688 (57%)  1675344 (43%)   2064284 (53%)
 ESP1 Healthy  3877032  2202656 (57%)  1674376 (43%)   2065548 (53%)
 SIP0 Healthy   449752   179204 (40%)   270548 (60%)    126072 (28%)
 SIP1 Healthy   449752   305224 (68%)   144528 (32%)    302352 (67%)
 SIP2 Healthy   449752   179080 (40%)   270672 (60%)    126072 (28%)

CPU Utilization
 Slot  CPU   User System   Nice   Idle    IRQ   SIRQ IOwait
  RP0    0   0.20   0.30   0.00  99.40   0.00   0.10   0.00
         1   0.10   0.00   0.00  99.89   0.00   0.00   0.00
  RP1    0   0.09   0.09   0.00  99.80   0.00   0.00   0.00
         1   0.00   0.10   0.00  99.90   0.00   0.00   0.00
 ESP0    0   0.40   0.40   0.00  99.20   0.00   0.00   0.00
 ESP1    0   0.09   0.19   0.00  99.70   0.00   0.00   0.00
 SIP0    0   0.30   0.40   0.00  99.29   0.00   0.00   0.00
 SIP1    0   0.80   0.60   0.00  98.60   0.00   0.00   0.00
 SIP2    0   0.40   0.40   0.00  99.20   0.00   0.00   0.00

Con este comando se puede observar en primer lugar la carga media de cada uno de los componentes en intervalos de 1,5 y 15 minutos. Hay que destacar de estos primeros valores que si el valor es inferior a 1 el equipo está funcionando correctamente. Si el valor es 1 o superior indica que se ha tenido que esperar para tener acceso a la CPU por lo que puede estar mostrando problemas de sobrecarga.

Después aparece el uso de la memoria de cada uno de los elementos por lo que da una idea de su utilización y espacio libre.

Y por último aparece que uso de la CPU realiza cada uno de los componentes del router Cisco ASR1006. Al tener 2 procesadores por RP en este caso tenemos 2 valores, representados por 0 y 1.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *