Linux Avanzado

Cuando pensamos en las redes Linux y en la configuración de red, .... user can use PPP and uses passwords from /etc/pass
149KB Größe 11 Downloads 162 Ansichten
Linux Avanzado

Tema 11: Administración de Redes. Sobre la configuración de red

Cuando pensamos en las redes Linux y en la configuración de red, conviene tener presente el modelo de referencia de siete niveles de OSI: Figura 1. El modelo de referencia de siete niveles de OSI

Lo que denominados "configuración de red" reside esencialmente en el segundo y en el tercer nivel (el nivel de vínculo de datos y el nivel de red) y en las interfaces que existen entre ellos. En la práctica, esto significa interfaces seriales o Ethernet (como, por ejemplo, los módems para el nivel de vínculo de datos y el Protocolo de Internet (IP) para el nivel de red). Más adelante, los tutoriales de esta serie se ocupan de los niveles más avanzados, aunque la mayoría de las aplicaciones de servidor que se discuten no realizan una clara separación entre los siete niveles (o incluso entre los cuatro principales niveles en los que operan). El primer nivel de red es el nivel físico (es decir, los cables (o los canales inalámbricos) y los circuitos reales). Un administrador de red práctico debe estar listo para inspeccionar el cableado e instalar nuevos periféricos de red de vez en cuando (pero estos temas están fuera del alcance de estos tutoriales). Claramente, sin embargo, un cable suelto, una placa Ethernet quemada o un enchufe roto puede ocasionar problemas de red al igual que un software mal configurado. El cuarto nivel es el nivel de transporte. Concretamente, esto significa el TCP o el UDP en las redes IP. Tanto TCP como UDP se usan en los niveles más altos por medio de la Berkeley Sockets Interface, una biblioteca bien probada que forma parte de todos los sistemas de computadora modernos

Otros recursos Como con la mayoría de las herramientas Linux, las páginas man incluyen información muy valiosa. Para mayor información detallada, el Linux Documentation Project [Proyecto de documentación de Linux] le ofrece una gran variedad de documentos útiles (en especial, sus instructivos). También le resultarán muy útiles otros libros sobre redes Linux, como el publicado por O'Reilly titulado TCP/IP Network Administration [Administración de redes TCP/IP] de Craig Hunt.

1

Usted podrá encontrar vínculos para acceder a estos y a muchos otros recursos en la sección denominada Recursos de este tutorial.

Configuración de red básica Protocolo de resolución de direcciones Lo primero que debe comprender sobre los dispositivos Ethernet (las redes 802.11a/b/g inalámbricas o las más tradicionales CAT5 / CAT6) es que cada dispositivo Ethernet incluye una ID exclusiva de seis bytes. Estas IDs se asignan en bloques a los fabricantes. Usted puede buscar las asignaciones del número Ether en IANA. En general, Ethernet "simplemente trabaja" a nivel del hardware, aunque un sistema debe mapear un ID de Ethernet a la dirección IP que usará para activar el funcionamiento en red de la IP. El Protocolo de Resolución de Direcciones (ARP, por sus siglas en inglés) permite que las máquinas descubran la dirección IP de cada una de ellas dentro de una red Ethernet local. Como protocolo, ARP se suele implementar dentro de los drivers de dispositivos de red (módulos kernel). La herramienta arp le permite examinar el estado del sistema ARP y realizar algunas modificaciones. En este punto, asumimos que cada máquina se configuró para que conozca su propia dirección IP, ya sea por asignación estática o dinámicamente con DHCP. Cuando un sistema Linux (o un dispositivo con Ethernet) desea referirse a una dirección IP, se envía el mensaje de solicitud del ARP ("who is X.X.X.X tell Y.Y.Y.Y") usando la dirección de trasmisión de la Ethernet. El sistema destino formula una respuesta ARP ("X.X.X.X is hh:hh:hh:hh:hh:hh") y la envía al host que la solicita. Las respuestas ARP se guardan en el caché por un tiempo corto en /proc/net/arp para evitar la necesidad de restablecer de manera continua el mapeo entre las direcciones Ethernet del hardware y las direcciones IP. Gorry Fairhurst le ofrece una excelente descripción del ARP (vea la sección Recursos).

