domingo, 12 de julio de 2015

Habilitando parámetros de configuración de dispositivos ethernet al inicio del sistema (Debian way)

Hoy en día, la recomendación en la industria del networking es que se habilite la auto-negociación en los dispositivos que intervienen en una red ethernet, sin embargo, aún es frecuente encontrar situaciones donde el proceso de auto configuración de la conexión falla[1], sobretodo cuando los dispositivos tienen cierta antigüedad (al menos 10 años), en estos casos se debe configurar manualmente los parámetros de la conexión, por ejemplo, con la herramienta ethtool. Para hacer la configuración persistente, Debian proporciona una manera bastante elegante...

La herramienta ethtool no viene instalada por omisión, por tanto basta con tener los repositorios oficiales correctamente configurados y hacer un:
root@elservidor:~# aptitude install ethtool
Para ver los parámetros actuales del dispositivo de red eth0 basta con hacer:
root@elservidor:~# ethtool eth0
Settings for eth0:
 Supported ports: [ TP ]
 Supported link modes:   10baseT/Half 10baseT/Full 
                         100baseT/Half 100baseT/Full 
                         1000baseT/Full 
 Supported pause frame use: No
 Supports auto-negotiation: Yes
 Advertised link modes:  10baseT/Half 10baseT/Full 
                         100baseT/Half 100baseT/Full 
                         1000baseT/Full 
 Advertised pause frame use: No
 Advertised auto-negotiation: Yes
 Speed: 100Mb/s
 Duplex: Half
 Port: Twisted Pair
 PHYAD: 2
 Transceiver: internal
 Auto-negotiation: on
 MDI-X: off (auto)
 Supports Wake-on: pumbg
 Wake-on: g
 Current message level: 0x00000007 (7)
          drv probe link
 Link detected: yes
Si se quisiera deshabilitar la auto-negociación de los parámetros de conexión en la interfaz eth0, se realizaría de la siguiente forma:
root@elservidor:~# ethtool -s eth0 autoneg off
El detalle se encuentra en el momento que se quiere hacer los cambios persistentes, la herramienta ethtool provee el archivo /etc/network/if-pre-up.d/ethtool que buscan sentencias específicas por cada interfaz de red en el archivo /etc/network/interfaces.  Por ejemplo la sentencia "ethernet-autoneg" controla si se desea o no activar la auto-negociación, un bloque para la tarjeta eth0 con DHCP y sin auto-negociación quedaría de la siguiente manera:
iface eth0 inet dhcp
 ethernet-autoneg off
Se se desea saber la lista de sentencias que se pueden utilizar en /etc/network/interfaces para ser entendidas por ethtool es recomendable leer /usr/share/doc/ethtool/README.Debian

[1] https://en.wikipedia.org/wiki/Autonegotiation#Interoperability_problems

No hay comentarios.:

Publicar un comentario