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 interfaces
não foi muito útil, pois está escrito muito complicado.
Exemplos de perguntas que tenho: o que significa exatamente inet
em uma iface
linha (não consegui nem encontrar na página de manual), o que significa exatamente manual
em uma iface
linha (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 lo
interface 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 auto
a 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 eth0
cria umestrofechamado eth0
em um dispositivo Ethernet. iface ppp0
deveria criar umponto a pontointerface, e pode ter diferentes maneiras de adquirir endereços, assim inet wvdial
encaminhará a configuração desta interface para wvdialconf
o script. A tupla inet
/ inet6
+ option
definirá 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 vlan10
que 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 9000
para permitirquadros gigantesdurante a up
operação (em vez de usar a mtu
própria opção). Você também pode chamar qualquer outro software, como up sleep 5; mii-tool -F 100baseTx-FD $IFACE
forç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 random
para obter um endereço MAC aleatório.
dns-nameservers
– Endereços IP de servidores de nomes. Requer o resolvconf
pacote. É uma forma de concentrar todas as informações em /etc/network/interfaces
vez de usar /etc/resolv.conf
para configurações relacionadas ao DNS. Não edite o resolv.conf
arquivo 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 domain
de/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/interfaces
arquivo 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 resolvconf
pacote, 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