Quero conversar um pouco sobre roteamento de endereços IP no Linux. Resolvi falar sobre assunto, pois já tive alguns "probleminhas" de configuração.
Vamos ao que interessa.
Introdução:
Internet é um conjunto de redes interligados através de roteadores. Um roteador é um dispositivo que encaminha os pacotes de dados entre essas redes.
Há uma hierarquia entre os roteadores. Uma classe de roteadores são utilizados apenas utilizados para trocas de dados entre as redes controlados pela mesma autoridade administrativa. A segunda classe, os roteadores fazem a comunicação entre as autoridades administrativas.
Roteamento:
Roteamento é um mecanismo através do qual duas máquinas se "comunicam" determinando um caminho entre elas. O roteamento pode ser interno ou externo.
O roteamento interno o roteador é usado para trocar informações dentro de único Sistema Autônomo. No caso do roteamento externo o roteador troca os dados entre os sistemas autônomos.
Há vários protocolos entre eles estão os RIP, IGRP, OSPF entre outros, porém não vou falar sobre eles agora.
Como definir rotas:
Como disse no início do artigo algumas vezes tive problema de acessar a internet devido não ter configurado a rota para meu roteador. Para resolver isso basta usar alguns comandos que são comuns a todas as distribuições linux, mas vou alertar que eu uso o Debian.
Comando Ping:
Quando utilizar o seu navegador preferido e não acessar o site verifique se você consegue acessar a própria placa de rede.
# ping 192.168.1.2
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
From 192.168.1.2 icmp_seq=1 Destination Host Unreachable
From 192.168.1.2 icmp_seq=2 Destination Host Unreachable
From 192.168.1.2 icmp_seq=3 Destination Host Unreachable
From 192.168.1.2 icmp_seq=4 Destination Host Unreachable
From 192.168.1.2 icmp_seq=5 Destination Host Unreachable
From 192.168.1.2 icmp_seq=6 Destination Host Unreachable
Esse é o resultado quando não tem acesso a placa de rede (192.168.1.2), o mesmo serve para testar o roteador (192.168.1.1).
Devemos fazer um segundo teste usando o comando ifconfig:
Comando ifconfig:
# ifconfig
eth0 Link encap:Ethernet Endereço de HW 00:27:0e:0f:13:b5
UP BROADCASTMULTICAST MTU:1500 Métrica:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
IRQ:20 Memória:f3300000-f3320000
lo Link encap:Loopback Local
inet end.: 127.0.0.1 Masc:255.0.0.0
endereço inet6: ::1/128 Escopo:Máquina
UP LOOPBACKRUNNING MTU:16436 Métrica:1
RX packets:136 errors:0 dropped:0 overruns:0 frame:0
TX packets:136 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:0
RX bytes:10304 (10.0 KiB) TX bytes:10304 (10.0 KiB)
Isso significa que a placa de rede está funcionando. Nesse caso o problema é de rotas. Para resolve isso basta devemos usar o comando Route.
Comando Route:
Para ter certeza que é problema de rota faça o seguinte:
# route -n
Tabela de Roteamento IP do Kernel
Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface
O comando com essa extensão -n vai mostrar a tabela de roteamento. Se não mostrar os endereços é porque a tabela não está configurada. Para isso devemos usar o comando route da seguinte maneira:
Adicionar rede:
# route add -net xxx.xxx.xxx netmask xxx.xxx.xxx dev ethx
add ==> adição
-net ==> rede
netmask ==> máscara de rede
dev ==> placa de rede.
exemplo do comando:
# route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
Adicionar rota padrão:
Usa-se o comando route para adicionar rota padrão que dá acesso ao roteador.
# route add default gw xxx.xxx.xxx
xxx.xxx.xxx ==> endereço do roteador
exemplo do comando:
# route add default gw 192.168.1.1
Depois do comando route:
Depois de ter configurado a tabela de roteamento é bem provável que você não consiga acessar o seu site favorito. Para resolver isso verifique o arquivo resolv.conf, ele deve ter o endereço do servidor de nome (dns) ou do roteador. No caso do Slackware e da familia Debian o arquivo fica no /etc.
# cat /etc/resolv.conf
# Generated by NetworkManager
Se o resultado for esse então adicione o endereço do roteador ou servidor DNS com seu editor de texto favorito:
# nano /etc/resov.conf
nameserver xxx.xxx.xxx
Salve o arquivo.
Conclusão:
No caso do pc ficar desconfigurado depois de ter desligado coloque os comandos no arquivo rc.local.
Na familia Debian fica no /etc, no Slackware fica /etc/rc.d. Verifique onde ficam esses arquivos na sua distribuição.
Espero que com esse artigo consigam resolver o problema rotas.
Um abraço e até mais.
Nenhum comentário:
Postar um comentário