Sitio para la difusión de conocimiento informático. 

Twitter RSS

Introducción a Junos OS de Juniper

Juniper – Junos OS

1.1 – Introducción

La funcionalidad del Junos OS está separada en múltiples procesos, cada uno maneja una porción de las funciones del dispositivo. Cada proceso corre en su espacio protegido de memoria, asegurando que cada proceso no pueda interferir directamente con el otro. Cuando un proceso falla, no necesariamente falla el sistema completo. De esta forma también se asegura que las nuevas funcionalidades pueden ser agregadas con el menor impacto a las otras funciones.

El sistema se basa en el kernel del sistema operativo UNIX FreeBSD.

Todas las plataformas de Juniper que corren el JUNOS OS, contienen el mismo código base en sus imágenes. Esto asegura que las funcionalidades trabajan en una forma consistente a través de todas las plataformas que corren JUNOS OS.

Todas las plataformas que corren el JUNOS OS comparten un diseño en común: Separación limpia del control y distribución de funciones. Los procesos que controlan los protocolos de ruteo y switcheo están claramente separados de los procesos para distribuir las tramas, paquetes, o ambos a través del dispositivo. Esto permite configurar cada proceso para obtener su mejor performance y confiabilidad:

Junos-Image-2

Routing Engine (RE): Es el responsable de realizar actualizaciones de protocolos y administración del sistema. Corre varios protocolos y el software de administración que reside en un ambiente de memoria protegida. El RE está basado en una arquitectura X86 o PowerPc, dependiendo de la plataforma específica donde se encuentra el OS. El RT mantiene las tablas de ruteo, la de switching, y la tabla primaria de distribución, y se conecta con el motor de distribución de paquetes (Packet Forwarding Engine – PFE) a través de un link interno. También controla y monitorea el chassis y controla el PFE enviando actualizaciones de tablas de distribución de capa 2 y 3, descargando el micro código y administrando los procesos de software que residen en el PFE. RE recibe mensajes de estado del hardware y el entorno del PFE y toma acciones en base a estos.

Packet Forward Engine (PFE): Usualmente corre en un hardware separado y es responsable del tránsito del tráfico a través del dispositivo. EN muchas plataformas que corren Junos OS, el PDE usa una aplicación específica integrada (ASICs) para incrementar la performance. El PFE recibe la tabla de distribución (FT) desde el RE a través del link interno. La actualización FT tiene alta prioridad para el kernel de Junos OS y son realizadas de forma incremental. PFE realiza lo que se le especificó, que es, distribuir las tramas, paquetes, o ambos.

PFE es el componente central del procesamiento del «Forwarding Plane». Sistemáticamente distribuye el tráfico basándose en su copia local de la FT. La FT del PFE es una copia sincronizada de la información creada y proveída por el RE.

En adición a la distribución del tráfico, PFE también implementa un número avanzado de servicio. Algunos ejemplos de estos servicio implementados a través del PFE incluyen políticas que proveen limites por rangos, filtros de firewall stateles, y clases de servicios (CoS).

Este diseño de arquitectura también hace posible la incorporación de funcionalidades de alta disponibilidad como: graceful Routing Engine switchover (GRES), nonstop active routing (NSR), y unified in-service software upgrades (ISSUs).

 

2.1 -Procesando Tráfico en tránsito
El tráfico en tránsito es distribuido por el sistema local. PFE usa la FT proveída por el RE para esto.
Ej. de este tráfico incluyen unicast y multicast.

 

2.2 – Procesando Tráfico excepcional
Este tipo de tráfico no pasa a través del dispositivo y requiere una manipulación especial. Ej. tráfico destinado al equipo local, mensajes ICMP, etc. El tráfico destinado para el sistema local es procesado por la CPU RE. En la mayoría de los casos, el proceso de tráfico por el PFE requiere la generación de mensajes ICMP, como por ej TTL expirado. El tráfico excepcional está limitado por rango en el link interno para proteger el RE de potenciales DoS. A su vez, el tráfico local y de control tiene preferencia para el RE en caso de congestión.

 

2.3 – Repaso sobre dispositivos Junos
Las plataformas que corren Junos OS corresponden a routers, switches, y roles de seguridad. Pueden ser implementados tanto en pequeñas como grandes ambientes de empresas o proveedores de servicios.
– Serie M routers multiservicios: que proveen un procesamiento hasta 320 Gbps, para empresas y proveedores de servicios.
– Serie T routers de core: procesamiento de hasta 25.6 Tbps, para proveedores de servicios.
– Serie J routers: procesamiento de hasta 2 Gbps, oficinas regionales, y remotas.
– Serie MX routers: procesamiento de hasta 960 Gbps ideal para ambientes «carrier Ethernet».
– Serie EX switches: procesamiento de hasta 6.2 Gpbs, oficinas regionales, y centro de datos.
– Serie SRX Gateway de servicios: procesamiento de hasta 120 Gbps, ideal para empresas y proveedores de servicios.

 

