Eu entendi o conceito básico de como usar /etc/network/interfaces
, mas tudo que encontro online são exemplos, exemplos após um exemplo, do qual posso copiar e colar. O que sinto falta é uma explicação da sintaxe, uma explicação do significado dos comandos e que ordem os comandos exigem. Eu quero entender, porque na maioria das vezes copiar e colar não é suficiente, porque eu 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 foi escrito muito complicado.
Exemplos de perguntas que tenho: o que inet
em uma linha iface
significa exatamente (não consegui nem encontrar na página de manual), o que manual
em um iface
linha significa exatamente (muitos exemplos o 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 eu os uso ou preciso? Quando não? Quando eu crio uma ponte, o que exatamente acontece com as interfaces?
Comentários
Resposta
Bem, vamos separá-lo em partes para facilitar a compreensão /etc/network/interfaces
:
Camada de link + opções de tipo de interface (geralmente a primeira de cada estrofe de interface e chamada de família de endereços + método por interfaces(5)
manpages):
auto interface
– Inicie a (s) interface (s) na inicialização. É por isso que a interface lo
usa esse tipo de configuração de vinculação.
allow-auto interface
– O mesmo que auto
allow-hotplug interface
– Inicie a interface quando um evento” hotplug “for detectado. No mundo real, isso é usado nas mesmas situações que auto
, mas a diferença é que irá esperar por um evento como “sendo detectado por udev hotplug api” ou “conectado por cabo” . Consulte “ Coisas relacionadas (hotplug) ” para obter informações adicionais.
Essas opções são basicamente opções da “camada 2”, configurando estados de link nas interfaces, e não estão relacionados com a “camada 3” (roteamento e endereçamento). Como exemplo, você poderia ter uma agregação de link em que a interface bond0 precisa estar ativa, seja qual for 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
Portanto, desta forma eu crio uma agregação de link e as interfaces serão adicionadas a ela e removidas nos estados de link de 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 uma estrofe chamada eth0
em um dispositivo Ethernet . iface ppp0
deve criar uma interface ponto a ponto e pode ter diferentes maneiras de adquirir endereços como inet wvdial
que encaminhará a configuração desta interface para o script wvdialconf
. A tupla inet
/ inet6
+ option
definirá a versão do Protocolo IP que será usado e a forma como esse endereço será configurado (static
, dhcp
, scripts
…). Os manuais online do Debian fornecerão mais detalhes sobre isso.
Opções nas 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 bridge 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 nelas. É uma maneira de manter a interface ativa sem um endereço IP.
inet dhcp
– Obtenha o endereço IP por meio 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 trará eth0
e criará um Interface VLAN chamada vlan10
que processará a tag número 10 em um quadro Ethernet.
Opções comuns dentro de uma estrofe 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 de 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 realizadas logo após a interface ser desativada.
pre-up
– Ações antes de a interface ser ativada.
up
– Use o seguinte comando para ativar a interface em vez de ifup
. Depende da sua imaginação usar qualquer opção disponível em iputils
. Como exemplo, podemos usar up ip link set $IFACE up mtu 9000
para ativar frames jumbo durante os up
(em vez de usar a própria opção mtu
). Você também pode chamar qualquer outro software como up sleep 5; mii-tool -F 100baseTx-FD $IFACE
para forçar 100Mbps Full duplex 5 segundos após a interface estar ativa.
hwaddress ether 00:00:00:00:00:00
– Altere o endereço mac da interface em vez de usar aquele que está codificado em 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 pacote resolvconf
. É uma maneira de concentrar todas as informações em /etc/network/interfaces
em 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 no sistema.
dns-search example.net
– Anexe example.net como domínio para consultas de host, criando o FQDN. Opção domain
de /etc/resolv.conf
wpa-ssid
– Sem fio: Defina um SSID WPA sem fio.
mtu
– tamanho MTU . 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 codificado em hexadecimal para o seu SSID.
ip_rp_filter 1
– Filtro de caminho reverso ativado. Ú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 seu lan (192.168.1.1/24
) e tem um servidor dlna com uma interface em seu lan (192.168.1.10/24
) e outro interface no dmz para executar tarefas administrativas (172.16.1.1/24
). Durante uma sessão ssh de seu computador para dlna dmz ip, as informações precisam voltar para você, mas ficarão suspensas para sempre porque seu servidor dlna tentará entregar a resposta diretamente por meio de sua interface lan. Com rp_filter habilitado, isso garantirá que a conexão voltará de onde veio. Mais informações aqui .
Algumas dessas opções não são opcionais. O Debian irá avisar você se 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 rede aqui .
Coisas relacionadas :
Links que contêm informações relacionadas a /etc/network/interfaces
arquivo de configuração de rede:
- HOWTO: Segurança sem fio – WPA1, WPA2, LEAP, etc .
- Como posso ligar duas interfaces com ip / iproute2? .
- O que é um evento hotplug da interface?
Comentários
- Obrigado, isso ajuda muito.
inet
tem algo a ver com " internet "?Li em algum lugar que significa apenas " IPv4 " einet6
significa " IPv6 ", mas o termo " inet " é realmente confuso quando você vê e confunde com a abreviação de " internet ". E os nomes que usamos, comoeth0
, estão definidos ou posso escolhê-los sozinho? Se eu tiver mais de um adaptador LAN, como posso saber qualeth
pertence a qual adaptador LAN? - Ambos. Juntos, eles definem o método de aquisição de endereço IP (dhcp, estático, scripts de ppp, sem endereço) e a versão do protocolo IP (
inet
= v4 einet6
= v6). Os nomes das interfaces dependem muito da distribuição que você está usando e da forma comoudev
está configurado. O Debian usaeth*
ewlan*
para interfaces de cabo e sem fio. O Fedora usa o esquema biosdevname, em queem0
é a primeira interface ethernet integrada na placa-mãe ep<slot>p<eth port>
o nome para um nic PCI. Você pode corrigir nomes de rede em/etc/udev/rules.d/70-persistent-net.rules
ou criar um alias eminterfaces
. - Referente a " gateway – o gateway padrão de um servidor. tenha o cuidado de usar apenas um desse cara. " Esse é um por estrofe ou uma interface de gateway entre todas as estrofes?
- Deve haver um gateway entre todas as estrofes, ou, você terá problemas com sua rota padrão. Para trabalhar com multi gateway / multi link, será necessário pensar em iptables + marcação de pacote + regras de ip.
-
allow-hotplug
não espera em segundo plano por " eventos " ligados por cabo nas portas Ethernet, e isso nunca aconteceu. unix.stackexchange.com/a/520633/29483
Resposta
Eu também acrescentaria que:
- interfaces são para serviços ifup / ifdown.
- Quando você usa allow-hotplug, ele não começa com ifup / ifdown, mas você precisa usar flag –allow = hotplug.
Você pode rastrear o que é acontecendo com ifup usando –verbose flag.
Não estou 100% certo disso, mas parece que basicamente quando ifup é chamado, você executará tudo de / etc / network / interfaces com up … se não for declarado de outra forma.
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.
Resposta
Se você precisar adicionar opções ao usar o pacote resolvconf
, 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
manual
significa que ifupdown don ' para fazer nada sobre eles, você tem que fazer manualmente.