Práctica 3: Configurar la red desde consola en linux Interfaz Una interfaz es un dispositivo (real o lógico) relacionado con la red a partir del cual el sistema se puede comunicar con otros computadores, ofrecer unos determinados servicios, etc. Son las puertas que tiene el sistema para poderse comunicar. Interfaz loopback La primera interfaz que es necesario activar al configurar el nivel IP es la interfaz loopback o bucle de retorno, la cual puede ser entendida como una especie de “cortocircuito” en la pila de protocolos. Es decir, los datagramas que se envían a esta interfaz no abandonan nunca la máquina, sino que retornan inmediatamente al nivel IP que los envía. El nombre estándar de la interfaz loopback es lo y su dirección IP es 127.0.0.1 usa la red de clase A 127 y el nombre localhost Comando ifconfig (interface Configuration) El comando ifconfig permite a root configurar las interfaces de red. Si se ejecuta sin parámetros ifconfig presenta información acerca de la configuración y funcionamiento de las interfaces de red activas en ese momento. Sintaxis: #ifconfig <interfaz> <dir_ip> netmask <mascara> broadcast <dir_broadcast> up En <interfaz> debe proporcionarse el nombre de la interfaz de red que se desea configurar. En redes Ethernet es eth y las unidades comienzan a numerarse a partir de 0 hasta el número de interfaces existentes del mismo tipo (eth0, eth1, eth2, etc) <dir_ip> es la dirección IP que se desa asignar a la interfaz de red <mascara> establece la mascara de red que se desea utilizar para la interfaz. Si no se proporciona este valor, la máscara de red tomará por defecto el valor predeterminado para direcciones de redes clase A, B o C en función de la dirección IP que se haya especificado en <dir_ip> <dir_broadcast> al proporcionar la dirección de broadcast se indica a la interfaz de red que se desea que habilite el modo de difisión de broadcast dirigido y que contemple dicha direccioón Lo primero es ver las interfaces de red para esto utilizamos el siguiente comando: 1 ifconfig Este comando solo muestra las interfaces que están funcionando o “arriba”, si queremos que nos muestre todas las interfaces sin importar si están arriba o no utilizamos la opción -a: 1 ifconfig -a Nos debería mostrar algo como esto: eth0 Link encap:Ethernet HWaddr 00:11:25:29:3D:F6 inet addr:10.26.3.144 Bcast:10.26.3.255 Mask:255.255.255.0 inet6 addr: xxxx::xxx:xxxx:xxxx:xxxx/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:16328475 errors:0 dropped:0 overruns:0 frame:0 TX packets:11020911 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2262220726 (2.1 GiB) TX bytes:1803853996 (1.6 GiB) Interrupt:18 eth1 Link encap:Ethernet HWaddr 00:11:25:29:3D:F7 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Interrupt:19 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:2634 errors:0 dropped:0 overruns:0 frame:0 TX packets:2634 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3270519 (3.1 MiB) TX bytes:3270519 (3.1 MiB) En este caso tenemos dos interfaces de red eth0 y eth1 y sólo eth0 esta arriba (up), fíjense que eth1 no está configurada y no tiene ninguna dirección IP asignada. Por último tenemos la interfaz lo, que es la interfaz de loopback es decir nuestra propia máquina y que podemos acceder a través de la dirección 127.0.0.1 (o cualquier rango de 127.0.0.X), y sirve para comprobar que por lo menos nos responde nuestro propio ordenador o computadora. Bien ya una vez que tenemos identificadas nuestras tarjetas de red podemos realizar varias operaciones. Levantar o bajar una red No se aconseja ejecutar la siguiente línea esto si se encuentran conectados de forma remota por esta interfaz # ifconfig eth0 down Deshabilitar una interfaz # ifconfig eth0 down Habilitar una interfaz # ifconfig eth0 up Asignar un dirección IP a una interfaz Asignar una IP: #ifconfig eth0 192.168.0.2 Cambiar la máscara de sub red: # ifconfig eth0 netmask 255.255.255.0 Cambiar la dirección de broadcast: # ifconfig eth0 broadcast 192.168.0.255 Asignar dirección IP, máscara y broadcast al mismo tiempo: # ifconfig eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255 Cuando la máquina se apaga o reinicia esta configuración se pierde. Modificar la configuración permanentemente Para obtener cambios permanentes al configurar la interfaz de red se debe editar el fichero de configuración interfaces: # nano /etc/network/interfaces Este tendrá la siguiente forma, dónde estamos indicando que la interfaz lo haga un loopback y la eth0 se levante de forma automática, sea estática, tenga esa IP, esa máscara y asignada esa puerta de enlace predeterminada. # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.1.134 netmask 255.255.255. gateway 192.168.1.1 Una vez realizados los cambios debemos de reiniciar el servicio, para ello podemos: 1. Pararlo y levantarlo completamente (recomendado): #/etc/init.d/networking stop #/etc/init.d/networking start 2. Reiniciarlo #/etc/init.d/networking restart 3. O apagar y encender la interfaz afectada: #ifdown eth0 && ifup eth0 Configurar una dirección estática en la interfaz de red Para configurar una dirección IP estática también debemos modificar el archivo de /etc/network/interfaces 1 #nano /etc/network/interfaces Si tienes algo como iface eth0 inet dhcp debemos comentar estás líneas o borrarlas sino tendremos problemas. Ahora agregamos al archivo si queremos configurar por ejemplo eth0 (cambialo por la interfaz que quieras configurar): # Configurar IP estatica en eth0 auto eth0 iface eth0 inet static address 192.168.1.110 gateway 192.168.1.1 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 Con esto le hemos configurado la IP 192.168.1.110 con una máscara 255.255.255.0 y una puerta de salida (gateway) 192.168.1.1. Por supuesto cambia estas direcciones por las que quieras configurar. Una vez más guardamos el archivo y ejecutamos, para reinicializar los servicios de red: #/etc/init.d/networking restart Configurar la interfaz de red para que funcione con DHCP Casí todos los sistemas vienen ahora por defecto para que tomen su dirección IP por DHCP (es decir que se asigne dinámicamente a través de un servidor DHCP que puede ser un router, switch o algún servidor dedicado a esto). Para configurar cualquier interfaz para DHCP debemos modificar el archivo /etc/network/interfaces ejecutando el siguiente comando 1 #nano /etc/network/interfaces Tambien puedes utilizar cualquier otro editor como emacs, nano, gedit a tu preferencia. En el archivo debemos colocar las siguientes líneas (en este ejemplo utilizamos eth0 puede ser cualquiera de las interfaces y tantas como quieras) # Utilizar DHCP para la interfaz eth0 auto eth0 iface eth0 inet dhcp Guardamos el archivo y ejecutamos: #/etc/init.d/networking restart Para reinicializar los servicios de red . Configuración de los servidores DNS Cualquier máquina conectada a Internet debe tener configurados unos servidores DNS que servirán para la resolución de nombres de todas aquellas aplicaciones que se conecten a Internet. Básicamente (no voy a profundizar en esto) traducirán los nombres de dominio a IPs. Si queremos modificar los servidores DNS a utilizar en nuestra máquina (Unix, Linux), simplemente hay que listarlos dentro del archivo /etc/resolv.conf del siguiente modo: #nano /etc/resolv.conf nameserver 80.58.0.33 nameserver 80.58.32.97 No es necesario reiniciar la red para que los cambios surtan efecto. Simplemente se tiene que hacer ping a un dominio para ver si el funcionamiento de resolución de nombres es correcto: $ ping google.com PING google.com (74.125.53.100) 56(84) bytes of data. 64 bytes from pw-in-f100.1e100.net (74.125.53.100): icmp_seq=1 ttl=46 time=541 ms 64 bytes from pw-in-f100.1e100.net (74.125.53.100): icmp_seq=2 ttl=46 time=263 ms Comando ping ping es el equivalente a un sonar en una red. Este comando se usa para verificar que una dirección dada es accesible y para medir el retraso entre el envío de un datagrama y su recepción de vuelta. Este tiempo es conocido como tiempo de ida y vuelta. # ping localhost PING localhost (127.0.0.1): 56 data bytes 64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=0.4 64 bytes from 127.0.0.1: icmp_seq=1 ttl=255 time=0.4 64 bytes from 127.0.0.1: icmp_seq=2 ttl=255 time=0.4 ^C --- localhost ping statistics --3 packets transmitted, 3 packets received, 0% packet round-trip min/avg/max = 0.4/0.4/0.4 ms # ms ms ms loss Cuando se ejecuta ping según se muestra aquí, la emisión de paquetes continua a menos que sea interrumpida por el usuario. El ^C marca el momento en el que se apretó Ctrl-C. Este ejemplo muestra que los paquetes dirigidos a la máquina 127.0.0.1 están siendo entregados correctamente y la respuesta a ping es recibida de forma casi instantánea. Esto significa que ha establecido con éxito su primera interface de red. El archivo /etc/hosts Para evitar el incómodo uso de direcciones IP, en Linux se permite asignar nombres a las interfaces. Para ello se usa el archivo /etc/hosts cuyo contenido podría ser el siguiente: #nano /etc/hosts 127.0.0.1 localhost 158.49.98.12 puesto12 158.49.98.23 puesto23 Como se puede observar cada dirección IP de cada máquina que pertenece a la red LAN se corresponde con el nombre que el adminstrador les asigne. El uso de nombres en lugar de direcciones IP facilita la tarea de comunicarse con los computadores de la red. Cambiar el nombre de la máquina Si necesitamos cambiar el nombre de host, lo podemos hacer de la siguiente manera. # hostname nuevo-nombre Editamos el siguiente archivo modificando el antiguo host por el nuevo. # vi /etc/hostname Por útimo hacemos lo mismo con /etc/hosts, cambiamos el antiguo host por el nuevo. # gedit /etc/hosts Materiales 1. Cables cruzados y cables directos 2. Switche o router Ejercicios 1. Conectar dos computadores en red (recuerden que deben usar un cable cruzado) 2. Revisar en cada computador las interfaces que tiene activas 3. Configurar las interfaces eth0 de cada uno de los computadores asignándoles una dirección ip con el comando ifconfig. Para asignar las direcciones IP a los computadores del laboratorio usen una dirección clase C como por ejemplo 192.168.1.X. La X representa la dirección de cada computador, por ejemplo, la X se sustituye por 1 en el primer computador y por 2 en el segundo computador 4. Luego revisar nuevamente las interfaces para verificar que se han asignado las direcciones ip 5. Realizar ping desde un computador hacia el otro, ejemplo, ping <dirección IP destino> 6. Realizar la configuración permanente de la red con los pasos Configurar una dirección estática en la interfaz de red 7. Realizar ping desde un computador hacia el otro, ejemplo, ping <dirección IP destino> 8. Configurar el archivo /etc/hosts, asignarles nombres a los computadores 9. Realizar ping ahora a los nombres y no a las direcciones ip 10. Cambiar el nombre del hostname de cada computador 11. Realizar los mismos pasos del 1 al 10 conectando 3, 4 o más computadores con la ayuda de switch o router (Recordar que deben usar un cable directo desde cada computador al puerto del router o switch)