La utilidad arp La utilidad arp de Linux le permite examinar y modificar el estado de los mapeos del ARP. Es posible que un informe de estado simple sea muy parecido a lo que se puede observar en el Listado 1: Listado 1. Informe de estado del ARP $ arp -n Address HWtype HWaddress Flags Mask Iface 192.168.2.1 ether 00:03:2F:09:61:C7 C eth0

Esto le indica cuál es el dispositivo de hardware específico asignado a la dirección IP 192.168.2.1 en esta red (en este caso, el número utilizado sugiere un router / una puerta de enlace). El hecho de que sólo este mapeo figura en la lista no significa obligatoriamente que ningún otro dispositivo existe en la red local. Simplemente, esto indica que los registros del ARP correspondientes a otros dispositivos caducaron. ARP hace que los registros caduquen luego de un corto período de tiempo (en minutos, en vez de en segundos o en horas) para permitir que las redes se reconfiguren si se agregan o eliminan hosts o si la configuración se modifica en las máquinas. Al mantener el registro del ARP en el caché por un breve período de tiempo, no debería ser necesario contar con una nueva solicitud durante la mayoría de las sesiones de la aplicación del cliente / servidor. Cualquier tipo de solicitud de IP en un host que puede estar en la red local hace que el kernel envíe una solicitud de ARP. Si se recibe una respuesta de ARP, agregue el host al caché del ARP (como se puede observar en el Listado 2): Listado 2. Interacción con direcciones IP adicionales $ ping -c 1 192.168.2.101 > /dev/null $ ping -c 1 192.168.2.101 > /dev/null $ ping -c 1 192.168.2.102 > /dev/null $ ping -c 1 192.168.32.32 >

2

/dev/null $ ping -c 1 192.168.32.32 > /dev/null $ arp -n Address HWtype HWaddress Flags Mask Iface 192.168.2.1 ether 00:03:2F:09:61:C7 C eth0 192.168.2.101 ether 00:30:65:2C:01:11 C eth0 192.168.2.100 ether 00:11:24:9D:1E:4B C eth0 192.168.2.102 ether 00:48:54:83:82:AD C eth0

En este caso, las primeras cuatro direcciones realmente existen en la red Ethernet local. Éste no es el caso de 192.168.32.32. Por lo tanto, no se recibe ninguna respuesta de ARP. También tenga en cuenta que las direcciones a las que usted se pueda conectar por medio de un ruteo no local tampoco harán que se agregue nada al caché del ARP (vea el Listado 3): Listado 3. No se agrega nada al caché del ARP $ ping -c 1 google.com PING google.com (216.239.57.99) 56(84) bytes of data. 64 bytes from 216.239.57.99: icmp_seq=1 ttl=235 time=109 ms --- google.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 109.123/109.123/109.123/0.000 ms $ arp -n Address HWtype HWaddress Flags Mask Iface 192.168.2.1 ether 00:03:2F:09:61:C7 C eth0

Se puede llegar a Google (porque el ruteo ya está configurado), pero 216.239.57.99 no es una dirección local y no se agrega al ARP. El séptimo tutorial de esta serie, sobre el tema 214, se ocupa de la solución de problemas de red y demuestra la configuración manual del ARP.

PPP, PAP y CHAP El Protocolo Punto a Punto (PPP) se usa para establecer vínculos de Internet a través de módems dial-up, conexiones seriales directas, DSL y otros tipos de vínculos punto a punto (a veces, se incluye el PPPoE como un "seudonivel" a través de Ethernet, lo que es más como un protocolo de desafío mutuo). El daemon pppd trabaja junto con el driver PPP del kernel para establecer y conservar un vínculo PPP con otro sistema (al que se denomina "el par") y para negociar direcciones IP para cada extremo del vínculo en cuestión. PPP, especialmente pppd, autentica su par y / o le provee información de autenticación. Dicha autenticación se lleva a cabo usando el sistema de contraseña simple denominado Protocolo de Autenticación de Contraseña (PAP) o el Protocolo de Autenticación por Desafío Mutuo (CHAP) por sesión. De estos dos protocolos, CHAP es más seguro si ambos extremos lo soportan. En general, las opciones para el PPP se almacenan en /etc/ppp/options. La configuración del PAP se realiza por medio del archivo de secretos PAP (/etc/ppp/pap-secrets). En el caso de CHAP, esto se realiza por medio del archivo de secretos CHAP (/etc/ppp/chap-secrets).

