Este post , está orientado , los principiantes que se inician en el mundo de las redes ethernet y los sistemas operativos linux.
El objetivo principal es poder diagnosticar un problema de conectividad básico entre dos host y en nuestra configuración de la red.
El método de resolución consiste en seguir un procedimiento ordenado de verificación siguiendo el orden planteado en el modelo OSI de redes.
Vamos a suponer que tenemos un host linux corriendo un programa cliente el cual necesita traer una pagina de un servidor web.
Aún no sabemos nada de la red donde estamos conectados, simplemente abrimos nuestro explorador web ingrasamos el nombre de la pagina que queremos consultar y ..... la página nunca aparece.
Son muchos los factores que pueden hacer que esta página no sea retornada, entonces vamos a comenzar a verificar uno por uno los posibles problemas segun el orden de la capa OSI con diversas herramientas para linux y afirmando además que cada capa debe cumplir correctamente su tarea para que las capas superiores también lo puedan hacer. Esto es mandatorio.
Layer 1 (capa física).
La primer capa del estandard , y es quizas la mas aburrida a la hora de diagnosticar pero su verificación tiene la misma importancia que el resto.
Esta capa describe las interfaces eléctrica y mecánica del estandard, es decir que involucra por ejemplo estandarización de los niveles electricos , forma del conector, estado de los cables o el aire si es una red wifi ,etc.
Dicho esto pasamos a las siguientes verificaciones.
1 Tengo una placa de red ethernet wifi correctamente instalada en mi sistema operativo?
Verificamos que la placa es reconocida por el bus, en mi caso tengo mi ethernet y wifi en un pci.
[leo@leo-arch ~]$ lspci | grep -iE 'ethernet|network|wireless'
00:19.0 Ethernet controller: Intel Corporation 82579V Gigabit Network Connection (rev 04)
02:00.0 Network controller: Intel Corporation Centrino Advanced-N 6235 (rev 24).
Si reemplazamos lspci por lsusb podemos verificar el estado del dispositivo si se se conecta por usb.
2) Nuestro sistema puede manejar nuestra placa ? Es decir , verificamos si nuestro kernel tiene los módulos y drivers necesarios.
Hacemos:
[leo@leo-arch ~]$ lspci -vv
00:19.0 Ethernet controller: Intel Corporation 82579V Gigabit Network Connection (rev 04)
Subsystem: CLEVO/KAPOK Computer Device 1300
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 26
Region 0: Memory at f7d00000 (32-bit, non-prefetchable) [size=128K]
Region 1: Memory at f7d39000 (32-bit, non-prefetchable) [size=4K]
Region 2: I/O ports at f080 [size=32]
Capabilities: <access denied>
Kernel driver in use: e1000e
Kernel modules: e1000e
02:00.0 Network controller: Intel Corporation Centrino Advanced-N 6235 (rev 24)
Subsystem: Intel Corporation Centrino Advanced-N 6235 AGN
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 30
Region 0: Memory at f7c00000 (64-bit, non-prefetchable) [size=8K]
Capabilities: <access denied>
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
Podemos hacer lspci | less y luego "/" para buscar el patrón.
En el output vemos que ambas placas son reconocidas y el sistema puede trabajar con ellas, eso es similar al "el dispositivo funciona correctamente" que podiamos ver en Windows.
Nuestra página sigue sin llegar.
3)
a)He conectado mi host a la red o al menos contra otro host ?
b)He usado los conectores/cables correctos, como están fisicamente?
c)Que hay en el otro extremo del cable? esta encendido ?
TODO agregar enlace o descripción.
d) Si estoy usando una conexion wifi, pasamos a la capa 2.
Layer2 (capa de enlace de datos)
Desde el punto de vista del sistema operativo, necesitariamos verificar el etado de nuestro controlador ethernet para confirmar que es compatible con el controlador al que se está conectando y hacer modificaciones si fuera necesario.
Para esta capa del modelo , encontramos a ethtool.
Layer3 (capa de red o direccionamiento lógico).
Luego de verificar que nuestra placa de red está viva y ha establecido un enlace con su contraparte utilizando la norma ethernet, necesitamos verificar si nuestro host es capaz de alcanzar el host al cual desea conectarse ya sea dentro o fuera de su red local.
Antes que nada debemos verificar la configuracion en capa 3 de nuestro host, para esto utilizamos el comando ifconfig.
Luego necesitamos saber si nuestro host tiene las rutas necesarias para llegar a este host, esto es posible de verificar con el comando "ip route show"
Luego , procedemos a realizar un ping hacia el host donde queremos llegar.
Si nuestro ping no llega a destino podemos verificar que tan lejos llegamos con el comando "tracepath".
No hay comentarios:
Publicar un comentario