Ruteo en Linux vs Cisco – Parte 2

Para seguir evaluando las difrencias y similitudes en ambas plataformas (ver parte 1),  trataré de ir haciendo una muestra de equivalencias en ambos sistemas, para que pueda ser usado como “diccionario” para los habitantes de estos dos mundos.

Privilegios

En el mundo de los sistemas, conozco un solo sistema operativo anarquico, es decir, donde cualquier usuario puede llegar a cambiar cualquier configuración, pero no es el tema de este artículo, si no por el contrario, tanto linux como IOS (sistema operativo de CISCO), necesitamos ciertos privilegios en el sistema para poder cambiar una configuración.
Basicamente, en linux tenemos a los usuarios, los grupos, y el usuario root.
Los permisos se otorgan mediante distintos permisos en los archivos, siendo que los archivos tienen un dueño (un usuario), tambien tienen un grupo, el cual es un conjunto de usuarios. De esta manera, linux puede distribuir ciertas responsabilidades en distintos usuarios. Sin embargo, el poder de todo lo tiene el usuario “root” (esto no es nada particular de linux, si no mas bien de los sistemas operativos unix).

Así cuando querramos configurar algo en nuestro linux deberemos tener acceso al usuario root.

Podemos pasar de usuario común a root de la siguiente manera:

usuario@myhome:~$ su - root
Password:
myhome:~#

Tipicamente, en los unix, ver el signo  # significa tener los permisos de superusuario (root).
Algo parecido (en realidad identico pero enmascarado), sucede en los sistemas IOS.
Cuando iniciamos por primera vez un router cisco, y nos conectamos mediante una terminal (hyperterminal o minicom), vemos esto:

Router>

Que significa que solo tenemos acceso a un limitado número de comandos, para poder ejecutar comandos que afecten a la configuración del router debemos ejecutar el comando “enable”.

Router>enable
Router#

Como vemos el prompt, nos muestra el signo #, que nos indica que tenemos los permisos equivalentes a root, en un sistema unix.
En este caso, ejecutar el comando enable nos transforma automaticamente en superusuarios, sin embargo, cuando se configura un router, mas que para realizar unas pruebas, se establece una contraseña, asi mismo, se puede establecer una contraseña para el usuario mas básico, de forma tal que nadie que no conozca la contraseña pueda siquiera husmear en el router.

Router>enable
Password:
Router#

Al instalar un IOS, lo primero que debemos hacer es configurar una contraseña,
para estar mas seguros de que nadie meterá las narices donde no debe.

Tanto IOS como linux, tienen mecanismos similares de autenticación, en el caso de linux pueden ser mucho mas avanzado, sin embargo no suelen tener mucha reelevancia si queremos que actue solo como router.

Guardar Cambios

Una diferencia, que si bien es simple, pero importante, es como ambos sistemas, es la forma en que estos guardan los cambios efectuados.
En ambas plataformas,  los cambios de configuración se hacen inmediatamente al ejecutar el comando, sin embargo, este cambio solo dura, hasta que se reinicie el equipo. Para perdurar los cambios mas allá de los reinicios, en las plataformas cisco, debemos ejecutar el comando “write”, este comando guarda todas los cambios realizados en el equipo, y volveran a ser levantadas una vez que se reinicie.

En linux, no existe un comando tan general que guarde todos los cambios realizados, si no que cada configuración o variable, tiene su o sus archivo/s. En las siguientes secciones revisaremos esos archivos y la forma analoga de hacerlo en cisco.

Configuración de interfaces en [ Linux | Cisco ]

Algo fundamental en cualquier dispositivo de red, es poder configurar las interfaces de red.
Compararemos los siguientes puntos, para hace un primer “approach”, en estas equivalencias entre cisco y linux.

En este post nos encargaremos de analizar y comparar estos puntos.

Configuración básica

Salvado de información

Visualización de datos


Configuración básica

Para asignara una dirección de red a una interfaz en linux (como root):

ifconfig eth0 192.168.1.1 netmask 255.255.255.0

Aún que vale recalcar que esto se mantiene por compatibilidad con los unixs, ya que la mejor manera de configurar las interfaces en linux, es con el pack de utilidades iproute2, que se haría de la siguiente manera:

ip addres add 192.168.1.1 dev eth0

Para agregar una descripción podemos agregarla en los archivos de configuración que veremos mas abajo.

En un router cisco, lo hariamos de la siguiente manera:

Router>enable
Router#config t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#interface FastEthernet 0/0
Router(config-if)#no shutdown
Router(config-if)#ip address 192.168.1.1 255.255.255.0

Al momento de ejecutar el comando enable, el router puede pedirnos un password, este password se configurar
en la instalacion del router, aunque puede quedar sin password, como en este caso.

Para agregar una descripción podemos usar:

Router(config-if)#description "Ethernet conectada a la dmz"

Para configurar el hostname de un router Cisco:
Router>enable
Router#config t
Router(config)#hostname MyRouter
MyRouter(config)#exit
MyRouter#write

El "write" graba todos los cambios hechos, por lo cual insisto en ser cuidadosos con este comando, por que si ademas de cambiar el nombre, cambiamos otra cosa, quedará grabado al ejecutar "write"
En linux, necesitamos ser root,  y lo hacemos de la siguiente manera:

gustavo@Onix:~$ su -
Contraseña:
Onix:~# hostname MyHostname
Onix:~#

