En las grandes ligas del networking no es mucha la oferta de opciones que disponemos para poder realizar enlaces de gran envergadura. Cuando saltamos a los 100 o 400Gbps en entorno de routing básicamente podemos escoger entre Cisco (con sus maravillosos y carísimos ASR) y Juniper, aunque no podemos dejar fuera tampoco a opciones como Brocade, Huawei o Alcatel-Lucent, que han hecho grandes esfuerzos por ofrecer soluciones de alto performance con gran éxito. Nombro solo estos, porque si hablamos de switching, obviamente la oferta se amplía a soluciones como Mellanox, Extreme Networks o Aruba, que dan excelentes resultados también. Igualmente podríamos hablar de los nuevos actores que han estado ofreciendo soluciones de 100Gbps más orientadas al Open Source, pero con buenísimos resultados, tales como 6Wind o la iniciativa de The Linux Foundation con sus Whiteboxes que prometen alcanzar soluciones de 100G+, pero eso lo dejaremos para otro capítulo. Hoy quiero explicar como configurar un router Juniper MX204 para operar a 100Gbps, ya que este appliance es una súper máquina, con un chassis de tamaño ultra reducido de 1U (que nos hará ahorrar muchas $$ en housing), capacidad total de 400 Gbps y a un precio relativamente alcanzable en comparación con un Cisco ASR 9K con todas sus respectivas licencias.

Esta belleza de router de grandes prestaciones permite a las empresas dar el gran salto sin realizar inversiones multimillonarias en equipamiento, lo cual ya es destacable. La documentación y descripción competa está disponible en https://www.juniper.net/us/en/products-services/routing/mx-series/mx204/ y en este excelente documento: https://www.juniper.net/documentation/en_US/release-independent/junos/information-products/pathway-pages/mx-series/mx204/mx204-hw-guide.pdf
En este caso mostraré como activar los puertos de 100Gbps en este router y como hacer la configuración básica. Antes de ponerse a meter comandos hay que decidir como se van a usar los puertos disponibles ya que solo se permite una combinación máxima de 400Gbps. Esto implica que no es posible, en ningún caso, utilizar las 4 interfaces de 100Gbps y las 8 interfaces de 10Gbps simultáneamente. Para ello se puede utilizar la aplicación "Port Checker" (https://apps.juniper.net/home/port-checker/index.html) de Juniper que nos permite rápidamente determinar la combinación correcta.


Como ven en el ejemplo superior, si activamos los 4 puertos de 100Gbps + los 8 puertos de 10 Gbps tendremos un error.

Una alternativa es usar solo 3 de 100Gbps y 8 de 10Gbps. Todo esto se define a nivel de FPC/PIC en la configuración del router, como ya veremos luego.
CONFIGURACIÓN INICIAL.
Lo típico que uno configura al comienzo, con la diferencia que, particularmente en este modelo, debemos programar el esquema de FPC/PIC para poder usar las tarjetas de red.
1. Lo primero es pasar al modo de configuración de la CLI
root@>cli
root# configure
[edit]
root@#
2. Asignamos un nombre al router, un dominio y configuramos un usuario adicional para la administración. El router también nos obligará a poner una contraseña al usuario root. (Por una cosa mía siempre pongo las variables en mayúsculas, así al mirar la config sé que esa opción es mía y no del sistema base, pero ustedes pueden ponerlo con minúsculas si quieren)
set system host-name ROUTER1
set system domain-name NETLAYER.CL
set system login user ADMINISTRADOR authentication plain-text-password
New password: xxxxxxxx
Retype new password: xxxxxxxx
set system login user ADMINISTRADOR class super-user
set system root-authentication plain-text-password
New password: xxxxxxxx
Retype new password: xxxxxxxx
commit
3. Configuración de la interfaz de administración OOB (Management)
Es indispensable utilizar la interfaz MGMT para administración del router, ya que internamente se utilizará una VRF que estará completamente aislada del tráfico de la red. Para ello debemos activar la instancia de administración, habilitar la VRF de gestión interna llamada mgmt_junos (creo que ese nombre no se puede cambiar) y darle la configuración IP respectiva. En este caso le asignaré la IP 192.168.0.80 con gateway 192.168.0.1. También activaré SSH.
set management-instance
set services ssh
set routing-instances mgmt_junos description MANAGEMENT-INSTANCE
set routing-instances mgmt_junos routing-options static route 0.0.0.0/0 next-hop 192.168.0.1 retain no-readvertise
El comando retain permite dejar esa ruta fija en la VRF y la opción no-readvertise impide que esta ruta se propague por las demás tablas de enrutamiento. Una vez agregada la ruta a la VRF de gestión, asignaremos una IP a la interfaz de administración (fxp0).
set interfaces fxp0 unit 0 family inet address 192.168.0.80/24
commit
Con esto ya deberíamos tener conexión con nuestra red.
4. Configuración de las interfaces de red.
Para este ejemplo configuraré 2 interfaces de 100Gbps, y desactivaré las de 10 Gbps. Lo primero es activar la funcionalidad modificando los valores de PIC (Physical Interface Card). Este MX204 trae 2 PIC, una asociada a las interfaces de 100 Gbps (pic 0) y una asociada a las interfaces 10 Gbps (pic 1), pero ambas dependen del mismo FPC (Flexible PIC Concentrator). Básicamente un FPC contiene múltiples PIC, los cuales a su vez contienen múltiples puertos. Un router puede tener más de un FPC (como los tipo blade que usan múltiples routing-engines). El siguiente es el esquema del MX204.

set chassis fpc 0 pic 0 pic-mode 100G number-of-ports 4
set chassis fpc 0 pic 1 number-of-ports 0
Luego habilitaremos las interfaces. En este caso lo que haré será tomar la interfaz 0 de 100G (et-0/0/0) y configurarla en modo trunk con subinterfaces (lo que en Cisco llamaríamos "routing-on-a-stick" configurando la VLAN 100 con la IP 10.28.100.1, y la interfaz 3 la dejaremos en modo routing con una dirección IP 10.172.22.1/24.
set interfaces et-0/0/0 vlan-tagging
set interfaces et-0/0/0 encapsulation flexible-ethernet-services
set interfaces et-0/0/0 vlan-id 100 family inet address 10.28.100.1/24
set interfaces et-0/0/3 unit 0 family inet address 10.172.22.1/24
Y el último paso para que funcionen estas interfaces es crear un router virtual que las contenga.
set routing-instances VIRTUAL-ROUTER1 instance type virtual-router
set routing-instances VIRTUAL-ROUTER1 interface et-0/0/0.100
set routing-instances VIRTUAL-ROUTER1 interface et-0/0/3
commit
Con esta configuración ya tendremos lo básico. La segunda parte hablará sobre configurar BGP y otras opciones avanzadas sobre esta plataforma.