As rotas necessárias para entregar os pacotes ao seu destino final são configuradas na interface ou no router. Se o computador tiver de enviar um pacote para a rede, consulta a tabela de encaminhamento, que lista os endereços IP de destino e os endereços das interfaces e routers na rede doméstica que podem enviar o pacote para o endereço correto. Se nenhuma rota for especificada para o destino, o chamado gateway padrão ou rota padrão é usado primeiro. O mesmo padrão é observado exatamente no router. O dispositivo examina o endereço IP de destino, verifica-o na sua tabela de encaminhamento e envia-o em seguida. De seguida, vamos ver como configurar rotas específicas e criar novas rotas utilizando um exemplo.
Antes de começar a alterar qualquer coisa, é preciso entender quais regras já estão em uso. Para isso, o sistema operativo Linux disponibiliza vários comandos. Para fazer isso, usamos o comando especial route
:
$ route
Esta é a aparência da tabela de roteamento do Linux. Ela fornece informações simples, mas que nem sempre são suficientes para entender o assunto. Para obter informações mais detalhadas, é necessário usar o comando routel
:
$ routel
Aqui você pode ver o endereço IP (destino), endereço IP do gateway, IP de origem, protocolo e até mesmo a interface de rede. Mas há uma maneira mais conveniente de ver a tabela de roteamento do Linux usando o comando IP:
$ ip route
Vemos um resultado que é similar à saída do comando anterior. Como a saída não está na forma mais conveniente, você pode usar ip route add
ou ip route del
como um argumento para ip route
add
ou ip route del
. Acredite em mim, isso é muito conveniente. Desta forma, você verá 192.168.1.1
como o gateway padrão em todos os lugares. A seguir, vamos falar sobre o que significa a saída deste comando:
default
- opção padrão. Este deve ser o endereço ip de destino ou a máscara de sub-rede;via 192.168.1.1.1
- indica através de qual gateway podemos alcançar este alvo, para nós é 192.168.1.1;
dev enp2s0
- a interface de rede através da qual este gateway será acessível;proto static
significa que a rota foi definida pelo administrador, kernel significa que foi definida pelo kernel;metric
- esta é a prioridade da rota, quanto mais baixo o valor, maior a prioridade.A seguir, vamos ver como as rotas do Linux são configuradas.
O usuário ainda tem a possibilidade de configurar a tabela de rotas usando o comando ip
. Por exemplo, para alterar a rota padrão basta executar:
$ ip route add default via 192.168.1.1
Dessa forma, é possível adicionar uma rota para qualquer endereço IP, como 243.143.5.25
:
$ sudo ip route add 243.143.5.25 via 192.168.1.1
Assim, especificamos o endereço IP de destino e, em seguida, um gateway na rede local através do qual chegaremos a esse endereço. O único problema é que essas rotas ficam activas até à primeira reinicialização do computador. Após a reinicialização, elas são automaticamente excluídas. Para corrigir esta deficiência, as rotas devem ser adicionadas ao arquivo de configuração.
Por exemplo, os sistemas da família Red Hat possuem arquivos de configuração /etc/sysconfig/network-scripts/route-ethX
. Cada arquivo pode descrever múltiplas rotas, por exemplo:
GATEWAY=10
.10.0.0.1MÁSCARA DE REDE=255
.0.0.0.0.0IPADDR=10
.10.0.0.22
Este ficheiro de configuração usa gateway, que é o gateway para a interface, netmask
é a máscara de rede, e ipaddr
é o endereço ip da interface. Em Debian e distribuições baseadas, pode configurar rotas no ficheiro /etc/network/interfaces
. Aqui o comando route é adicionado à secção iface
. Por exemplo:
up route add -net 10.10.0.0 netmask 255.0.0.0 gw 10.10.0.1
Com o iface -net
especificamos a rede de destino, netmask
é a máscara de rede e gw
é o gateway. Não há nada de complicado nisto. Agora as rotas adicionadas permanecerão mesmo após uma reinicialização.
Assim, vimos como o roteamento funciona no Linux, como o roteamento é configurado no Linux e por que ele é necessário.