Examinando la configuración
El archivo de configuración de JunOS está bien organizado en una estructura jerárquica, una vez que comprendes su estructura y sus distintos niveles, es fácil navegar por el archivo y encontrar exactamente la parte que deseas examinar o cambiar sin que te distraigan partes que no está interesado en ese momento.
Para empezar nos autenticamos en el router:
Juniper5 (ttyd0) login: jeff Password: --- JUNOS 8.5R1.13 built 2007-11-14 17:54:24 UTC jeff@Juniper5>
El prompt muestra el nombre de usuario (Jeff) y el nombre del router (Juniper5). El router está en modo de operativo (operational mode) , a partir del cual puedes realizar las tareas operativas, tales como mostrar estados y bases de datos del router, traceroute y ping, telnet y ssh, reiniciar los procesos del sistema - la mayoría de los comandos que necesitas para el seguimiento y la localización de problemas del sistema. El modo operativo (operational mode) JunOS es equivalente al del IOS modo EXEC; de hecho, las indicaciones de ambos es un signo "mayor que" (>).
Al igual que ocurre con IOS, el signo de interrogante (?) es tu amigo, es la principal herramienta de información cuando no puedes recordar la siguiente parámetro en una cadena de comandos, o simplemente quieres ver qué opciones están disponibles. Puedes usar el signo de interrogación (?) para ver todos los comandos disponibles en el modo operativo:
jeff@Juniper5> ?
Possible completions:
clear Clear information in the system
configure Manipulate software configuration information
diagnose Invoke diagnose script|
file Perform file operations
help Provide help information
monitor Show real-time debugging information
mtrace Trace multicast path from source to receiver
ping Ping remote target
quit Exit the management session
request Make system-level requests
restart Restart software process
set Set CLI properties, date/time, craft interface message
show Show system information
ssh Start secure shell on another host
start Start shell
telnet Telnet to another host
test Perform diagnostic debugging
traceroute Trace route to remote host
Para hacer cambios de configuración, entra en modo de configuración mediante la introducción del comando configure:
jeff@Juniper5> configure Entering configuration mode [edit]
jeff@Juniper5#
El modo de configuración JunOS es equivalente a la IOS EXEC privilegiado o "enable". Aquí el prompt ha cambiado de '>' a '#', una vez más la misma manera que el IOS hace después de que se entre el comando enable.
Otra característica del modo de configuración JunOS es el banner [editar] justo por encima del prompt. Podemos movernos dentro de la jerarquía de configuración para observar o modificar sólo la parte del archivo que nos interesa; el banner indica con precisión dónde nos encontramos dentro de la jerarquía. Cuando el banner sólo muestra [edit], estamos en la parte superior de la jerarquía. Así por ejemplo, si escribimos show en este nivel sin modificadores, JunOS muestra toda la configuración.
Utilizando el signo de interrogación con el show, se puede ver la parte superior los niveles de la jerarquía de configuración:
[edit]
jeff@Juniper5# ?
Possible completions:
<[Enter]> Execute this command
activate Remove the inactive tag from a statement
annotate Annotate the statement with a comment
commit Commit current set of changes
copy Copy a statement
deactivate Add the inactive tag to a statement
delete Delete a data element
edit Edit a sub-element
exit Exit from this level
help Provide help information
insert Insert a new ordered data element
load Load configuration from ASCII file
quit Quit from this level
rename Rename a statement
replace Replace character string in configuration
rollback Roll back to previous committed configuration
run Run an operational-mode command
save Save configuration to ASCII file
set Set a parameter
show Show a parameter
status Show users currently editing configuration
top Exit to top level of configuration
up Exit one level of configuration
wildcard Wildcard operations
</font>
Las etiquetas que acompañan a esta lista, explican los niveles bastante bien. Por ejemplo, todas las interfaces se configuran dentro del nivel interfaces, todos los protocolos se configuran dentro del nivel protocols, y todas las políticas de enrutamiento se configuran dentro del nivel policy-options.
Bajo cada uno de estos niveles superiores hay muchos sub-niveles. Por ejemplo, dentro de protocols se puede encontrar BGP, OSPFv2, OSPFv3, MPLS, RSVP, y así sucesivamente. Y en relación con cada uno de ellos se encuentran más sub-niveles específicos para el protocolo. Bajo OSPF, por ejemplo, se encuentra un nivel para configuraciones de las areas y luego bajo cada nivel se encuentra un nivel para especificar las interfaces que están en el área.
La estructura jerárquica de la configuración permite concentrarse sólo en la parte de la configuración en la que se está interesado. Por ejemplo, supongamos que se desea mirar sólo la parte BGP de la configuración. show protocols bgp te muestra toda la configuración de BGP:
[edit]
jeffr@Juniper5# show protocols bgp
local-address 192.168.50.10;
local-as 65503;
group CustomerX {
export XPolicy;
peer-as 65510;
neighbor 192.168.1.1 {
authentication-key "$9$-Ud2aji.5z6qm"; ## SECRET-DATA
}
neighbor 192.168.1.5 {
authentication-key "$9$JiZHmzF/t0I69ev"; ## SECRET-DATA
}
neighbor 192.168.1.10 {
authentication-key "$9$mPF/u0Icrv1Rbs"; ## SECRET-DATA
}
}
group CustomerY {
neighbor 192.168.10.20;
neighbor 192.168.10.30;
neighbor 192.168.10.40;
}
group CustomerZ {
neighbor 192.168.20.100;
}
Se puede ver en esta configuración que existe una dirección local (192.168.50.10) a partir de la cual todas las sesiones de BGP TCP se originan, el número loca AS es 65503, y hay tres grupos de peers: CustomerX, CustomerY, y CustomerZ. CustomerX tiene una política de enrutamiento saliente (export) que llamad XPolicy, y debido a que el número AS para ese grupo (65510) es diferente del número AS local, sabemos que son vecinos EBGP. Hay tres vecinos configurados bajo este grupo, todos los cuales son autenticados con contraseñas individuales. El peer CustomerY, con tres vecinos, y CustomerZ, con un vecino, son IBGP porque no tienen especificados números AS diferentes, y no se configura la autenticación.
Supongamos que, en lugar de toda la configuración de BGP, usted estamos interesados sólo en la configuración del vecino 192.168.1.5 en el grupo de CustomerX. podemos decir al JunOS que muestre sólo la parte del archivo de configuración simplemente siendo más explícito con el comando show:
[edit]
jeff@Juniper5# show protocols bgp group CustomerX neighbor 192.168.1.5
authentication-key "$9$JiZHmzF/t0I69ev"; ## SECRET-DATA
Por supuesto, si nos encontramos en el modo de configuración probablemente queramos hacer algo más que ver partes de la configuración; queremos hacer cambios. Utilizando el signo de interrogación (?), mientras se está en el modo de configuración, podemos ver las diferentes acciones que podemos tomar:
[edit]
jeff@Juniper5# ?
Possible completions:
<[Enter]> Execute this command
activate Remove the inactive tag from a statement
annotate Annotate the statement with a comment
commit Commit current set of changes
copy Copy a statement
deactivate Add the inactive tag to a statement
delete Delete a data element
edit Edit a sub-element
exit Exit from this level
help Provide help information
insert Insert a new ordered data element
load Load configuration from ASCII file
quit Quit from this level
rename Rename a statement
replace Replace character string in configuration
rollback Roll back to previous committed configuration
run Run an operational-mode command
save Save configuration to ASCII file
set Set a parameter
show Show a parameter
status Show users currently editing configuration
top Exit to top level of configuration
up Exit one level of configuration
wildcard Wildcard operations
Queremos añadir algunos elementos a la configuración, y el comando para hacer eso es set. Digamos que queremos añadir la interfaz fe-0/0/0 al area 5 del OSPF. Usando set, especificamos cada nivel a través de la jerarquía hasta llegar al punto -bajo el nivel del área 5- en donde la interfaz se añadirá:
Por cierto, si OSPF no está activado o el área 5 no existe aún, el mismo comando habilitará (enable) el protocolo y creará el área 5, además de añdir la interfaz al área.
[edit]
jeff@Juniper5# set protocols ospf area 5 interface fe-0/0/0
Otro forma de hacerlo es primer movernos al nivel que desea configurar, utilizando el comando edit, y a continuación hacer los cambios que desee:
[edit]
jeff@Juniper5# edit protocols ospf area 5
[edit protocols ospf area 0.0.0.5]
jeff@Juniper5# set interface fe-0/0/1
Notese aquí que después de introducir edit protocols ospf area 5, el banner encima del prompt ha cambiado para mostrar dónde nos encontramos en la jerarquía -siempre sabemos dónde estamos. Luego utilizamos el comando set para añadir la interfaz fe-0/0/1 en ese nivel. No es necesario especificar toda la jerarquía esta vez, porque ya estamos en el nivel donde queremos hacer el cambio.
Estos dos enfoques dan la flexibilidad para administrar una configuración de la manera más conveniente. Si sólo vamos a añadir sólo una o dos instrucciones a una configuración, por lo general es más fácil hacerlo desde el nivel superior, especificando la ruta completa hasta el nivel que desea cambiar. Si se está haciendo grandes cambios a un nivel determinado, por lo general es más fácil ir a ese nivel, primero usando el comando edit, y a continuación, hacer los cambios directamente sin tener que especificar la ruta completa con cada comando.
Aunque edit lleva al nivel específico en el que desea trabajar, up desplaza hasta un nivel superior (anterior) en la jerarquía. Por ejemplo, supongamos que a partir de donde nos encontramos en el área OSPF 5, queremos pasar al nivel OSPF:
[edit protocols ospf area 0.0.0.5] jeff@Juniper5# up [edit protocols ospf] jeff@Juniper5# show area 0.0.0.5 { interface fe-0/0/0.0; interface fe-0/0/1.0; }
Se puede ver que el banner encima del prompt ha cambiado después de usar el comando up, diciéndonos dónde nos encontra.mos Un show de cualquier nivel, muestra toda la configuración en ese nivel - en este caso, muestra la totalidad de la configuración de OSPF.
Si se quiere saltar de nuevo a la parte superior de la jerarquía desde cualquier nivel, utilice el comando top:
[edit protocols ospf]
jeff@Juniper5# top
[edit]
jeff@Juniper5#
En este ejemplo, se podría también haber llegado desde el nivel existente al inicio usando el comando up dos veces: [edit protocols ospf] => up => [edit protocols] => up => [edit]. Usando los comandos edit, up y top, podemos movernos rápidamente a cualquier lugar donde necesitemos estar en el archivo de configuración para realizar operaciones.
Además del comando set, hay algunos importantes comandos más para cambiar la configuración. En aras de espacio no se va a extender, pero por lo menos si nombrarlos:
Una de las más importantes diferencias operativas entre IOS y JunOS es que, a diferencia de IOS, cuando se introduzca una nueva declaración en la configuración JunOS no activa inmediatamente en el router. Se pueden hacer tantos cambios como se quiera, inspeccionar los cambios, y activarlos sólo cuando se diga explícitamente al router que las acepte.
Interesante artículo (aquí la versión original) de Jeff Doyle que me ha gustado, por lo que pidiendole permiso, he decidido traducirlo y publicarlo.