Quando são necessários rede, transmissão e gateway para configurar uma interface de rede manualmente?

10

https://wiki.debian.org/NetworkConfiguration#Bridging_without_Switching

O URL acima diz o seguinte. Mas não está claro para mim quando são opcionais e quando não são. Você poderia me fornecer um link para referências que descrevem isso? Obrigado.

Se você o estiver configurando manualmente, algo assim definirá o gateway padrão (rede, broadcast e gateway são opcionais):

auto eth0
iface eth0 inet static
    address 192.0.2.7
    netmask 255.255.255.0
    gateway 192.0.2.254
user1424739
fonte
2
Nas versões recentes do Ubuntu, que usam dnsmasq, você também precisa declarar servidores de nomes DNS.
chili555
@ chili555, que funciona se você adicionar o pacote resolvconf. Leia minha resposta abaixo desta. ;-) Você está bem com a resposta, user1424739?
Anders
Acredito nas versões recentes do Ubuntu, que o resolvconf é instalado por padrão; não??
precisa saber é o seguinte
1
Você poderia dedicar algum tempo para analisar a resposta do @Anders. Consulte O que devo fazer quando alguém responder à minha pergunta?
precisa saber é o seguinte
@ chili555 Sim, é. Mas eu só queria esclarecer a conexão entre esse pacote e o servidor DNS em / e / n / interfaces. Desculpe se não estava claro.
21714 Anders

Respostas:

25

Como configurar o endereço IP estático e por que

Aviso prévio! Não falo sobre outras maneiras de configurar a rede, como no NetworkManager. Qualquer dispositivo mencionado em /etc/network/interfacesnão é tocado pelo NM

Para poder se comunicar através de uma rede IP (IPv4 e IPv6), o computador deve saber qual endereço IP possui. Portanto, addressé necessária uma diretiva para informar isso ao computador.

Quando o computador deseja conversar com outro computador, ele usa o endereço IP dos outros computadores para verificar se o computador está na mesma rede, LAN. Nesse caso, o computador pode se comunicar diretamente com o outro computador.

Então, como o computador sabe quando está se comunicando com um computador na mesma LAN? Usando as redes netmask, onde a parte líquida do endereço é definida como uns e a parte do host é definida como zeros. Portanto, fazendo uma operação AND bit a bit entre cada bit em um endereço IP e a máscara de rede, obteremos o endereço de rede do endereço IP, onde a parte do host é zero. Portanto, se fizermos isso no endereço IP dos computadores e nos endereços IP dos outros computadores, obteremos cada endereço de rede. Se eles são iguais, significa que os computadores estão na mesma rede e podem conversar diretamente entre si.

Se os endereços de rede não forem iguais, eles estarão em uma LAN diferente e não poderão se comunicar diretamente entre si. Em seguida, o computador precisa usar um computador especial conectado a outras LANs. Esse computador é um roteador (que também pode ter um firewall e NAT). Portanto, quando o computador deseja conversar com outros computadores fora da LAN, ele precisa saber o endereço desse computador que está definido com a gatewaydiretiva. Se outra interface já tiver definido um gatewayvalor, você não deve e não deve definir outra diretiva de gateway para essa interface. A gatewaydiretiva define a rota padrão para o computador; portanto, você precisa de apenas um para IPv4 e apenas um para IPv6 em cada máquina. Este endereço de rede pode ser definido manualmente com a networkdiretiva.

Às vezes, o computador deseja se comunicar com todos os computadores da LAN e usa o endereço de broadcast. Este endereço é ouvido por todos os computadores na mesma LAN. É basicamente o mesmo que o endereço de rede, exceto que a parte do host não é toda zeros e sim todos. Este endereço de broadcast é definido pela diretiva broadcastna interface.

O networkendereço da interface só precisa ser calculado uma vez e geralmente é calculado corretamente a partir disso addresse das netmaskdiretivas. Mesmo com o broadcastendereço. Então você não precisa configurá-los. De fato, se você definir um ou ambos os valores errados, poderá perder a conexão com a Internet e outros computadores na sua LAN. Portanto, a menos que você tenha alguns valores estranhos, deixe o computador calculá-los para você.

Portanto, uma configuração estática mínima, ou estrofe, /etc/network/interfacespode ser assim para o dispositivo eth1em uma rede privada:

