Pertenece a LPI Topic 205: Network Configuration
ipifconfigroutearpiwiwconfigiwlistLas direcciones IPv4 (direccionamiento IP histórico) se expresan en 4 bytes. Contienen dos datos fundamentales: la dirección de red y la dirección de host (la máquina que se desea identificar).
Aunque el direccionamiento IP histórico ha previsto una segmentación implícita de redes según las clases A, B y C, la disociación entre la dirección de red y la dirección de host se expresa hoy en día con la máscara de subred.
La máscara de subred, expresada también en 4 bytes, se compone de tantos bits a 1 como bits se usen en la dirección para describir la dirección de red en una dirección IP. El resto de los bits se pone a 0.
Ejemplo de dirección IP y máscara de red asociada en decimal
Ejemplo de dirección IP y máscara de red asociada en binario
11000000.10101000.00000001.0000010111111111.11111111.11111111.00000000En este ejemplo, se puede observar que los 24 primeros bits de la máscara son 1, lo que indica que los 24 primeros bits de la dirección IP representan la dirección de red y los 8 restantes la dirección de host. La dirección de red es, por lo tanto, convencionalmente expresada como 192.168.1.0 con todos los bits de la parte host inicializados a 0.
Ha aparecido una nueva forma de escribir la máscara: expresando cuántos bits a 1 tiene dicha máscara. La dirección IP se escribe entonces A.B.C.D/n, siendo n el número de bits a 1 de la máscara asociada a la dirección A.B.C.D. Es la notación CIDR (Classless Internet Domain Routing). La máscara se escribe en un solo número comprendido entre 0 y 32, y por lo tanto puede escribirse rápidamente y codificarse en un número reducido de bits en la memoria de los equipos.
Dirección IP y máscara en notación CIDR:
192.168.1.5/24
Comando que permite realizar y consultar la configuración básica de una interfaz de red.
En Debian pertenece al paquete net-tools. A día de hoy ifconfig se está reemplazando por ip (paquete iproute2)
ifconfig eth0 up
ifconfig eth0 down
Si queremos cambiar la configuración de red de cierta interfaz:
ifconfig eth0 192.168.1.2 netmask 255.255.255.0
Esta configuración no es persistente. Se pierde con el reinicio. Para hacerlo permanente hay que indicarlo en el fichero /etc/network/interfaces.
Sobre un mismo dispositivo podríamos añadir direcciones IP distintas usando la nomenclatura de dos puntos:
ifconfig eth0:0 192.168.1.20 netmask 255.255.255.0
Una interfaz:
ifconfig eth0
Todas la interfaces:
ifconfig -a
Interfaces activas:
ifconfig
Ejemplo de salida de ifconfig:
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255
inet6 fe80::a00:27ff:fedd:3798 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:dd:37:98 txqueuelen 1000 (Ethernet)
RX packets 2757 bytes 219645 (214.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1541 bytes 240732 (235.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
En versiones nuevas, el nombre de los dispositivos de red es diferente. Se utiliza el esquema Predictable Name para identificar las interfaces en términos de buses del hardware. Por ejemplo, enp0s3: en diría que es una tarjeta ethernet; p0 es el bus y s3 el puerto del bus al que está conectada la tarjeta.
Es un dispositivo de red virtual que se utiliza para simular el tráfico de red entre procesos del mismo sistema.
También es útiles para hacer comprobaciones de redundancia, autodescubrimiento… Si no tenemos bien configurado el loopback, nos puede fallar la red porque algunas herramientas que utilizan esta interfaz para hacer comprobaciones del estado de la red fallarán.
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Se le asigna la dirección 127.0.0.1 y el nombre lo.
Todas las redes del tipo 127.x.x.x están reservadas para dispotivos loopback.
En el archivo /etc/hosts se le asigna el nombre de red localhost:
127.0.0.1 localhost 127.0.1.1 debian10
Según la configuración anterior, llamando tanto a localhost como debian10, nuestra máquina responderá.
Comando que permite crear y visualizar las rutas para las interfaces de nuestra máquina local.
Las rutas es la manera que tiene el sistema de saber a dónde enviar los paquetes (de dónde vienen y a dónde van). Para ello, el sistema mantiene una tabla de rutas donde se define la red a la que pertenece nuestra máquina y hacia dónde tiene que enviar los datos cuando van a otra red. Si nuestra máquina pertecene a la red 192.168.0.x y queremos enviar información a la 10.0.0.x, es preciso saber cómo enrutar esos datos. La puerta de salida de nuestro sistema es lo que se conoce como gateway. Por tanto, si queremos enviar de una red a otra, hay que definir cuál es el gateway de nuestro sistema.
Para ver las rutas actuales:
route
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 10.0.2.2 0.0.0.0 UG 0 0 0 eth0 10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 link-local 0.0.0.0 255.255.0.0 U 1000 0 0 eth1 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Aunque puede haber diferentes gateways para diferentes redes, solo puede haber un gateway por defecto.
Si solo queremos ver direcciones IP y no nombres:
route -n
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth0 10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Creación de entrada loopback:
route add -net 127.0.0.1
Crea la ruta hacia la red 192.168.3.0 vía eth0:
route add –net 192.168.3.0 netmask 255.255.255.0 eth0
Es decir, todas las peticiones que vayan a la red 192.168.3.0 pasarán por la interfaz eth0.
Podemos ahorrarnos escribir la máscara de red si utilizamos la notación CIDR: route add -net 192.168.3.0/24 eth0
Eliminar el gateway por defecto:
route del default gw 10.0.2.2
Si eliminamos el gateway por defecto, no se podría salir a ninguna red
Añadir una ruta por defecto:
route add default gw 10.0.2.2
Eliminar una ruta:
route del –net 192.168.3.0 netmask 255.255.255.0 eth0
| Flags | Descripción |
|---|---|
U | UP: la ruta está activa y es utilizable |
H | Host: indica ruta a un host destino |
G | Gateway: el destino está accesible a través de una puerta de enlace |
D | Dynamic: la ruta a sido configurada por un protocolo de enrutamiento |
! | El kernel ha rechado la ruta |
ARP (Address Resolution Protocol) es el protocolo responsable de encontrar la dirección de hardware (dirección MAC) que corresponde a una determinada dirección IP.
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::a00:27ff:fe45:b8a7 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:45:b8:a7 txqueuelen 1000 (Ethernet)
RX packets 533 bytes 47832 (46.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 567 bytes 51428 (50.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
La parte ether indica la dirección MAC del dispositivo de red (08:00:27:45:b8:a7).
arp: comando que permite mostrar y administrar los valores almacenados en la cache ARP. En esta caché solo aparecerán las relaciones que se han tenido que realizar para que la máquina se conectase a otras máquinas. Según vayamos conectándonos a determinadas máquinas, se irá actualizando esa tabla. De esta manera acelerará la manera de encontrar dichas máquinas.
Salida del comando arp:
Address HWtype HWaddress Flags Mask Iface 192.168.2.1 ether 0a:00:27:00:00:04 C eth1 10.0.2.3 ether 52:54:00:12:35:03 C eth0 10.0.2.2 ether 52:54:00:12:35:02 C eth0
Opciones:
-n: Evita búsquedas DNS inversas al realizar una consulta-d: Borra una entrada de la caché ARP.-s: Añade una entrada a la caché ARP.-f: Fuerza la lectura del fichero /etc/ethersEjemplo eliminando una entrada:
arp -d 10.0.2.3
Añadir una entrada en la tabla ARP:
arp –s 192.168.1.41 08:00:27:3D:B5:1D
Eliminar una entrada de la tabla ARP:
arp –d 192.168.1.41
Mostrar la tabla ARP:
arp [-a | -e]
Este fichero permite la configuración de un gran número de asociaciones estáticas. Si sabemos que vamos a conectarnos a ciertas máquinas, lo definimos y aceleraríamos las conexiones.
El fichero /etc/ethers no existe por defecto. Si queremos hacer uso de él, debemos crearlo.
Estructura:
MAC1 DIRECCION_IP1 MAC2 DIRECCION_IP2 (...)
Ejemplo de fichero /etc/ethers:
08:00:27:3D:B5:1D 192.168.1.40 08:00:27:88:33:1B 192.168.1.41
Esta información la usará ARP.
Comando que permite consultar y configurar los dispositivos de red y tablas de rutas. Busca sustituir los
comandos ifconfig, route y arp.
El comando ip pertenece al paquete iproute2
Mostrar dispositivos de red (como ifconfig):
ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:45:b8:a7 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic eth0
valid_lft 79228sec preferred_lft 79228sec
inet6 fe80::a00:27ff:fe45:b8a7/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:dd:37:98 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.10/24 brd 192.168.2.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fedd:3798/64 scope link
valid_lft forever preferred_lft forever
Se puede abreviar con ip a
Ver el estado de las conexiones:
ip link show
Ejemplo:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:45:b8:a7 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:dd:37:98 brd ff:ff:ff:ff:ff:ff
Activación/Desactivación de un interfaz:
ip link set eth0 <up/down>
ip addr show <dev>
Ejemplo:
ip addr add 192.168.1.42/24 dev eth0
ip addr del 192.168.1.45/24 dev eth0
ip route show
default via 10.0.2.2 dev eth0 10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15 169.254.0.0/16 dev eth1 scope link metric 1000 192.168.2.0/24 dev eth1 proto kernel scope link src 192.168.2.10
Añadir ruta:
ip route add 10.10.20.0/24 via 192.168.50.100 dev eth0
Eliminar ruta:
ip route del 10.10.20.0/24
Añadir gateway por defecto:
ip route add default via 192.168.50.100
Consulta de tabla ARP:
ip neigh show
Ejemplo:
192.168.2.1 dev eth1 lladdr 0a:00:27:00:00:04 REACHABLE 10.0.2.3 dev eth0 lladdr 52:54:00:12:35:03 STALE 10.0.2.2 dev eth0 lladdr 52:54:00:12:35:02 STALE
Herramienta similar a ip para gestionar dispositivos y redes inalámbricas.
Opciones:
dev: especifica el dispositivo wlanlink: muestra es estado de una redscan: busca en la red puntos de acceso disponiblesconnect: conecta a una redMostrar dispositivos inalámbricos:
iw dev
Conectar dispositivo inalámbrico a la red “mired”
iw dev wlan0 connect "mired"
wlan0 sería el nombre de la interfaz inalámbrica.
Buscar redes disponibles:
iw dev wlan0 scan
Comprobar el estado de la red:
iw dev wlan0 link
Comando que muestra la información y realiza la configuración de la interfaces inalámbricas. Equivale a ifconfig
iwconfig pertenece al paquete wireless-tools. Herramientas que se están reemplazando por iw.
Opciones:
mode: especifica el tipo de redchannel: especifica un canalessid: especifica una red inalámbricaConectarse a una red inalámbrica:
iwconfig wlan0 essid "mired"
Canal a utilizar:
iwconfig wlan0 channel 3
Tipo de red a utilizar:
iwconfig wlan0 mode Ad-Hoc
Comando que busca las redes inalámbricas disponibles y nos muestra información sobre ellas.
iwlist wlan0 scanning
¿Podemos asignar 2 direcciones IPs a una misma interfaz de red?
Sí, utilizando la nomenclatura de los dos puntos:
ifconfig eth0:0 192.168.1.10
¿Qué ocurría si al visualizar la tabla de rutas de nuestra máquina observamos que tiene 2 gateways (puertas de enlace)?
No sería ningún problema si son gateways normales, es decir, que no son por defecto. Podemos tener tantos gateways como queramos.
¿Y si tiene 2 gateway (puertas de enlace) por defecto?
Habrá un conflicto de red. El sistema, al buscar el gateway por defecto, se va a encontrar dos diferentes y no sabrá qué hacer.
A network client has an ethernet interface configured with an IP address in the subnet 192.168.0.0/24. This subnet has a router, with the IP address 192.168.0.1, that connects this subnet to the Internet. What needs to be done on the client to enable it to use the router as its default gateway?
route add default gw 192.168.0.1 eth1 (Solución).route add gw 192.168.0.1 eth1.ifconfig eth0 defaultroute 192.168.0.1.defaultroute 192.168.0.1 to /etc/resolv.conf.route add defaultgw=192.168.0.1 if=eth0.What is the command to add another IP address to an interface that already has (at least) one IP address? (Please specify two answer)
ifconfig eth0:1 192.168.1.2 (Solución)ifconfig eth0 192.168.1.2ipconfig eth0:1 192.168.1.2ipconfig eth0 192.168.1.2ifconfig eth0:sub1 192.168.1.2 (Solución)