El archivo de secretos PAP / CHAP El archivo /etc/ppp/pap-secrets incluye campos separados por espacios en blanco para cliente, servidor, secreto y dirección IP aceptable. El último campo puede quedar en blanco (y, generalmente, se usa para la asignación dinámica de la IP). El archivo de secretos PAP se debería configurar de manera adecuada para cada par. Aunque el PPP es un protocolo de pares, a los propósitos de una conexión, denominamos "cliente" a la máquina solicitante y "servidor" a la máquina que espera respuesta. Por ejemplo, la máquina bacchus en mi red tiene una configuración como la que se puede observar a continuación: Listado 4. Configuración de secretos pap en la máquina bacchus # Every regular user can use PPP and uses passwords from /etc/passwd # INBOUND connections #

3

client server secret accepTabla local IP addresses * bacchus "" * chaos bacchus chaos-password # OUTBOUND connections bacchus * bacchus-password

La máquina bacchus aceptará conexiones que aleguen ser cualquier usuario regular o una máquina del caos (y que reclame la contraseña chaos-password en el último caso). Para las demás máquinas, bacchus simplemente usará su propio nombre y ofrecerá la contraseña bacchuspassword a todos los pares. De igual forma, la máquina del caos en mi red podría tener lo siguiente: Listado 5. La máquina del caos realiza opciones de conexión más conservadoras # client server secret accepTabla local IP addresses chaos bacchus chaos-password bacchus chaos bacchus-password

La máquina del caos es más conservadora en lo que se refiere a quién se conectará. Sólo querrá compartir credenciales con la máquina bacchus. Usted puede configurar cada archivo /etc/ppp/options para que decida si se deben exigir las credenciales. El uso de secretos CHAP requiere que usted permita que ambas máquinas pares se autentiquen entre sí. Siempre que esté activada la autenticación bidireccional en los secretos PAP, es posible que un archivo de secretos CHAP tenga la misma apariencia que lo que se puede observar en los ejemplos anteriores.

Conexión con mgetty El archivo de secretos PAP se puede usar con la función AUTO_PPP de mgetty. Se preconfigura mgetty 0.99+ para que inicie pppd con la opción login. Esto le indica a pppd que debe consultar /etc/passwd (y /etc/shadow cuando sea necesario) luego de que el usuario haya transmitido este archivo. En general, se puede configurar un programa getty para que permita conexiones desde los dispositivos seriales (lo que incluye los módems y los puertos seriales directos). Por ejemplo, en el caso de una línea conectada físicamente o una consola tty, usted podría ejecutar lo siguiente /sbin/getty 9600 ttyS1 en su inittab. En el caso de una línea dial-in antigua con un módem de 9600/2400/1200 baudios, usted podría ejecutar lo siguiente: /sbin/getty -mt60 ttyS1 9600,2400,1200.

Configuración del ruteo Cuando discutimos el Protocolo de Resolución de Direcciones, pudimos observar cómo se asignan las direcciones IP dentro de una red local. Sin embargo, para comunicarse con máquinas fuera de la red local, es necesario contar con una puerta de enlace / un router. Básicamente, una puerta de enlace es una máquina que se conecto con más de una red y, por lo tanto, puede tomar paquetes transmitidos dentro de una red y retransmitirlos hacia las otras redes a las que esté conectada. De aquí proviene el nombre "Internet". Se trata de una "red de redes" en la que cada puerta de enlace, finalmente, puede acceder a las demás redes que están "en Internet". El quinto tutorial de esta serie, sobre el tema 210, se ocupa de la gestión de clientes de red y discute DHCP. DHCP asignará tanto las direcciones IP del cliente como las direcciones de la puerta de enlace. Sin embargo, con una dirección IP fija en un cliente o en situaciones de depuración de errores, el comando route de Linux le permitirá visualizar y modificar las tablas de ruteo. El comando más nuevo denominado ip también le permite modificar las tablas de ruteo usando una sintaxis un poco más poderosa. Una tabla de ruteo simplemente le permite determinar a qué puerta de enlace o host enviar un paquete, según un patrón específico en la dirección. Se especifica un patrón de dirección

