Soy un nuevo usuario administrador del sistema Linux. ¿Cómo utilizo la utilidad de línea de comandos ip para mostrar o configurar redes, enrutamiento y túneles en sistemas operativos Linux? ¿Cómo configuro o visualizo los parámetros de la interfaz de red para una red que usa TCP / IP en sistemas operativos Linux?
El comando ip se utiliza para asignar una dirección a una interfaz de red y / o configurar los parámetros de la interfaz de red en los sistemas operativos Linux. Este comando reemplaza el comando ifconfig antiguo y ahora obsoleto en las distribuciones modernas de Linux.
1. Averigüe qué interfaces están configuradas en el sistema.
2. Consultar el estado de una interfaz IP.
3. Configure el bucle de retorno local, Ethernet y otras interfaces IP.
4. Marque la interfaz como activada o desactivada
5. Configure y modifique el enrutamiento predeterminado y estático.
6. Configure el túnel sobre IP.
7. Muestre la entrada de caché ARP o NDISC.
8. Asignar, eliminar, configurar direcciones IP, rutas, subredes y otra información IP a las interfaces IP.
9. Enumere las direcciones IP y la información de propiedad.
10.Administra y muestra el estado de toda la red.
11. Reúna la información de direcciones IP de multidifusión.
12. Muestre los objetos vecinos, es decir, la caché ARP, invalide la caché ARP, agregue una entrada a la caché ARP y más.
13. Configure o elimine la entrada de ruta.
14. Busque la ruta que tomará una dirección (por ejemplo, 8.8.8.8 o 192.168.2.24).
15. Modifique el estado de la interfaz.
Los OBJETOS pueden ser cualquiera de los siguientes y pueden estar escritos en forma completa o abreviada:
Para obtener información sobre cada objeto, use el comando de ayuda de la siguiente manera:
No se deje intimidar por la sintaxis del comando ip. Comencemos con los ejemplos.
Escriba el siguiente comando para enumerar y mostrar todas las direcciones IP asociadas en todas las interfaces de red:
Fig.01 que muestra la dirección IP asignada a eth0, eth1, lo usando el comando ip
Puede seleccionar entre IPv4 e IPv6 utilizando la siguiente sintaxis:
### Mostrar solo TCP/IP IPv4 ##
ip -4 a
### Mostrar solo TCP/IP IPv6 ###
ip -6 a
También es posible especificar y listar detalles de TCP / IP de la interfaz particular:
### Mostrar solo la interfaz eth0 ###
ip a show eth0
ip a list eth0
ip a show dev eth0
### Mostrar solo interfaces en ejecución ###
ip link ls up
Asigna la dirección IP a la interfaz
La sintaxis es la siguiente para agregar una dirección IPv4 / IPv6:
ip a add {ip_addr/mask} dev {interface}
Para asignar 192.168.1.200/255.255.255.0 a eth0, ingrese:
ip a add 192.168.1.200/255.255.255.0 dev eth0
O
ip a add 192.168.1.200/24 dev eth0
Agregar la dirección de transmisión en la interfaz
De forma predeterminada, el comando ip no establece ninguna dirección de transmisión a menos que se solicite explícitamente. Entonces, la sintaxis es la siguiente para configurar la DIRECCIÓN de transmisión: Es posible usar los símbolos especiales como + y - en lugar de la dirección de transmisión configurando / restableciendo los bits de host del prefijo de la interfaz. En este ejemplo, agregue la dirección 192.168.1.50 con la máscara de red 255.255.255.0 (/24) con transmisión estándar y la etiqueta "eth0Home" a la interfaz eth0: Puede configurar la dirección de bucle invertido en el dispositivo de bucle invertido lo de la siguiente manera:
ip addr add brd {ADDDRESS-HERE} dev {interface}
ip addr add broadcast {ADDDRESS-HERE} dev {interface}
ip addr add broadcast 172.20.10.255 dev dummy0
+-
ip addr add 192.168.1.50/24 brd + dev eth0 label eth0Home
ip addr add 127.0.0.1/8 dev lo brd + scope host
Eliminar / Eliminar la dirección IP de la interfaz
La sintaxis es la siguiente para eliminar una dirección IPv4 / IPv6:
ip a del {ipv6_addr_OR_ipv4_addr} dev {interface}
Para eliminar 192.168.1.200/24 de eth0, ingrese:
ip a del 192.168.1.200/24 dev eth0
Vacíe la dirección IP de la interfaz
Puede eliminar o eliminar una dirección IPv4 / IPv6 una por una como se describe anteriormente . Sin embargo, el comando flush puede eliminar tan flush la dirección IP según la condición dada. Por ejemplo, puede eliminar todas las direcciones IP de la red privada 192.168.2.0/24 usando el siguiente comando:
ip -s -s a f to 192.168.2.0/24
Ejemplos de salidas:
2: eth0 inet 192.168.2.201/24 scope global secondary eth0
2: eth0 inet 192.168.2.200/24 scope global eth0
*** Round 1, deleting 2 addresses ***
*** Flush is complete after 1 round ***
Puede deshabilitar la dirección IP en todas las interfaces ppp (punto a punto):
ip -4 addr flush label "ppp*"
Aquí hay otro ejemplo para todas las interfaces Ethernet:
ip -4 addr flush label "eth*"
¿Cómo cambio el estado del dispositivo a ACTIVADO o DESACTIVADO?
La sintaxis es la siguiente:
ip link set dev {DEVICE} {up|down}
Para hacer que el estado del dispositivo eth1 sea inactivo, ingrese:
ip link set dev eth1 down
Para hacer que el estado del dispositivo eth1 esté activo, ingrese:
ip link set dev eth1 up
¿Cómo cambio el txqueuelen del dispositivo?
Puede establecer la longitud de la cola de transmisión del dispositivo usando el comando ifconfig o el comando ip de la siguiente manera:
ip link set txqueuelen {NUMBER} dev {DEVICE}
En este ejemplo, cambie el txqueuelen predeterminado de 1000 a 10000 para eth0:
ip link set txqueuelen 10000 dev eth0
ip a list eth0
¿Cómo cambio la MTU del dispositivo?
Para redes gigabit, puede establecer tamaños máximos de unidades de transmisión (MTU) (JumboFrames) para un mejor rendimiento de la red. La sintaxis es:
ip link set mtu {NUMBER} dev {DEVICE}
Para cambiar la MTU del dispositivo eth0 a 9000, ingrese: Salidas de muestra:
ip link set mtu 9000 dev eth0
ip a list eth0
2: eth0: mtu 9000 qdisc pfifo_fast state UP qlen 1000
link/ether 00:08:9b:c4:30:30 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.10/24 brd 192.168.1.255 scope global eth1
inet6 fe80::208:9bff:fec4:3030/64 scope link
valid_lft forever preferred_lft forever
Mostrar caché de vecino neighbour/arp
La sintaxis es: Salidas de muestra (nota: oculté algunos datos con alfabetos):
ip n show
ip neigh show
74.xx.yy.zz dev eth1 lladdr 00:30:48:yy:zz:ww REACHABLE
10.10.29.66 dev eth0 lladdr 00:30:48:c6:0a:d8 REACHABLE
74.ww.yyy.xxx dev eth1 lladdr 00:1a:30:yy:zz:ww REACHABLE
10.10.29.68 dev eth0 lladdr 00:30:48:33:bc:32 REACHABLE
74.fff.uu.cc dev eth1 lladdr 00:30:48:yy:zz:ww STALE
74.rr.ww.fff dev eth1 lladdr 00:30:48:yy:zz:ww DELAY
10.10.29.65 dev eth0 lladdr 00:1a:30:38:a8:00 REACHABLE
10.10.29.74 dev eth0 lladdr 00:30:48:8e:31:ac REACHABLE
El último campo muestra el estado de la máquina de " detección de inaccesibilidad de vecinos " para esta entrada:
- STALE : el vecino es válido, pero probablemente ya sea inalcanzable, por lo que el kernel intentará verificarlo en la primera transmisión.
- DELAY : se ha enviado un paquete al vecino obsoleto y el kernel está esperando confirmación.
- RECHEABLE : el vecino es válido y aparentemente accesible.
Agregar una nueva entrada ARP
La sintaxis es:
ip neigh add {IP-HERE} lladdr {MAC/LLADDRESS} dev {DEVICE} nud {STATE}
En este ejemplo, agregue una entrada ARP permanente para el vecino 192.168.1.5 en el dispositivo eth0:
ip neigh add 192.168.1.5 lladdr 00:1a:30:38:a8:00 dev eth0 nud perm
Donde,
estado vecino (nud) |
sentido |
permanent |
La entrada de vecino es válida para siempre y solo se puede eliminar administrativamente |
noarp |
La entrada de vecino es válida. No se intentará validar esta entrada, pero se puede eliminar cuando expire su vida útil. |
stale |
La entrada del vecino es válida pero sospechosa. Esta opción de ip neigh no cambia el estado de vecino si era válido y la dirección no se cambia con este comando. |
reachable |
La entrada de vecino es válida hasta que expira el tiempo de espera de accesibilidad. |
Eliminar una entrada ARP
La sintaxis para invalidar o eliminar una entrada ARP para el vecino 192.168.1.5 en el dispositivo eth1 es la siguiente.
ip neigh del {IPAddress} dev {DEVICE}
ip neigh del 192.168.1.5 dev eth1
El cambio es de estado accesible para el vecino 192.168.1.100 en el dispositivo eth1
ip neigh chg 192.168.1.100 dev eth1 nud reachable
VACIAR la entrada ARP
Este comando hace flush o f vacía las tablas vecinas / arp, especificando alguna condición. La sintaxis es:
ip -s -s n f {IPAddress}
En este ejemplo, vacia la tabla vecina / arp
ip -s -s n f 192.168.1.5
O
ip -s -s n flush 192.168.1.5
ip route: comandos de administración de la tabla de enrutamiento
Utilice el siguiente comando para administrar o manipular la tabla de enrutamiento del kernel.
Mostrar tabla de enrutamiento
Para mostrar el contenido de las tablas de enrutamiento: Ejemplos de salidas:
ip r
ip r list
ip route list
ip r list [options] ip route
Mostrar enrutamiento para 192.168.1.0/24:
ip r list 192.168.1.0/24
salidas de muestra:
192.168.1.0/24 dev eth1 proto kernel alcance enlace src 192.168.1.10
Agregar una nueva ruta
La sintaxis es: Agregar una ruta simple a la red 192.168.1.0/24 a través de la puerta de enlace 192.168.1.254 : Para enrutar todo el tráfico a través de la puerta de enlace 192.168.1.254 conectada a través de la interfaz de red eth0 :
ip route add {NETWORK/MASK} via {GATEWAYIP}
ip route add {NETWORK/MASK} dev {DEVICE}
## Add default route using ip ##
ip route add default {NETWORK/MASK} dev {DEVICE}
ip route add default {NETWORK/MASK} via {GATEWAYIP}
ip route add 192.168.1.0/24 via 192.168.1.254
ip route add 192.168.1.0/24 dev eth0
Eliminar una ruta
La sintaxis es la siguiente para eliminar la puerta de enlace predeterminada:
ip route del default
En este ejemplo, elimine la ruta creada en la subsección anterior :
ip route del 192.168.1.0/24 dev eth0
Cómo cambiar la dirección MAC en Linux
La dirección MAC de una tarjeta de interfaz de red (NIC) de Linux se puede cambiar de la siguiente manera:
NIC="eno1" ## <-- My NIC name ##
ip link show $NIC
ip link set dev $NIC down
## set new MAC address ##
ip link set dev $NIC address XX:YY:ZZ:AA:BB:CC
ip link set dev $NIC up
Configurar la salida de color
Podemos hacer que la salida del comando ip sea bonita pasando la -copción:
ip -c route
ip -c link
# El 'siempre' es el predeterminado y la salida de color está habilitada independientemente del estado de salida estándar
ip -c=always command1
# Si el parámetro es 'auto', se marca stdout para que sea un terminal antes de habilitar la salida de color
ip -c=auto command2
# Si el parámetro es 'nunca', la salida de color está desactivada
ip -c=never Command3
Tenga en cuenta que este indicador se ignora si se -jsonpasa la opción al comando ip. Podemos crear un alias Bash permanente en Linux usando el comando alias :
alias ip = 'ip -c'
alias ipc = 'ip -c'
# ejecutarlo #
ipc route
ip link
Podemos ignorar los alias y funciones de bash cuando ejecutamos ip de la siguiente manera:
\ ip route
comando ip link
Visualización de todas las direcciones IP de Linux
¿Desea conocer la dirección IP asignada a todas las interfaces y mostrar solo la IP ? Tratar:
$ sudo ip -br -c addr show
$ sudo ip -br -c link show
Herramienta antigua frente a nueva
Comando de Linux obsoleto y su hoja de trucos de reemplazo:
Comando antiguo (obsoleto) |
Nuevo comando |
ifconfig -a |
ip a |
ifconfig enp6s0 down |
ip link set enp6s0 down |
ifconfig enp6s0 up |
ip link set enp6s0 up |
ifconfig enp6s0 192.168.2.24 |
ip addr add 192.168.2.24/24 dev enp6s0 |
ifconfig enp6s0 netmask 255.255.255.0 |
ip addr add 192.168.1.1/24 dev enp6s0 |
ifconfig enp6s0 mtu 9000 |
ip link set enp6s0 mtu 9000 |
ifconfig enp6s0:0 192.168.2.25 |
ip addr add 192.168.2.25/24 dev enp6s0 |
netstat |
ss |
netstat -tulpn |
ss -tulpn |
netstat -neopa |
ss -neopa |
netstat -g |
ip maddr |
route |
ip r |
route add -net 192.168.2.0 netmask 255.255.255.0 dev enp6s0 |
ip route add 192.168.2.0/24 dev enp6s0 |
route add default gw 192.168.2.254 |
ip route add default via 192.168.2.254 |
arp -a |
ip neigh |
arp -v |
ip -s neigh |
arp -s 192.168.2.33 1:2:3:4:5:6 |
ip neigh add 192.168.3.33 lladdr 1:2:3:4:5:6 dev enp6s0 |
arp -i enp6s0 -d 192.168.2.254 |
ip neigh del 192.168.2.254 dev wlp7s0 |
Resumiendo
Aprendió sobre el comando ip en RHEL, SUSE / OpenSUSE, CentOS / RockyLinux / AlmaLinux / Springdale, Debian / Ubuntu / Linux Mint, Arch, Gentoo y otras distribuciones de Linux. Consulte las siguientes páginas de manual utilizando el comando man :
man ip