Como vemos, el comando es igual que en cisco, sin embargo, pareciera ser que no cambia automáticamente el hostname,  sin embargo si es asi, solo que el hostname que vemos en nuestra consola ( Onix:~# ) es una variable que se configura en el momento que iniciamos sesión. Por lo tanto, si ejecutamos el comando exit, y volvemos a loguearnos, ya aparecerá el nombre cambiado.
Otra forma de cambiar el hostname, es ejecutando:

Onix:~# echo "MyHostname"  > /proc/sys/kernel/hostname

De todos modos, el hostname no cambiara en nuestra consola, hasta que loguemos de nuevo.
Los comandos vistos recientemente,  no cambian el hostname de nuestro linux permanentemente. Para hacerlo permanente mente, debemos editar el archivo: /etc/hostname

En este caso no necesitamos editarlo con un editor, ya que es solo una linea la que hay que cambiar:

echo "MyHostname" > /etc/hostname

Salvado de configuración de las interfaces

Tanto en Cisco, como en Linux, los cambios explicados arriba, se pierden a la hora de reiniciar el equipo. Los dos sistemas tienen formas de guardar esta información, a saber:
En una distro tipo Debian el archivo es: /etc/network/interfaces
En los sistemas tipo RedHat el archivo es: /etc/sysconfig/network-scripts/ifcfg-[nombre de la intefaz]
Para poder editar estos archivos usamos cualquier editor de texto instalado. Generalmente Vi.
Una vez editado el archivo correspondiente, los cambios no se aplican hasta que reiniciemos los scripts de red.

En la plataforma Cisco, una vez realizado el cambio pretendido, si se quiere guardar dicho cambio, se hace de la siguiente manera:

Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#exit
Router(config)#exit
Router#write
Building configuration...
[OK]
Router#

Este comando, guarda todos los cambios realizados en el router, por lo cual hay que tener cuidado al utilizarlo, por que podemos estar guardando algun otro cambio que hayamos realizado.

Visualización de datos

En ocaciones necesitamos visualizar cierta información de las interfaces, en Cisco podemos hacerlo de la siguiente manera:

Router>show interfaces
FastEthernet0/0 is administratively down, line protocol is down (disabled)
 Hardware is Lance, address is 00e0.8f0d.d501 (bia 00e0.8f0d.d501)
 Description: "Ethernet conectada a la dmz"
 Internet address is 192.168.1.1/24
 MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec, rely 255/255, load 1/255
 Encapsulation ARPA, loopback not set
 ARP type: ARPA, ARP Timeout 04:00:00,
 Last input 00:00:08, output 00:00:05, output hang never
 Last clearing of "show interface" counters never
 Queueing strategy: fifo
 Output queue :0/40 (size/max)
 5 minute input rate 0 bits/sec, 0 packets/sec
 5 minute output rate 0 bits/sec, 0 packets/sec
 0 packets input, 0 bytes, 0 no buffer
 Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
 0 input packets with dribble condition detected
 0 packets output, 0 bytes, 0 underruns
 0 output errors, 0 collisions, 1 interface resets
 0 babbles, 0 late collision, 0 deferred
 0 lost carrier, 0 no carrier
 0 output buffer failures, 0 output buffers swapped out
....

Este comando nos lista abundante información de todas las interfaces de red.

En Linux ejecutamos:

Para ver información sobre una sola interfaz:

/sbin/ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:16:17:77:cd:1b
 inet addr:192.168.1.3  Bcast:192.168.1.7  Mask:255.255.255.248
 inet6 addr: fe80::216:17ff:fe77:cd1b/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 RX packets:4606 errors:0 dropped:0 overruns:0 frame:0
 TX packets:3338 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:384745 (375.7 KiB)  TX bytes:602690 (588.5 KiB)
 Interrupt:250 Base address:0x2000

Para ver info de todas las interfaces:

/sbin/ifconfig
eth0      Link encap:Ethernet  HWaddr 00:16:17:77:cd:1b
 inet addr:192.168.1.3  Bcast:192.168.1.7  Mask:255.255.255.248
 inet6 addr: fe80::216:17ff:fe77:cd1b/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 RX packets:4606 errors:0 dropped:0 overruns:0 frame:0
 TX packets:3338 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:384745 (375.7 KiB)  TX bytes:602690 (588.5 KiB)
 Interrupt:250 Base address:0x2000

lo        Link encap:Local Loopback
 inet addr:127.0.0.1  Mask:255.0.0.0
 inet6 addr: ::1/128 Scope:Host
 UP LOOPBACK RUNNING  MTU:16436  Metric:1
 RX packets:4112 errors:0 dropped:0 overruns:0 frame:0
 TX packets:4112 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:176739 (172.5 KiB)  TX bytes:176739 (172.5 KiB)

Con el comando iproute, podemos visualizar sobre una sola interfaz de la siguiente manera:

ip address list eth0
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
 link/ether 00:16:17:77:cd:1a brd ff:ff:ff:ff:ff:ff

ó

ip address list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 inet 127.0.0.1/8 scope host lo
 inet6 ::1/128 scope host
 valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
 link/ether 00:16:17:77:cd:1b brd ff:ff:ff:ff:ff:ff
 inet 192.168.1.3/29 brd 192.168.1.7 scope global eth0
 inet6 fe80::216:17ff:fe77:cd1b/64 scope link
 valid_lft forever preferred_lft forever

para ver la info de todas las interfaces.

En los siguientes posts veremos algunos detalles mas avanzados, relacionados con el ruteo en ambos sistemas.

/* A partir de marzo nos estamos mudando a http://netsecure.com.ar o http://www.netvulcano.com.ar */

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: