Informática Numaboa - Linux
Roteamento em redes Linux
Qui 12 Abr 2007 22:39 |
- Detalhes
- Categoria: Como fazer configurações
- Atualização: Domingo, 12 Abril 2009 16:58
- Autor: vovó Vicki
- Acessos: 17241
A maioria das distribuições Linux usam os veneráveis comandos arp, ifconfig e route. Apesar de excelentes, estas ferramentas apresentam alguns comportamentos inesperados no Linux 2.2 (ou superior) - portanto, apesar de soar meio herético, esqueça-as.
A partir da versão 2.2 o Linux possui um novo subsistema de rede totalmente redesenhado. Seu novo código de roteamento, filtragem e classificação possui muito mais recursos que os oferecidos por muitos roteadores dedicados, firewalls e modeladores de tráfego disponíveis no mercado. Difícil de acreditar? Então conheça o novo iproute2 e tire a cisma
Aviso aos navegantes
Existem alguns pré-requisitos para poder acompanhar este tutorial. Os mais importantes são: você precisa ter uma noção clara do que é uma rede Linux, de como funciona o sistema de comunicação TCP/IP e do que são endereços de rede. Tudo isto está em outro tutorial - Redes Linux.
O iproute2
O Linux possui um sofisticado sistema para provisionar largura de banda chamado Traffic Control. Este sistema permite vários métodos de classificação, priorização, compartilhamento e limitação tanto do tráfego de entrada, quanto do de saída. Para testar as capacidades do iproute2, certifique-se de que o pacote 'iproute' está instalado usando o comando ip descrito a seguir. Se a máquina responder, está tudo em riba; senão, baixe a última versão do iproute e instale-a antes de prosseguir.
Explorando a configuração do seu iproute
Curioso para saber quais são os links da sua máquina? Use o comando ip link list do iproute:
$ ip link list 1: lo:mtu 3924 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: mtu 1400 qdisc pfifo_fast qlen 100 link/ether 48:54:e8:2a:47:16 brd ff:ff:ff:ff:ff:ff 3: eth1: mtu 1500 qdisc pfifo_fast qlen 100 link/ether 00:e0:4c:39:24:78 brd ff:ff:ff:ff:ff:ff 3764: ppp0: mtu 1492 qdisc pfifo_fast qlen 10 link/ppp
Se a sua máquina respondeu a este comando, sua máquina está com o iproute2 instalado e funcionando. O resultado deve ser algo parecido com o mostrado acima porque depende do número de placas Ethernet e do tipo dos links instalados. As principais informações fornecidas são:
O primeiro link mostrado é o da interface loopback. O tamanho MTU (Maximum Transfer Unit) é de 3924 octetos e foi configurado para não entrar na fila (noqueue) - o que faz sentido, já que a interface loopback é "imaginária". A seguir são listadas duas placas Ethernet, suas respectivas MTUs e seus endereços MAC. Finalmente aparece a interface ppp0.
Observe a ausência de endereços IP. O iproute desvincula o conceito de "links" e "endereços IP". O motivo é que, com o IP aliasing, a entidade endereço IP se tornou secundária. Mas isto não quer dizer que não seja possível descobrir estes endereços - basta listá-los com a ajuda do comando ip address show:
$ ip address show 1: lo:mtu 3924 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 brd 127.255.255.255 scope host lo 2: eth0: mtu 1400 qdisc pfifo_fast qlen 100 link/ether 48:54:e8:2a:47:16 brd ff:ff:ff:ff:ff:ff inet 10.0.0.1/8 brd 10.255.255.255 scope global eth0 3: eth1: mtu 1500 qdisc pfifo_fast qlen 100 link/ether 00:e0:4c:39:24:78 brd ff:ff:ff:ff:ff:ff 3764: ppp0: mtu 1492 qdisc pfifo_fast qlen 10 link/ppp inet 212.64.94.251 peer 212.64.94.1/32 scope global ppp0
Taí! Esta listagem mostra todos os endereços relacionados às placas. Examinando com mais cuidado a interface eth0 verificamos que ela está vinculada ao endereço inet 10.0.0.1/8. A designação inet refere-se à Internet (IPv4) e o "/8" é a máscara que determina o endereço da rede. A máscara também é indicada por 10.255.255.255, informando que esta rede comporta endereços IP de 10.0.0.0 até 10.255.255.255.
Com ppp0 a coisa se repete. Seu endereço é 212.64.94.251, sem máscara de sub-rede. Isto significa de que se trata de uma conexão ponto-a-ponto e que cada endereço, com exceção de 212.64.94.251, é remoto. Além disto, este registro indica que do outro lado do link há também apenas um endereço, o 212.64.94.1 - a máscara "/32" exclui sub-redes.
Só mais um comentário: "qdisk" significa Queueing Discipline (Disciplina de Fila). Este assunto será visto adiante.
De acordo com os exemplos, agora sabemos como encontrar endereços 10.x.x.x e que a máquina pode alcançar o endereço 212.64.94.1. Mas como esta máquina alcança a Internet? É através da conexão ppp0, que desemboca no endereço 212.64.94.1 e, ao que tudo indica, este nó é o responsável pelo trânsito de dados entre a máquina e o mundo exterior. É só dar uma olhada nas rotas...
O comando ip route show do iproute também pode revelar quais as rotas existentes:
$ ip route show 212.64.94.1 dev ppp0 proto kernel scope link src 212.64.94.251 10.0.0.0/8 dev eth0 proto kernel scope link src 10.0.0.1 127.0.0.0/8 dev lo scope link default via 212.64.94.1 dev ppp0
O resultado é auto-explicativo. As primeiras 3 linhas apenas confirmam o que o comando ip address show já mostrou; a última informa que podemos cair no mundo através do endereço 212.64.94.1, o gateway default. Um gateway é identificado pela palavra via e é para onde devem ser enviados e por onde entram os pacotes de dados.
Apenas para comparar, veja o que o "velho e bom" comando route tem para oferecer:
$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 212.64.94.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 212.64.94.1 0.0.0.0 UG 0 0 0 ppp0
- Anterior
- Próximo >>