3.1 – Interface de Usuario:

3.1.2 – Web: Accesible a través de HTTP/HTTPs con un navegador web.

 3.1.3 – Cli: Basada en texto. Accesible por puerto Consola usando un terminal (RJ-45 RS-232, 9600 Bps, 8/1/N), y accesible a través de la red mediante el protocolo de administración Telnet o SSH (Requiere configuración previa, muchos dispositivos Junos dedican una interface para administración OOB).

Logging in
Usuarios no-root son colocados directamente en la CLI automáticamente. Mientras que los usuarios root debe comenzar una nueva CLI desde la shell (recuerde cerrar la shell root luego de salir de la CLI con el comando «exit»). Todas las plataformas que corren JNOS tienen solo el usuario root configurado por defecto, sin contraseña. Por defecto no se encuentra configurado el nombre del dispositivo, si este es el caso, el software muestra un nombre Amnesiac en el lugar del nombre del dispositivo.

ej: no-root:
router (ttyu0)
login: user
password:
— Junos 10.3R1.9 built 2010-08-13 13:07:06 UTC
user@router>

ej- root:
router (ttyu0)
login: root
password:
— Junos 10.3R1.9 built 2010-08-13 13:07:06 UTC
root@router%cli <— Shell Prompt.
root@router> <— CLI Prompt.

Modos CLI

– Modo operacional: monitoreo y solución de problemas de software, red, conectividad y hardware. El caracter «>» identificara el modo operacional. Capacidades:
– Entrar en modo configuración.
– Controlar el entorno CLI.
– Salid de la CLI.
– Monitoreo: clear, monitor, mtrace, ping, show, test, traceroute.
– Conectar a otro sistema de red.
– Copiar archivos.
– Reiniciar procesos de software,
– Realizar operaciones a nivel del sistema.
– Modo configuración: configurar el dispositivo, interfaces de red, protocolos, accesos de usuarios, y propiedades del hardware. El caracter «#» identificar el modo de configuración.

Ayuda:
– Tipeando ? en cualquier lugar de la cli no desplegará la ayuda correspondiente (help).
– Tipeando ? dentro de un comando, nos provee la ayuda correspondiente a ese comando en particular (help topic).
– Referencias: help reference <command>, nos desplega un resumen de la información para la referencia de configuración
de la afirmación. También se dispone del comando «help apropos», el cual desplega el contexto de esa referencia específica
(comúnmente se utiliza con comandos «set»).

Completar comandos:
– Utilice la barra espaciadora para completar comandos. En caso de no poder completar el comando, la CLI beeps para indicar que encontró un comando ambiguo. Se puede deshabilitar esta funcionalidad mediante el comando: set cli complete-on-space off.
– Utilice la tecla tab para completar comandos y variables. La tecla tab también ofrece una lista de posibilidades a completar en caso de ser ambigua la opción existente.

Editando la líneas de comandos:
– La secuencia de edición EMACS-stye es soportada por la cli:
Ctrl+b: mueve el cursor a la izquierda un caracter.
Ctrl+a: mueve el cursor al principio de la línea de comandos.
Ctrl+f: mueve el cursor a la derecha un caracter.
Ctrl+e: mueve el cursor al final de la línea de comandos.
Delete y Backspace: borra el caracter antes del cursor.
Ctrl+d: borra el caracter sobre el cursor.
Ctrl+k: borra desde the cursor al final de la línea.
Ctrl+u: borra todos los caracteres y niega el comando actual.
Ctrl+w: borra la palabra entera a la izquierda del cursor.
Ctrl+l: re-dibuja la línea actual.
Ctrl+p, Ctrl+n: Repite el comando previo y el siguiente en el history, respectivamente.
Ctrl+d: borra la palabra a la derecha del cursor.
Esc+b: mueve el cursor atrás una palabra sin borrar.
Esc+f: mueve el cursor adelante una palabra sin borrar.

Usando | (Pipe):
Utilizar pipe para filtrar y manipular la salida de comandos. Posibles argumentos:
count: cuenta la cantidad de ocurrencias.
display: muestra información adicional.
except: mostrar solo el texto que no matchea con un objetivo.
find: buscar por primeras ocurrencias de un objetivo.
hold: mantener el texto sin salir el promt —More—
last: muestra solo el final de la salida.
match: mostrar solo el texto que matchea un objetivo.
no-more: no paginar la salida.
request: realiza solicitudes a nivel del sistema.
resolve: resuelve la ip.
save: guardar la salida de un archivo de texto.
trim: Trim el número específico de números desde el comienzo de la línea.

