Tabla de Contenidos
205.3 Troubleshooting Network Issues
Pertenece a LPI Topic 205: Network Configuration
- Weight: 4
- Description: Candidates should be able to identify and correct common network setup issues, to include knowledge of locations for basic configuration files and commands.
- Key Knowledge Areas:
- Location and content of access restriction files
- Utilities to configure and manipulate ethernet network interfaces
- Utilities to manage routing tables
- Utilities to list network states.
- Utilities to gain information about the network configuration
- Methods of information about the recognized and used hardware devices
- System initialization files and their contents (SysV init process)
- Awareness of NetworkManager and its impact on network configuration
- Terms and Utilities:
ipifconfigroutessnetstat/etc/network/,/etc/sysconfig/network-scripts/ping,ping6traceroute,traceroute6mtrhostname- System log files such as
/var/log/syslog,/var/log/messagesand the systemd journal dmesg/etc/resolv.conf/etc/hosts/etc/hostname,/etc/HOSTNAME/etc/hosts.allow,/etc/hosts.deny
hostname
El comando hostname asigna dinámicamente el nombre a un host o permite consultar el nombre del host.
Para establecer el nombre del host estáticamente es necesario establecerlo en el fichero de configuración. Dicho fichero difiere en función de la distribución utilizada:
- Debian:
/etc/hostname. - Red Hat:
/etc/sysconfig/networkjunto con otros parámetros de configuración de red.
hostname
debian10
También podemos consultar la información del hostname desde /proc/sys/kernel/hostname y hacer el cambio en dicho fichero. Este cambio se perderá en el siguiente arranque.
Configuración de interfaces
Red Hat
Los ficheros de configuración de las interfaces están presentes en el directorio /etc/sysconfig/network-scripts/.
Dichos ficheros son llamados ifcfg-xxx, donde xxx es el nombre de la interfaz de red.
Ejemplo de /etc/sysconfig/network-scripts/ifcfg-eth0:
DEVICE="eth0" BOOTPROTO="dhcp" IPV6INIT="yes" NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Ethernet"
En una configuración estática:
DEVICE="eth0" ONBOOT="yes" BOOTPROTO="static" IPADDR=10.0.2.152 NETMASK=255.255.255.0 GATEWAY=10.0.2.1
Debian
En debian la configuración de las interfaces se agrupan en un único fichero /etc/network/interfaces:
# Interfaces que se activarán al arranque
auto lo eth0 eth1
iface lo inet loopback
# Configuración estática
iface eth0 inet static
address 192.168.3.2
netmask 255.255.255.0
gateway 192.168.3.1
# Configuración por DHCP
iface eth1 inet dhcp
Depuración de errores
dmesg
Comando que lista el buffer de mensajes del núcleo (kernel ring buffer) desde el arranque. Entre ellos los posibles errores de una tarjeta de red.
Los eventos asociados a la red son registrado en los siguientes ficheros de logs:
- Debian:
/var/log/syslog - Red Hat:
/var/log/messages
$ dmesg (...) [11097.907564] device eth0 entered promiscuous mode [11101.758363] device eth0 left promiscuous mode [11108.651928] device eth0 entered promiscuous mode [11120.785132] device eth0 left promiscuous mode
Resolución de nombres
Cuando hacemos pruebas con un ping a un nombre de dominio y no obtenemos respuesta, podría haber un problema con la resolución del dominio (problema con DNS).
/etc/resolv.conf
El fichero /etc/resolv.conf: se utiliza para indicar al sistema qué servidores de nombres y qué dominios hay que
consultar para resolver las peticiones DNS.
Ejemplo de /etc/resolv.conf:
domain mundo-R.com search mundo-R.com nameserver 10.0.2.3
Según ese fichero, las búsquedas se realizarán primero en el dominio mundo-r.com y luego al servidor DNS 10.0.2.3.
/etc/hosts
El fichero /etc/hosts permite establecer una correspondencia entre las direcciones IP y los nombre de las máquinas. Se podría pensar en él como una especie de DNS local.
Ejemplo:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.2.10 debian10.curso.esp debian10 192.168.2.5 sercentos7.curso.esp sercentos7 192.168.2.152 orion.curso.esp orion
De tal manera que podríamos hacer ping a debian10 en lugar de a la IP 192.168.2.10.
host
Herramienta que nos permite hacer consultas al servidor DNS de la red:
host google.es
google.es has address 216.58.211.227 google.es has IPv6 address 2a00:1450:4003:805::2003 google.es mail is handled by 10 aspmx.l.google.com. google.es mail is handled by 50 alt4.aspmx.l.google.com. google.es mail is handled by 20 alt1.aspmx.l.google.com. google.es mail is handled by 30 alt2.aspmx.l.google.com. google.es mail is handled by 40 alt3.aspmx.l.google.com.
dig
Herramienta que nos permite hacer consultas al servidor DNS de la red, obteniendo información mucho más detallada que host.
El programa dig no viene instalado por defecto. Pertenece al paquete dnsutils.
dig google.es
; <<>> DiG 9.11.5-P4-5.1+deb10u3-Debian <<>> google.es ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: FORMERR, id: 55359 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: b1a8a025bbd00c57 (echoed) ;; QUESTION SECTION: ;google.es. IN A ;; Query time: 15 msec ;; SERVER: 10.0.2.3#53(10.0.2.3) ;; WHEN: Thu Apr 08 12:35:01 CEST 2021 ;; MSG SIZE rcvd: 50
Podemos hacer consultas al servidor DNS pidiendo ciertos tipos de entradas. Por ejemplo, servidores de correo:
dig MX google.es
Si queremos que nos dé la información principal:
dig ANY google.es
TCP wrappers
Permite el bloqueo de determinados servicios a través de la red.
Utiliza la librería libwrap que permite monitorizar y controlar las conexiones TCP entrantes.
Los ficheros de configuración son:
/etc/hosts.allow/etc/hosts.deny
Durante la comprobación de reglas primero se verifica el /etc/hosts.allow y después /etc/hosts.deny.
tcpd es el demonio que lee los ficheros de configuración.
Si en una máquina añadimos hosts al fichero /etc/hosts.deny estaríamos bloqueando el acceso de esos hosts a dicha máquina.
Formato de los ficheros:
servicio: clientes
- servicio: servicio a comprobar (ALL para todos)
- clientes: clientes autorizados o prohibidos (según sea fichero
hosts.allowohosts.deny).
Ejemplo /etc/hosts.allow:
vsftpd: 192.168.2.5 telnet: ALL
Quiere decir que al servicio vsftdp solo podrá acceder el host 129.168.2.5, pero a telnet podrán todos.
Ejemplo /etc/hosts.deny:
ALL: .baddomain.org EXCEPT trusted.baddomain.org
Quiere decir que los hosts que pertenzcan a .baddomain.org no podrán acceder a nada, salvo los hosts de trusted.baddomain.org.
ALL: Todos los hosts.LOCAL: Todos los host de la red local.UNKNOWN: Host con nombre sin resolver.KNOWN: Host con nombre conocido.EXCEPT: Permite la exclusion de hosts.
Tests
A DNS server has the IP address 192.168.0.1. Which TWO of the following need to be done on a client machine to use this DNS server?
- Add
nameserver 192.168.0.1to/etc/resolv.conf(Solución) - Run
route add nameserver 192.168.0.1 - Run
ifconfig eth0 nameserver 192.168.0.1 - Ensure that the dns service is listed in the hosts entry in the
/etc/nsswitch.conffile (Solución) - Run
bind add nameserver 192.168.0.1
En el fichero /etc/nsswitch.conf se especifica qué resuelve antes, si los archivos como /etc/hosts o el DNS.
Considering the following kernel IP routing table now, which of the following commands must be remove the route to the network 10.10.1.0/24?
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 200.207.199.162 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 172.16.87.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.246.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 10.10.1.0 192.168.246.11 255.255.255.0 UG 0 0 0 eth1 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 200.207.199.162 0.0.0.0 UG 0 0 0 ppp0
route del 10.10.1.0route del 10.10.1.0/24route del -net 10.10.1.0/24(Solución)route del 10.10.1.0/24 gw 192.168.246.11route del -net 10.10.1.0
