====== 205.1 Basic networking configuration ======
Pertenece a [[informatica:certificaciones:lpic:lpic-2:205_network_configuration|LPI Topic 205: Network Configuration]]
* **Weight**: 3
* **Description**: Candidates should be able to configure a network device to be able to connect to a local, wired or wireless, and a wide-area network. This objective includes being able to communicate between various subnets within a single network including both IPv4 and IPv6 networks.
* **Key Knowledge Areas**:
* Utilities to configure and manipulate ethernet network interfaces
* Configuring basic access to wireless networks
* **Terms and Utilities**:
* ''ip''
* ''ifconfig''
* ''route''
* ''arp''
* ''iw''
* ''iwconfig''
* ''iwlist''
===== Direccionamiento IP =====
Las 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
* 192.168.1.5
* 255.255.255.0
Ejemplo de dirección IP y máscara de red asociada en binario
* ''11000000.10101000.00000001.00000101''
* ''11111111.11111111.11111111.00000000''
En 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
===== ifconfig =====
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'')
==== Activación de una interfaz ====
ifconfig eth0 up
==== Desactivación de una interfaz ====
ifconfig eth0 down
==== Configuración de una interfaz ====
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''.
=== Interfaces virtuales ===
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
==== Visualización de las interfaces ====
Una interfaz:
ifconfig eth0
Todas la interfaces:
ifconfig -a
Interfaces **activas**:
ifconfig
Ejemplo de salida de ''ifconfig'':
eth1: flags=4163 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
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.
==== Interfaz de red loopback ====
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 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
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á.
===== route =====
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
* **Destination**: red de destino
* **Gateway**: pasarela. Indica por dónde pasarán las peticiones que van a otra red diferente.
* **Genmask**: máscara de red
* **Iface**: interfaz que se va a usar.
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
==== Interpretando la salida del comando route ====
^ 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 =====
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 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
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/ethers''
Ejemplo 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]
==== /etc/ethers ====
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.
===== ip =====
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: 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 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: 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: 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: 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: 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
==== Configuración de una interfaz ====
ip addr show
Ejemplo:
ip addr add 192.168.1.42/24 dev eth0
ip addr del 192.168.1.45/24 dev eth0
==== Configuración de rutas ====
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
===== iw =====
Herramienta similar a ''ip'' para gestionar dispositivos y redes inalámbricas.
Opciones:
* ''dev'': especifica el dispositivo wlan
* ''link'': muestra es estado de una red
* ''scan'': busca en la red puntos de acceso disponibles
* ''connect'': conecta a una red
Mostrar 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
===== iwconfig =====
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 red
* ''channel'': especifica un canal
* ''essid'': especifica una red inalámbrica
Conectarse 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
===== iwlist =====
Comando que busca las redes inalámbricas disponibles y nos muestra información sobre ellas.
iwlist wlan0 scanning
===== Tests =====
**¿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?**
* Run ''route add default gw 192.168.0.1 eth1'' (**Solución**).
* Run ''route add gw 192.168.0.1 eth1''.
* Run ''ifconfig eth0 defaultroute 192.168.0.1''.
* Add ''defaultroute 192.168.0.1'' to ''/etc/resolv.conf''.
* Run ''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.2''
* ''ipconfig eth0:1 192.168.1.2''
* ''ipconfig eth0 192.168.1.2''
* ''ifconfig eth0:sub1 192.168.1.2'' (**Solución**)