Cómo configurar una dirección IP estática y por qué
¡Aviso! No hablo de otras formas de configurar la red como con NetworkManager. /etc/network/interfaces
NM no toca ningún dispositivo mencionado en
Para poder comunicarse a través de una red IP (IPv4 e IPv6), la computadora debe saber qué dirección IP tiene. Por lo tanto address
, se necesita una directiva para decirle eso a la computadora.
Cuando la computadora quiere hablar con otra computadora, usa la dirección IP de otras computadoras para verificar si esa computadora está en la misma red, LAN. Si es así, la computadora puede comunicarse directamente con la otra computadora.
Entonces, ¿cómo sabe la computadora cuando se está comunicando con una computadora en la misma LAN? Al usar las redes netmask
, donde la parte neta de la dirección se establece en unos y la parte del host se establece en ceros. Entonces, al hacer una operación AND a nivel de bit entre cada bit en una dirección IP y la máscara de red, obtendremos la dirección de red de la dirección IP, donde la parte del host es cero. Entonces, si hacemos esto en la dirección IP de las computadoras y en la dirección IP de las otras computadoras, obtenemos cada dirección de red. Si son iguales, significa que las computadoras están en la misma red y pueden comunicarse directamente entre sí.
Si las direcciones de red no son iguales, están en una LAN diferente y no pueden comunicarse directamente entre sí. Entonces la computadora necesita usar una computadora especial que esté conectada a otras LAN. Esa computadora es un enrutador (que también podría tener un firewall y NAT). Entonces, cuando la computadora quiere hablar con otras computadoras fuera de la LAN, necesita saber la dirección de esa computadora que se establece con la gateway
directiva. Si otra interfaz ya ha establecido un gateway
valor, no debe y no debe establecer otra directiva de puerta de enlace para esta interfaz. La gateway
directiva establece la ruta predeterminada para la computadora, por lo que solo necesita una para IPv4 y solo una para IPv6 en cada máquina. Esta dirección de red se puede configurar manualmente con la network
directiva.
En algún momento, la computadora desea comunicarse con todas las computadoras de la LAN y utiliza la dirección de transmisión. Todas las computadoras en la misma LAN escuchan esta dirección. Esto es básicamente lo mismo que la dirección de red, excepto que la parte del host no es todos ceros y en su lugar todos. Esta dirección de difusión se establece mediante la directiva broadcast
en la interfaz.
La network
dirección de la interfaz solo se necesita calcular una vez y generalmente se calcula correctamente a partir de eso address
y las netmask
directivas. Lo mismo con la broadcast
dirección. Por lo tanto, no necesita configurarlos. De hecho, si configura uno o ambos a los valores incorrectos, podría perder la conexión a Internet y otras computadoras en su LAN. Entonces, a menos que tenga algunos valores extraños, deje que la computadora los calcule por usted.
Entonces, una configuración estática mínima, o stanza, /etc/network/interfaces
podría verse así para el dispositivo eth1
en una red privada:
iface eth1 static inet
address 192.168.44.10
netmask 255.255.255.0
gateway 192.168.44.1
Cómo funciona la resolución de nombres y cómo está vinculada al DNS.
Los nombres de dominio se utilizan para convertir entre los humanos la facilidad de leer y recordar nombres de dominio y las computadoras no tan fáciles de recordar como se mencionó anteriormente. Esto se llama resolución de nombres .
Esto generalmente está controlado por el archivo /etc/nsswitc.conf
y la línea que comienza con hosts:
. Si le pide a la computadora que se conecte a la computadora my.example.com
, buscará en este archivo e intentará resolver la dirección IP del nombre my.example.com
. Este archivo en realidad no responde la pregunta "qué IP tiene my.example.com", solo le dice a la computadora dónde puede encontrar la respuesta.
Por lo general, /etc/hosts
primero prueba el archivo para nombres locales estáticos, luego avahi mDNS
para nombres locales dinámicos y luego un resovler de nombre de dominio DNS para obtener un nombre de Internet.
Si algunos de estos responden lentamente a sus preguntas, puede parecer que la computadora se atasca por un tiempo. Entonces, si obtienes eso, primero verifica la resolución del nombre.
Entonces, agregando direcciones estáticas, simplemente puede agregarlo a su /etc/hosts
archivo. Por cierto, si tiene una dirección estática, probablemente debería cambiar la dirección IP allí para su máquina a su dirección IP y no la predeterminada 127.0.1.1
(que está en la red localnet donde están localhost 127.0.0.1
). Eso solo funciona bien para clientes y no para servidores.
Las direcciones dinámicas que obtienes de las máquinas Linux con el avahi
paquete y de las máquinas Apple (¿y MS Windows con iTunes?). Eso es manejado por "magia" y no necesitarás arreglar eso.
El DNS se usa para llegar a Internet y debe decirle a la computadora dónde están los servidores DNS que desea usar, qué dirección IP usar y cuál es su dominio DNS predeterminado.
Esto se hace en el archivo /etc/resolv.conf
y se puede configurar de forma estática. Esto no funciona tan bien en nuestro mundo no tan estático, por lo que generalmente tiene un paquete llamado resolvconf
instalado. Esto le permite configurar estos ajustes en el /e/n/interfaces
archivo.
Entonces, si suponemos que queremos agregar uno de los servidores DNS de Google 8.8.8.8
y el servidor DNS de su ISP 192.0.2.1
y su dominio de my.example.org
dominio de forma predeterminada, simplemente edite el /etc/network/interfaces
archivo y agregue estas dos líneas en la sección para el dispositivo estático.
dns-nameservers 8.8.8.8 192.0.2.10
dns-search my.example.org
También puede notar que el solucionador DNS solo usará un máximo de tres servidores DNS. Busque esto en la página man
de resolv.conf
. Como por lo general, se puede utilizar el comando man nsswitch.conf
, man resolv.conf
y man resolvconf
para más información.
Observe también que uso el dominio example.com y example.org y la red IP 192.0.2.0/24 para el servidor DNS de ejemplo de ISP. Estos están definidos explícitamente para ser usados en ejemplos. Consulte http://example.com/ o http://tools.ietf.org/html/rfc2606 y rfc5735
¿Cómo verificas que funciona?
Puedes hacerlo de muchas maneras, pero generalmente uso
getent hosts my.test.com
para probar toda la configuración para la resolución de nombres. Si solo quiero verificar si DNS funciona, utilizo uno de estos comandos:
host my.test.com
dig my.test.com
Pero recuerde que solo prueban DNS a través de la configuración del /etc/resolv.conf
archivo, y no de la /etc/nsswitch.conf
parte. Puede ser lo que quieras o no.