Administrar tarjetas ethernet con el comando ethtool
Administrar tarjetas ethernet con el comando ethtool en linux (redes cableadas). Ethtool es una sencilla herramienta, que nos permite visualizar y configurar los parámetros del hardware eternet de nuestra máquina. Este comando, nos proporciona mucha información sobre los dispositivos Ethernet conectados. La configuración de la tarjeta Ethernet, abre un amplio abanico de posibilidades para optimizar la transferencia de datos en una red cableada. En el artículo de hoy, vemos los ejemplos más comunes de uso de esta útil aplicación. Tanto para identificar, como configurar.
Administrar tarjetas ethernet con el comando ethtool
Normalmente, ethtool viene instalado en todas las distribuciones linux. Por si acaso... vemos como instalar ethool. En CentOS, Fedora y derivados: sudo yum install -y ethtool # o sudo dnf install -y ethtool En Debian, Ubuntu, Linux Mint y derivados: sudo apt install ethtool En Arch Linux, Manjaro y derivados: sudo pacman -S ethtool En Suse, OpenSuse y derivados: sudo zypper install -y ethtool Una vez tengamos instalada la herramienta, debemos identificar nuestro dispositivo ethernet. Según nuestro linux usaremos el comando ip, o el comando ifconfig. ip a # o ifconfig Veremos algo similar a... 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 80:34:95:21:b3:6c brd ff:ff:ff:ff:ff:ff inet 61.210.151.251/24 brd 62.210.151.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet6 fe80::8934:97ff:fe11:b91c/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: eth1: mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 84:34:97:11:b3:6d brd ff:ff:ff:ff:ff:ff Como podemos comprobar, nuestra maquina de ejemplo tiene dos tarjetas de red, eth0 y eth1. La que estamos utilizando es la eth0, así que revisamos su configuración básica con el siguiente comando. ethtool eth0 Ejemplo de salida... Settings for eth0: Supported ports: Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Advertised pause frame use: Symmetric Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Link partner advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Link partner advertised pause frame use: No Link partner advertised auto-negotiation: Yes Link partner advertised FEC modes: Not reported Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 1 Transceiver: internal Auto-negotiation: on MDI-X: off Supports Wake-on: g Wake-on: g Current message level: 0x000000ff (255) drv probe link timer ifdown ifup rx_err tx_err Link detected: yes Ahora verificamos el controlador y el firmware de nuestro dispositivo. ethtool -i eth0 Ejemplo... driver: tg3 version: 3.137 firmware-version: 5720-v1.32 NCSI v1.1.15.0 expansion-rom-version: bus-info: 0000:03:00.0 supports-statistics: yes supports-test: yes supports-eeprom-access: yes supports-register-dump: yes supports-priv-flags: no También podemos visualizar las estadísticas de uso. ethtool -S eth0 Vemos la salida de ejemplo de un servidor en producción. Paquetes enviados, recibidos, errores, etc... NIC statistics: rx_packets: 32789017 tx_packets: 71122690 rx_bytes: 3038700048 tx_bytes: 99919029139 rx_broadcast: 365083 tx_broadcast: 4 rx_multicast: 1225215 tx_multicast: 1222 multicast: 1225215 collisions: 0 rx_crc_errors: 0 rx_no_buffer_count: 0 rx_missed_errors: 0 tx_aborted_errors: 0 tx_carrier_errors: 0 tx_window_errors: 0 tx_abort_late_coll: 0 tx_deferred_ok: 0 tx_single_coll_ok: 0 tx_multi_coll_ok: 0 tx_timeout_count: 0 rx_long_length_errors: 0 rx_short_length_errors: 0 rx_align_errors: 0 tx_tcp_seg_good: 25191059 tx_tcp_seg_failed: 0 rx_flow_control_xon: 0 rx_flow_control_xoff: 0 tx_flow_control_xon: 0 tx_flow_control_xoff: 0 rx_long_byte_count: 3038700048 tx_dma_out_of_sync: 0 tx_smbus: 954 rx_smbus: 1207818 dropped_smbus: 35 os2bmc_rx_by_bmc: 473 os2bmc_tx_by_bmc: 0 os2bmc_tx_by_host: 473 os2bmc_rx_by_host: 0 tx_hwtstamp_timeouts: 0 tx_hwtstamp_skipped: 0 rx_hwtstamp_cleared: 0 rx_errors: 0 tx_errors: 0 tx_dropped: 0 rx_length_errors: 0 rx_over_errors: 0 rx_frame_errors: 0 rx_fifo_errors: 94 tx_fifo_errors: 0 tx_heartbeat_errors: 0 tx_queue_0_packets: 8924582 tx_queue_0_bytes: 12508100173 tx_queue_0_restart: 0 tx_queue_1_packets: 8677383 tx_queue_1_bytes: 12138277106 tx_queue_1_restart: 6 tx_queue_2_packets: 8774592 tx_queue_2_bytes: 12278712285 tx_queue_2_restart: 4 tx_queue_3_packets: 9069991 tx_queue_3_bytes: 12731047984 tx_queue_3_restart: 4 tx_queue_4_packets: 9083140 tx_queue_4_bytes: 12724609732 tx_queue_4_restart: 2 tx_queue_5_packets: 8774137 tx_queue_5_bytes: 12292153412 tx_queue_5_restart: 10 tx_queue_6_packets: 9003116 tx_queue_6_bytes: 12593455265 tx_queue_6_restart: 7 tx_queue_7_packets: 8814795 tx_queue_7_bytes: 12363886239 tx_queue_7_restart: 11 rx_queue_0_packets: 4331120 rx_queue_0_bytes: 374862760 rx_queue_0_drops: 0 rx_queue_0_csum_err: 21 rx_queue_0_alloc_failed: 0 rx_queue_1_packets: 3916049 rx_queue_1_bytes: 345447419 rx_queue_1_drops: 94 rx_queue_1_csum_err: 1055 rx_queue_1_alloc_failed: 0 rx_queue_2_packets: 3940280 rx_queue_2_bytes: 349452804 rx_queue_2_drops: 0 rx_queue_2_csum_err: 42 rx_queue_2_alloc_failed: 0 rx_queue_3_packets: 4020698 rx_queue_3_bytes: 351359496 rx_queue_3_drops: 0 rx_queue_3_csum_err: 11 rx_queue_3_alloc_failed: 0 rx_queue_4_packets: 3962799 rx_queue_4_bytes: 344462151 rx_queue_4_drops: 0 rx_queue_4_csum_err: 46 rx_queue_4_alloc_failed: 0 rx_queue_5_packets: 3802558 rx_queue_5_bytes: 335758509 rx_queue_5_drops: 0 rx_queue_5_csum_err: 6 rx_queue_5_alloc_failed: 0 rx_queue_6_packets: 3822042 rx_queue_6_bytes: 334297324 rx_queue_6_drops: 0 rx_queue_6_csum_err: 34 rx_queue_6_alloc_failed: 0 rx_queue_7_packets: 3785559 rx_queue_7_bytes: 340749545 rx_queue_7_drops: 0 rx_queue_7_csum_err: 38 rx_queue_7_alloc_failed: 0 Si quieres saber el tipo de negociación (RX / TX), ejecutamos... ethtool -a eth0 Veremos algo similar a... Pause parameters for eth0: Autonegotiate: on RX: on TX: off Una vez hemos comprobado nuestra tarjeta, vemos algunos ejemplos de configuración realmente útiles. Tal vez no sabias que puedes modificar la velocidad de tu tarjeta de red, normalmente 100 o 1000 (puedes insertar cualquier valor admitido por el dispositivo). Debes saber que al realizar esta modificación la interfaz queda en modo OFF, así que la tendrás que levantar otra vez con el comando ip, o ifconfig. ethtool -s eth0 speed 1000 ip link set eth0 up También puedes habilitar o deshabilitar la negociación automática de ethernet. # Deshabilitar ethtool -s eth0 autoneg off # Habilitar ethtool -s eth0 autoneg on El comando ethtool nos permite modificar varios parámetros a la vez. La sintaxis es la siguiente. ethtool –s speed duplex autoneg # ejemplo ethtool –s eth0 speed 1000 duplex full autoneg off Las modificaciones que hemos realizado son temporales, por tanto al reiniciar el sistema volverán a su estado original. Vemos como hacer que sean permanentes. En sistemas basados en RHEL, CentOS, Fedora y derivados: nano /etc/sysconfig/network-scripts/ifcfg-eth0 Insertamos nuestra configuración. ETHTOOL_OPTS="speed 1000 duplex full autoneg off" En sistemas basados en Debian, Ubuntu, Linux Mint y derivados: nano /etc/network/interfaces Pegamos nuestra configuración preferida. post-up ethtool -s eth0 speed 1000 duplex full autoneg off Guardamos el archivo, solo necesitas reiniciar tu sistema. reboot Canales de Telegram: Canal SoloLinux – Canal SoloWordpress Espero que este articulo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales. Administrar tarjetas ethernet con el comando ethtool. Read the full article















