Monday, November 07, 2005

Proceso para solucionar problemas de Ethernet en Linux

Los siguientes pasos se perfilan para la busqueda y localización de errores en una Ethernet cableada usando Ubuntu Linux. El proceso general vá desde la comprobación del cableado hasta problemas de aplicación. Se partirá de la base de que se dispone de una tarjeta de red y esta es eth0.

PRIMEROS PASOS: CAPA FISICA

Tras comprobar que el cable Ethernet está conectado a la tarjeta de red y las luces de estado parpadean felizmente, ejecutamos lo siguiente en una terminal.

cutoff@this[16:17:17]:~$ sudo mii-tool eth0
eth0: negotiated 100baseTx-FD, link ok


Esto nos dirá que velocidad y modo duplex se han negociado, y que el enlace a tu switch/router/hub ha sido correcto.

DRIVER SOFTWARE

Comprobar que el driver está cargado:

cutoff@this[20:01:00]:~$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:13:46:2F:0B:DC
inet addr:192.168.1.128 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::213:46ff:fe2f:bdc/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:23341 errors:0 dropped:0 overruns:0 frame:0
TX packets:14275 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:28489669 (27.1 MiB) TX bytes:983185 (960.1 KiB)
Interrupt:11 Base address:0xd800


Si no obtenemos respuesta necesitamos determinar que driver debería ser cargado.

cutoff@this[20:01:09]:~$ lspci | grep Eth
0000:00:0b.0 Ethernet controller: D-Link System Inc RTL8139 Ethernet (rev 10)
cutoff@this[20:04:03]:~$ lsmod | grep mii
mii 5760 1 8139too


Si hay un driver cargado pero ifconfig no provee un interface entonces probamos:

sudo ifconfig eth0 up

TESTEANDO EL ENLACE LOCAL

Una vez el driver está cargado comprobar con ifconfig que tenemos una dirección IP.

cutoff@this[20:01:00]:~$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:13:46:2F:0B:DC
inet addr:192.168.1.128 Bcast:192.168.1.255 Mask:255.255.255.0

Para averiguar la dirección IP de tu router:

cutoff@this[20:04:25]:~$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

En mi caso, la IP del router es 192.168.1.1. El flag UG nos dice que esta es la entrada de la puerta de enlace (Gateway).

Probamos a hacer ping a nuestro router.

cutoff@this[20:17:50]:~$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=254 time=0.834 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=254 time=0.743 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=254 time=0.709 ms

--- 192.168.1.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.705/0.747/0.834/0.061 ms

Si no obtuvimos una dirección IP de ifconfig y estamos usando DHCP entonces probamos lo siguiente.

sudo dhclient eth0

LLEGANDO A INTERNET POR NÚMERO

Si podemos hacer ping a la IP del router, el siguiente paso es intentar llegar a Internet por número.

cutoff@this[20:29:12]:~$ ping 209.98.65.80
PING 209.98.65.80 (209.98.65.80) 56(84) bytes of data.
64 bytes from 209.98.65.80: icmp_seq=1 ttl=114 time=177 ms
64 bytes from 209.98.65.80: icmp_seq=2 ttl=114 time=177 ms
64 bytes from 209.98.65.80: icmp_seq=3 ttl=114 time=178 ms

--- 209.98.65.80 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 177.227/177.771/178.306/0.440 ms

Si esto falla y nuestra Gateway está debidamente establecida entonces puede haber algo incorrecto en nuestro router o con nuestro ISP. En este caso, valdría la pena probar la conexión con otra maquina o sistema operativo.

LLEGANDO A INTERNET POR NOMBRE

cutoff@this[20:29:23]:~$ ping www.mpr.org
PING www.mpr.org (209.98.65.80) 56(84) bytes of data.
64 bytes from 1400inc.com (209.98.65.80): icmp_seq=1 ttl=114 time=178 ms
64 bytes from 1400inc.com (209.98.65.80): icmp_seq=2 ttl=114 time=177 ms
64 bytes from 1400inc.com (209.98.65.80): icmp_seq=3 ttl=114 time=177 ms

--- www.mpr.org ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 177.238/177.803/178.920/0.927 ms

Si no podemos llegar a un sitio por nombre pero sí por número, entonces hay un problema con las DNS (Domain Name Server). Deberíamos examinar el contenido del archivo /etc/resolv.conf y asegurarnos que las entradas son válidas.

cutoff@this[20:38:23]:~$ cat /etc/resolv.conf
nameserver 62.36.225.150
nameserver 62.37.228.20

Si podemos llegar a Internet por nombre desde linea de comandos entonces nuestra conexión es buena. Lo siguiente se refiere a problemas en las aplicaciones.

PROBLEMAS COMUNES CON LAS APLICACIONES

IPV6: Mucha gente usa IPV6 (sobre todo laboratorios academicos), pero puede causar problemas de networking con ciertos routers. Yo recomendaria deshabilitarlo. Basta con editar el fichero /etc/modprobe.d/aliases y localizar la siguiente linea.

alias net-pf-10 ipv6

Una vez localizada, debemos colocar una almohadilla (#) al inicio de dicha linea. Deberemos reiniciar el sistema para que los cambios surtan efecto (aunque esto no es del todo cierto, existen otros metodos que no voy a explicar. Para eso está Google).

Eso es todo, espero les haya sido útil.

1 Comments:

Blogger Ronan Jimson said...

Good day bull3tpr00f, This is a good article site.
i found many information here.
-----------------------------------------------
http://global-in-arm.com
Good luck, bull3tpr00f

4:13 PM  

Post a Comment

<< Home