25 Agosto 2008 · Etiquetas: Juniper, JunOS, Networking
Seguimos con otro interesante post de Jeff Doyle sobre JunOS (ver original).
He hablado en el artículo anterior (original) cómo las configuraciones candidatas, aplicar los cambios de forma explícita, y rollbacks aumentan la fiabilidad de los cambios de configuración en JUNOS y reducen el riesgo de cometer errores de configuración. Si hay un error que se pueda hacer, es probable que se cometa (Murphy).
Otra característica interesante para los mecanógrafos klutzy (algo así como patanes) como yo es que en lugar de esperar hasta que se pulse Enter al final de una declaración de configuración para comprobar errores de sintaxis, JunOS comprueba la sintaxis palabra por palabra, es decir, cada vez que se teclea en una palabra en una línea y se pulsa la barra espaciadora, se comprueba la sintaxis.
También permite, como el IOS, escribir el número mínimo de letras de un comando que se identifican de forma única. Por ejemplo, si quieres ver en la tabla de enrutamiento unicast en IOS puedes escribir:
sh ip rou
IOS entenderá esto como:
show ip route
JunOS hace lo mismo, con excepción de que cada vez que se pulsa la barra espaciadora, además de comprobar de inmediato la sintaxis, completa el comando. Así por ejemplo, el comando equivalente de JunOS para mostrar la tabla de enrutamiento unicast es la siguiente:
show route
Puedo escribir sh, y tan pronto como pulso la barra espaciadora aparece show. Entonces tecleo rou, y cuando pulso la barra espaciadora muestra route.
En el siguiente ejemplo, estoy en modo configuración. Quiero hacer un cambio en la configuración del chasis, por lo que escribo:
[edit]
jeff@Juniper5# set cha
cuando pulso la barra espaciadora el comando se completa:
[edit]
jeff@Juniper5# set chassis
Si pulso enter en este punto, JunOS me dice que no tiene suficiente información:
[edit]
jeff@Juniper5# set chassis
^
missing argument.
Esto es casi el mismo comportamiento que IOS muestra cuando la línea de comandos está incompleta. Y como con IOS, el signo de interrogación (?) en JunOS es su principal herramienta de referencia:
[edit]
jeff@Juniper5# set chassis ?
Possible completions:
> alarm Global alarm settings
+ apply-groups Groups from which to inherit configuration data
+ apply-groups-except Don't inherit configuration data from these groups
> config-button Config button behavior settings
craft-lockout Disable craft interface input
> fpc Flexible PIC Concentrator parameters
> routing-engine Routing Engine settings
[edit]
jeff@Juniper5# set chassis
Tener en cuenta que al final de los posibles parametros, la línea de comando que estaba escrita se teclea de nuevo, lista para elegir la siguiente palabra en la línea. Añado “c” como una abreviatura de la siguiente palabra, pero JunOS se queja cuando pulso la barra espaciadora, porque “c” podría representar varias palabras; JunOS no sabe lo que quiero, y me dice que posibles palabras son las siguientes:
[edit]
jeff@Juniper5# set chassis c
^
'c' is ambiguous.
Possible completions:
> config-button Config button behavior settings
craft-lockout Disable craft interface input
jeff@Juniper5# set chassis c
Bien, quiero el comando craft-lockout. pero lo tecleo mal:
jeff@Juniper5# set chassis crof
^
syntax error.
jeff@Juniper5# set chassis crof
Pero ahora tengo un momento de duda. La breve lista de opciones dice que este comando deshabilita la interfaz de entrada de craft. ¿Qué significa eso? ¿Es eso lo que realmente quiero hacer? Necesito ayuda. Resulta que help es un comando muy útil.
Si yo tecleo help reference y especifico el comando que deseo utilizar, se muestra una breve referencia:
[edit]
jeff@Juniper5# help reference chassis craft-lockout
craft-lockout
Syntax
craft-lockout;
Hierarchy Level
[edit chassis]
Release Information
Statement introduced in JUNOS Release 8.1.
Description
Disable the physical operation of the craft interface front panel.
Usage Guidelines
See "Disabling Physical Operation of the Craft Interface".
Required Privilege Level
interface--To view this statement in the configuration.
interface-control--To add this statement to the configuration.
[edit]
jeff@Juniper5#
Esto me dice sobre el uso, pero realmente quiero más de una explicación de lo que significa. Puedo conseguir más mediante el uso de help topic:
[edit]
jeff@Juniper5# help topic chassis craft-lockout
Disabling Physical Operation of the Craft Interface
You can disable the physical operation of the craft interface front panel
on the routing platform. When you disable the operation of the craft
interface, the buttons on the front panel, such as the alarm cutoff
button, no longer function. To disable the craft interface operation,
include the craft-lockout statement at the [edit chassis] hierarchy level:
[edit chassis]
craft-lockout;
For more information about how to configure the craft interface, see
Configuring Conditions That Trigger Alarms.
[edit]
jeff@Juniper5#
Eso me dice todo lo que necesito saber acerca de la configuración de la función craft-lockout del chasis. Pero ¿ Si lo que quiero saber es algo más general sobre la palabra clave chasis ? Para esto, puedo utilizar help apropos, que me dice de todos los diferentes contextos en virtud de la cual puedo referirme a chasis:
[edit]
jeff@Juniper5# help apropos chassis
set system location lcc
Line-card chassis location
set system processes chassis-control
Chassis control process
set system processes chassis-control disable
Disable chassis control process
set system processes chassis-control failover
How to handle failure of chassis control process
set chassis
Chassis configuration
set chassis fpc pic shdsl
SHDSL chassis configuration
set chassis disable-power-management
Disable Power Management in this chassis
set chassis network-services
Chassis network services configuration
set chassis lcc
Line-card chassis configuration
set chassis lcc fpc pic shdsl
SHDSL chassis configuration
set snmp trap-group categories chassis
Chassis or environment notifications
set class-of-service interfaces scheduler-map-chassis
Scheduler map applied to chassis queues (not PIC queues)
set class-of-service traceoptions flag hardware-database
Trace chassis hardware database related processing
[edit]
jeff@Juniper5#
El comando help apropos sólo muestra los contextos que son relevantes para el nivel de la jerarquía de configuración en que te encuentras actualmente. Si tecleara help apropos interfaz en la parte superior [top], vería una lista muy larga de cada contexto en el que puedo establecer una opción de interfaz. En el siguiente ejemplo, paso al nivel de configuración en la que puedo configurar el área 0 de OSPF. Tecleando help apropos interfaz a ese nivel sólo muestra los contextos en los que puedo configurar una interfaz para el área 0 de OSPF:
[edit]
jeff@Juniper5# edit protocols ospf area 0
[edit protocols ospf area 0.0.0.0]
jeff@Juniper5# help apropos interface
set virtual-link neighbor-id transit-area
demand-circuit
Interface functions as a demand circuit
set sham-link-remote
demand-circuit
Interface functions as a demand circuit
set interface
Include an interface in this area
set interface
Interface name
set interface disable
Disable OSPF on this interface
set interface interface-type
Type of interface
set interface metric
Interface metric
set interface demand-circuit
Interface functions as a demand circuit
set interface dynamic-neighbors
Learn neighbors dynamically on a p2mp interface
set interface poll-interval
Poll interval for NBMA interfaces
set label-switched-path metric
Interface metric
set peer-interface
Configuration for peer interface
set peer-interface
Name of peer interface
set peer-interface
demand-circuit
Interface functions as a demand circuit
[edit protocols ospf area 0.0.0.0]
jeff@Juniper5#
Si tengo al menos una idea general de lo que quiero lograr, puedo usar el signo de interrogación (?) y el comando help para hacer cambios en la configuración del JunOS, sin tener que ir a los manuales - un conjunto abreviado de los manuales están disponibles para el CLI .
9 Agosto 2008 · Etiquetas: Juniper, JunOS, Networking
Siguiendo con los magníficos artículos de Jeff Doyle sobre el Juniper y JunOS aquí tenéis la traducción de otro artículo más (original aquí).
Una de mis quejas durante mucho tiempo acerca de IOS es que si se escribe un nuevo comando en el CLI y pulse Enter, el comando de inmediato se convierte en activo en el router. Para alguien propenso a error, como yo (Jeff), este es un gran riesgo. Y dado que la mayoría de problemas de red se deben a un error humano en lugar de fallos de hardware y software, es un riesgo para todos.
Esto también puede ser un problema cuando se está haciendo cambios de configuración. Al tener estos cambios surtan efecto un comando cada vez, puede introducir todo tipo de condiciones transitorias.
La configuración candidata y aplicación de la configuración explicitamente
Esto lleva, por el contrario, a uno de mis características favoritas de JunOS: Cuando se hace un cambio de configuración, el cambio no surtirá efecto de inmediato. En lugar de ello, va a un archivo de configuración candidata. Se puede añadir, borrar y/o cambiar cuanto desee en la configuración, y ninguno de ellos serán activos en el router hasta que se confirme (commit). Este comando (commit) hace que la configuración candidata se convierta en la configuración activa.
La configuración candidata y la confirmación explícita (de la configuración) ayuda enormemente a reducir el número de simples errores humanos que afectan día a día a las operaciones de red. Se pueden hacer todos los cambios, comprobar como tantas veces como desee durante el proceso de configuración, y sólo se aplican cuando esté listo y estemos seguros de los cambios de configuración se ven correctos.
Rollback (marcha atrás)
Por supuesto, aún existe la posibilidad de que después de aplicar la configuración candidata el resultado no es lo que esperaba, y que desea volver a una configuración anterior. Se puede hacer eso en JUNOS ya que cuando se hace una confirmación y la configuración candidata se convierte en la configuración activa, la anterior configuración se guarda en el disco duro en el router.
Así que si quiere volver a una configuración anterior, puede introducir el comando rollback 1 y la más configuración reciente guardada se convierte en la configuración candidata. A continuación, se puede hacer que la configuración anterior sea activa de nuevo mediante la introducción del comando commit.
JUNOS guarda los últimos 49 archivos de configuración. Cuando se confirma (commit) una nueva configuración, la configuración activa anterior se guarda como juniper.conf.1. Lo que fuera juniper.conf.1 se convierte en juniper.conf.2, lo que fuera juniper.conf.2 se convierte en juniper.conf.3, y así sucesivamente. Así que si quiere volver a alguno configuración más antigua que la guardada más reciente, puede hacerlo. Por ejemplo, si introduce rollback 3, juniper.conf.3 - la configuración que estaba activa antes de las tres últimas confirmaciones (commit) - se carga como la nueva configuración candidata.
Aplicar la configuración confirmando (commit confirmed)
Supongamos que, a pesar de todos los esfuerzos para asegurar que la nueva configuración es correcta antes de aplicarla, algo se pasa por alto y cuando se aplica, que se queda el router bloqueado.
En lugar de aplicar (commit), se puede hacer la configuración candidata activa con este comando commit confirmed. Con este comando, el router espera 10 minutos para una segunda confirmación. Si no recibe confirmación dentro de los 10 minutos, el router automáticamente hace un rollback y se aplica, de manera que la configuración anterior se activa de nuevo.
El comando commit confirmed puede ser un salvavidas, recomiendo que se tenga el hábito de utilizarlo en vez de commit en todos los casos.
Puede cambiar el valor de tiempo por defecto que JUNOS espera para aplicar una confirmación entre 1 y 65535 minutos. Si, por ejemplo, se desea que el router espere tan solo 3 minutos para una confirmación, se puede introducir commit confirmed 3.
Guardar y cargar (save y load)
La configuración candidata es también una gran característica para hacer las ventanas de mantenimiento vayan más rápidas. Imaginamos que necesitamos hacer cambios a 10 routers con un mantenimiento programado a las 2 de la madrugada. Podemos hacer los cambios antes de lo previsto en el archivo de configuración candidata y, a continuación, guardar el archivo bajo cualquier nombre que se desee, ya sea en el router el disco duro o en un servidor externo.
Cuando llegue la hora de llevar a cabo el mantenimiento, puede cargar el archivo de configuración de vuelta al fichero de configuración candidata y confirmar.
Por ejemplo, si se realiza un cambio de la configuración pre-mantenimiento y se desea guardar como Juniper3_10August_Change, se introduce el comando save Juniper3_10August_Change.
Después de salvar, es una buena idea hacer un rollback 0. Esto causa una copia de la configuración actualmente activa (juniper.conf.0) para ser la configuración candidata, evitando así una situación en la que alguien más podría entrar en el router y aplicar estos cambios antes de la hora.
Ten en cuenta que si nos encontramos en la parte superior de la jerarquía de configuración, indicado por [edit], se guarda toda la configuración. Si se está en algún nivel inferior al salvar, sólo se guarda la parte de la configuración a ese nivel. Por ejemplo, si se está en [edit protocols bgp], sólo se guarda la configuración de BGP.
Cuando se esté listo para hacer los cambios en la configuración permanente, se carga la configuración guardada a la configuración candidata con el comando load. Este comando tiene varias opciones, dependiendo de cómo se desea utilizar el archivo que se carga:
- load override sustituye completamente la configuración actual candidata con el archivo que está cargando. Por lo tanto, si ha guardado una configuración completa, esta es la opción de usar.
- load merge añade el archivo guardado a la configuración candidata actual. Esto es útil si va a añadir nuevas secciones de configuración, por ejemplo, si añade una configuración BGP a [edit protocolo], donde no había ninguna configuración antes de BGP.
- load update se compara la configuración candidato y el archivo que se carga, y sólo cambia la parte de la configuración candidata que sean diferentes de la nueva configuración. Se podría utilizar esto, por ejemplo, si existe una configuración de BGP y el archivo que va a cargar hace cambios de alguna manera.
- load replace busca las etiquetas que se han añadido al fichero que se carga, y sustituye las partes de la configuración candidata con todo lo que se especifica después de la etiqueta. Esto es útil cuando se desea más control sobre exactamente qué se está cambiado.
Después de la operación de carga, se puede comprobar la configuración candidata nueva para asegurarse que muestra los cambios que se desean y, a continuación se aplican (commit).
Hay un enfoque alternativo a la operación que se acaba de describir. Se puede hacer cambios a la configuración candidato y luego usar el comando commit, especificando la hora y el minuto más tarde el mismo día, o especificar una fecha posterior, hora y minuto. Por ejemplo, se podría aplicar commit 2008-09-21 02:30:00 y no se aplicaría hasta las 2:30 AM del 21 de septiembre de 2008 (suponiendo que el tiempo es en el futuro, de acuerdo con la fecha y hora del router).
Personalmente no me gusta este comando, ya que deja demasiado a la automatización. Prefiero grabar y cargar (save y load), lo que da un mayor control de la operación
1 Agosto 2008 · Etiquetas: Juniper, JunOS
Hoy he leído un interesante artículo (aquí la versión original) de Jeff Doyle en su sección de la web http://www.networkworld.com/community/doyle que me ha gustado y he decidido traducirlo y publicarlo.
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# show ?
Possible completions:
<[Enter]> Execute this command
> access Network access configuration
> accounting-options Accounting data configuration
> applications Define applications by protocol characteristics
+ apply-groups Groups from which to inherit configuration data
> chassis Chassis configuration
> class-of-service Class-of-service configuration
> event-options Event processing configuration
> firewall Define a firewall configuration
> forwarding-options Configure options to control packet forwarding
> groups Configuration groups
> interfaces Interface configuration
> policy-options Routing policy option configuration
> protocols Routing protocol configuration
> routing-instances Routing instance configuration
> routing-options Protocol-independent routing option configuration
> security Security configuration
> services Service PIC applications settings
> snmp Simple Network Management Protocol configuration
> system System parameters
| Pipe through a command
|
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:
- delete es lo contrario de set, elimina las declaraciones de la configuración.
- replace se utiliza para sustituir una declaración con otra declaración.
- insert se utiliza cuando se desea añadir una declaración dentro de un elemento ordenado (como una lista de filtros) y no al final, como el comando set haría.
- deactivate se utiliza cuando se quiere hacer una declaración inactiva, pero no se quiere quitar la declaración de la configuración. Esto resulta muy práctico para temporalmente “apagar” algo que se tiene la intención de eventualmente dar marcha atrás.
- activate se utiliza para reactivar una declaración inactiva.
- annotate se utiliza para añadir un comentario a una declaración, lo que es muy útil para hacer que un complejo archivo de configuración sea más fácil de interpretar/leer.
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.
8 Enero 2008 · Etiquetas: Juniper, JunOS, Networking
Tener una copia de seguridad de la configuración del Junos es muy importante pero es aún más importante tenerla en un servidor remoto. El JunOS hace varias copia de seguridad en el propio sistema, para ser exactos 50 copias, la actual y las tres siguientes (1 a 3) en la Compact Flash (para tenerlas a mano rápidamente) y el resto (de la 4 a la 49) en el disco duro (para ahorrar espacio en la Compact Flash.
La actual y las tres siguientes las podemos ver:
user@router> file list /config [detail]
/config:
juniper.conf.1.gz
juniper.conf.2.gz
juniper.conf.3.gz
juniper.conf.gz
rescue.conf.gz
el resto:
user@rrouter> file list /var/db/config/ [detail]
/var/db/config/:
juniper.conf.10.gz
juniper.conf.11.gz
...
juniper.conf.48.gz
juniper.conf.49.gz
juniper.conf.5.gz
juniper.conf.6.gz
juniper.conf.7.gz
juniper.conf.8.gz
juniper.conf.9.gz
En ambos casos podemos usar el parámetro “detail”para ver en más detalle los atributos de los fichero, al más puro estilo unix.
Otra forma de obtener una copia de la configuración, esta vez fuera del router en un servidor remoto, es usando la siguiente instrucción desde el modo operacional:
file copy <fichero> <destination URL>
file copy /config/juniper.conf.gz server:nombre_fichero_configuración
file copy /config/juniper.conf.gz ftp://user:pass@server:nombre_fichero_configuración
El primero copia vía ssh y el segundo vía ftp.
Desde el modo configuración podemos guardar la configuración completa o una parte, según estemos en la raíz [edit] o en alguna sección concreta con lo cual SOLO guardará dicha sección completa.
Para guardar la configuración completa en modo configuración:
[edit]
user@router# save server:nombre_fichero_configuración
user@router# save ftp://user:pas@server:nombre_fichero_configuración
o Si solo queremos guardar por ejemplo la configuración de BGP:
[edit protocols bgp]
user@router# save server:nombre_fichero_configuración
user@router# save ftp://user:pas@server:nombre_fichero_configuración
Todos estos métodos son manuales , pero si queremos hacerlo de forma automáticamente tenemos 2 posibilidades. La primera es hacer una copia de la configuración cada vez que hagamos un “commit” (del tipo que sea) con lo cual siempre tendremos una copia en un servidor remoto con cada cambio realizado:
[edit]
user@router# set system archival configuration transfer-on-commit
user@router# set system archival configurationarchive-site ftp://user:pass@server:/directorio_donde_dejar_las_copias
El otro método es similar pero hace la copia cada un intervalo de tiempo especificado, ya se hayan hecho modificaciones o no, con lo cual podemos tener varias copias idénticas de la configuración por lo que se recomienda poner algún tipo de cron que rote las configuraciones o borre antiguas a menos que tengamos bastante espacio (aunque los ficheros no ocupan demasiado):
[edit]
user@router# set system archival configuration transfer-interva intervalo
user@router# set system archival configurationarchive-site ftp://user:pass@server:/directorio_donde_dejar_las_copias
intervalo puede ser desde 15 minutos hasta 2.880 minutos (48 horas) y se debe especificar en minutos.
NOTA: una gran desventaja de estos dos últimos métodos es que se debe usar el método de transferencia de FTP y por lo tanto la clave queda en la configuración sin cifrar por lo que es visible a simple vista.
Como método alternativo y ajeno a la configuración del JunOS es utilizar la heramienta libre de código abierto llamada RANCID muy utilizada para copias de seguridad de dispositivos de red de diersas marcas.
7 Diciembre 2007 · Etiquetas: Juniper, JunOS, Networking
Procedimiento para borrar o cambiar la cable de root del JunOS de un Juniper. Probado en la Serie M.
- Conectado el router Juniper vía consola, arrancar o reiniciar y una vez que aparezca el trexto:
Hit [Enter] to boot immediately, or any other key for command
Booting [kernel] in 9 seconds...
Pulsar la barra espaciadora para que aparezca el promtp.
- Arranca en modo single-user:
Type '?' for a list of commands, 'help' for more detailed help.
ok boot -s
- El router juniper arranca y al final aparecerá el texto siguiente donde pulsaremos ENTER:
Enter full pathname of shell or RETURN for /bin/sh:
- Ahora debemos montar los sistemas de ficheros virtuales (para JUNOS 5.4 y superior, no es necesarios montar elpaquete jbase sin embargo los otros paquete aún son necesarios montarlos):
NOTE: to go to multi-user operation, exit the single-user shell (with ^D)
# cd /packages
# ./mount.jbase
Mounted jbase package on /dev/vn1...
# ./mount.jkernel
Mounted jkernel package on /dev/vn2...
# ./mount.jroute
Mounted jroute package on /dev/vn3...
- Después entramos en modo de recuperación:
# /usr/libexec/ui/recovery-mode
- Una vez aparezca el prompt del CLI entramos en el modo de configuración y podemos hacer dos cosas o borrar o modificar la clave de autenticación de rooti (en el ejemplo se borra la clave):
root> configure
Entering configuration mode
[edit]
root# delete system root-authentication
- Pocedemos a aplicar los cambios para que surtan efecto y salimos del modo de configuración:
[edit]
root # commit
commit complete
[edit]
root@router# exit
Exiting configuration mode
- Salimos del router donde nos pedirá que reiniciemos el router:
root@router> exit
- Exit recovery mode and enter “y” when prompted to reboot the system:
Reboot the system? [y/n] y
Terminated
El sistema reinicia y la clave de root ya no está (o si la cambiamos es la que es válida).
Extraido de “http://juniper.cluepon.net/index.php/Password_recovery“, traducido libremente por The Evangelist.