4

combinando una dirección con una máscara de subred. Una máscara de subred es un patrón de bits (generalmente representado en notación de cuádrupla punteada) que le indica al kernel qué bits de un destino debe considerar como la dirección de red y qué bits restantes debe considerar como una subred. El comando ip puede aceptar el formato /NN más simple para las máscaras de bits. En general, en una máscara y en una dirección, cero bits son "comodines". Por ejemplo, es probable que una red simple con una sola puerta de enlace externa tenga una tabla de ruteo similar a la que se puede observar en el Listado 6: Listado 6. Tabla de ruteo simple típica $ route -n Kernel IP routing Tabla Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 eth0 Esto significa simplemente que cualquier dirección IP que se condiga con "192.168.2.*" estará en la red local y se enviará directamente al host adecuado (resuelto con el ARP). Todas las demás direcciones se enviarán a la puerta de enlace "192.168.2.1", a la que se le solicitará que reenvíe un paquete de manera apropiada. La máquina 192.168.2.1 debe estar conectada a una o más redes externas. Sin embargo, en un caso más complejo, es posible que usted rutee patrones específicos de manera diferente. En un ejemplo inventado, supongamos que usted desea rutear /16 direcciones específicas a través de otras puertas de enlace. Usted podría hacer lo que se puede observar en el Listado 7: Listado 7. Cambio del ruteo en /16 redes $ route add -net 216.109.0.0 netmask 255.255.0.0 gw 192.168.2.2 $ route add -net 216.239.0.0 netmask 255.255.0.0 gw 192.168.2.3 $ route -n Kernel IP routing Tabla Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 216.109.0.0 192.168.2.2 255.255.0.0 UG 0 0 0 eth0 216.239.0.0 192.168.2.3 255.255.0.0 UG 0 0 0 eth0 0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 eth0 Las direcciones que tengan los formatos "216.109.*" y "216.239.*" ahora se rutearán a través de las puertas de enlace 192.168.2.2 y 192.168.2.3 respectivamente (ambas en la red local). Las direcciones locales, o aquellas que estén fuera de los espacios del patrón, se rutearán igual que antes. Usted puede usar el comando route delete para eliminar los ruteos.

Configuración de red avanzada y solución de problemas Sobre las utilidades de red Linux incluye varias utilidades estándar que usted puede usar para personalizar una configuración de red y solucionar todos los problemas que la involucren. Aunque la mayor parte del código de red de Linux se encuentra en el kernel, casi todos los aspectos relacionados con el comportamiento de las redes es configurable usando utilidades de línea de comandos. Muchas distribuciones también incluyen herramientas de configuración de más alto nivel y / o de configuración gráfica de alto nivel. Sin embargo, estas herramientas no incluyen nada que no se pueda realizar y programar usando las herramientas de línea de comandos.

La utilidad ping La forma más básica de controlar si un host Linux tiene acceso a una dirección IP (o a un host nombrado, luego de configurar el DNS y / o /etc/hosts) consiste en usar la utilidad ping. ping opera en el nivel de IP básico y no se basa en el nivel de vínculo de datos (como sí lo hace TCP o IP). En cambio, ping usa el Protocolo de Mensajes de Control de Internet (ICMP). Si no puede acceder a un host por medio de ping, usted puede asumir que no logrará tener acceso a dicho host con ninguna otra herramienta. Por lo tanto, ping siempre es el primer paso al momento de determinar si

5

