Como configurar o endereço IP estático e por que
Aviso! Eu não falo sobre outras formas de configurar rede como com o NetworkManager. Qualquer dispositivo mencionado em /etc/network/interfaces
não é tocado por NM
Para poder se comunicar por meio de uma rede IP (IPv4 e IPv6), o computador deve saber qual endereço IP possui. Portanto, a diretiva address
é necessária para informar ao computador isso.
Quando o computador quer falar com outro computador, ele usa o endereço IP desse outro computador para verificar se esse computador está na mesma rede, a 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 ones e a parte do host é definida como zeros. Então, 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. Então, se fizermos isso no endereço IP dos computadores e no endereço IP dos outros computadores, obteremos cada endereço de rede. Se eles forem iguais, isso significa que os computadores estão na mesma rede e podem falar diretamente uns com os outros.
Se os endereços de rede não forem iguais, eles estão em LANs diferentes e não podem 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 diretiva gateway
. Se outra interface já definiu um valor gateway
, você não deve e não deve definir outra diretiva de gateway para essa interface. A diretiva gateway
define a rota padrão para o computador, portanto, você precisa apenas de uma para IPv4 e apenas uma para IPv6 em cada máquina.
Esse endereço de rede pode ser definido manualmente com a diretiva network
.
Em algum momento, o computador deseja se comunicar com todos os computadores da LAN e o endereço de broadcast. Este endereço é ouvido por todos os computadores na mesma LAN. Isso é basicamente o mesmo que o endereço de rede, exceto que a parte do host não é todos os zeros e todos os outros. Este endereço de broadcast é definido pela diretiva broadcast
na interface.
O endereço network
da interface só precisa ser calculado uma vez e normalmente é calculado corretamente a partir das diretivas address
e netmask
. O mesmo com o endereço broadcast
. Então você não precisa defini-los. Na verdade, se você definir um ou ambos para os valores errados, poderá perder a conexão com a Internet e outros computadores em sua LAN. Então, a menos que você tenha alguns valores estranhos, deixe o computador calculá-los para você.
Portanto, um mínimo de configurações estáticas, ou stanza, em /etc/network/interfaces
poderia ser assim para o dispositivo eth1
em uma rede privada:
iface eth1 static inet
address 192.168.44.10
netmask 255.255.255.0
gateway 192.168.44.1
Como funciona a resolução de nomes e como ela 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.conf
e pela linha que começa com hosts:
. Se você solicitar que o computador se conecte ao computador my.example.com
, ele examinará esse arquivo e tentará resolver o endereço IP com o nome my.example.com
. Este arquivo realmente não responde à pergunta "qual IP do meu.exemplo.com tem", ele apenas informa ao computador onde ele pode encontrar a resposta.
Geralmente, ele tenta primeiro o arquivo /etc/hosts
para nomes locais estáticos, depois avahi mDNS
para nomes locais dinâmicos e, em seguida, um resovler de nome de domínio DNS para obter um nome da Internet.
Se alguns deles demorarem a responder às suas perguntas, pode parecer que o computador ficou preso por algum tempo. Então, se você conseguir isso, verifique o nome resolvendo primeiro.
Portanto, adicionando endereços estáticos, basta adicioná-los ao seu arquivo /etc/hosts
. By the way, se você tem um endereço estático, você provavelmente deve mudar o endereço IP lá para a sua máquina para o seu endereço IP e não o padrão 127.0.1.1
(que está na rede local onde localhost são, 127.0.0.1
). Isso só funciona bem para clientes e não para servidores.
Os endereços dinâmicos que você obtém de máquinas Linux com o pacote avahi
e de máquinas Apple (e o MS Windows com o iTunes?). Isso é tratado por "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 os servidores DNS que você deseja usar, o endereço IP a ser usado e o domínio DNS padrão.
Isso é feito no arquivo /etc/resolv.conf
e pode ser configurado estaticamente. Isso não funciona tão bem em nosso mundo não tão estático, então normalmente você tem um pacote chamado resolvconf
installed. Isso permite que você defina essas configurações no arquivo /e/n/interfaces
.
Portanto, se assumirmos que queremos adicionar um dos servidores DNS do Google, 8.8.8.8
, e o servidor DNS do seu provedor, 192.0.2.1
, e seu domínio my.example.org
domínio como padrão, basta editar o arquivo /etc/network/interfaces
e adicione estas duas linhas na estrofe para o 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á no máximo três servidores DNS. Por favor, procure isso na man
-page de resolv.conf
. Como normalmente, você pode usar o comando man nsswitch.conf
, man resolv.conf
e man resolvconf
para obter mais informações.
Observe também que uso o domínio example.com e example.org e a rede IP 192.0.2.0/24 para o servidor DNS de exemplo do ISP. Estes são definidos explicitamente para serem usados nos exemplos. Consulte o link ou o link e o rfc5735
Como então você verifica se funciona?
Você pode fazer isso de várias maneiras, mas eu geralmente uso
getent hosts my.test.com
para testar toda a configuração para resolução de nomes. Se eu quiser apenas verificar se o DNS funciona, eu uso um desses comandos:
host my.test.com
dig my.test.com
Mas lembre-se de que os únicos teste DNS através das configurações no arquivo /etc/resolv.conf
, e não da parte /etc/nsswitch.conf
. Pode ser o que você quer ou não.