iface eth1 static inet
     address   192.168.44.10
     netmask   255.255.255.0
     gateway   192.168.44.1

Como a resolução de nomes funciona e como está vinculada ao DNS.

Os nomes de domínio são usados ​​para converter entre fácil para humanos ler e lembrar nomes de domínio e os computadores não tão fáceis de lembrar do endereço IP mencionado acima. Isso é chamado de resolução de nomes .

Isso geralmente é controlado pelo arquivo /etc/nsswitc.confe pela linha que começa com hosts:. Se você solicitar que o computador se conecte ao computador my.example.com, ele analisará esse arquivo e tentará resolver o endereço IP a partir do nome my.example.com. Na verdade, esse arquivo não responde à pergunta "qual IP meu my.example.com possui", apenas informa ao computador onde poderia encontrar a resposta.
Geralmente, ele tenta o /etc/hostsarquivo primeiro para nomes locais estáticos, depois avahi mDNSpara nomes locais dinâmicos e, em seguida, um resovler de nome de domínio DNS para obter um nome da Internet.

Se algumas delas demorarem a responder às suas perguntas, pode parecer que o computador ficou parado por um tempo. Portanto, se você conseguir isso, verifique primeiro a resolução de nomes.

Para adicionar endereços estáticos, basta adicioná-lo ao seu /etc/hostsarquivo. A propósito, se você possui um endereço estático, provavelmente deve alterar o endereço IP da sua máquina para o seu endereço IP e não o padrão 127.0.1.1(que está na rede localnet onde localhost está 127.0.0.1). Isso só funciona bem para clientes e não para servidores.

Os endereços dinâmicos que você obtém das máquinas Linux com o avahipacote e das máquinas Apple (e MS Windows com iTunes?). Isso é tratado pela "mágica" e você não precisará consertar isso.

O DNS é usado para acessar a Internet e você precisa informar ao computador onde estão esses servidores DNS, qual endereço IP usar e qual é o domínio DNS padrão.

Isso é feito no arquivo /etc/resolv.confe pode ser configurado estaticamente. Isso não funciona tão bem em nosso mundo não tão estático, então geralmente você tem um pacote chamado resolvconfinstalado. Isso permite que você defina essas configurações no /e/n/interfacesarquivo.

Portanto, se assumirmos que queremos adicionar um dos servidores DNS do Google 8.8.8.8, e o servidor DNS do seu ISP 192.0.2.1e o domínio do my.example.orgdomínio como padrão, basta editar o /etc/network/interfacesarquivo e adicionar essas duas linhas na estrofe do dispositivo estático.

    dns-nameservers   8.8.8.8  192.0.2.10
    dns-search        my.example.org

Você também pode perceber que o resolvedor de DNS usará apenas um máximo de três servidores DNS. Por favor, procure isso na página mande resolv.conf. Como habitualmente, você pode usar o comando man nsswitch.conf, man resolv.confe man resolvconfpara mais informações.

Observe também que eu uso o domínio exemplo.com e exemplo.org e a rede IP 192.0.2.0/24 para o servidor DNS de exemplo do ISP. Estes são explicitamente definidos para serem usados ​​em exemplos. Consulte http://example.com/ ou http://tools.ietf.org/html/rfc2606 e rfc5735

Como você verifica se funciona?
Você pode fazer isso de várias maneiras, mas eu costumo usar

getent hosts my.test.com

para testar toda a instalação quanto à resolução de nomes. Se eu apenas quiser verificar se o DNS funciona, use um destes comandos:

host my.test.com
dig my.test.com

Mas lembre-se de que eles apenas testam o DNS através das configurações do /etc/resolv.confarquivo, e não da /etc/nsswitch.confparte. Pode ser o que você quer ou não.

Anders
fonte
1
Boa explicação, obrigado. Como o chili555 menciona a importância do DNS para resolver nomes de domínio, será bom se você adicionar um ponto sobre isso. (Quanto às conexões com a Internet ou WAN, é necessário configurar tudo)
user.dz 15/14
Algo assim?
Anders
1
Você é bem vindo. :-) Gostaria de saber se é uma resposta boa o suficiente para user1424739
Anders
De qualquer forma, /etc/internet/interfacesestão prestes a ser obsoletos pelo Ubuntu, em favor de seus próprios NetPlan, veja /etc/netplan/*.yamle NM(que pode ser modificado com nm-tools).
Anders