Configuración Activa vs. Candidata:
Batch configuration changes:
– Los cambios de configuración del JUNOS OSno oman efecto inmediatamente. El diseño permite agrupar y aplicar múltiples cambios de configuración en un solo dispositivo.
Active configuration:
– Es la configuración que está activa y operando en el sistema, y es la configuración que el sistema carga cuando inicia.
Configuración Candidata:
– La configuración candidata es temporal y podría convertirse posiblemente en la configuración activa. La configuración candidata puede convertirse en la activa aplicando la configuración.

Tiempo de vida de la configuración: Usar el comando «configure», causa que sea creada una configuración candidata, la cual parte con el contenido de la configuración activa. Para que la configuración candidata se vuelva activa se deben aplicar los cambios. Fácilmente se puede deshacer una configuración recuperando una configuración previa mdiante el comando «rollback n». El OS de Junos mantiene un histórico de configuración guardando la configuración active previa al cambio. El software guarda un máximo de 50, incluyendo la activa, que es conocida como rollback0. Si es realizado un rollback, se debe tener en cuenta que no se aplicará hasta no ejecutar el comando «commit».

Ingresando al modo Configuración:
– Ingresar el comando «configure», nos deja en dicho modo, indicado por el caracter «#».
– Utilizando el comando «configure exclusive», excluirá a otros usuarios de editar la configuración.
– Utilizando el comando «configure private», permite a otros usuarios editar la copia de configuración candidata. En este modo de configuración, cualquier cambio no aplicado es descartado cuando el usuario sale de este modo. Si dos usuarios realizan cambios, el primer usuario que aplica la configuración tendrá éxito, y el segundo usuario será notificado con una advertencia; y deberá aplicar una segunda vez este comando para aplicar los cambios.

Comandos Jerárquicos:
Junos OS agrupa, organiza, los comandos en una estructura jerárquica similar a los directorios de Windows y Unix, agrupando información relacionada.

Modos de Configuración Jerárquica:
Utiliza el comando set para modificar la configuración candidata, y luego utiliza el comando show para visualizar la misma. Ambos comandos están relacionados en la misma configuración jerárquica.

Para poder movernos entre estos niveles de jerarquía podemos utilizar los siguientes comandos:
edit: funciona como el comando «cd».
up: mueve a nu nivel superior.
up n: mueve «n» niveles arriba.
top: mueve al nivel superior de la jerarquía.
exit: mueve al nivel previo de jerarquía, o sale del modo configuración.

Editando la Configuración:

– Agregar Configuración: Utiliza el comando «set» para agregar configuración. Ej: ingreso en modo configuración y ejecuto «set ftp«, esto habilitará el servicio ftp. Lo podemos verificar ejecutando «show» para ver la configuración candidata.