una conexión con un host está disponible (la página man sobre ping incluye detalles sobre las diferentes opciones). De manera predeterminada, ping envía un mensaje por segundo hasta que se lo cancela. De todas formas, usted puede optar por modificar este intervalo de tiempo, limitar el conteo de mensajes y cambiar los detalles de salida. Cuando se ejecuta ping, esta herramienta devuelve algunos detalles sobre el tiempo de ida y vuelta y los paquetes eliminados. Pero en principio, usted puede hacer ping en un host o no puede hacerlo. El Listado 8 le muestra algunos ejemplos de esto: Listado 8. Ejemplos locales y no locales de ping $ ping -c 2 -i 2 google.com PING google.com (216.239.37.99): 56 data bytes 64 bytes from 216.239.37.99: icmp_seq=0 ttl=237 time=43.861 ms 64 bytes from 216.239.37.99: icmp_seq=1 ttl=237 time=36.956 ms --- google.com ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max = 36.956/40.408/43.861 ms $ ping 192.168.2.102 PING 192.168.2.102 (192.168.2.102): 56 data bytes 64 bytes from 192.168.2.102: icmp_seq=0 ttl=255 time=4.64 ms 64 bytes from 192.168.2.102: icmp_seq=1 ttl=255 time=2.176 ms ^C --- 192.168.2.102 ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max = 2.176/3.408/4.64 ms

La utilidad iconfig

Las interfaces de red se configuran con la herramienta ifconfig. Generalmente, a esta herramienta se la ejecuta como parte del proceso de inicio del sistema. Pero en algunos casos, existe la posibilidad de modificar y poner a punto las interfaces más adelante (especialmente para la depuración de errores). Si usted ejecuta ifconfig sin switches, se visualiza el estado actual. Usted puede usar los formatos ifconfig up y ifconfig down para iniciar y detener las interfaces de red. Algunos otros switches modifican la visualización o limitan la visualización a ciertas interfaces específicas. Vea la página man sobre ifconfig para mayor información. Una visualización a modo informativo podría ser similar a lo que se puede observar en el Listado 9: Listado 9. Uso de ifconfig para examinar interfaces de red $ ifconfig eth0 Link encap:Ethernet HWaddr 00:12:F0:21:4C:F8 inet addr:192.168.2.103 Bcast:192.168.2.255 Mask:255.255.255.0 inet6 addr: fe80::212:f0ff:fe21:4cf8/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:540 errors:0 dropped:0 overruns:0 frame:0 TX packets:233 errors:0 dropped:0 overruns:0 carrier:1 collisions:0 txqueuelen:1000 RX bytes:49600 (48.4 KiB) TX bytes:42067 (41.0 KiB) Interrupt:21 Base address:0xc000 Memory:ffcfe000-ffcfefff ppp0 Link encap:Point-Point Protocol inet addr:10.144.153.104 P-t-P:10.144.153.51 Mask:255.255.255.0 UP POINTOPOINT RUNNING MTU:552 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 TX packets:0 errors:0 dropped:0 overruns:0 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:4043 errors:0 dropped:0 overruns:0 frame:0 TX packets:4043 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:368044 (359.4 KiB) TX bytes:368044 (359.4 KiB)

En esta visualización, se configuran dos redes (una en Ethernet y una en PPP), además del bucle invertido local. En otros casos, es posible que usted tenga configuradas múltiples interfaces Ethernet u otro tipo de interfaz. En tal caso, al sistema se lo denomina multihomed.

6

La utilidad netstat

Las funcionalidades de las utilidades Linux se suelen superponer. La herramienta netstat visualiza información que también se puede visualizar usando otras utilidades (como, por ejemplo, ifconfig y route). Usted también puede llegar a encontrar vastas estadísticas generales sobre la actividad de red. Por ejemplo: Listado 10. Informe de estadísticas de red $ netstat -s Ip: 12317 total packets received 0 forwarded 0 incoming packets discarded 12255 incoming packets delivered 11978 requests sent out Icmp: 1 ICMP messages received 0 input ICMP message failed. ICMP input histogram: echo replies: 1 0 ICMP messages sent 0 ICMP messages failed ICMP output histogram: Tcp: 7 active connections openings 5 passive connection openings 0 failed connection attempts 0 connection resets received 3 connections established 11987 segments received 11885 segments send out 0 segments retransmitted 0 bad segments received. 3 resets sent Udp: 101 packets received 0 packets to unknown port received. 0 packet receive errors 92 packets sent TcpExt: 1 TCP sockets finished time wait in fast timer 1490 delayed acks sent Quick ack mode was activated 5 times 3632 packets directly queued to recvmsg prequeue. 126114 of bytes directly received from backlog 161977 of bytes directly received from prequeue 1751 packet headers predicted 3469 packets header predicted and directly queued to user 17 acknowledgments not containing data received 4696 predicted acknowledgments 0 TCP data loss events

