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 .
19 Agosto 2008 · Etiquetas: Cisco, IOS, Networking
Una de las cosas que echaba en falta en el IOS al venir del JunOS es el backup de configuraciones (aunque tanto en JunOS como IOS uso Rancid) pero desde la versión 12.3 hay disponible un comando de IOS que permite hacer copia de seguridad de las configuraciones. El comando en cuestión es archive y aunque tiene varias opciones aquí solo voy a exponer algunas con varios ejemplos.
El único requerimiento mínimo es el camino donde se van a guardar las copiar de la configuración, que puede ser en el mismo router (flash) o fuera del mismo (usando HTTP, FTP, RCP, o TFTP), por supuesto la recomendación es guardar las configuraciones fuera del router por si falla la flash o el propio router en sí.
Para configurar sus opciones debemos entrar en el modo global de configuración en donde tenemos las siguientes opciones:
Router(config-archive)#?
Archive configuration commands:
default Set a command to its defaults
exit Exit from archive configuration mode
log Logging commands
maximum maximum number of backup copies
no Negate a command or set its defaults
path path for backups
rollback Rollback parameters
time-period Period of time in minutes to automatically archive the
running-config
write-memory Enable automatic backup generation during write memory
A destacar especialmente en entornos donde varias personas hacen modificaciones es la opción “write-memory” que genera una copia cada vez que se guarda la configuración con lo cual siempre que se haga cambios tendremos una copia aunque puede generar muchas copias si se producen muchos cambios constantemente, además también destacar “time-period” que hace una copia cada cierto tiempo (aunque para esto prefiero más Rancid) y “maximum” que limita el número de copias a realizar, aunque es recomendable realizar el control de borrado externamente o incluso borrar a mano cuando haya muchas copias, hoy en día un disco duro es muy barato y nunca se sabe cuando nos puede hacer falta una copia de hace tiempo.
Un pequeño ejemplo:
R0#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R0(config)#archive
R0(config-archive)#path disk0:R0
R0(config-archive)#wri
R0(config-archive)#write-memory
R0(config-archive)#end
Con esto conseguimos que cada vez que se guarde la configuración haga una copia en “disk0” con el nombre del propio router “R0” al cual añadirá “-número” (-1, -2, -3, etc) por cada copia que haga.
R0#dir disk0:
Directory of disk0:/
1 -rw- 839 Aug 17 2008 22:27:08 +00:00 R0-1
Si lo que queremos es guardar una copia en un servidor TFTP remoto podemos hacer lo siguiente:
R0(config-archive)#path tftp://10.10.10.10/R0/copia
con lo que irá guardando copias (copia-1, -2, -3, etc) en el servidor con IP 10.10.10.10 dentro del directorio llamado “R0″ (el mismo nombre que el router para una localización posterior rápida).
Dos parámetros no mostrados en la ayuda por defecto dentro de PATH son “$h” que indica el nombre del router y “$t” que indica la fecha y hora del router, con lo cual podemos hacer una mini plantilla para todos los routers usando esas variables, así el anterior ejemplo podría convertirse en:
R0(config-archive)#path tftp://10.10.10.10/$h/$t
Para ver las copias que hay además ver la unidad donde se guardan (dir disk0 en el caso anterior) podemos usar:
R0#show archive
There are currently 3 archive configurations saved.
The next archive file will be named disk0:R0-3
Archive # Name
0
1 disk0:R0-1
2 disk0:R0-2 <- Most Recent
3
4
5
6
7
8
9
10
11
12
13
14
También nos puede interesar ver que diferencias hay entre una copia y otra para saber que se ha modificado o que hay de diferente (especialmente útil en entornos donde varias personas modifican) y podemos ver las diferencias de 2 formas:
differences muestra las diferencias entre las dos configuraciones, ya sea una copia y la actual o entre 2 copias.
incremental-diffs muestra las líneas del fichero de configuración que se añadirán a la running-config.
R0#show archive config differences disk0:/R0-1 disk0:/R0-3
Contextual Config Diffs:
interface FastEthernet0/0
-description prueba
Indica que “description prueba” en R0-1 no está y en R0-3 si, en caso contrarío en vez de un digno “-” sería un signo “+”. Si se omite “disk0:/R0-3″ se compara “disk0:/R0-1″ con la configuración actual (que en este caso es la misma que disk0:/R0-3 porque se acaba de generar).
12 Agosto 2008 · Etiquetas: Cisco, Dynamips, gns3, Networking
Hacía ya mucho que no probaba la utilidad de Cisco para hacer laboratorios llamada Packet Tracer pero han anunciado hace pocos días la nueva versión 5.0 y me he decidido a probarla. La verdad es que la versión 4.0 y 4.1 no me dejaron un bien sabor de boca y la verdad es que ignoré por completo esta utilidad sobre todo desde que conocí dynamips. He de reconocer que esta versión me está dejando muy buen sabor de boca especialmente ahora que estoy mirando la curricula de CCNA 4.0 y que viene repleta de actividades muy interesantes y muy prácticas relacionadas y para hacer con el Packet Tracer (y que en posteriores artículos iré comentando).
Iré ampliando este artículo e incluso iré escribiendo otros según vaya conociendo mejor esta utilidad, pero si quiero comentar una de las posibilidades y enlaces con la curricula CCNA que he probado hoy. En la curricula CCNA 4.0 exploration vienen unos ficheros para el Packet Tracer que son actividades para configurar routers y switches y según vamos avanzando nos va indicando el progreso en tanto por ciento y al final de la actividad podemos ver si está correcto o no y en que hemos fallado con lo cual podemos seguir las actividades y quedarnos tranquilos de si lo hemos hecho bien o no (ver captura 1).
Captura 1: 
Como se puede ver en la captura 2 podemos hacer laboratorios bastante decentes aunque la disponibilidad de switches (2950-24, 2950T, 2960, genérico) y routers (1841, 2620, 2621, 2811, genérico) es limitada y no podemos elegir la versión de IOS (cosa que si se puede en dynamips).
Captura 2: 
Si pinchamos en un dispositivo (ya sea router, switch, etc) no sale un ventana con tres pestañas, Physical, Config y CLI, la cuales nos permiten configurar el dispositivo como si fuera uno físico. El CLI es realmente un CLI real, funciona el autocomplementar (usando el tabulador) e incluso funciona la ayuda (tecleando ?).
En las capturas 3 y 4 podemos ver la ventana del dispositivo (al hacer click sobre él) donde la captura 3 es la parte física del dispositivo en la cual podemos hacer zoom a la imagen del mismo y nos da información de los módulos y conexiones que tiene. En la captura 2 tenemos el CLI que es lo mismo que si nos conectamos a la consola.
Captura 3: 
Captura 4: 
En definitiva creo que hay que darle una oportunidad a esta utilidad de Cisco orientada con fines educativos, especialmente mirando a las certificaciones de Cisco. La única pega es que no está disponible de forma libre, es decir que si no estás en un curso de cisco no tienes acceso a ella, la verdad es que desconozco los requisitos para utilizar la herramienta, pero sé que está disponible en la web cisco.netacad.net una vez que te autenticas y entras en un curso o currícula.
Los que tengáis acceso a la web de Cisco podéis descargar el Packet Tracer desde este enlace en sus versiones para Windows o Linux, esperemos que Cisco se dé cuenta de los muchos ingenieros de red que usamos OSX y saque una versión para OSX, ya no solo de esta utilidad si no de otras muchas.
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 Julio 2008 · Etiquetas: Aplicaciones, MacPorts, Networking, Shell
Calculadora de subredes que funciona en consola, NO tiene entorno gráfico. Calcula todo tipo de redes y da información detallada.
Podemos compilar el source o mejor aún podemos instalar el port de MacPorts, por tanto requiere tener instalado MacPorts para esta segunda opción.
Página oficial: http://www.routemeister.net/projects/sipcalc/
Para instalar la aplicación:
$ sudo port install sipcalc
Ejemplo:
$ sipcalc 10.20.30.33/26
-[ipv4 : 10.20.30.33/26] - 0
[CIDR]
Host address - 10.20.30.33
Host address (decimal) - 169090593
Host address (hex) - A141E21
Network address - 10.20.30.0
Network mask - 255.255.255.192
Network mask (bits) - 26
Network mask (hex) - FFFFFFC0
Broadcast address - 10.20.30.63
Cisco wildcard - 0.0.0.63
Addresses in network - 64
Network range - 10.20.30.0 - 10.20.30.63
Usable range - 10.20.30.1 - 10.20.30.62
-
Ayuda y parámetros:
Usage: sipcalc [OPTIONS]... <[ADDRESS]... [INTERFACE]... | [-]>
Global options:
-a, --all All possible information.
-d, --resolve Enable name resolution.
-h, --help Display this help.
-I, --addr-int=INT Added an interface.
-n, --subnets=NUM Display NUM extra subnets (starting from
the current subnet). Will display all subnets
in the current /24 if NUM is 0.
-u, --split-verbose Verbose split.
-v, --version Version information.
-4, --addr-ipv4=ADDR Add an ipv4 address.
-6, --addr-ipv6=ADDR Add an ipv6 address.
IPv4 options:
-b, --cidr-bitmap CIDR bitmap.
-c, --classfull-addr Classfull address information.
-i, --cidr-addr CIDR address information. (default)
-s, --v4split=MASK Split the current network into subnets
of MASK size.
-w, --wildcard Display information for a wildcard
(inverse mask).
-x, --classfull-bitmap Classfull bitmap.
IPv6 options:
-e, --v4inv6 IPv4 compatible IPv6 information.
-r, --v6rev IPv6 reverse DNS output.
-S, --v6split=MASK Split the current network into subnets
of MASK size.
-t, --v6-standard Standard IPv6. (default)
Address must be in the "standard" dotted quad format.
Netmask can be given in three different ways:
- Number of bits [/nn]
- Dotted quad [nnn.nnn.nnn.nnn]
- Hex [0xnnnnnnnn | nnnnnnnn]
Interface must be a valid network interface on the system.
If this options is used an attempt will be made to gain the address
and netmask from the specified interface.
Replacing address/interface with '-' will use stdin for reading further arguments.
22 Junio 2008 · Etiquetas: Cisco, IOS, Networking
Muchas veces de las que hacemos un “show running-config” o lo que es más a menudo “sh run” no queremos ver todo si no un parte de la configuración, para ello hay algunos atajos muy útiles que no siempre se recuerdan:
-
show run interface:
router# sh run int fa0/0
Building configuration…
Current configuration : 93 bytes
!
interface FastEthernet0/0
ip address 10.1.2.1 255.255.255.0
duplex auto
speed auto
end
-
show run | section:
router#sh run | section interface
interface FastEthernet0/0
ip address 10.1.2.1 255.255.255.0
duplex auto
speed auto
interface FastEthernet1/0
ip address 192.168.4.1 255.255.255.0
duplex auto
speed auto
-
show run | begin :
router#sh run | begin interface
interface FastEthernet0/0
ip address 10.1.2.1 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet1/0
ip address 192.168.4.1 255.255.255.0
duplex auto
speed auto
!
ip http server
no ip http secure-server
ip classless
!
control-plane
!
!
–More–
-
show run | include:
router# sh run interface f0/0 | include ip
ip address 10.1.1.1 255.255.255.0
-
show ip interface brief:
router#sh ip interface brief
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 10.1.1.1 YES manual up up
FastEthernet1/0 192.168.1.1 YES manual up up
-
Mientras se está haciendo un “sh run” se puede usar el carácter / para hacer una búsqueda específica:
router#sh run
Building configuration…
Current configuration : 663 bytes
!
version 12.3
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname blog_demo
!
boot-start-marker
boot-end-marker
!
!
memory-size iomem 5
no aaa new-model
ip subnet-zero
!
!
!
!
ip cef
ip ips po max-events 100
/192.168
filtering…
ip address 192.168.4.1 255.255.255.0
duplex auto
speed auto
!
ip http server
NOTA: Extraído de “http://www.globalconfig.net/brandons_blog/2008/06/shortucts.html“
8 Junio 2008 · Etiquetas: Aplicaciones, Networking, OSX
Estupendo programa para hacer diagramas de red tipo Visio (aunque no llega al nivel del Visio, una pena que no haya Visio para OSX). No es una aplicación barata así que muchos no podrán trabajar con ella a nivel personal. Aunque importa diagramas de Visio, deben estar en XML por lo que en Visio es necesario exportar a XML extensión VDX, lo cual es un poco engorro y algún fichero gordo puede dar problemas de importación.
Entre sus características están:
- Bibliotecas de formas muy detallada.
- Esnanea la LAN de forma automática y hace un diagrama.
- Estima la longitud de cable.
- Calculadora de máscara de subred
- Múltiples capas para separar las diferentes áreas de visibilidad.
- Exportación a formatos gráficos, PDF, Power Point, Flash, HTML y con hipervínculos.
- Custom propiedades para almacenar información detallada sobre los equipos de red.
- Hay versiones tanto Win como MAC OSX
La página oficial: http://www.conceptdraw.com/en/products/netdiagrammer/main.php
Capturas:


