¿Buena explicación detallada de la sintaxis / etc / network / interfaces?


139

Comprendí el concepto muy básico de cómo usar /etc/network/interfaces, pero todo lo que encuentro en línea son ejemplos, ejemplo tras ejemplo, desde los cuales puedo copiar y pegar. Lo que extraño es una explicación de la sintaxis, una explicación del significado de los comandos y el orden que requieren los comandos. Quiero entender, porque la mayoría de las veces copiar y pegar no es suficiente, porque no estoy trabajando en una máquina nueva, por lo que no puedo sobrescribir las configuraciones existentes porque rompería muchas cosas. man interfacesno fue muy útil ya que está escrito muy complicado.

Preguntas de ejemplo que tengo: qué significa exactamente ineten una ifacelínea (ni siquiera pude encontrarlo en la página de manual), qué significa exactamente manualen una ifacelínea (muchos ejemplos lo usan, pero de acuerdo con la página de manual, necesita un archivo de configuración adicional, que los ejemplos no se presentan), ¿cuándo los uso o los necesito? ¿Cuando no? Cuando creo un puente, ¿qué sucede exactamente con las interfaces?


44
La página de manual dice que lo que viene después del nombre de la interfaz es la familia de direcciones que utiliza la interfaz. "inet" es el nombre de IPv4, inet6 para ipv6. También hay ipx, x25, appletalk ..., aunque ifupdown solo trata con inet / inet6 / ipx como explica la página del manual. manualsignifica que si upupdown no hace nada al respecto, debe hacerlo usted mismo manualmente.
Stéphane Chazelas

Respuestas:


169

Bueno, separémoslo en pedazos para que sea más fácil de entender /etc/network/interfaces:

Opciones de tipo de interfaz + capa de enlace (generalmente la primera de cada interfaces(5)sección de interfaz y método de familia de direcciones llamada por páginas de manual):

auto interface- Inicie las interfaces en el arranque. Es por eso que la lointerfaz usa este tipo de configuración de enlace.

allow-auto interface - Igual que auto

allow-hotplug interface- Inicie la interfaz cuando se detecte un evento "hotplug". En el mundo real, esto se usa en las mismas situaciones autopero la diferencia es que esperará un evento como "ser detectado por udev hotplug api" o "cable conectado". Consulte " Cosas relacionadas (hotplug) " para obtener información adicional.

Estas opciones son prácticamente opciones de "capa 2", configuran estados de enlace en las interfaces y no están relacionadas con la "capa 3" (enrutamiento y direccionamiento). Como ejemplo, podría tener una agregación de enlaces donde la interfaz bond0 debe estar activada independientemente del estado del enlace, y sus miembros podrían estar activos después de un evento de estado del enlace:

auto bond0
iface bond0 inet manual
        down ip link set $IFACE down
        post-down rmmod bonding
        pre-up modprobe bonding mode=4 miimon=200
        up ip link set $IFACE up mtu 9000
        up udevadm trigger

allow-hotplug eth0
iface eth0 inet manual
        up ifenslave bond0 $IFACE
        down ifenslave -d bond0 $IFACE 2> /dev/null

allow-hotplug eth1
iface eth1 inet manual
        up ifenslave bond0 $IFACE
        down ifenslave -d bond0 $IFACE 2> /dev/null

Entonces, de esta manera creo una agregación de enlaces y las interfaces se agregarán y eliminarán en los estados de enlace de cable.

Tipos de interfaz más comunes:

Todas las opciones a continuación son un sufijo para una interfaz definida ( iface <Interface_family>). Básicamente, iface eth0crea una estrofa llamada eth0en un dispositivo Ethernet. iface ppp0debería crear una interfaz punto a punto , y podría tener diferentes formas de adquirir direcciones como inet wvdialesa reenviarán la configuración de esta interfaz al wvdialconfscript. La tupla inet/ inet6+ optiondefinirá la versión del protocolo IP que se utiliza y la forma se configurará esta dirección ( static, dhcp, scripts...). Los manuales en línea de Debian le darán más detalles sobre esto.

Opciones en interfaces Ethernet:

inet static - Define una dirección IP estática.

inet manual- No define una dirección IP para una interfaz. Generalmente utilizado por interfaces que son miembros de puente o agregación, interfaces que necesitan operar en modo promiscuo ( por ejemplo, puerto espejo o TAP de red ), o tienen un dispositivo VLAN configurado en ellas. Es una forma de mantener la interfaz activa sin una dirección IP.

inet dhcp - Adquirir dirección IP a través del protocolo DHCP.

inet6 static - Define una dirección IPv6 estática.

Ejemplo:

# Eth0
auto eth0
iface eth0 inet manual
    pre-up modprobe 8021q
    pre-up ifconfig eth0 up
    post-down ifconfig eth0 down

# Vlan Interface
auto vlan10
iface vlan10 inet static
        address 10.0.0.1
        netmask 255.255.255.0
        gateway 10.0.0.254
        vlan-raw-device eth0
        ip_rp_filter 0

Aparecerá este ejemplo eth0y creará una interfaz VLAN llamada vlan10que procesará la etiqueta número 10 en una trama Ethernet.

Opciones comunes dentro de una sección de interfaz (capa 2 y 3):

address - Dirección IP para una interfaz configurada IP estática

netmask- Máscara de red. Se puede omitir si usa la dirección cidr. Ejemplo:

iface eth1 inet static
    address 192.168.1.2/24
    gateway 192.168.1.1

gateway- La puerta de enlace predeterminada de un servidor. Tenga cuidado de usar solo uno de este tipo.

vlan-raw-device - En una interfaz VLAN, define su "padre".

