Guia de comandos: iproute2
Esse post vai ser para ajudar a galera de RD2 do curso de FORTIC do ISTCC-P.
Os sistemas Linux-based GNU systems (apelidados de GNU/Linux, para simplificar – e erroneamente chamados de Linux) utilizam as ferramentas ifconfig e route do pacote tcpip para configurar recursos de IP.
No entanto existe outro pacote, chamado iproute2, que traz os mesmos recursos de forma bem mais flexível e inteligível, além de ter um uso similar ao do IOS (não idêntico!).
Esse pacote traz as seguintes ferramentas:
ip(exibe e manipula roteamento, dispositivos, políticas e tunelamento)tc(exibe e manipula configurações de controle de tráfego)ss(exibe conexões ativas)- Outras ferramentas:
arpdnstatrtmonifstatroutefroutelrtacctrtstat
Aqui o foco será
ip, que manipula recursos de IP.O formato desta ferramenta é:
ip [opções] objeto [comando]Não vou entrar em detalhes sobre as
opções (que podem ser omitidas); para tais detalhes, veja o manual. Então vamos ao objeto!Objetos
Os objetos são:
link– exibe e manipula detalhes sobre a interface;addr– exibe e manipula detalhes sobre o(s) endereço(s) de IP;route– exibe e manipula rotas;rule– regras de política de roteamento;neigh– entrada de cache de ARP;tunnel– tunelamento sobre IP;maddr– exibe e manipula detalhes sobre endereço(s) multicast;mroute– entrada de cache de roteamento multicast;monitor– monitora os objetos;xfrm– esse sinceramente não faço a menor idéia do que faz… Google nele!
Um comando muito interessante é
help. Por exemplo, para listar todas as opções da ferramenta:ip helpPara listas as opções do objeto
link:ip link helpPara listas as opções do comando
state do objeto xfrm (sei lá o que isso faz):ip xfrm state helpVejam que é equivalmente ao
? do IOS.Este artigo se limitará aos objetos
link, addr e route (apesar de o objeto tunnel ser extremamente interessante, mas deixa pra próxima).Objeto link
Este objeto manipula atributos da interface. Para exibir os atributos da interface
eth0:ip link show eth0Caso a interface esteja caída, para levantar a interface:
ip link set eth0 upE para derrubá-la:
ip link set eth0 downHá diversos atributos nas interfaces, mas os mais interessantes são:
allmulticast– diz se a interface receberá ou não a pacotes endereçados a endereços de multicast;promisc– ativa ou desativa o modo promíscuo.
Por exemplo, para habilitar o recebimento de multicast e ativar o modo promíscuo (necessário para sniffar uma rede com Ethereal):
ip set eth0 almulticast on promisc onObjeto addr
Este objeto manipula os endereços IP associados a uma interface lógica. Os comandos mais importantes são:
show– exibe os endereços associados a uma interface;add– associa um novo endereço a uma interface, se já houver um endereço associado, o novo endereço será associado como secundário (equivalente asecondaryno IOS);del– remove um endereço associado de uma interface.
Todos os comandos devem ser seguidos da opção
dev, que informa a interface.Por exemplo, para exibir todos os endereços associados à interface
eth0:ip addr show dev eth0Para adicionar o endereço 10.2.3.4, máscara 255.0.0.0, à interface:
ip addr add 10.2.3.4/8 dev eth0Para remover esse endereço:
ip addr del 10.2.3.4/8 dev eth0Observação: o objeto
addr tem dificuldade em calcular o endereço de broadcast de subclasses, então é preciso informá-lo:ip addr add 192.198.11.17/30 broadcast 192.168.11.19 dev eth0Objeto route
Este objeto manipula as rotas.
Não é preciso criar rotas para as redes dos endereços associados às interfaces, pois o objeto
addr já faz isso automaticamente!Os comandos mais importantes são:
list(abreviação:ls) – lista as rotas configuradas;add– adiciona uma rota;del– remove uma rota.
Vamos aos exemplos…
Para listar todas as rotas:
ip route lsPara listar todas as rotas que saem pela interface
eth0:ip route ls dev eth0Para adicionar uma rota para a rede 10.0.0.0/8 pelo gateway 192.168.12.2 (precisar estar na mesma rede de um dos endereços da interface):
ip route add 10.0.0.0/8 via 192.168.12.2 dev eth0Para remover a rota:
ip route del 10.0.0.0/8Agora rota padrão (0.0.0.0/0.0.0.0)!
Para configurar o default gateway como 10.3.0.254:
ip route add default via 10.3.0.254 dev eth0E para remover a rota padrão:
ip route del defaultConclusão
Acho que é isso tudo! =D
Vou pensar em escrever um artigo sobre tunelamento (manipulado pelo objeto
tunnel), mas esse é mais complexo (e divertido).[]'s
Rodrigo Cacilhas
CC-BY: Os textos deste blog podem ser reporduzidos contanto que sejam informados autor e origem