Otras utilidades Existen muchas otras utilidades que usted debería conocer en relación con la configuración de redes. Como de costumbre, sus respectivas páginas man incluyen detalles exhaustivos sobre su uso. El séptimo tutorial de esta serie, sobre el tema 214, que se ocupa de la solución de problemas de red, discute todas estas utilidades en detalle. tcpdumple permite monitorear todos los paquetes que pasan a través de las interfaces de red (lo que, opcionalmente, se puede limitar a ciertas interfaces en particular o filtrarse de acuerdo con diversos criterios específicos). tcpdump, que suele guardar la información resumida del paquete y luego la filtra o la resume usando herramientas de procesamiento de texto, es muy útil para depurar problemas de red. Por ejemplo, usted puede examinar paquetes que se comunican con un host remoto en particular. lsofle muestra una lista de los archivos abiertos en un sistema Linux en funcionamiento. Pero en particular, usted puede usar la opción lsof -i para examinar sólo los pseudoarchivos correspondientes a una conexión IP en particular o para las conexiones de red en general. Por ejemplo: Listado 11. Uso de lsof para examinar pseudoarchivos para conexiones $ lsof -i COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME vino-serv 7812 dqm 33u IPv4 12824 TCP *:5900 (LISTEN) gnome-cup 7832 dqm 18u IPv4 12865 TCP localhost.localdomain:32771->localhost.localdomain:ipp (ESTABLISHED) telnet 8909 dqm 3u IPv4 15771 TCP 192.168.2.103:32777->192.168.2.102:telnet (ESTABLISHED)

7

nc y netcat son alias. netcat es una utilidad UNIX simple que lee y escribe datos en las conexiones de red usando el protocolo TCP o UDP. Es una herramienta de "back-end" que se puede usar directamente o impulsada por otros programas y scripts. En muchos aspectos, netcat es similar a telnet, aunque es más versátil en lo que se refiere a permitir la interacción UDP y a enviar datos binarios no filtrados. Recursos Aprender • Lea la Kernel Rebuild Guide [Guía de reconstrucción de kernels] de Read Kwan Lowe para más detalles sobre la creación de un kernel. •

Aprenda cómo las aplicaciones usan TCP o UDP en estos tutoriales: o "Programming Linux sockets, Part 1" [Programación de sockets Linux - Parte 1] (developerWorks; octubre de 2003) o "Programming Linux sockets, Part 2" [Programación de sockets Linux - Parte 2] (developerWorks; enero de 2004)