bridge_ports - En una interfaz de puente, defina sus miembros.

down- Utilice el siguiente comando para bajar la interfaz en lugar de ifdown.

post-down - Acciones tomadas justo después de que la interfaz esté inactiva.

pre-up - Acciones antes de que la interfaz esté activa.

up- Use el siguiente comando para subir la interfaz en lugar de ifup. Depende de su imaginación usar cualquier opción disponible en iputils. Como ejemplo, podríamos usar up ip link set $IFACE up mtu 9000para habilitar tramas gigantes durante la upoperación (en lugar de usar la mtuopción en sí). También puede llamar a cualquier otro software up sleep 5; mii-tool -F 100baseTx-FD $IFACEpara forzar 100Mbps Full duplex 5 segundos después de que la interfaz esté activa.

hwaddress ether 00:00:00:00:00:00- Cambie la dirección mac de la interfaz en lugar de utilizar la que está codificada en rom o generada por algoritmos. Puede usar la palabra clave randompara obtener una dirección mac aleatoria.

dns-nameservers- Direcciones IP de servidores de nombres. Requiere el resolvconfpaquete Es una forma de concentrar toda la información en /etc/network/interfaceslugar de utilizarla /etc/resolv.confpara configuraciones relacionadas con DNS. No edite el resolv.confarchivo de configuración manualmente, ya que los programas del sistema lo cambiarán dinámicamente.

dns-search example.net- Agregue example.net como dominio a las consultas del host, creando el FQDN. Opción domainde/etc/resolv.conf

wpa-ssid - Inalámbrico: establezca un SSID WPA inalámbrico.

mtu- Tamaño de MTU . mtu 9000= Marco Jumbo. Es útil si su caja Linux está conectada con conmutadores que admiten tamaños de MTU más grandes. Puede romper algunos protocolos (tuve malas experiencias con los marcos snmp y jumbo).

wpa-psk - Inalámbrico: establezca un PSK codificado hexadecimal para su SSID.

ip_rp_filter 1- Filtro de ruta inversa habilitado. Útil en situaciones donde tiene 2 rutas a un host, y esto obligará al paquete a regresar de donde vino (misma interfaz, usando sus rutas). Ejemplo: está conectado a su lan ( 192.168.1.1/24) y tiene un servidor dlna con una interfaz en su lan ( 192.168.1.10/24) y otra interfaz en dmz para ejecutar tareas administrativas ( 172.16.1.1/24). Durante una sesión ssh desde su computadora a dlna dmz ip, la información debe volver a usted, pero se bloqueará para siempre porque su servidor dlna intentará entregar la respuesta directamente a través de su interfaz lan. Con rp_filter habilitado, se asegurará de que la conexión regrese de donde vino. Más información aquí .

Algunas de esas opciones no son opcionales. Debian le advertirá si coloca una dirección IP en una interfaz sin máscara de red, por ejemplo.

Puede encontrar más buenos ejemplos de configuración de red aquí .

Cosas relacionadas :

Enlaces que tienen información relacionada con el /etc/network/interfacesarchivo de configuración de red:


Gracias, esto ayuda mucho. ¿ inetTiene algo que ver con "internet"? Leí algo que simplemente significa "IPv4" y inet6"IPv6", pero el término "inet" es realmente confuso cuando lo ve y lo confunde con la abreviatura de "internet". Y los nombres que uno usa, como eth0, ¿están definidos o puedo elegirlos yo mismo? Si tengo más de un adaptador LAN, ¿cómo puedo saber cuál ethpertenece a qué adaptador LAN?
Foo Bar

2
Ambos. Juntos definen el método de adquisición de direcciones IP (dhcp, estático, scripts ppp, sin dirección) y la versión del protocolo ip ( inet= v4 y inet6= v6). Los nombres de las interfaces dependen en gran medida de la distribución que esté utilizando, y la forma en que udevestá configurada. Debian utiliza eth*y wlan*para cablear e interfaces inalámbricas. Fedora utiliza el esquema biosdevname, donde em0es la primera interfaz de ethernet incorporada en su placa base, y p<slot>p<eth port>el nombre de un PCI PCI. Puede corregir los nombres de red en /etc/udev/rules.d/70-persistent-net.ruleso crear un alias interfaces.

2
Con respecto a "puerta de enlace: la puerta de enlace predeterminada de un servidor. Tenga cuidado de usar solo uno de este tipo". ¿Es esa una por estrofa o una interfaz de puerta de enlace entre todas las estrofas?
ctbrown

2
Debe ser una puerta de enlace entre todas las estrofas, o tendrá problemas con su ruta predeterminada. Para trabajar con puerta de enlace múltiple / enlace múltiple, será necesario pensar con iptables + marcado de paquetes + reglas de ip.

Una pequeña consulta, si en este archivo, tengo iface eth0 inet static y luego si escribo alguna IP contra el campo de dirección, ¿significa que esta IP particular que acabo de escribir se vincularía a la dirección MAC de mi sistema?
k10

0

También agregaría que:

  • interfaces es para servicios ifup / ifdown.
  • Cuando usa allow-hotplug no comenzará con ifup / ifdown, porque necesita usar flag --allow = hotplug.

U puede rastrear lo que está sucediendo con ifup usando --verbose flag.

No estoy 100% seguro de esto, pero parece que básicamente cuando se llama a ifup se ejecutará todo desde / etc / network / interfaces con up ... si no se indica lo contrario.

No estoy seguro de cómo se relaciona con: redes de servicios ...

Sería bueno si alguien señalara qué sucede después de la llamada:

service networking restart

en relación con ifup / ifdown.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.