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

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

Entendí el concepto básico de cómo utilizar /etc/network/interfaces, pero todo lo que encuentro en línea son ejemplos, ejemplo tras ejemplo, de los que puedo copiar y pegar. Lo que extraño es una explicación de la sintaxis, una explicación del significado de los comandos y qué orden requieren. Quiero entenderlo, 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 simplemente sobrescribir las configuraciones existentes porque rompería muchas cosas. man interfacesNo fue de mucha ayuda ya que está escrito de manera muy complicada.

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 según la página de manual entonces 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?

Respuesta1

Bueno, vamos a separarlo en partes, para que sea más fácil de entender /etc/network/interfaces:

Capa de enlace+opciones de tipo de interfaz (generalmente la primera de cada interfazestrofay llamado familia de direcciones + método porinterfaces(5)páginas de manual):

auto interface– Inicie la(s) interfaz(es) al arrancar. Es por eso que la lointerfaz utiliza este tipo de configuración de enlace.

allow-auto interface- Igual queauto

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

Estas opciones son prácticamente opciones de "capa 2", que configuran estados de enlace en 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 activa sea cual sea el 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 unagregar un linky las interfaces se le agregarán y eliminarán en los estados de enlace de cable.

Tipos de interfaz más comunes:

Todas las opciones siguientes son un sufijo de una interfaz definida ( iface <Interface_family>). Básicamente iface eth0crea unestrofallamado eth0en un dispositivo Ethernet. iface ppp0debería crear unpunto a puntointerfaz, y podría tener diferentes formas de adquirir direcciones, como inet wvdialesa reenviará la configuración de esta interfaz al wvdialconfscript. La tupla inet/ inet6+ optiondefinirá la versión delprotocolo IPque se utilizará y la forma en que se configurará esta dirección ( static, dhcp, scripts...). Elmanuales de Debian en líneate daré 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 puente o de agregación, interfaces que necesitan operar en modo promiscuo (por ejemplo, duplicación de puertos o TAP de red), o tener un dispositivo VLAN configurado en ellos. 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

Este ejemplo mostrará eth0y creará uninterfaz VLANllamado vlan10que procesará la etiqueta número 10 en una trama Ethernet.

Opciones comunes dentro de una estrofa de interfaz (capas 2 y 3):

address– Dirección IP para una interfaz configurada con 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 utilizar sólo 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 cerrar la interfaz en lugar de ifdown.

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

pre-up– Acciones antes de que se active la interfaz.

up– Utilice el siguiente comando para mejorar la interfaz en lugar de ifup. Depende de tu imaginación utilizar cualquier opción disponible en iputils. Como ejemplo podríamos utilizar up ip link set $IFACE up mtu 9000para habilitarmarcos gigantesdurante la upoperación (en lugar de utilizar la mtuopción en sí). También puede llamar a cualquier otro software, como up sleep 5; mii-tool -F 100baseTx-FD $IFACEforzar 100 Mbps Full dúplex 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 usar la que está codificada en la rom o generada por algoritmos. Puede utilizar 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: configure un SSID WPA inalámbrico.

mtu-MTUtamaño. mtu 9000= Marco gigante. Ú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 snmp y tramas jumbo).

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

ip_rp_filter 1-Filtro de ruta inversaactivado. Útil en situaciones en las que tiene 2 rutas hacia 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 regresar 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 desde donde vino. Más informaciónaquí.

Algunas de esas opciones no son opcionales. Debian le avisará 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 /etc/network/interfacesel archivo de configuración de red:

Respuesta2

También agregaría que:

  • interfaces es para servicios ifup/ifdown.
  • Cuando usas enable-hotplug no comenzará con ifup/ifdown, porque necesitas usar el indicador --allow=hotplug.

Puedes rastrear lo que está sucediendo con ifup usando el indicador --verbose.

No estoy 100% seguro de esto, pero parece que básicamente cuando se llama a ifup, ejecutarás 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 lo que sucede después de la llamada:

service networking restart

en relación con ifup/ifdown.

Respuesta3

Si necesita agregar opciones al usar el resolvconfpaquete, es decir, en Ubuntu, coloca esa configuración en /etc/resolvconf/resolv.conf.d/base:

# /etc/resolvconf/resolv.conf.d/base
options timeout:1 attempts:1 rotate

Respuesta4

Lo importante para los nombres de atributos es:

No hay ningún archivo con descripción estándar. Esto significa que este archivo está definido por la implementación.

Puede ser minúscula, mayúscula o mixta.

No importa '-' o '_'

No puede contener espacios ni tabulaciones.

Por lo que dicen las fuentes de ifupdown

Excepto algunos nombres comunes como "pre-up", "down", etc., que no se pueden escribir de otra manera.

información relacionada