TCP/IP Network Administration, Third Edition [Administración de redes TCP/IP - Tercera edición] de Craig Hunt (O'Reilly; abril de 2002) es un excelente recurso sobre las redes de Linux.



Encuentre las asignaciones de número Ether en IANA.



Gorry Fairhurst le ofrece una buena descripción de ARP.



Muchos grupos de usuarios de Linux tienen grupos de estudio a nivel local y a distancia para prepararse para los exámenes de LPI. A continuación, incluimos una lista de más de 700 grupos de usuarios de Linux en todo el mundo.



El Linux Documentation Project [Proyecto de documentación de Linux] cuenta con una gran variedad de documentos útiles (especialmente, sus instructivos).



Encuentre más tutoriales developerWorks.

para

desarrolladores

de

Linux en

la zona

Linux

de

8

Solución de problemas de red Herramientas de configuración de redes Acerca de la solución de problemas de red Para solucionar los problemas de una configuración de red determinada, es necesario saber cómo se usan algunas de las herramientas analizadas en esta serie de tutoriales; también se necesita estar familiarizado con los archivos de configuración que afectan el estado y el comportamiento de la red. Este tutorial resume las principales herramientas y archivos de configuración con los que debe estar familiarizado para solucionar los problemas de una manera eficaz. Por motivos de simplicidad, el presente tutorial agrupa las herramientas en función de si una determinada herramienta se aplica más a la configuración de una red o al diagnóstico de problemas de red. Por supuesto que, en la práctica, estos elementos rara vez se encuentran separados.

ifconfig Esta utilidad informa el estado actual de las interfaces de red y, además, permite modificar la configuración de esas interfaces. En la mayoría de los casos, si hay algún problema en una red – p. ej., una máquina no puede acceder a la red– la ejecución deifconfig sin opciones suele ser el primer paso que se debe dar. Si la utilidad no informa interfaces activas, es muy probable que la máquina local tenga un problema de configuración. En este caso, "activas" significa que se muestra una dirección IP asignada; en la mayoría de los casos, aparecerá un cierto número de paquetes en las líneas RX y TX: Listado 1. Uso de ifconfig eth0 Link encap:Ethernet HWaddr 00:C0:9F:21:2F:25 inet addr:192.168.216.90 Bcast:66.98.217.255 Mask:255.255.254.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:6193735 errors:0 dropped:0 overruns:0 frame:0 TX packets:6982479 errors:0 dropped:0 overruns:0 carrier:0 Intentar activar una interfaz con algo similar a ifconfig eth0 up ... es un buen primer paso para comprobar si es posibleactivar la interfaz (es muchos casos, completando opciones adicionales en la línea).

route Preparación para el examen 202 de LPI (tema 205): Configuración de redes analiza route con más detalle. Esta utilidad permite ver y modificar las tablas de ruteo vigentes de una máquina local y una red local. Con route, es posible agregar y eliminar rutas, establecer máscaras de red y puertas de enlace y realizar otras tareas de ajuste. En la mayoría de los casos, las llamadas a route deberían realizarse en los scripts de inicialización, pero, al momento de diagnosticar y corregir problemas, puede ser útil experimentar con opciones de ruteo (es posible copiar las operaciones correctas en los scripts de inicialización adecuados para su posterior uso).

hostname Esta utilidad también tiene alias que emplean sus diferentes aspectos: • domainname • nodename • dnsdomainname • nisdomainname • ypdomainname Estas capacidades se controlan con switches a hostname.

9

hostname se usa tanto para establecer como para mostrar el nombre actual de host, dominio o nodo del sistema. Estos nombres son usados por muchos de los programas de red para identificar la máquina. El nombre de dominio también es usado por NIS/YP.

dmesg La utilidad dmesg permite examinar mensajes de registro de kernel; funciona en colaboración con syslogd. El mejor acceso a cualquiera de los procesos de kernel, incluso aquellos relacionados con las redes, se logra usando la utilidad dmesg, por lo general filtrada con otras herramientas como grep, así como con switches a dmesg.

Configuración manual de ARP Casi nunca será necesario o deseable meterse en registros ARP descubiertos de manera automática. Sin embargo, es posible que desee configurar manualmente el caché ARP en situaciones de depuración. La utilidad arp le permitirá hacer esto. Las principales opciones indicadoras de la utilidad arp son -d(eliminar), -s(establecer) y -f(establecer desde archivo) (el archivo predeterminado es /etc/ethers). Por ejemplo, supongamos que la comunicación con una dirección IP específica de la red local es errática o poco confiable. Una posible causa de esta situación es que existen múltiples máquinas incorrectamente configuradas para usar la misma dirección IP. Cuando se difunde una solicitud ARP en la red Ethernet, no está predeterminado qué máquina responderá primero con una respuesta ARP. El resultado final podría ser que los paquetes de datos se entreguen a una máquina una vez y a otra máquina la próxima vez. El uso de arp -n para depurar la asignación de IP es un primer paso. Si se puede determinar que la dirección IP en cuestión no está asignada al dispositivo Ethernet correcto, ya tendremos una pista importante sobre lo que está ocurriendo. Sin embargo, además de esa detección un tanto aleatoria, es posible forzar la asignación ARP correcta usando la opción arp -s(o -f). Configure una IP de manera que esté asignada al dispositivo Ethernet adecuado; una asignación manual no expirará a menos que se establezca específicamente que lo haga mediante el indicador temp. Si una asignación ARP manual corrige el problema de pérdida de datos, es probable que el problema consista en la sobreasignación de direcciones IP.

Herramientas de diagnóstico de red netstat Esta utilidad muestra una variedad de información sobre conexiones de red, tablas de ruteo, estadísticas de interfaz, conexiones enmascaradas y pertenencias de multidifusión. Entre otras cosas, netstat proporciona estadísticas bastante detalladas de paquetes que han sido manipulados de diversas maneras. La página man de netstat ofrece información de la amplia gama de switches y opciones disponibles. Esta utilidad es una buena herramienta de uso general para ahondar en detalles acerca del estado de la red en la máquina local.

ping Un buen punto de partida para verificar si es posible conectarse a un host determinado desde la máquina actual (por número IP o nombre simbólico) es la utilidad ping. Además de establecer si existe una ruta—incluyendo la resolución de nombres a través de DNS u otro medio si se usa un nombre simbólico— ping ofrece información sobre los tiempos de ida y vuelta, que pueden ser indicativos de congestión en la red o retrasos en el ruteo. A veces ping muestra un porcentaje de paquetes perdidos, pero, en la práctica, casi siempre verá 100 ó 0 por ciento de paquetes caídos con las solicitudes ping.

traceroute La utilidad traceroute es como un ping con esteroides. En lugar de simplemente informar que existe una ruta a un host determinado, traceroute da detalles completos de todos los saltos dados en el camino, incluidos los intervalos de cada router. Las rutas pueden cambiar con el tiempo, debido a

10

los cambios dinámicos de Internet o bien debido a los cambios de ruteo implementados localmente. Sin embargo, traceroute muestra la ruta seguida en un momento determinado. Listado 2. traceroute muestra la ruta seguida $ traceroute google.com traceroute: Warning: google.com has multiple addresses; using 64.233.187.99 traceroute to google.com (64.233.187.99), 30 hops max, 38 byte packets 1 ev1s-66-98-216-1.ev1servers.net (66.98.216.1) 0.466 ms 0.424 ms 0.323 ms 2 ivhou-207-218-245-3.ev1.net (207.218.245.3) 0.650 ms 0.452 ms 0.491 ms 3 ivhou-207-218-223-9.ev1.net (207.218.223.9) 0.497 ms 0.467 ms 0.490 ms 4 gateway.mfn.com (216.200.251.25) 36.487 ms 1.277 ms 1.156 ms 5 so-5-0-0.mpr1.atl6.us.above.net (64.125.29.65) 13.824 ms 14.073 ms 13.826 ms 6 64.124.229.173.google.com (64.124.229.173) 13.786 ms 13.940 ms 14.019 ms 7 72.14.236.175 (72.14.236.175) 14.783 ms 14.749 ms 14.476 ms 8 216.239.49.226 (216.239.49.226) 16.651 ms 16.421 ms 17.648 ms 9 64.233.187.99 (64.233.187.99) 14.816 ms 14.913 ms 14.775 ms

host, nslookup y dig Estas tres utilidades— host, nslookup y dig —se usan para consultar entradas DNS; en gran medida superponen sus capacidades. Por lo general,nslookup proporciona mejoras a host y dig, a su vez, mejora nslookup(si bien ninguna de las tres es exactamente compatible con las versiones anteriores o posteriores de las otras). Las tres herramientas se basan en las mismas facilidades de kernel subyacentes, por lo que los resultados informados deberían ser uniformes en todos los casos (excepto cuando difiere el nivel de detalle). Por ejemplo, cada una de ellas se usa para consultar en google.com: Listado 3. Uso de host, nslookup y dig para consultar en Google $ host google.com google.com has address 64.233.187.99 google.com has address 64.233.167.99 google.com has address 72.14.207.99 $ nslookup google.com Server: 207.218.192.39 Address: 207.218.192.39#53 Non-authoritative answer: Name: google.com Address: 64.233.167.99 Name: google.com Address: 72.14.207.99 Name: google.com Address: 64.233.187.99 $ dig google.com ; DiG 9.2.4 google.com ;; global options: printcmd ;; Got answer: ;; ->>HEADER