Boa explicação detalhada da sintaxe /etc/network/interfaces?

Boa explicação detalhada da sintaxe /etc/network/interfaces?

Eu entendi o conceito básico de como usar o /etc/network/interfaces, mas tudo que encontro online são exemplos, exemplo após exemplo, dos quais posso copiar e colar. O que sinto falta é uma explicação da sintaxe, uma explicação do significado dos comandos e da ordem que os comandos exigem. Quero entender, porque na maioria das vezes copiar e colar não é suficiente, porque não estou trabalhando em uma máquina nova, então não posso simplesmente sobrescrever as configurações existentes porque isso quebraria muitas coisas. man interfacesnão foi muito útil, pois está escrito muito complicado.

Exemplos de perguntas que tenho: o que significa exatamente inetem uma ifacelinha (não consegui nem encontrar na página de manual), o que significa exatamente manualem uma ifacelinha (muitos exemplos usam, mas de acordo com a página de manual ele precisa de um arquivo de configuração extra, que os exemplos não apresentam), quando devo usá-los ou preciso deles? Quando não? Quando crio uma ponte, o que acontece exatamente com as interfaces?

Responder1

Bom, vamos separar em pedaços, para ficar mais fácil de entender /etc/network/interfaces:

Camada de link+opções de tipo de interface (geralmente a primeira de cada interfaceestrofee chamado família de endereços + método porinterfaces(5)páginas de manual):

auto interface– Inicie a(s) interface(s) na inicialização. É por isso que a lointerface usa esse tipo de configuração de link.

allow-auto interface- Igual aauto

allow-hotplug interface– Inicie a interface quando um evento "hotplug" for detectado. No mundo real, isso é usado nas mesmas situações, mas autoa diferença é que ele aguardará um evento como "ser detectado pela API do hotplug do udev" ou "ligado por cabo". Ver "Coisas relacionadas (hotplug)" para informações adicionais.

Essas opções são basicamente opções de "camada 2", configurando estados de link em interfaces, e não estão relacionadas à "camada 3" (roteamento e endereçamento). Como exemplo, você poderia ter uma agregação de link onde a interface bond0 precisa estar ativa, qualquer que seja o estado do link, e seus membros podem estar ativos após um evento de estado do link:

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

Então, desta forma eu crio umlink de agregaçãoe as interfaces serão adicionadas a ele e removidas nos estados do link do cabo.

Tipos de interface mais comuns:

Todas as opções abaixo são um sufixo para uma interface definida ( iface <Interface_family>). Basicamente o iface eth0cria umestrofechamado eth0em um dispositivo Ethernet. iface ppp0deveria criar umponto a pontointerface, e pode ter diferentes maneiras de adquirir endereços, assim inet wvdialencaminhará a configuração desta interface para wvdialconfo script. A tupla inet/ inet6+ optiondefinirá a versão doProtocolo IPque será utilizado e a forma como esse endereço será configurado ( static, dhcp, scripts...). Omanuais on-line do Debianlhe dará mais detalhes sobre isso.

Opções em interfaces Ethernet:

inet static– Define um endereço IP estático.

inet manual– Não define um endereço IP para uma interface. Geralmente usado por interfaces que são membros de ponte ou agregação, interfaces que precisam operar em modo promíscuo (por exemplo, espelhamento de porta ou TAPs de rede) ou ter um dispositivo VLAN configurado neles. É uma forma de manter a interface ativa sem um endereço IP.

inet dhcp– Adquira endereço IP através do protocolo DHCP.

inet6 static– Define um endereço IPv6 estático.

Exemplo:

# 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 exemplo irá trazer eth0à tona e criar umInterface VLANchamado vlan10que processará o tag número 10 em um quadro Ethernet.

Opções comuns dentro de uma sub-rotina de interface (camadas 2 e 3):

address– Endereço IP para uma interface configurada com IP estático

netmask– Máscara de rede. Pode ser omitido se você usar o endereço cidr. Exemplo:

iface eth1 inet static
    address 192.168.1.2/24
    gateway 192.168.1.1

gateway– O gateway padrão de um servidor. Tenha cuidado para usar apenas um desse cara.

vlan-raw-device– Em uma interface VLAN, define seu “pai”.

bridge_ports– Em uma interface de ponte, defina seus membros.

