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.
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:
Si no obtenemos respuesta necesitamos determinar que driver debería ser cargado.
Si hay un driver cargado pero ifconfig no provee un interface entonces probamos:
TESTEANDO EL ENLACE LOCAL
Una vez el driver está cargado comprobar con ifconfig que tenemos una dirección IP.
Para averiguar la dirección IP de tu router:
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.
Si no obtuvimos una dirección IP de ifconfig y estamos usando DHCP entonces probamos lo siguiente.
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.
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
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.
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.
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.
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 okEsto 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 upTESTEANDO 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 eth0LLEGANDO 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 ipv6Una 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.
