En Linux disponemos de cientos de comandos que nos ayudan a realizar las tareas administrativas de una forma mucho mas centralizada y completa y para ninguno es un secreto que ifconfig es uno de estos comandos. Además con este tipo de comandos podemos configurar redes Linux de forma completa.
El comando ifconfig nos da la oportunidad de configurar y ver los parámetros de la interfaz de red para las redes que hacen uso de TCP/IP, estas interfaces de red son residentes en el kernel de Linux, gracias a este comando será posible realizar tareas como asignar direcciones a una interfaz de red o configurar la información de configuración de esa interfaz según sea necesario, el comando ifconfig interpretara el indicador IFF_MULTICAST para luego imprimir su valor si ha sido configurado.
Debemos comprender un término al usar ifconfig y es la familia de direcciones, estas son usadas para decodificar y desplegar todas las direcciones de protocolo, las familias de direcciones con las que podemos trabajar con ifconfig son inet (TCP/IP, predeterminado), inet6 (IPv6), ax25 (AMPR Packet Radio), ddp (Appletalk Phase 2), ipx (Novell IPX) y netrom (AMPR Packet radio).
ifconfig [-a] [-v] [-s] <interfaz> [[<AF>] <dirección>] [add <address>[/<prefixlen>]] [del <address>[/<prefixlen>]] [[-]broadcast [<dirección>]] [[-]pointopoint [<dirección>]] [netmask <dirección>] [dstaddr <dirección>] [tunnel <dirección>]
- -a: indica a ifconfig que nos aporte información sobre las interfaces tptañes del sistema que están disponibles.
- -d: muestra las interfaces que están inactivas.
- -l: permite enumerar todas las interfaces disponibles en el sistema sin más información extra.
- -u: permite ver las interfaces que están activas.
- interfaz: es el nombre de la interfaz a usar.
- up: activará la interfaz indicada.
- down: desactivará la interfaz que especifiquemos.
- promisc: habilita el modo promiscuo de la interfaz.
- allmulti: permite habilitar o deshabilitar el modo multidifusión total.
- mtu #: nos permite establecer la Unidad máxima de transferencia (MTU) de una interfaz en Linux.
- dstaddr addr: permite configurar la dirección IP remota para un enlace punto a punto.
- netmask addr: nos permite configurar la máscara de red IP para la interfaz.
- add addr/prefixlen: añade una dirección IPv6 a una interfaz.
- del addr/prefixlen: elimina la dirección IPv6 de una interfaz.
- address: asigna una dirección IP a la interfaz.
- alias: establece una dirección de red adicional para la interfaz en uso.
- arp: habilita el comando ifconfig para usar ARP para asignar direcciones de nivel de red y direcciones de nivel de enlace.
- -arp: deshabilita el uso de ARP en la interfaz.
- -debug: deshabilita el código de depuración dependiente del controlador.
- delete: elimina la dirección de red que indiquemos.
- detach: elimina una interfaz de la lista de interfaces de red.
- first: asigna una dirección IPv6 en primer lugar en la interfaz para seleccionarla como fuente de sockets. no vinculados.
- group ID: añade un ID de grupo a la lista de ID de grupo para la interfaz indicada.
- hwloop: habilita el bucle invertido de hardware.
- -hwloop: desactiva el bucle invertido de hardware.
- monitor: habilita al adaptador secundario notificar a la capa de interfaz los cambios de estado del enlace.
Solvetic te explicará con más detalle cómo sacar el máximo beneficio de este comando IFCONFIG en Linux.
Cómo usar ifconfig en Linux
Para iniciar abrimos la terminal y ejecutamos el siguiente comando para listar todas las características de la interfaz de red:
ifconfig
Allí encontramos cada interfaz de red con detalles como:
- Nombre del adaptador
- Número actual de MTU
- Dirección IP asignada
- Dirección MAC del adaptador
- Paquetes enviados y recibidos
- Paquetes con error y redireccionados
Si deseamos ver los detalles de una interfaz específica vamos a ejecutar el siguiente comando indicando la interfaz a usar:
ifconfig (interfaz)
Para deshabilitar una interfaz de red vamos a usar el siguiente comando con el nombre de la interfaz. Alternativamente puedes usar el comando “ifdown (interfaz)”.
Ahora, si deseamos habilitar la interfaz usaremos el siguiente comando:
sudo ifconfig (interfaz) up
Para poder ver la información de todas las interfaces disponibles ejecutamos:
sudo ifconfig -a
Es posible establecer una máscara de red a la interfaz, para ello vamos a usar el siguiente comando:
sudo ifconfig (interfaz) netmask 255.255.255.***
También será posible usar el siguiente comando para establecer una nueva dirección IP y que esta se encuentre disponible:
sudo ifconfig (interfaz) (dirección IP)
Con la siguiente sintaxis Solvetic te indica que será posible asignar todos los valores a la interfaz seleccionada, estos valores son la dirección IP, mascara de red y broadcast o difusión:
sudo ifconfig (interfaz) (Dirección IP) netmask 255.255.255.*** broadcast (Dirección IP)
Si deseamos cambiar la unidad máxima de transmisión (UMT) ejecutaremos el siguiente con el valor deseado:
ifconfig (interfaz) mtu ###
En este caso los valores que podemos asignar son:
- Ethernet (IEEE 802.3): hasta 1500
- Gigabit Ethernet (GbE): hasta 9000
- 10 Gigabit Ethernet (10 GbE): hasta 9000
- Redes IPv6: 1280
- PPP (Point-to-Point Protocol): 1500
Podemos habilitar el modo promiscuo con el comando:
sudo ifconfig (interfaz) promisc
Recuerda que el modo promiscuo acepta todos los paquetes que viajan a través de la tarjeta de red.
Es posible asignar una puerta de enlace o broadcast a la interfaz indicando la dirección usando el siguiente comando. Allí debemos comprobar la disponibilidad de esta dirección.
sudo ifconfig (interfaz) broadcast (Dirección IP)
otro uso de este comando es el cambio de la dirección MAC, recuerda que este es un identificar único de cada dispositivo, si se desea cambiar vamos a usar el siguiente comando con sus respectivos valores:
sudo ifconfig (interfaz) hw ether AA:BB:CC:DD:EE:FF
Si deseamos deshabilitar el modo promiscuo ejecutamos lo siguiente:
sudo ifconfig (interfaz) -promisc
Una opción funcional es agregar un alias a la interfaz, esto es ideal para interfaces de red adicionales, en este caso debemos recordad que la dirección de red del alias debe estar en la misma máscara de subred, usaremos la siguiente sintaxis:
sudo ifconfig (Interfaz):0 (Dirección IP)
Vamos a comprobar que se haya creado de manera correcta:
sudo ifconfig (interfaz):0
Si deseamos quitar este alias vamos a usar el comando:
sudo ifconfig (interfaz):0 down
Para ver detalles completos de la interfaz usaremos el siguiente comando:
sudo ifconfig -v
Si deseamos obtener un resumen de la interfaz usaremos el comando:
sudo ifconfig -s
- at para el modo de transferencia asíncrono (ATM)
- en para Ethernet estándar (inet)
- et para IEEE 802.3 Ethernet (inet)
- gre para pseudointerfaz de túnel de encapsulación de enrutamiento genérico (inet)
- gif para pseudointerfaz de túnel IPv4 sobre IPv6 (inet)
- tr para token-ring (inet)
- xt para X.25 (inet)
- sl para línea serie IP (inet)
- lo para bucle invertido (inet)
- op para serie (inet)
- vi para dirección IP virtual (inet)
- ib para IP sobre InfiniBand (inet)
- tap para TAP pseudo-Ethernet
Vemos como está comando ifconfig es ideal para realizar numerosas tareas asociadas directamente al adaptador de red o interfaz y permitiendo así una mejoría en temas de rendimiento y estabilidad de todos los procesos que conllevan el uso y funcionamiento de la red local y externa.