down– Use o seguinte comando para desativar a interface em vez de ifdown.

post-down– Ações tomadas logo após a interface ser inativa.

pre-up– Ações antes da interface estar ativa.

up– Use o seguinte comando para ativar a interface em vez de ifup. Cabe à sua imaginação usar qualquer opção disponível no iputils. Como exemplo, poderíamos usar up ip link set $IFACE up mtu 9000para permitirquadros gigantesdurante a upoperação (em vez de usar a mtuprópria opção). Você também pode chamar qualquer outro software, como up sleep 5; mii-tool -F 100baseTx-FD $IFACEforçar Full duplex de 100 Mbps 5 segundos após a interface ser ativada.

hwaddress ether 00:00:00:00:00:00- Altere o endereço mac da interface em vez de usar aquele que está codificado na ROM ou gerado por algoritmos. Você pode usar a palavra-chave randompara obter um endereço MAC aleatório.

dns-nameservers– Endereços IP de servidores de nomes. Requer o resolvconfpacote. É uma forma de concentrar todas as informações em /etc/network/interfacesvez de usar /etc/resolv.confpara configurações relacionadas ao DNS. Não edite o resolv.confarquivo de configuração manualmente, pois ele será alterado dinamicamente pelos programas do sistema.

dns-search example.net– Anexe example.net como domínio às consultas do host, criando o FQDN. Opção domainde/etc/resolv.conf

wpa-ssid– Sem fio: defina um SSID WPA sem fio.

mtu-MTUtamanho. mtu 9000= Quadro Jumbo. Útil se a sua caixa Linux estiver conectada a switches que suportam tamanhos maiores de MTU. Pode quebrar alguns protocolos (tive experiências ruins com snmp e jumbo frames).

wpa-psk– Sem fio: defina um PSK com codificação hexadecimal para seu SSID.

ip_rp_filter 1-Filtro de caminho reversohabilitado. Útil em situações onde você tem 2 rotas para um host, e isso forçará o pacote a voltar de onde veio (mesma interface, usando suas rotas). Exemplo: Você está conectado em sua lan( 192.168.1.1/24) e tem um servidor dlna com uma interface em sua lan( 192.168.1.10/24) e outra interface em dmz para executar tarefas administrativas( 172.16.1.1/24). Durante uma sessão ssh do seu computador para o dlna dmz ip, as informações precisam voltar para você, mas ficarão penduradas para sempre porque o seu servidor dlna tentará entregar a resposta diretamente através de sua interface lan. Com o rp_filter habilitado, ele garantirá que a conexão retornará de onde veio. Mais Informaçõesaqui.

Algumas dessas opções não são opcionais. O Debian irá avisá-lo se você colocar um endereço IP em uma interface sem máscara de rede, por exemplo.

Você pode encontrar mais bons exemplos de configuração de redeaqui.

Coisas relacionadas:

Links que possuem informações relacionadas ao /etc/network/interfacesarquivo de configuração de rede:

Responder2

Eu também acrescentaria que:

  • interfaces é para serviços ifup/ifdown.
  • Quando você usa permitir-hotplug ele não inicia com ifup/ifdown, mas você precisa usar o sinalizador --allow=hotplug.

Você pode rastrear o que está acontecendo com o ifup usando o sinalizador --verbose.

Não tenho 100% de certeza disso, mas parece que basicamente quando ifup é chamado, você executará tudo de /etc/network/interfaces com up ... se não for indicado o contrário.

Não tenho certeza de como isso se relaciona com: rede de serviços ...

Seria bom se alguém apontasse o que está acontecendo após a ligação:

service networking restart

em relação a ifup/ifdown.

Responder3

Se precisar adicionar opções ao usar o resolvconfpacote, ou seja, no Ubuntu você coloca essa configuração em /etc/resolvconf/resolv.conf.d/base:

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

Responder4

O importante para nomes de atributos é:

Não há nenhum arquivo com descrição padrão. Isso significa que este arquivo é definido pela implementação

Pode ser minúscula, maiúscula ou mista

Não importa '-' ou '_'

Não pode conter espaços e tabulações

Tanto quanto dizem as fontes do ifupdown

Exceto alguns nomes comuns como "pre-up" "down" e etc, que não podem ser escritos de outra forma

informação relacionada