– Borrar Configuración: Utiliza el comando delete para borrar configuración. Ej: ingreso en modo configuración y ejecuto «show» para ver los servicio habilitados, luego ejecuto «delete telnet» y vuelvo a verificar que fue borrado el servicio de la configuración candidata. Si queremos eliminar más de un elemento podemos utilizar le comando wildcard para esto,
Ej: wildcard delete interfaces ge-1/*, y borrará las inrerfaces ge-1/0/0 y ge-1/0/1, solicitando confirmación.

– Activar o desactivar una configuración: Como complemento al borrado de configuración, podemos considerar el uso del comando «deactivate» para causa que la configuración específica dentro de esta jerarquía, sea ignorada, reteniendo la configuración original. Ingresando el comando «active«, para que la configuración tenga efecto.
Ej: deactivate interace ge-0/0/10 para ignorar los cambios realizados.

– Comandos útiles para los comandos de configuración:
«rename«: renombrar un comando de configuración. Ej. rename interface ge-0/0/10 to ge-0/0/11.
«replace pattern«: reemplazar un elemento de configuración por otro. Ej. replace pattern ge-0/0/10 with ge-0/0/11.
«copy«: copiar un elemento de configuración a otro. Ej. copy interface ge-0/0/10 to ge-0/0/11.

Ejecutar «?» en modo configuración:
activate: remueve la bandera «inactivo» de un elemento de configuración.
annotate: agregar un comentario al elemento de configuración. Ej. annotate name-server «adding new name server».
commit: aplicar los cambios de configuración actuales.
copy: copiar la configuración de un elemento o un elemento.
deactivate: agrega la bandera de «inactivo» a un elemento de configuración.
edit: edita un sub-elemento de configuración.
exit: salida de este nivel.
extension: operación de extensión.
help: provee información de ayuda.
insert: inserta un nuevo elemento de orden de datos. Ej. inserte term «three» before term «two».
loda: carga una configuración de un archivo ascii.
quit: salida de este nivel.
rename: renombra un elemento.
replace: reemplaza un string de caracteres en la configuración.
rollback: vuelve a una configuración previa.
run: corre un comando en modo operación.
save: guarda la configuración a un archivo adcii.
set: configura un parámetro.
show: muestra un parámetro.
status: muestra los usuarios que están editando la configuración.
top: salida al nivel superior.
wildcard: operaciones con wildcard.

Sin importar el metodo o comando para actualizar el archivo de configuración, debe ingresar el comando «commit» para activar los cambios.

Visualizando la Configuración:
– Podemos ver la porción de configuración que nos concierne desde el nivel más alto de la jerarquía:
show system services – nos desplegará los servicios configurados.
edit system services, y luego  show – una vez que ingresamos en el sub-modo «system services», ejecutamos el comando «show» y nos desplegará únicamente la configuración a partir de este nivel de jerarquía.
– Si queremos buscar en toda la configuración podemos usar pipe. Ej: desde el nivel más alto de jerarquía dentro del modo configuración ejecutamos «show | dispaly set», y nos desplegará las líneas de configuración que contienen el string set.

Aplicando la Configuración:
– Utilice el comando «commit» para activar los cambios de configuración.
Ej. user@router# commit
commit complete.

Si está instalado múltiples REs (Routing Engines), utilice le comando commit synchronize para activar y sincronizar la configuración en más de un RE. Si el usuario está usando el modo de configuración con la opción «configure private«, requiere que el comando «commit» sea ejecutado en el nivel más alto de jerarquía.

– Utilice el comando «check to confirm syntax«. En caso de detectar un error desplegará lo siguiente Ej:
user@router# commit check

error: configuration check-out failed

– Utilice el comando «commit confirmed» para activar una configuración temporalmente:
user@router# commit confirmed
commit confirmed will be automatically rolled back in 10 minutes unless confirmed
commit compete

Si no es confirmado dentro de el tiempo especificado, el sistema realizará una secuencia «rollback 1, commit» en su lugar. El rango de tiempo puede ser modificado de 1 a 65535 minutos.

– Utilice el comando «commit at» para agendar la activación futura de una configuración.
Ej. commit at 21:00:00
configuration check succeeds

– Utilice el comando «commit comment» para agregar comentarios.
Ej. commit comment «changed OSFP configuration»
commit complete

– Utilice el comando «commit and-quit» para ahorrar tiempo.
Ej. commit and-quit
commite complete
Exiting configuration mode

– Utilice el comando «compare» para comparar configuración candidata con activa.
Ej. show | compare
+ ftp;
– telnet;
indica que se agregó el servicio ftp y se quitó telnet.

Compare configuración archivada e histórica.
Ej. show configuration | compare rollback «number»
show configuration | compare «filename»

Compare archivos arbitrarios.
Ej. file compare files «filename_1» «filename_2»

– Para restaurar una configuración previa utilice le comando «rollback«.
Ej. rollback 1 – carga la configuración previa que estuvo activa.
rollback 0 – resetea la configuración candidata a la configuración activa actualmente.
rollback «n» – para referirse a una configuración previa, por defecto se guardan hasta 50 configuraciones previas. Se puede modificar este número mediante el comando «set max-configurations-on-flash ?».
rollback ? – muestra todas la versiones previas y sus fechas de creación.

Modifique la configuración candidata y no olvide aplicar «commit» para aplicar los cambios.

– Para guardar los archivos de configuración utilice el comando «save«.
Ej. save «filename»
Wrote 101 lines of configuration to ‘filename’

Por defecto guarda la configuración al directorio de trabajo del usuario actual, ej. «/var/home/nancy».

También se puede especificar una ruta de directorio completa o una URL (FTP – ftp://user:password@router/path/filename, y SCP scp://user@router/path/filename).

– Utilice el comando «load» para cargar la configuración desde un archivo.
Ej. load ? – para desplegar todas las opciones que completan este comando:
factory-default: –
merge: Migra el contenido con la configuración existente.
override patch: Carga o borra variables de configuración basadas en el archivo de configuración especificado.
replace: Remplaza la configuración.
set: Ejecuta los comandos set en la configuración existente.
update: Actualiza la configuración actual.

Usar «terminal» como entrada para capturar la configuración.
Ej. load (replace|merge|override) terminal

Usar «relative» para cargar la configuración desde la jerarquía de configuración actual.
Ej. load (replace|merge) (filename|terminal) relative.

Debemos usar «commit» para aplicar los cambios de configuración candidatos a la configuración activa.

– Usando el comando «run«.
Ej. run ping 1.1.1.1 cont 1
Ejecuta el comando «ping», incluso dentro de sub-modos de configuración y otros niveles de jerarquía.

 

En el siguiente post (Configuración Inicial en Junos OS) publicaremos los pasos y comandos necesarios para realizar una configuración inical de un dispositivo que corre Junos OS.

 
Home Juniper Junos OS Introducción a Junos OS de Juniper