21 Febrero 2008 · Etiquetas: Networking, Ripe
Como consultar la base de datos de ripe
Podemos hacerlo desde la web http://www.ripe.net/fcgi-bin/whois o desde la shell con la orden whois.
Las consultas que se hacen vía web en la shell se deben poner entre comillas y ejecutarlas de la siguiente manera:
whois -h whois.ripe.net — “CONSULTA”
Consultas últiles:
Listar TODOS los objetos que sean del nick-handle ABC-RIPE
whois -h whois.ripe.net -- "-B -r -i admin-c,tech-c,zone-c ABC-RIPE"
Listar TODOS los objetos mantenidos por el maintainer XYZ-MNT
whois -h whois.ripe.net -- '-B -i mnt-by XYZ-MNT'
11 Enero 2008 · Etiquetas: Dynamips, MacPorts, Networking, OSX
En este artículo voy a mostrar como compilar Dynamip para Mac (tanto intel como PowerPC, ambas requieren MacPorts instalado) y para Linux Debian, pero es bastante sencillo compilar para cualquier otra plataforma y hay mucha documentación en internet.
Compilar para Mac OSX (Vía MacPorts):
Es lo más sencillo y cómodo ya que todo lo han hecho ya los chicos de MacPorts (gracias):
sudo port install dynamips
Compilar para Mac OSX (Power PC):
Primero creamos un directorio temporal:
mkdir dynamips
cd dynamips
Instalamos las librerías necesarias:
sudo port install libpcap
sudo port install libelf
y descargamos el source de dynamips (en este ejemplo la versión 0.2.8-RC2) y lo descomprimimos:
wget http://www.ipflow.utc.fr/dynamips/dynamips-0.2.8-RC2.tar.gz
tar xvfz dynamips-0.2.8-RC2.tar.gz
cd dynamips-0.2.8-RC2
Para poder compilar en PowerPC hay que realizar algunos cambios en el Makefile, aquí tenéis el patch:
--- dynamips-0.2.8-RC2/Makefile 2007-10-14 10:43:07.000000000 +0200
+++ Makefile 2008-01-11 01:03:01.000000000 +0100
@@ -3,7 +3,8 @@
# Replace x86 by amd64 for a build on x86_64.
# Use "nojit" for architectures that are not x86 or x86_64.
-DYNAMIPS_ARCH?=x86
+# DYNAMIPS_ARCH?=x86
+DYNAMIPS_ARCH?=nojit
# Change this to 0 if your system doesn't support RFC 2553 extensions
HAS_RFC2553?=1
@@ -62,8 +63,10 @@
DESTDIR=/usr
else
ifeq ($(shell uname -s), Darwin)
- CFLAGS+=-I/usr/local/include -mdynamic-no-pic -D_FILE_OFFSET_BITS=64
- LIBS=-L/usr/local/lib -L. -ldl -lelf -lpthread
+ LOCALBASE?=/opt/local
+ CFLAGS+=-I$(LOCALBASE)/include -I$(LOCALBASE)/include/libelf \
+ -I/usr/local/include -mdynamic-no-pic -D_FILE_OFFSET_BITS=64
+ LIBS=-L$(LOCALBASE)/lib -L/usr/local/lib -L. -ldl -lelf -lpthread
else
ifeq ($(shell uname -s), SunOS)
CFLAGS+=-I/usr/local/include -DINADDR_NONE=0xFFFFFFFF \
Una vez aplicado el patch al Makefile (o si lo prefieres descargalo Makefile ) podemos proceder a compilar:
make
Saldrán muchos warnings que realmente no sé que significan ni si es correcto ignorarlos, pero a pesar de todo el programa funciona de forma correcta.
Ya solo queda pasarle el comando strip para reducir el tamaño del ejecutable y ponerle permisos de ejecución.
strip dynamips
chmod +x dynamips
Compilar para Linux (Debian):
Primero creamos un directorio temporal:
mkdir dynamips
cd dynamips
Instalamos las librerías necesarias:
apt-get install libpcap0.8 libpcap0.8-dev
apt-get install libelf1 libelf-dev
apt-get install debhelper
y descargamos el source de dynamips (en este ejemplo la versión 0.2.8-RC2) y lo descomprimimos:
wget http://www.ipflow.utc.fr/dynamips/dynamips-0.2.8-RC2.tar.gz
tar xvfz dynamips-0.2.8-RC2.tar.gz
cd dynamips-0.2.8-RC2
Como dynamips viene preparado para construir un paquete .DEB, procedemos a realizar dicho paquete (a mi me hizo falta hace el chmod aunque no está de más hacerlo):
chmod +x debian/rules
dpkg-buildpackage
La versión que nos genera es la 0.2.8-RC2 pero como los fichero Debian no han sido modificados el fichero resultante tendrá como versión 0.2.6-RC2, es solo el nombre del fichero .DEB. También posiblemente nos dé algún warning, especialmente del fichero .DSC que podemos ignorar.
Para que el fichero nos indique la versión correcta debemos editar antes de compilar los 2 sigueintes fichero y poner la versión correcta:
vim debian/files
vim debian/changelog
Ya solo queda instalar (o actualizar) el paquete como otro cualquiera
cd ..
dpkg -i dynamips_0.2.8-RC2-1_i386.deb
9 Enero 2008 · Etiquetas: Debian, Linux, Networking
Por defecto el paquete de netatalk de Debian (al menso en Etch) no viene con soporte de encriptación debido a las políticas de Debian, por lo que si usamos por ejemplo Leopard nos daremos cuanta que nuestro server de APF no funciona ya que Leopard obliga a las contraseñas vayan cifradas no en textos plano como en Tiger. Así que vamos a compilar nuestro propio paquete DEB de Netatlak con soporte de encriptación.
Primero nos vamos a un directorio temporal donde vamos a trabajar (luego se puede borrar a que solo es necesario para compilar):
mkdir /usr/src/netatalk
cd /usr/src/netatalk
Y procedemos a bajar los ficheros necesarios para compilar, primero comprobamos que tenemos las librerías y paquetes necesarios (puede que ya tengamos estos paquetes instalados, si es así seguimos):
apt-get install openssl cracklib2 libpam-cracklib cracklib2-dev wspanish
Nos bajamos el source de Netatalk (y sus ficheros complementarios .diff y .dsc):
apt-get source netatalk
Comprobamos que tenemos los paquetes requeridos para compilar el paquete Netatalk:
apt-get build-dep netatalk
Ya tenemos todo lo necesario para compilar, por lo que procedemos a modificar la configuración para indicarle que queremos soporte de encriptación:
cd netatalk-2.0.3/
vi debian/rules
Y añadimos la línea siguiente justo antes del comentario que dice ## FIXME:
DEB_BUILD_OPTIONS=ssl debuild
y solo nos queda compilar y que todo vaya bien:
dpkg-buildpackage
Si todo ha ido bien (seguro que si) en el directorio superior a donde estamos se habrá creado el paquete Debian del Netatalk con soporte de encriptación, así que lo instalamos:
dpkg -i netatalk_2.0.3-4_i386.deb