A configuração de uma interface Ethernet é consideravelmente parecida com a de uma interface local de rede, ela necessita somente de alguns parâmetros adicionais, especialmente quando se utilizam subredes.
Na Cervejaria Virtual, dividimos a rede IP, que inicialmente foi uma rede classe B, e após, dentro dessa, criamos subredes classe C. Para que a interface reconheça esta situação, o comando ifconfig deverá ser similar a:
Isto atribui à interface eth0 o endereço IP da máquina maceio, igual a (191.72.1.2). Caso tivéssemos omitido a máscara de rede, o programa ifconfig deduziria que a máscara da classe do IP da rede seria igual a 255.255.0.0. Um rápido teste mostra:
Pode-se ver que o ifconfig automaticamente ajusta o endereço de transmissão (o campo Bcast acima) para o valor usual, igual à parte de endereço de máquina com todos os bits configurados, e a mensagem da unidade de transferência - MTU - (o tamanho máximo de quadros Ethernet que o kernel irá gerar para esta interface) também ajustada para o valor máximo de 1500 bytes. Todos estes valores podem ser alterados através de opções especiais que serão descritas mais tarde.
Muito similar ao exemplo da interface de rede local, pode-se agora instalar uma entrada de roteamento que informe ao kernel sobre a rede que pode ser alcançada através da interface eth0. Para a Cervejaria Virtual, o programa route seria chamado da seguinte forma:
Primeiramente, isto parece um pouco de mágica, pois não fica realmente claro como o programa route detecta qual a rota para a interface. No entanto o truque é muito simples: o kernel testa todas as interfaces que foram configuradas anteriormente e compara o endereço de destino (no caso 191.72.1.0) com o endereço da interface na rede (que atende à lógica booleana de ``e'' bit a bit entre o endereço da interface e o da máscara). A única interface que ele encontra é eth0.
Qual a finalidade da opção -net? Ela é usada neste caso, porque o programa route pode manipular tanto rotas para redes quanto rotas para servidores isolados (como foi visto acima com o localhost). Ao ser dado um endereço na notação do endereço IP, o programa tenta descobrir se o endereço é referente a uma rede ou a uma máquina em especial, analisando a parte do endereço reservado às máquinas. Se a parte do endereço referente à máquina é igual a zeros, o programa route assume que se trata de uma rede, caso contrário o toma como endereço de uma máquina. Porém o programa route pode concluir que host191.72.1.0 seja um endereço de servidor ao invés de um endereço de rede, pois ele não consegue descobrir se subredes estão sendo utilizadas. Portanto, há que explicitar que se trata de uma rede, através da opção -net.
É claro que o comando acima pode ser um pouco mais complexo, e está sujeito a erros de ortografia. Uma forma mais conveniente é usar os nomes de rede definidos no arquivo /etc/networks acima. Isto faz o comando muito mais legível, onde até mesmo o parâmetro -net pode ser omitido, pois agora o programa route sabe que o endereço 191.72.1.0 indica uma rede.
Agora que concluimos os passos básicos da configuração, queremos ter certeza de que a interface Ethernet está bem configurada. Deve se escolher uma máquina da rede Ethernet, por exemplo jpessoa, acessá-la na sua console e digitar-se:
Caso não se veja uma saída parecida com esta, então obviamente algo está errado. Ao se encontrar uma taxa incomum de perda de blocos, isto pode ser um problema de hardware, como uma falha ou um problema físico, etc. Caso não se receba nenhum bloco, deve-se checar a configuração da interface com o programa netstat. A estatística dos blocos mostrada pelo ifconfig informa se algum bloco foi enviado pela interface. Caso se tenha acesso a um servidor remoto, deve-se ir até aquela máquina e checar as estatísticas da interface também, pois deste modo, pode-se determinar exatamente os pacotes que foram perdidos. Além disso, é possível exibir ainda informações do roteamento através do programa route a fim de verificar se ambos os servidores possuem a entrada correta de roteamento. O programa route imprime a tabela de roteamento completa do kernel, quando chamado sem nenhum argumento ( a opção -n apresenta endereços no formato numérico IP ao invés de usar o nome da máquina):
O significado detalhado destes campos é explicado abaixo na seção .
A coluna Flag contém uma lista de sinais para cada interface, onde o U é indicado para interfaces ativas, e o H diz que o endereço de destino é uma máquina. Se o sinal H for configurado para uma rota que se acredite que seja uma rota de rede, há então que se especificar a opção -net com o comando route. Para testar se uma rota definida está sendo utilizada, deve-se verificar se o campo Use, o penúltimo, é incrementado entre duas execuções do programa ping.