Tuesday, October 17, 2006

Setear y revisar modo Duplex de interfaces de Red en Unix

Esto lo encontré alguna vez en Internet y lo he completado con algunas cosas que he utilizado. Es muy útil, ya que la mayoría de los problemas de red comienzan cuando la velocidad y/o el modo de conexión está configurado incorrectamente.

Solaris
Para checkear el Duplex:
ndd /dev/hme link_mode
Cuando retorna un valor 0 = half duplex, y 1 = full duplex

Para forzar a modo full duplex:
ndd -sec /dev/hme adv_100fdx_capndd -set /dev/hme adv_autoneg_cap 0

Para forzar a modo half duplex:
ndd -sec /dev/hme adv_100hdx_capndd -set /dev/hme adv_autoneg_cap 0



Linux
La herramiento original en Linux para setear la velocidad y el duplex es mii-tool. Ahora está destinado a ser reemplazado por ethtool, pero muchas tarjetas antiguas sólo soportan mii-tool.
Por ejemplo:
mii-tool -F 100baseTx-FD eth0

Para ver la configuración de las tarjetas de red, usar:
mii-tool -v

Lo siguiente también puede ser usado con algunas tarjetas comunes:

Para setear las tarjetas eepro100 a modo full-duplex:
en /etc/modules.conf (para Redhat Linux)
options eepro100 options=48

Para las tarjetas 3c59x: options 3c59x options=0x204 full_duplex=0x200

ethtool
El comando entrega información acerca de la configuración de la interfaz de red que se le pasa como parámetro. Ejemplo:
#ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: No
Speed: 100Mb/s
Duplex: Full

Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: off
Supports Wake-on: g
Wake-on: g
Current message level: 0x00000007 (7)
Link detected: yes

Para setear la velocidad y el duplex, se debe editar el archivo de configuración de la interfaz de red y se debe agregar la línea ETHTOOL_OPTS, como se muestra a continuación:
#
# File: /etc/sysconfig/network-script/ifcfg-eth0
#
DEVICE=eth0
IPADDR=192.168.1.100
NETMASK=255.255.255.0
BOOTPROTO=static
ONBOOT=yes
ETHTOOL_OPTS="speed 100 duplex full autoneg off"

Para setear la velocidad y duplex en forma dinámica, se puede hacer de la siguiente manera:
#ethtool -s eth1 speed 100 duplex full autoneg off


FreeBSD
Para chequear el modo Duplex: Solo se usa ifconfig -a

Para forzar a modo Full Duplex: ifconfig xl0 media 100baseTX mediaopt full-duplex

Para forzar a modo Half Duplex: ifconfig xl0 media 100baseTX mediaopt half-duplex

Note: Esto funciona para todos los dispositivos, no sólo para el driver xl0.



IBM AIX
Para obtener una lista de adaptadores:
lsdev -HCc adapter

Para chequear el modo duplex:
lsattr -d ent#

Para forzar el modo full duplex:
chdev -l ent# -a media_speed=100_Full_Duplex -P reboot

Para forzar el modo half duplex:
chdev -l ent# -a media_speed=100_Half_Duplex -P reboot



HP-UX
Para obtener una lista de adaptadores:

HP-UX 10.x usa el "Network Management IDs "
lanscan -n

HP-UX 11.x usa los números "PPA"
lanscan -p

Para chequear el modo duplex:
lanadmin -x NMid# (HP-UX 10.x)
lanadmin -x PPA# (HP-UX 11.x)

Para forzar el modo full duplex:
lanadmin -X 100FD NMid# (HP-UX 10.x)
lanadmin -X 100FD PPA# (HP-UX 11.x)

Para forzar el modo half duplex:
lanadmin -X 100HD NMid# (HP-UX 10.x)
lanadmin -X 100HD PPA# (HP-UX 11.x)



Tru64
1) Para ver como estan configuradas las interfaces de red, utilizar el siguiente comando:

hwmgr -get attr -cat network
27:
name = ee0
category = network
sub_category = Ethernet
model = Intel 82559
hardware_rev = 8
firmware_rev =
MAC_address = 00-50-8B-65-AA-FA
MTU_size = 1500
media_speed = 100
media_selection = Automatic
media_type = Unshielded Twisted Pair (UTP)
loopback_mode = 0
promiscuous_mode = 0
full_duplex = 0
multicast_address_list = CF-00-00-00-00-00 01-00-5E-00-00-01 09-00-2B-00-00-0F 09-00-2B-02-01-04
interface_number = 1
link = Up
autoneg_enable = 1
registration_time = Thu Nov 3 18:08:36 2005
user_name = (null) (settable)
location = (null) (settable)
software_module = (null)
[…]

2) Esta interfaz está a 100Mbps Half-Duplex y con autonegociación. Se dejará forzada a 100Mbps Full-Duplex. Para esto, ejecutar:
/usr/sbin/lan_config -i ee0 -a0 -s100 -x1

3) Para que quede permanente después de cada boot, agregar la línea del lanconfig al final de archivo /etc/inet.local


Saludos,

ChaZcaZ./


1 comment:

Unknown said...

bash-3.00# ndd /dev/dmfe0 link_mode
2

¿Y esto qué quiere decir?