RED_LINUX.1
Configuración de parámetros de red Objetivos............................................................................................................................................2 Audiencia...........................................................................................................................................2 Entendiendo la terminología de redes en GNU/Linux......................................................................2 Identificar y configurar las Interfaces de red Ethernet......................................................................3 Identificar la marca y modelo de la interfaz de red Ethernet........................................................3 Determinar si existe un driver para el adaptador de red...............................................................3 Localizar y cargar el driver para el adaptador de red....................................................................4 Verificar que el driver este cargado y asociado al adaptador de red.............................................4 Cargar el driver del adaptador de red al inicio del sistema...........................................................5 Como usar más de dos adaptadores de red en un sistema GNU/Linux........................................5 Las herramientas de configuración de red en GNU/Linux................................................................6 Configurando la Interfaz de Red........................................................................................................7 Introducción a la configuración de dispositivos de red.................................................................7 Mostrar la Configuración actual de la red.....................................................................................7 Visualizando la información de red actual....................................................................................7 Visualizando estadísticas de un dispositivo de red Ethernet.........................................................9 Visualizando los atributos del aispositivo de red........................................................................10 Configurando direcciones IP estáticas........................................................................................11 Configuracion de direcciones IP vía DHCP...............................................................................12 Cambiando los atributos a una interfaz de red............................................................................12 Cambiar la configuración de la las interfaces de red..................................................................13 Guardando la configuración de red de forma permantente.........................................................14 Configurando la interfaz de red loopback (lo)............................................................................15 Configurando un dispositivo de red Ethernet con IP fija............................................................15 Configurar la interfaz de red dinámicamente DHCP..................................................................16 Iniciar y detener los dispositivos configurados...........................................................................17 Creación de rutas y default gateway................................................................................................17 Viendo la tabla de rutas (routing table).......................................................................................17 Creando rutas locales..................................................................................................................19 La ruta hacia la red local (LAN)............................................................................................19 Agregando una ruta hacia otra red.........................................................................................19 Configurando el default gateway...........................................................................................20 Eliminando rutas....................................................................................................................21 Eliminando la ruta hacia otra red.......................................................................................21 Eliminando el default gateway..........................................................................................22 Estableciendo el default gateway de forma permanente..................................................................22 Estableciendo una rutas estáticas de forma permanente..................................................................22 Configurar el hostname y la resolución de nombres local y DNS...................................................23 Estableciendo el hostname del sistema.......................................................................................23 Configuración del hostname manual......................................................................................23 La variable de entorno HOSTNAME.....................................................................................24 Estableciendo el hostname de forma permanente..................................................................24 Configuración de la biblioteca de resolución de nombres DNS.................................................25 Recursos adicionales...................................................................................................................26 Sitios web...............................................................................................................................26 Páginas de manual..................................................................................................................26 1
RED_LINUX.2
Objetivos Al terminar este capitulo serán capaces de configurar correctamente los parámetros de red en un sistema GNU/Linux, entre las tareas que aprenderán están: ● Entender la terminología de Redes en GNU/Linux ● Identificar y configurar la Interfaz de Red Ethernet ● Guardar las configuraciones de red en un archivo de configuración. ● Configurar rutas en un sistema GNU/Linux ● Usar y configurar un cliente DHCP en un sistema GNU/Linux ● Probar la red usando herramientas básicas de diagnostico.
Audiencia Este documento va dirigido a todo aquel usuario de un sistema GNU/Linux que desee configurar la red en sus sistema, también es de gran utilidad para todo administrador de sistemas o de redes que tengan a cargo la integración de sistemas GNU/Linux en sus redes.
Entendiendo la terminología de redes en GNU/Linux Antes de iniciar explicando como ver y configurar los parámetros de la red en un sistema GNU/LInux presentaremos los términos que se usaran para estas tareas. ● Device. Se refiere al adaptador de red en el sistema. Para que el sistema pueda usar un dispositivo físico, es necesario que algún componente de software (driver o modulo) cree una interfaz entre el dispositivo físico y el sistema operativo. Esta interfaz es la que es usada por las aplicaciones de red. Normalmente los sistemas GNU/Linux usan un semi-estándar para nombrar las interfaces de red, las interfaces a adaptadores Ethernet siguen el esquema de: eth0, eth1, etc, así, en un sistema con varios adaptadores de red, se creara una interfaz para cada adaptador, la interfaz no estará disponible hasta que no se haya cargado un driver asociado al adaptador. Nota En nuevas versiones de sistemas GNU/Linux que usan udev hay formas de poder nombrar las interfaces de red con el nombre que uno desee. ● Link. La herramienta ip usa el termino link para referirse a la conexión entre un dispositivo y la red. ● Address. Se refiere a la dirección IP asignada a un dispositivo, la dirección pueden ser direcciones IPv4 o IPv6. Para poder usar un dispositivo de red es necesario que por lo menos tenga una dirección IP asignada. Nota Las interfaces de red pueden tener más de una dirección IP asignadas a el, estas son llamados IP aliases. 2
RED_LINUX.3
● Broadcast. Este termino se refiere a la dirección de difusión (Broadcast) de una red. La dirección de Broadcast sirve para poder alcanzar todos los hosts conectados a una red, es usada por varios protocolos entre ellos DHCP. ● Route. Esta se refiere a la ruta que toma un paquete IP para llegar a su destino. También se refiere a una entrada en la tabla de rutas en el kernel de Linux. Para continuar con las siguientes secciones es necesario que se identifique con los terminos antes mencionados para un mejor aprovechamiento del curso.
Identificar y configurar las Interfaces de red Ethernet En las siguientes secciones se explicará como identificar la interfaz de red en un equipo para posteriormente configurarla.
Identificar la marca y modelo de la interfaz de red Ethernet En los sistemas operativos GNU/Linux actuales la mayoría de las veces los adaptadores de red son detectados y configuraos automáticamente por el programa instalador del sistema, pero hay ocasiones o hay distribuciones donde estas tareas se deben de hacer manualmente. En esta sección describiremos los comandos que se requieren para identificar una interfaz de red en un sistema GNU/ Linux. Para encontrar que adaptador de red usaremos el comando lspci para mostrar una lista de dispositivos conectados al bus PCI en nuestro sistema, y mandaremos la salida al comando grep para filtrar solo las lineas que contengan la palabra Ethernet. # lspci | grep Ethernet 0000:00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 78)
El comando nos dice que tenemos un adaptador de la marca: VIA Technologies, Inc., el modelo es: VT6102 [Rhine-II] en su revisión: (rev 78). Este adaptador esta conectad oal bus: 0000:00:12.0.
Determinar si existe un driver para el adaptador de red Como se vio en la salida del comando anterior nos dice que tenemos un adaptador de red VIA VT6102 [Rhine-II], este adaptador tiene asociado un driver llamado via_rhine, el cual sirve para los adaptadores de red de la marca Via. Si su sistema no detecto automaticamente su adaptador de red habrá que identificar la marca y el chipset y encontrar si hay algún driver asociado a el. Podemos encontrar una lista de drivers para red soportados por el kernel de Linux, para verlos hacer un listado en el directorio: $ ls /lib/modules/`uname -r`/kernel/drivers/net/
Otra buena fuente de información sobre hardware es la pagina: http://hardware4linux.info/ en esta pagina podemos encontrar algún tipo de hardware y nos da la información de que driver es el que puede funcionar.
3
RED_LINUX.4
Localizar y cargar el driver para el adaptador de red Bien como ya localizamos que nuestro adaptador de red usara el modulo del kernel (driver) via_rhine entonces deberemos de cargar dicho modulo para así poder cargar nuestra interfaz de red. Para cargar el modulo usaremos el comando: # modprobe via_rhine
Si se quiere ver la información sobre algún modulo del kernel se puede usar el comando modinfo, por ejemplo: $ modinfo via_rhine filename: /lib/modules/2.6.20-16-generic/kernel/drivers/net/via-rhine.ko license: GPL description: VIA Rhine PCI Fast Ethernet driver author: Donald Becker <becker@scyld.com> srcversion: 526BACB816EFB5DD404C501 alias: pci:v00001106d00003053sv*sd*bc*sc*i* alias: pci:v00001106d00003106sv*sd*bc*sc*i* alias: pci:v00001106d00003065sv*sd*bc*sc*i* alias: pci:v00001106d00003043sv*sd*bc*sc*i* depends: mii vermagic: 2.6.20-16-generic SMP mod_unload 586 parm: max_interrupt_work:VIA Rhine maximum events handled per interrupt (int) parm: debug:VIA Rhine debug level (0-7) (int) parm: rx_copybreak:VIA Rhine copy breakpoint for copy-only-tiny-frames (int) parm: avoid_D3:Avoid power state D3 (work-around for broken BIOSes) (bool)
Entre la información que nos muestra el comando modinfo, esta la ruta absoluta del driver, la licencia del driver, una descripción, el autor, y otros parametros que se pueden usar al cargar el driver.
Verificar que el driver este cargado y asociado al adaptador de red Para confirmar que el modulo esta cargado podemos usar el comando para listar los módulos de kernel cargados. # lsmod | grep via_rhine via_rhine 26756 mii 7040
0 1 via_rhine
Como vemos el modulo ya esta cargado, pero esto no significa que nuestra interfaz de red ya esta levantada. Si queremos ver que un modulo (driver) esta asignado a una interfaz de red, podemos usar el comando: # ethtool -i eth0 driver: via-rhine version: 1.2.0-2.6 firmware-version: bus-info: 0000:00:12.0
4
RED_LINUX.5
Aqui podemos ver que la interfaz eth0 usa el driver via-rhine en su versión 1.2.0-2.6, y el ID del bus que utiliza es: 0000:00:12.0.
Cargar el driver del adaptador de red al inicio del sistema Los comandos que se usaron en la sección anterior solo configuran los dispositivos de red mientras esta corriendo el sistema, en especifico el modulo del kernel (driver) no volverá a ser cargado si se re inicia el sistema, por lo que debemos de asegurarnos que cada vez que nuestro sistema arranque cargue el modulo respectivo de nuestro adaptador de red. Para cargar el modulo automáticamente agregaremos unas lineas a unos archivos. Para kernels 2.4.x agregaremos una linea al archivo /etc/modules.conf para asociar un modulo de red a una interfaz de red. alias eth0 via_rhine
Para kernels 2.6.x agregaremos una linea al archivo /etc/modprobe.conf para asociar un modulo de red a una interfaz de red. alias eth0 via_rhine
Nota En nuevas versiones de Ubuntu Linux con soporte para udev el driver es cargado automaticamente sin necesidad de especificarlo en algun archivo, el procedimiento anterior solo será usado cuando el driver no sea cargado automagicamente.
Como usar más de dos adaptadores de red en un sistema GNU/Linux Habrá casos en las que nuestro sistema tiene más de un adaptador de red, esto puede ser quizás porque el sistema se usara como un router para unir dos redes conectadas a diferentes medios físicos (Hub/Switche) o también porque se usara para dar acceso a Internet a una red local usando una tarjeta conectada al modem/router del proveedor de Internet (ISP) y otra conectada a un switch o hub de la red local LAN. Pongamos como ejemplo que tenemos dos tarjetas de red. # lspci | grep Ethernet 0000:00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 78) 05:06.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
En este caso tenemos dos adaptadores de red, una es la misma que configuramos atrás, y la otra es una tarjeta PCI que recién conectamos al equipo, esta tarjeta tiene un chipset Realtek RTL-8139/8139C/8139C+, este tipo de tarjetas son de las mas comunes y mejor soportadas en el kernel Linux, los adaptadores de red Realtek usan los drivers 8139, en especifico esta usa el driver 8139too, entonces configuraremos nuestros alias en el archivo /etc/modprobe.conf para las interfaces de red así: alias eth0 via_rhine alias eth1 8139too 5
RED_LINUX.6
Con esto, cada vez que arranque nuestro sistema se asociara un modulo a una interfaz de red en especifico, así ya tendremos nuestras dos interfaces de red disponibles para cualquier uso que se le vaya a dar. En Ubuntu 6.06 LTS server existe un archivo llamado /etc/iftab, donde se hace un mapeo de dirección MAC a una interfaz de red, este método podría resultar mas fácil que el de los alias, ya que nos permite "amarrar" la interfaz de red directamente al dispositivo que tenga una dirección física. Por ejemplo: # cat /etc/iftab # This file assigns persistent names to network interfaces. # See iftab(5) for syntax. eth0 mac 00:05:5d:32:9e:13 arp 1 eth1 mac 00:a0:d0:45:2e:a3 arp 1
Con esta configuración tenemos que el adaptador de red que tenga el MAC Address 00:05:5d:32:9e:13 se le asignara directamente la interfaz de red eth0, y para el que tenga 00:a0:d0:45:2e:a3 se le asignara directamente eth1. Nota Si por alguna razón se cambia o sustituye un adaptador de red, es importante que se actualice este archivo ya que si no se actualiza, el adaptador sustituto no será configurado ya que no corresponde con el MAC Address especificado en el archivo. En la versión Ubuntu 8.04 LTS server y superior se usn reglas de udev en lugar del archivo iftab para nombrar de forma persistente las interfaces de red, edite el archivo /etc/udev/rules.d/70persistent-net.rules para mapear un nombre de interfaz, por ejemplo: # PCI device (via-rhine) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:05:5d:32:9e:13", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" # PCI device (8139too) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:a0:d0:45:2e:a3", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
Se recomienda que re inicie el sistema para que inicie con las interfaces de red adecuadamente y aquellos servicios que haya iniciado previamente se ejecuten correctamente con la nueva información de red.
Las herramientas de configuración de red en GNU/Linux Desde hace mucho tiempo en los sistemas operativos tipo unix han existido herramientas para configurar la red, una de las principales es ifconfig, esta herramienta se ha usado desde los inicios y tambien se ha usado por mucho tiempo en los sistemas GNU/Linux. ifconfig es una herramienta indispensable para configurar los parametros de red en un sistema GNU/ Linux y por lo tanto se hablará de ella para tener un conocimiento solido. ifconfig al ser una herramienta básica de configuración ha dado lugar a otras herramientas más avanzadas que permiten 6
RED_LINUX.7
mayor flexibilidad en cuanto a las configuraciones de red se refiere. La evolución en estas herramientas de configuracion de red es iproute2, esta es una nueva generación de herramientas para configuración de red, con los comandos del paquete iproute podemos hacer desde configuraciones basicas, como definir una dirección IP a una interfaz de red, definir rutas locales hasta configuraciones avanzadas como tener usar dos proveedores de Internet y usarlos conjutamente para lograr balanceos de carga, tolerancias a fallas, y otros tipos de enrutamientos avanzados. iproute2 tambien sirve para hacer control de ancho de banda (QoS).En general iproute2 es un conjunto de herramientas para configurar y controlar la red en sistemas GNU/Linux En la suite iproute2 destacan dos herramientas: ● ip. Herramienta para control de configuraciones IPv4 e IPv6. ● tc. Herramienta para control de trafico En las siguientes secciones se hablará de como usar las herramientas ifconfig, route y por supuesto ip.
Configurando la Interfaz de Red Introducción a la configuración de dispositivos de red Es posible que al instalar nuestro sistema GNU/Linux el instalador ya haya detectado y configurado el adaptador de red con parametros predefinidos o utilizando la configuración automatica de red (DHCP) por lo que es probable que algunos de los comandos que mencionaremos a continuación muestren información similar o diferente a la que se ejemplifica en este documento. Durante las proximas secciones usaremos los comandos ifconfig e ip para configurar los parametros de red, y usaremos algunas opciones para visualizar los cambios hechos con dichas herramientas, es importante que antes de configurar los parametros de red entendamos como interpretar la información desplegada.
Mostrar la Configuración actual de la red Con las herramientas antes mencionadas podemos visualizar información y parámetros de red de nuestro sistema, en general la información que podemos visualizar es: ● La configuración de la Dirección IP. ● Los atributos de un dispositivo de Red. ● Estadísticas de un dispositivo de Red. Durante las secciones siguientes daremos ejemplos para lograr ciertas tareas usando el comando ifconfig e ip.
Visualizando la información de red actual Para visualizar la dirección IP de todos los dispositivos actuales usando el comando ifconfig, sería como sigue: # ifconfig -a eth0 Link encap:Ethernet
HWaddr 00:05:5d:32:9e:13 7
RED_LINUX.8 inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:149 errors:0 dropped:0 overruns:0 frame:0 TX packets:19 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:17227 (16.8 KiB) TX bytes:1941 (1.8 KiB) lo
Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 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:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Ahora veremos como hacer lo anterior con el comando ip: # ip address show 1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue 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,10000> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:05:5d:32:9e:13 brd ff:ff:ff:ff:ff:ff inet 192.168.0.1/24 brd 192.168.0.255 scope global eth0
La información que se despliega esta agrupada por dispositivos de red. Cada entrada inicia con un dígito, llamado "índice de interfaz" (solo con ip) seguido de el nombre del dispositivo. En el ejemplo anterior hay 2 dispositivos: ● lo. Este es el dispositivo "loopback", el cual siempre es encontrado en cualquier sistema Linux que tenga soporte para red, este dispositivo esta configurado aun cuando no hay un adaptador de red instalado, este dispositivo (virtual) es requerido solo para uso local el cual permitirá a aplicaciones con soporte para conexiones TCP/IP funcionar de forma correcta. ● eth0. Este es el primer dispositivo Ethernet en el equipo. eth0 es un dispositivo físico, puede ser una tarjeta de red integrada o conectada a algún otro puerto como PCI. Los dispositivos Ethernet normalmente son llamados eth0, eth1, eth2, etc. Hay información muy valiosa en la salida del comando anterior, la cual se ira explicando. Después del nombre del dispositivo, nos encontramos con la siguiente información: Ejemplo de salida con ifconfig: Link encap:Ethernet
HWaddr 00:05:5d:32:9e:13
ó con ip: link/ether 00:05:5d:32:9e:13 brd ff:ff:ff:ff:ff:ff
Esta linea nos muestra la dirección física del dispositivo Ethernet, mejor conocida como la Dirección MAC (Media Access Control). Ahora veremos la información IP del dispositivo, esta es en la siguiente linea que empieza con "inet" Con ifconfig: 8
RED_LINUX.9 inet addr:192.168.0.1
Bcast:192.168.0.255
Mask:255.255.255.0
Con ip: inet 192.168.0.254/24 brd 192.168.0.255 scope global eth0
Aquí nos muestra la dirección IP 192.168.0.1 y la mascara de subred /24 en formato de bits, después nos muestra la dirección de Broadcast (Bcast/brd) 192.168.0.255.
Visualizando estadísticas de un dispositivo de red Ethernet El comando ifconfig por default muestra las estadisticas de uso de un dispositivo de red, las lineas que nos interesan son:: RX packets:1701 errors:0 dropped:0 overruns:0 frame:0 TX packets:739 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:243395 (237.6 KiB) TX bytes:192661 (188.1 KiB)
Adelante se explicará la información desplegada. Para ver estadísticas de un dispositivo de red usando el comando ip usaremos la opción -s, por ejemplo: $ ip -s link show eth0 2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:05:5d:32:9e:13 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 3161874180 5283415 0 0 0 0 TX: bytes packets errors dropped carrier collsns 2922626716 4338626 0 0 0 0
La salida de los comandos anteriores muestra básicamente 3 secciones, una donde muestra información como atributos de un dispositivo de red y su MAC Address, y muestra otras dos secciones, la sección de RX: muestra información sobre paquetes recibidos y la sección TX: muestra información sobre paquetes enviados. A continuación se muestra una breve descripción de cada uno de los elementos mostrados: ● Bytes. El número total de bytes recibidos o transmitidos por un dispositivo. ● Packets. El número total de paquetes recibidos o transmitidos por un dispositivo. ● Errors. El número total de errores recibidos o transmitidos. ● Dropped. El número total de paquetes rechazados posiblemente debido a una carencia de recursos. ● Overrun. El número total de paquetes que rebasaron el limite, esto da como resultado paquetes rechazados. Nota Cuando un dispositivo tiene alguna cantidad en la columna overrun significa que algo anda mal con el kernel o que la computadora es demasiado lenta para el dispositivo.
9
RED_LINUX.10
● Mcast. El número total de paquetes multicast recibidos. Esta opción solo es soportada por algunos dispositivos. ● Carrier. El número total de fallas en el enlace, debido a la perdida del enlace. ● collisions/Collsns. El número total de colisiones en dispositivos Ethernet. Esta información es muy valiosa ya que nos ayudara a diagnosticar problemas que llegarán a ocurrir.
Visualizando los atributos del aispositivo de red Los dispositivos de red (Ethernet) tienen ciertos atributos que pueden cambiar el comportamiento de la interfaz de red en nuestro sistema, a continuación se mostrarán como ver los atributos de las intefaces de red y una explicación de cada uno de ellos. Para ver los atributos de un dispositivo de red usando el comando ifconfig, simplemente corremos: # ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:05:5d:32:9e:13 inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:116 errors:0 dropped:0 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:20536 (20.0 KiB) TX bytes:1411 (1.3 KiB)
Las lineas que nos interesan están marcadas en negrita. Para ver los atributos de un dispositivo de red usando el comando ip, lo ejecutaremos de la siguiente manera: # ip link show 1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:05:5d:32:9e:13 brd ff:ff:ff:ff:ff:ff
Los atributos de el dispositivo de red están mostrados entre los símbolos < > (solo con ip), los atributos más usados se describirán a continuación: ● UP. El dispositivo esta activo. Cuando un dispositivo es con estatus UP significa que esta listo aceptar paquetes de y para alguna red. ● LOOPBACK. Esto indica que es un dispositivo loopback. ● BROADCAST. Este atributo indica que el dispositivo puede enviar paquetes de difusión (broadcast) a todos los hosts conectados en un mismo dominio de broadcast. ● POINTTOPOINT. Este atributo nos dice que el dispositivo es para un enlace punto a punto, es decir, que solo esta conectado a otro dispositivo, normalmente son usados en conexiones Dialup, o ADSL usando PPPoE (Point-to-Point Protocol over Ethernet), o PPPoA (Point-toPoint Protocol over ATM). ● MULTICAST. El atributo MUTLTICAST indica que el dispositivo puede enviar paquetes a un grupo de hosts al mismo tiempo. ● PROMISC. Cuando un dispositivo de red esta en modo "Promiscuo" significa que puede recibir paquetes de toda la red, no solo a los que van dirigidos a él. Este atributo normalmente 10
RED_LINUX.11
se verá cuando un dispositivo esta configurado para capturar paquetes de la red para análisis de trafico, un sniffer de red pone la interfaz en modo promiscuo. En unas secciones adelante se explicará como cambiar/modificar los atributos de un dispositivo de red.
Configurando direcciones IP estáticas Una vez que ya se tiene detectado el adaptador de red y se le cargo un driver en ese momento se creo una interfaz de red, a esta interfaz es a la que le asignaremos una direccion IP. Primero definiremos nuestro dispositivo y despues los parametros que queremos configurar, la información que tenemos es: ● Tenemos la interfaz de red eth0, que es el primer dispositivo Ethernet, este dispositivo originalmente esta inactivo. ● Asignaremos la dirección IP 192.168.0.1 a la interfaz eth0. ● Asignaremos la mascara de subred 255.255.255.0 a la interfaz eth0 ● Asignaremos la dirección de Broadcast 192.168.0.255 a la interfaz eth0 Nota Todos los comandos que se usen para asignar, quitar o cambiar una dirección IP, asi como los que se usen para cambiar los atributos de una interfaz de red se harán como usuario root, o usando sudo. Definiendo la dirección IP usando el comando ifconfig: # ifconfig eth0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255
Nota Hay que mencionar que al ejecutar el comando anterior y si se ejecuta satisfactoriamente no regresara mensaje alguno, por lo que no hay que esperar a que muestre la configuración que acabamos de definir. Ahora usaremos el comando ifconfig para visualizar la configuración de la interfaz eth0. # ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:05:5d:32:9e:13 inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5696637 errors:0 dropped:0 overruns:0 frame:0 TX packets:4698551 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3419413715 (3.1 GiB) TX bytes:3115105727 (2.9 GiB) Interrupt:16 Base address:0xc000
Nota Al ejecutar el comando ifconfig para asignar la dirección IP este puso eth0 con el atributo UP, lo cual significa que ademas de asignar una dirección IP también activo la interfaz.
11
RED_LINUX.12
Para configurar una dirección IP usando también podemos usar el comando ip de la siguiente manera: # ip address add 192.168.0.1/24 brd + dev eth0
Nota En el comando anterior usamos el simbolo + para definir la dirección de Broadcast, esto hace que ip calcule la dirección de broadcast calculando la dirección IP y la longitud de la mascara de subred, entonces también podría usar el comando: # ip address add 192.168.0.1/24 brd 192.168.0.255 dev eth0
Ahora usaremos el comando ip para visualizar la configuración de la interfaz eth0. # ip address show dev eth0 2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:05:5d:32:9e:13 brd ff:ff:ff:ff:ff:ff inet 192.168.0.1/24 brd 192.168.0.255 scope global eth0
Nota En el caso de la asignación de la IP usando el comando ip, este no puso el atributo UP a la interfaz de red, más adelante se verá como cambiar los atributos usando el comando ip. En la actualidad la mayoría de distribuciones GNU/Linux usan scripts que son ejecutados al arranque del sistema para configurar los parametros de red, estos scripts utilizan en el fondo a la herramienta ip para configurar la red.
Configuracion de direcciones IP vía DHCP En sistemas GNU/Linux puede usar el cliente DHCP ISC dhclient, asegurese de tener instalado el paquete dhcp3-client el cual provee del comando dhclient o dhclient3. Para configurar una interfaz con parámetros de red automáticos vía DHCP use el comando dhclient y pase el nombre de la interfaz de red como parámetro, por ejemplo: # dhclient eth0
Verifique con ifconfig o ip que se hayan establecido los parametros de red en la interfaz especificada.
Cambiando los atributos a una interfaz de red Como se menciono en secciones anteriores las interfaces de red tienen ciertos atributos, una lista esta en la sección "Los Atributos del Dispositivo de Red". Entre los atributos más comunes que se cambian son UP y DOWN, estos se usan para activar o desactivar una interfaz de red. La sintaxis para cambiar atributos usando ifconfig es como sigue: # ifconfig dispositivo atributo
12
RED_LINUX.13
Para activar un dispositivo de red, por ejemplo eth0, usamos el comando: # ifconfig eth0 up
Mostramos la configuracion de atributos actual: # ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:05:5d:32:9e:13 inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 UP 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:17 Base address:0xa000
Para desactivar un dispositivo de red, por ejemplo eth0, usamos el comando: # ifconfig eth0 down
La sintaxis para cambiar atributos usando ip es como sigue: # ip link set dispositivo atributo
Para activar un dispositivo de red, por ejemplo eth0, usamos el comando: # ip link set eth0 up
Ahora mostremos los atributos actuales: # ip address show dev eth0 2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:05:5d:32:9e:13 brd ff:ff:ff:ff:ff:ff inet 192.168.0.1/24 brd 192.168.0.255 scope global eth0
Para desactivar un dispositivo de red, por ejemplo eth0, usamos el comando: # ip link set eth0 down
Cambiar la configuraciรณn de la las interfaces de red Para cambiar la configuraciรณn de red de un dispositivo se usan los mismos comandos que se usaron en la secciรณn anterior. Para cambiar la direcciรณn IP de una interfaz de red usando ifconfig, simplemente se ejecuta el comando y este sobreescribira la configuraciรณn actual. # ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:05:5d:32:9e:13 inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 UP 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:17 Base address:0xa000 # ifconfig eth0 192.168.0.11 netmask 255.255.255.0 broadcast 192.168.0.255 13
RED_LINUX.14
# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:05:5d:32:9e:13 inet addr:192.168.0.11 Bcast:192.168.0.255 Mask:255.255.255.0 UP 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:17 Base address:0xa000
A diferencia de ifconfig, para cambiar la dirección IP de una interfaz de red usando el comando ip, no basta con usar el comando ip address add 192.168.0.11/24 brd + dev eth0, ya que esto agregará una dirección IP adicional a la interfaz eth0, por lo que el eth0 terminaría con dos direcciones IP. Entonces para cambiar la dirección IP de eth0 primero eliminaremos la dirección antes configurada: # ip a show dev eth0 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:05:5d:32:9e:13 brd ff:ff:ff:ff:ff:ff inet 192.168.0.1/24 brd 192.168.0.255 scope global eth0 # ip address del 192.168.0.1/24 brd + dev eth0 # ip address add 192.168.0.11/24 brd + dev eth0 # ip a show dev eth0 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:05:5d:32:9e:13 brd ff:ff:ff:ff:ff:ff inet 192.168.0.11/24 brd 192.168.0.255 scope global eth0
Nota En versiones nuevas del comando ip se puede usar la opcion "change" o "replace" para cambiar la dirección IP de una interfaz de red. Importante Todas estas configuraciones solo serán validas y surtiran efecto mientras el sistema este corriendo, pero seran eliminadas una vez que el sistema sea reiniciado,
Guardando la configuración de red de forma permantente Todas las configuraciones y cambios en las configuraciones en los parametros de red que hemos hecho hasta ahora tanto con ifconfig y con ip se perderan cuando el sistema sea reiniciado. Para restaurar estas configuraciones cuando el sistema arranca es necesario guardar la configuración de los parametros de red en algun archivo de conifguración. En sistemas operativos basados en Debian GNU/Linux existe un archivo especial donde debemos guardar las configuraciones de red que deseamos sean reestablecido cuando el sistema arranca. El archivo global donde se almacena las configuraciones de las interfaces de red es: /etc/network/interfaces, en este archivo podremos definir varias cosas: ● Definir los parametros de red para la interfaz loopback (lo). 14
RED_LINUX.15
● Definir si una interfaz de red será inicializada al arranque del sistema. ● Definir los parametros de red por interfaz. ● Ejecutar algun comando o acción antes o después de que una interfaz de red sea inicializada. ● Ejecutar algun comando o acción antes o después de que una interfaz de red sea desactivada En las siguientes secciones veremos como hacer las tareas antes mencionadas y asi automatizar el proceso de configuración de la red. Este archivo se puede editar con cualquier editor de textos, las lineas que inician con un # serán ignoradas por los scripts de inicio ya que son consideradas como comentarios. El archivo /etc/network/interfaces tiene una sintaxis como se muestra a continuación: auto dispositivo iface dispositivo inet tipo parametro valor parametro valor
Configurando la interfaz de red loopback (lo) Como se menciono antes, la interfaz loopback solo sirve para uso local en el equipo y no sirve para comunicarse con otros hosts en la red, en esta sección definiremos de forma fija los parametros para dicha interfaz. Al principio de de el archivo /etc/network/interfaces agregaremos la configuración para la interfaz loopback. # Definición de parametros para la interfaz loopback (lo) auto lo iface lo inet loopback
En la sigiente sección se explicara que significan cada una de las directivas ya que es ahi donde se explicaran.
Configurando un dispositivo de red Ethernet con IP fija A lo largo de las secciones anteriores hemos visto como establecer ciertos parametros a una interfaz de red, todas estas configuraciones las hemos hecho de forma estatica, es decir, la dirección IP y otros parametros han sido fijados, a esto también se le conoce como "Asignación de dirección IP fija". A continuación veremos como establecer la misma configuración que hemos estado usando en secciones anteriores, pero en esta ocacion los guardaremos en el archivo de configuración /etc/network/interfaces para que sean establecidos automaticamente al arranque del sistema. A continuación definiremos los parametros para nuestro adaptador de red Ethernet, la interfaz es eth0. # Definición de parametros para la interfaz eth0, # usando el metodo de asignación static. auto eth0 iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 15
RED_LINUX.16 network 192.168.0.0 broadcast 192.168.0.255
A continuación se explicara que es cada uno de los parametros: ● auto. Este parametro sirve para identificar que interfaces fisicas deberán de ser inicializadas cuando el comando ifup es llamado con la opción -a. (Esta opción es usada por los scripts de arranque). El nombre de la interfaz debera seguir la palabra "auto" en la misma linea. ● iface. Con este parametro indicaremos las opciones que se estableceran para la interfaz de red que se nombre. En el ejemplo, las opciones serán para la interfaz de red eth0. ● inet. El parametro inet indica que la interfaz antes nombrada será configurada usando un direccionamiento TCP/IP en especifico la version 4 del protocolo IP. Hay otros parametros como "ipx" o "inet6" para especificar que se trata de una configuracion IPv6. ● static. En nuestro caso indica el tipo de asignación de dirección IP que usara la interfaz antes nombrada. En este caso static, define que usaremos direcciones IP estatias (fijas). Nota En el caso de la interfaz loopback (lo) el tipo de asignación se usa el tipo loopback. ● address. Este parametro es usado para especificar la dirección IP asignada a la interfaz de red antes nombrada. Nota Este parametro es requerido al usar el metodo static. ● netmask. Este parametro sirve para especificar la mascara de subred asignada a la interfaz de red antes nombrada. Nota Este parametro es requerido al usar el metodo static. ● network. Parametro usado para especificar la dirección de red a la que pertenece la interfaz de red. ● broadcast. Este parametro indica cual es la dirección de difusion (broadcast) de la red a la que esta conectado el dispositivo. Nota Este parametro NO es requerido al usar el metodo static.
Configurar la interfaz de red dinámicamente DHCP En esta sección usaremos el metodo de asignación dinamica, este metodo es usado para obtener los parametros de red usando un servidor DHCP. A continuación configuraremos la interfaz eth0 usando el metodo dhcp. # Definición de parametros para la interfaz eth0, # usando el metodo de asignación static. 16
RED_LINUX.17 auto eth0 iface eth0 inet dhcp
Esta configuración no tiene muchas opciones, simplemente le decimos que va a usar asignacion por DHCP. Para que este metodo funcione debe de haber un servidor DHCP que asigne los parametros de red a los equipos conectados localmente. Ademas del servidor dhcp, en el equipo cliente debe de existir un cliente DHCP, en Debian y Ubuntu por default se usa el cliente DHCP: dhclient3 que viene incluido en el paquete dhcp3-client. Para más información se recomienda leer la pagina del manual del interfaces(5).
Iniciar y detener los dispositivos configurados Para que tomen efecto los cambios que pusimos en el archivo de configuración /etc/network/interfaces, es necesario que detengamos o reiniciemos el o los dispositivos definidos en dicho archivo. Para logarlo debemos de usar los comandos ifdown e ifup. Para desactivar la interfaz eth0 previamente definida en el archivo /etc/network/interfaces, usamos el siguiente comando: # ifdown eth0
Para activar la interfaz eth0 previamente definida en el archivo /etc/network/interfaces, usamos el siguiente comando: # ifup eth0
Si queremos aplicar un comando a todas las interfaces definidas en /etc/network/interfaces podemos pasarle la opción -a y el comando activara o desactivara todas las interfaces, por ejemplo: # ifdown -a
Lo mismo funciona para ifup. Para más opciones acerca de como usar ifup e ifdown ver la pagina del manual de ifup. $ man 8 ifup
Creación de rutas y default gateway Como se menciono al inicio del capitulo, el enrutamiento y en especifico las rutas se refieren al camino que los paquetes tomaran para llegar a su destino., en esta sección veremos como conifgurar las rutas en un sistema GNU/Linux
Viendo la tabla de rutas (routing table) Un sistema GNU/Linux de manera predeterminada viene configurado con una tabla de rutas, ya que hasta ahora solo hemos configurado una sola interfaz de red (eth0), en tonces es probable que solo veamos una ruta en nuestra tabla de ruteo. Visualizando la tabla de ruteo usando el comando route: 17
RED_LINUX.18 # route Kernel IP routing table Destination Gateway 192.168.0.0 *
Genmask 255.255.255.0
Flags Metric Ref U 0 0
Use Iface 0 eth0
En la columna Gateway muestra un * en lugar de alguna dirección IP, esto es porque el comand route lee el archivo /etc/networks, este archivo tiene un mapeo de direcciones de red a nombres y los usa para sustituir las direcciones al usar el comando route sin opciones. Se queremos ver las direcciones IP en la salida del comando route, usaremos la opción -n, esta opción nos muestra la salida del comando route en formato númerico, como se muestra a continuación: # route -n Kernel IP routing table Destination Gateway 192.168.0.0 0.0.0.0
Genmask 255.255.255.0
Flags Metric Ref U 0 0
Use Iface 0 eth0
Visualizando la tabla de ruteo usando el comando ip: Con el comando ip podemos ver la tabla de rutas usando cualquiera de los siguientes comandos: # ip route show 192.168.2.0/24 dev eth0 proto kernel default via 192.168.2.1 dev eth0
scope link
src 192.168.2.5
scope link
src 192.168.2.5
También podemos usar la opción "list": # ip route list 192.168.2.0/24 dev eth0 proto kernel default via 192.168.2.1 dev eth0
Como vemos el comando muestra la misma salida. También podemos usar la forma abreviada del comando ip y sus opciones, por ejemplo: ip r s
ó ip r l
En las siguientes secciones veremos como agregar y eliminar rutas a la tabla de rutas de un sistema GNU/Linux.
18
RED_LINUX.19
Creando rutas locales La ruta hacia la red local (LAN) Es normal que nuestro equipo requiera conexion a otros equipos, esta conexión normalmente es necesaria para poder acceder a datos que residen en otras computadoras o servidores, si este es el caso, es posible que nuestro equipo este conectado a un Hub o Switch donde los demas equipos estan conectados, para que todos los equipos puedan estar interconectados es necesarios que todos utilicen el mismo protocolo de red (TCP/IP) y que todos los equipos tengan una dirección IP en el mismo segmento, por ejemplo todos nuestros hosts en nuestra pequeña red estan en el segmento: 192.168.0.0/24. La siguiente figura muestra como se vería nuestra pequeña red: Figura 1.1. Red basica usando Hub/Switch
Hasta ahora nuestro equipo solo tiene una dirección IP y solo se puede comunicar consigo mismo ya se por su dirección IP 192.168.0.1 o por la dirección de loopback: 127.0.0.1. Para que nuestro equipo se pueda comunicar con los otros equipos en la red es necesario que tenga una ruta hacia la red: 192.168.0.0/24, al momento de agregar la dirección IP a la interfaz de red se crea automáticamente la ruta a la red local.
Agregando una ruta hacia otra red En la siguiente figura se muestra la union de dos redes por medio de un router IP, este router IP puede ser un router especificamente diseñado para trabajar como router o también puede ser un equipo Linux con dos tarjetas de red, una conectada a cada red.
19
RED_LINUX.20
Figura 1.2. Usando Router IP para unir dos redes
Agregando una ruta hacia otra red usando el comando route: # route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.0.100
Agregando una ruta hacia otra red usando el comando ip: # ip route add 192.168.2.0/24 via 192.168.0.100
Configurando el default gateway Antes de ver como se configura el default gateway o puerta de enlace (terminología de Windows), primero veremos que es un gateway. Definición de gateway En la terminología actual que se refiere a comunicaciones de datos, un gateway es un dispositivo que mueve datos entre diferentes protocolos, por ejemplo, un gateway que mueve datos entre TCP/IP y X.400, y un router mueve datos entre diferentes redes. Nosotros llamaremos usaremos el termino Gateway IP para referirnos a un dispositivo que mueve datos entre diferentes redes, en especifico redes interconectadas por los protocolos TCP/IP, esto es, un Gateway IP es un router IP tradicional. En las siguientes secciones nos referiremos simplemente como gateway, ya que este libro solo tratará sobre redes TCP/IP. En esta sección configuraremos el default gateway o puerta de enlace predeterminada (como es conocido en la terminología de MS Windows), este default gateway usualmente es usada para que el host que la tenga configurada pueda salir a Internet por medio de equipo designado como gateway. En una red ordinaria, normalmente se tiene un equipo o más conectados a un Hub o Switch, a este switch esta conectado el equipo que actua como default gateway para una red, este equipo normalmente tiene otro dispositivo de red, que puede ser otra tarjeta Ethernet, conectada a un modem o router el cual esta conectado a Internet. La idea general es que cuando el host en la red quiera acceder a algún servicio que no se encuentre en la red local, este diriga la peticion al default gateway y este a su vez reenvie la petición al destino final en Internet, el esquema siguiente ilustra mejor el esquema antes mencionado.
20
RED_LINUX.21
Figura 1.3. Esquema de red con default gateway
Agregando el default gateway (puerta de enlace predeterminada) usando el comando route: # route add default gw 192.168.0.254
Agregando el default gateway (puerta de enlace predeterminada) usando el comando ip: # ip route add default via 192.168.0.254
Eliminando rutas En las siguiente secciones se ver谩 como eliminar rutas previamente establecidas, en realidad este es un tema muy simple ya que son practicamente los mismos comandos que se usan para agregar rutas, la diferencia es que se usa la opci贸n del en lugar de add. Eliminando la ruta hacia otra red
Si deseamos eliminar una ruta de nuestra tabla de ruteo, usaremos cualquiera de los siguientes comandos: Eliminando una ruta usando el comando route: # route del -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.0.100
Eliminando una ruta usando el comando ip: # ip route delete 192.168.2.0/24 dev eth0 21
RED_LINUX.22 Eliminando el default gateway
Si deseamos eliminar una ruta de nuestra tabla de ruteo, usaremos cualquiera de los siguientes comandos: Eliminando una ruta usando el comando route: # route del -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.0.100
Eliminando una ruta usando el comando ip: # ip route delete 192.168.2.0/24 dev eth0
Estableciendo el default gateway de forma permanente En el archivo /etc/network/interfaces podemos agregar el default gateway para que sea configurado automaticamente al arranque del sistema: Nuestra configuración actual esta así: # Definición de parametros para la interfaz eth0, # usando el metodo de asignación static. auto eth0 iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255
Para agregar el default gateway lo usamos con la directiva gateway, como se muestra en el siguiente ejemplo: # Definición de parametros para la interfaz eth0, # usando el metodo de asignación static. auto eth0 iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.254 network 192.168.0.0 broadcast 192.168.0.255
Así, cada vez que el sistema inicie automaticamente establecerá los parametros para el dispositivo Ethernet eth0 y le configurara el default gateway con la dirección 192.168.0.254.
Estableciendo una rutas estáticas de forma permanente Si queremos automatizar el procedimiento para agregar una ruta a otra red, entonces podemos hacerlo desde el archivo /etc/network/interfaces, en este archivo podemos hacer que un comando sea ejecutado despues de que la interfaz haya sido activada. La opción en especifico son: post-up y post-down, por ejemplo: # Definición de parametros para la interfaz eth0, 22
RED_LINUX.23 # usando el metodo de asignación static. auto eth0 iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 post-up route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.0.100 dev eth0 post-down route del -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.0.100 dev eth0 gateway 192.168.0.254 network 192.168.0.0 broadcast 192.168.0.255
Como vemos simplemente le pusimos el comando tal y como lo hicimos en el procedimiento manual, opcionalmente se puede usar el comando en su version ip.
Configurar el hostname y la resolución de nombres local y DNS En esta pequeña sección configuraremos el nombre del host o (hostname), el hostname es un nombre que identificara la maquina. Varios servicios de red, como el servidor web Apache, o el servidor de correos Postfix utilizan el nombre de la maquina para realizar ciertas operaciones, estos servicios requieren que la dirección IP de la maquina resuelva a un nombre DNS FQDN. Si el hostname no esta correctamente configurado es posible que apache de mensajes de error al inicio. Si nuestro sistema GNU/Linux esta conectado a una red Windows, con el hostname es con el que nos podremos identificar ante los demas hosts Windows.
Estableciendo el hostname del sistema Hay varias formas de establecer el nombre del host (hostname) en un sistema GNU/Linux, a continuación se describirán algunas de las formas más usuales. En los ejemplos siguientes estableceremos el hostname del equipo a: jdesk. Configuración del hostname manual La configuración del nombre del host se hace usando el comando hostname, el nombre que se desea usar para el equipo sera pasado como argumento al comando hostname. por ejemplo: # hostname jdesk
Para visualizar el nombre del host actual usamos el comando hostname sin argumentos # hostname jdesk
NOTA: Tambien hay una forma de configurar el hostname por medio de archivos del kernel: Usando sysctl para cambiar el hostname: la variable kernel.hostname Para ver el hostname actual: # sysctl kernel.hostname 23
RED_LINUX.24 kernel.hostname = jdesk
ó # cat /proc/sys/kernel/hostname jdesk
Para cambiar el hostname usando sysctl, use el comando: # sysctl kernel.hostname=NUEVO_HOSTNAME
La variable de entorno HOSTNAME Cuando el nombre del host es establecido, el nombre tambien es pasado como el valor de la variable de entorno $HOSTNAME. Viendo el valor de la variable de entorno HOSTNAME tambien podemos saber cual es el el hombre del host actual. # echo $HOSTNAME jdesk
Para más información se recomienda leer la pagina del manual del comando hostname: $ man 1 hostname
Estableciendo el hostname de forma permanente El nombre del host normalmente es establecido una sola vez cuando el sistema arranca, normalmente un script de inicio, por ejemplo /etc/init.d/hostname.sh lee un archivo de configuración para establecer el hostname. En la mayoria de sistemas GNU/Linux el host name es guardado en el archivo /etc/hostname o /etc/HOSTNAME. Sigamos con nuestro ejemplo, nombraremos nuestra maquina: jdesk, por lo que el archivo /etc/hostname contiene: # cat /etc/hostname jdesk
Normalmente el procedimiento que usan la mayoria de distribuciones Linux es el siguiente: ● Un script de inicio lee el archivo /etc/hostname ● El script configura el valor de la variable de entorno $HOSTNAME usando el contenido del archivo /etc/hostname [ -f /etc/hostname ] && HOSTNAME="$(cat /etc/hostname)"
● El script usa el valor de la variable de entorno $HOSTNAME para establecer el nombre del host (hostname) hostname "$HOSTNAME"
Eso es todo lo que hacen los scripts de inicio, asi la proxima vez que se inicie el equipo se tendra configurado el nombre del host. 24
RED_LINUX.25
Nota Ya que el procedimiento anterior configura la variable de entorno $HOSTNAME esta sera exportada al entorno del usuario, es decir, estara disponible en su shell. Hay varias distribuciones que ponen el nombre del host en el PROMPT, por ejemplo: root@jdesk:~#
Configuración de la biblioteca de resolución de nombres DNS La resolución de nombres DNS en sistemas Linux es realizada mediante la bibliteca resolver, las aplicaciones de Internet utilizan el resolver para la resolución de nombres, cuando un cliente solicita la dirección IP de un nombre, el cliente se conectará al resolver, el resolver consultará el archivo /etc/ nsswitch.conf para encontrar las fuentes y el orden de resolución, las fuentes son bases de datos (locales o remotas) utilizadas para consultar cierto tipo de información (entidades), podemos especificar más de una fuente y el resolver consultará dichas fuente en un orden establecido. El resolver utiliza la entidad de nombres hosts para definir las fuentes de resolución de nombres DNS. El orden de busqueda para la resolución de nombres esta definida en la entidad hosts, en la mayoría de sistemas Linux el archivo encontrará algo así:: hosts:
files dns
El orden de resolución para hosts es el siguiente: files La fuente de busqueda principal es mediante archivos locales, en nuestro caso usando el archivo /etc/hosts para el mapeo manual de nombres de hosts a direcciones IP. dns En este caso el resolver utilizará uno o más servidores DNS para las consultas de resolución de nombres, las direcciones IP de los servidores DNS que usará se definen en el archivo /etc/resolv.conf. Para configurar los servidores DNS que usara el sistema edite el archivo /etc/resolv.conf y agregue uno o más de un servidor usando la opción nameserver, por ejemplo: nameserver 200.23.113.6 nameserver 200.23.113.7
El sistema siempre tratará de resolver un nombre DNS usando el primer servidor listado, si la consulta falla el sistema esperará unos segundos y enviará la consulta al siguiente servidor hasta llegar al máximo de 3. El sufijo DNS puede ser especificado usando la opción search, por ejemplo: search example.com nameserver 200.23.113.6 nameserver 200.23.113.7
Para más información se recomienda leer la pagina del manual de resolv.conf(5). 25
RED_LINUX.26
Recursos adicionales Si desea obtener más información sobre los programas y páginas de manual relacionadas se aconseja que acceda a los siguientes recursos adicionales. Sitios web En las paginas listadas a continuación encontrará mayor información sobre los programas utilizados en este capitulo. ● http://hardware4linux.info/ - hardware4linux ● http://tldp.org/HOWTO/Ethernet-HOWTO.html - Ethernet HOWTO ● http://www.debian.org/doc/manuals/reference/ch05.en.html - Debian Reference - Network Setup ● https://help.ubuntu.com/8.04/serverguide/C/network-configuration.html - Ubuntu 8.04 Server Guide - Network Configuration Páginas de manual Para conocer más sobre el uso y configuración de los programas utilizados en el capitulo, se recomienda leer los manuales relacionados. ● lspci (8) - list all PCI devices ● modprobe (8) - program to add and remove modules from the Linux Kernel ● modinfo (8) - program to show information about a Linux Kernel module ● lsmod (8) - program to show the status of modules in the Linux Kernel ● ethtool (8) - Display or change ethernet card settings ● iftab (5) - assign consistent names to network interfaces ● ifconfig (8) - configure a network interface ● ip (8) - show / manipulate routing, devices, policy routing and tunnels ● dhclient (8) - Dynamic Host Configuration Protocol Client ● route (8) - show / manipulate the IP routing table ● interfaces (5) - network interface configuration for ifup and ifdown ● ifup (8) - bring a network interface up ● ifdown (8) - take a network interface down ● hostname (7) - hostname resolution description ● hosts (5) - The static table lookup for hostnames ● nsswitch.conf (5) - System Databases and Name Service Switch configuration file ● resolv.conf (5) - resolver configuration file Nota Texto extraído del Capitulo 1 del “Manual de Instalación y Administración de Servicios de red en GNU/Linux” de J. Armando Medina (http://tuxjm.net)
26