Comandos de configuración de red
Los comandos más importantes para configurar la red son:- ifconfig: configuración del interfaz de red
- route: configuración del routing
- netstat: información de la red
Comando ifconfig
Muestra y configura una interfaz de red:$ /sbin/ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:12:43:A6:05:5C
inet addr:193.144.84.77 Bcast:193.144.84.255 Mask:255.255.255.0
inet6 addr: fe80::211:43ff:fea6:55c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1035446 errors:0 dropped:0 overruns:0 frame:0
TX packets:1053062 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:196973192 (187.8 MiB) TX bytes:270128587 (257.6 MiB)
Interrupt:169
- Sintaxis:
ifconfig [opciones] [interfaz]
ifconfig interfaz [configuración] [up|down] - Opciones de visualización:
- -a muestra todas las interfaces , incluso las inactivas
- -s muestra información resumida (igual que netstat -i)
- En las opciones de configuración se indica entre otras cosas la IP, máscara de red y dirección de broadcast:
# ifconfig eth0 193.144.84.77 netmask 255.255.255.0 broadcast 193.144.84.255 up
- ifconfig permite también configurar el estado del interfaz, por ejemplo, cambiar el MTU, poner modo promiscuo, activar/desactivar ARP, cambiar su dirección hardware (si el dispositivo lo permite), etc.
# ifconfig eth0 mtu 500
# ifconfig eth0 -noarp
# ifconfig eth0 hw ether 52:54:00:12:34:56 - ver el manual de ifconfig para más información
Otros comandos relacionados
Otros comandos de configuración de interfaz son:
- ifup/ifdown activan/desactivan un interfaz de red
# ifdown eth0
- iwconfig configura un interfaz wireless
# iwconfig eth1 essid "Mi Red"
Comando route
Permite modificar la tabla de routing, mostrando, añadiendo o borrando rutas- muestra las rutas definidas
- permite añadir/borrar rutas estáticas
- permite definir un gateway de salida por defecto para conectarnos al exterior
- permite configurar el sistema para que actúe como un router
Mostrar una tabla de routing
Se usa route [-n -e -ee] (equivale a netstat -r)
$ /sbin/route -n -ee
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface MSS Window irtt
193.144.84.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0 0 0
0.0.0.0 193.144.84.1 0.0.0.0 UG 0 0 0 eth0 0 0 0
- Opciones:
- -n usa direcciones IP en vez de nombres
- -e emplea el mismo formato que netstat -r
- -ee salida larga
- Los flags indican el estado de la ruta
- U la interfaz está activa (Up)
- H el destino es una estación (Host)
- G la ruta usa una pasarela (Gateway)
- D ruta creada dinámicamente por un demonio de encaminamiento o un mensaje ICMP de redirección
- M ruta modificada dinámicamente
- R ruta rehabilitada
- ! ruta rechazada
- De las siguientes columnas, algunas no se usan
- Metric distancia (normalmente en saltos) al destino
- Ref número de referencias a la ruta (no usado en linux)
- Use número de consultas para la ruta
- MSS (Maximum Segment Size) tamaño máximo del segmento para las conexiones TCP en esa ruta
- Window Tamaño predeterminado de la ventana para las conexiones TCP en esa ruta
- irtt (Initial Round Trip Time) valor inicial del temporizador TCP
Añadir/borrar rutas estáticas
Se usa
route [add|del] [default] [-net|-host] target [netmask Nm] [gw Gw] [opciones] [[dev] If]Ejemplo: suponer que tenemos la configuración del dibujo, y queremos crear la tabla de rutas para el host Internet
- Añadir la ruta para la red 192.168.0.0/24 en eth1
- Añadir la ruta por defecto
route add default gw 10.0.2.2
- Añadir una ruta para la red 172.16.0.0/24, usando como pasarela en host con IP 192.168.0.1
- El host pasarela tiene que permitir routing entre sus interfaces; pasa eso debemos activar el ip_forward:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Otras opciones de configuración
Linux permite otras opciones para configurar la red, como definir alias de IP o configurar opciones sobre el tráfico
Alias de IP
- Permite configurar múltiples direcciones IP a un único dispositivo de red
- podemos soportar varias subredes IP en una misma Ethernet
- los alias se indican como dispositivo:número
- Ejemplo:
# route add -net 192.168.1.0 netmask 255.255.255.0 eth0
# ifconfig eth0:0 192.168.10.1 netmask 255.255.255.0 up
# route add -net 192.168.10.0 netmask 255.255.255.0 eth0:0
Opciones del IP
Linux permite configurar diversas opciones sobre el tráfico IP
- los cambios pueden hacerse mediante el comando sysctl, escribiendo en los archivos del directorio /proc/sys/net/ipv4 o de forma permanente en el fichero /etc/sysctl.conf
- algunos de estos estos archivos tienen un 0 (opción desactivada) o un 1 (opción activada)
- otros pueden tener un valor
- algunas de las opciones son:
- ip_forward si 1 permite routing entre interfaces (por defecto 0)
- ip_default_ttl el tiempo de vida por defecto de los paquetes (por defecto 64 ms)
Información de la red: comando netstat
netstat muestra las conexiones de red, tablas de routing y estadísticas de interfaz- Formato:
netstat [tipo de información] [opciones]
- Algunos tipos de información:
- (nada) muestra la lista de sockets abiertos
$ netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 jumilla.dec.usc.e:58946 aiff.usc.es:telnet ESTABLISHED
tcp 0 0 jumilla.dec.usc.e:43658 ulla.dec.usc.es:1301 ESTABLISHED
tcp 0 0 jumilla.dec.usc.e:35346 sd.cesga.es:ssh ESTABLISHED
tcp 0 0 jumilla.dec.usc.es:ssh ulla.dec.usc.es:1688 ESTABLISHED
tcp 0 0 jumilla.dec.usc.es:ssh teneguia.dec.usc.:35161 ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 8 [ ] DGRAM 15368 /dev/log
unix 2 [ ] DGRAM 194110 @/org/kernel/udev/udevd
unix 2 [ ] DGRAM 15671 @/var/run/hal/hotplug_socket- --route, -r muestra las tablas de rutas (igual que route admite los flags -n, -e y -ee)
- --interface, -i muestra un resumen del estado de las interfaces de red (igual que ifconfig -s)
$ netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 5110292 0 0 0 5011769 0 0 0 BMRU- MTU (Maximum Transmission Unit): tamaño máximo del datagrama
- Met: valor de la métrica para esa interfaz
- RX/TX paquetes recibidos/transmitidos
- OK/ERR/DRP/OVR paquetes transmitidos correctamente (OK), erróneos (ERR), descartados por falta de recursos (DRP, drop) y perdidos por desbordamiento (OVR, overrun)
- Las banderas (flags) indican el estado del interfaz:
- B: dirección de difusión activa
- L: la interfaz es un dispositivo de bucle local (loopback)
- P: se reciben todos los paquetes (modo promiscuo)
- O: ARP desactivado para este interfaz
- M: el interfaz permite multicast
- A: el interfaz recibe todos los paquetes multicast en la red (allmulti)
- R: la interfaz funciona (running)
- U: la interfaz está activa (up)
- Este estado puede cambiarse con ifconfig:
# ifconfig eth0 promisc # Modo promiscuo
# ifconfig eth0 -arp # Desactiva ARP
- --statistics, -s muestra estadísticas para cada protocolo de red
$ netstat -s
Ip:
5001746 total packets received
7479 forwarded
0 incoming packets discarded
4894721 incoming packets delivered
......
- Cada uno de los modos anteriores tienen diferentes opciones
- Algunas opciones válidas para varios tipos son:
- --numeric o -n muestra información numérica en vez de nombres para IPs, puertos, etc.
- --continuous o -c imprime la información solicitada de forma continua
- --extend o -e muestra información extendida (con -ee aún más información)
- Para más información ver la página del manual
Otros comandos de red
Comando arp
- arp manipula la cache de ARP:
- muestra la tabla ARP
- borra entradas
- añade entradas manualmente
# arp
Address HWtype HWaddress Flags Mask Iface
almansa.dec.usc.es ether 00:0D:56:6F:E6:90 C eth0
193.144.84.1 ether 00:E0:63:93:26:E5 C eth0
teneguia.dec.usc.es ether 00:C0:4F:A1:5D:89 C eth0
- Flag: C dirección completa, M dirección añadida manualmente
- -i interfaz muestra las entradas para el interfaz indicado
- -a hostname muestra las entradas para el host especificado
- -d hostname borra las entradas para el host especificado
- -s hostname hw_addr añade manualmente una entrada para el host especificado con la dirección hardware indicada
- -n interfaz no hace traducción de IPs a nombres
Comando ping
- Muestra la disponibilidad de conexión y la velocidad de transmisión con un host remoto:
$ ping 193.144.84.1
PING 193.144.84.1 (193.144.84.1) 56(84) bytes of data.
64 bytes from 193.144.84.1: icmp_seq=1 ttl=255 time=0.420 ms
64 bytes from 193.144.84.1: icmp_seq=2 ttl=255 time=0.396 ms
64 bytes from 193.144.84.1: icmp_seq=3 ttl=255 time=0.368 ms
- ping envía paquetes ICMP (ECHO_REQUEST) al destino y espera respuesta, midiendo el RTT
- muchos firewalls bloquean el tráfico ICMP por lo que el ping no funciona
- -b permite ping a una dirección de broadcast
- -c COUNT para después de enviar COUNT paquetes ECHO_REQUEST
- s packetsize especifica el número de bytes a enviar (por defecto 56)
Comando traceroute
- Muestra la ruta que sigue un paquete hasta llegar a destino
$ traceroute www.elpais.es
traceroute to a1749.g.akamai.net (130.206.192.32), 30 hops max, 40 byte packets
1 rutfis (193.144.64.1) 1.070 ms 0.688 ms 0.927 ms
2 * * *
3 10.56.5.1 (10.56.5.1) 57.463 ms 2.021 ms 1.923 ms
4 193.144.79.72 (193.144.79.72) 2.507 ms 16.280 ms 2.080 ms
5 GE2-0-0.EB-Santiago0.red.rediris.es (130.206.204.21) 25.681 ms 2.068 ms 1.965 ms
6 GAL.SO2-0-0.EB-IRIS4.red.rediris.es (130.206.240.33) 10.959 ms 10.665 ms 10.710 ms
7 130.206.220.59 (130.206.220.59) 20.277 ms 10.781 ms 10.470 ms
8 a130-206-192-32.deploy.akamaitechnologies.com (130.206.192.32) 11.011 ms 23.482 ms 12.185 ms
- traceroute utiliza el campo TTL de la cabecera IP para obtener respuestas ICMP TIME_EXCEEDED de los host por los que pasa el paquete (envía paquetes UDP)
- los sistemas pueden no enviar mensajes de tiempo excedido: aparecen *
- si los firewalls bloquean el tráfico ICMP no veremos nada
- otros programas similares:
- traceproto: permite especificar el protocolo a usar (TCP, UDP, ICMP) y el puerto a tracear (por defecto 80)
- tcptraceroute: envía paquetes TCP SYN para evitar problemas con firewalls
Comandos host, dig, nslookup
- Permiten obtener la dirección IP de un sistema a partir del nombre o viceversa:
$ host www.elpais.es
www.elpais.es is an alias for elpais.es.edgesuite.net.
elpais.es.edgesuite.net is an alias for a1749.g.akamai.net.
a1749.g.akamai.net has address 130.206.192.38
a1749.g.akamai.net has address 130.206.192.32 - nslookup está desaprobado (deprecated) y no se recomienda su uso
Comando mii-tool
- Permite ver y/o configurar el estado de la unidad MMI (Media Independent Interface) de la tarjeta de red
- Ethernet usa MII para autonegociar la velocidad de enlace y el modo duplex
# mii-tool -v eth0
eth0: negotiated 100baseTx-FD flow-control, link ok
product info: vendor 00:08:18, model 16 rev 0
basic mode: autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
# mii-tool --force=100baseTx-HD eth0
# mii-tool eth0
eth0: 100 Mbit, half duplex, link ok