Uso básico do iproute2
A base do pacote iproute2 é a ferramenta ip. Ela traz toda a funcionalidade existente nos comandos arp, ifconfig e route. O modo de operação desta ferramenta baseia-se na passagem de comandos com argumentos apropriados para um dos seguintes objetos:- link: interfaces físicas existentes no sistema;
- addr: endereços lógicos atribuídos as interfaces físicas do sistema nas diversas famílias distintas de protocolos de rede, como por exemplo inet (IPv4) e inet6 (IPv6);
- route: tabela de roteamento do sistema;
- maddr: endereços lógicos de multicast existentes no sistema;
- mroute: tabela de roteamento multicast do sistema;
- tunnel: configuração de túneis de protocolo do sistema;
- neigh: tabela ARP do sistema;
- rule: permite definir regras como rejeição de pacotes, uso de NAT e classificar o tráfego em tabelas com tratamento diferenciado para o uso por outros comandos do ip com o uso do argumento table;
- monitor: permite monitoramento dos demais objetos.
A sintaxe básica da ferramenta ip é: ip OBJETO { COMANDO | help }. Onde OBJETO é um dos objetos acima descritos e COMANDO é a ação correspondente em cada objeto, com a respectiva passagem de argumentos. Adicionalmente, pode ser repassada a especificação da família de protocolo sobre a qual se atuará, de acordo com a sintaxe especificada pela chamada da ferramenta ip sem parâmetros.
Uso de iptables
Uma ferramenta que permite a fácil definição de regras de tratamento de pacotes, que acompanha distribuições com o Kernel 2.4 do Linux, é o iptables. Com o uso desta ferramenta definimos regras especiais para entrada, saída e passagem de pacotes entre interfaces, podendo atuar antes ou após as ações referentes ao roteamento.O iptables atua sobre as tabelas presentes no Kernel, que indicam situações de roteamento, de acordo com a situação em que se encontra o pacote, a qual é referida por uma corrente de regras, ou chain. As tabelas são:
- filter: é a tabela padrão, sobre a qual podemos nos referir a três correntes de regras, ou chains: INPUT, pacotes que entram na interface; OUTPUT, pacotes que saem da interface e FORWARD, pacotes que estão sendo roteados de uma interface para outra;
- nat: esta tabela se refere ao uso do recurso de Network Address Translation ou NAT, na qual podemos nos referir aos chains: PREROUTING, pacotes que serão alterados antes de roteamento; OUTPUT, pacotes locais que serão alterados antes do roteamento e POSTROUTING, pacotes que serão alterados após a aplicação das regras de roteamento;
- mangle: usada para alterações especiais no pacote, PREROUTING, para alteração antes do roteamento e OUTPUT, pacotes locais que serão alterados antes do roteamento.
- ACCEPT: aceita o pacote;
- DROP: rejeita o pacote;
- MASQUERADE: atua somente sobre a tabela nat e indica que será efetuado a conversão de endereços ou NAT, conforme indicado no comando.
Sintaxe do comando ip:
ip [ OPÇÕES ] OBJETO [ COMANDO [ ARGUMENTOS ]]
onde OPÇÕES é um conjunto de modificadores opcionais que alteram o comportamento geral do utilitário ip ou modificam sua saída (output). Todas as opções começam com o caracter "-" e podem ser usadas tanto na forma completa, quanto na reduzida. Atualmente estão disponíveis as seguintes opções:
- -V, -Version: imprime a versão do utilitário ip e sai.
- -s, -stats, -statistics: dá mais informação. Se a opção aparecer duas ou mais vezes, o volume de informação aumenta. Como regra, as informações são estatísticas ou alguns valores de tempo.
- -f, -family, seguido por um identificador de família de protocolo (inet, inet6 ou link): força o uso da família de protocolo. Se a opção não estiver presente, a família de protocolo é inferida a partir de outros argumentos. Se o resto da linha de comando não fornecer informação suficiente para inferir a família, o ip volta para o padrão, geralmente inet. "link" é um identificador de família especial indicando que nenhum protocolo de rede está envolvido.
- -4: atalho para -family inet
- -6: atalho para -family inet6
- -0: atalho para -family link
- -o, -oneline: coloca cada registro numa única linha substituindo os avanços de linha pelo caracter "\". Isto é conveniente quando se quer contar os registros com wc ou fazer um grep da saída. O script rtpr transforma a saída em texto legível.
- -r, -resolve: usa o tradutor de nomes do sistema para mostrar nomes DNS ao invés de endereços de host.
Não use esta opção quando informar bugs ou pedir ajuda.
O ip nunca usa o DNS para transformar nomes em endereços.
- link -- dispositivo de rede
- address -- endereço do protocolo (IP ou IPv6) de um dispositivo
- neighbour -- referência no cache ARP ou NDISC
- route -- referência na tabela de roteamento
- rule -- regra na base de dados da política de roteamento
- maddress -- endereço multicast
- mroute -- referência no cache de roteamento multicast
- tunnel -- tunnel sobre IP
COMANDO especifica a ação aplicada ao objeto. O conjunto de ações possíveis depende do tipo do objeto. Como regra, é possível adicionar, deletar e mostrar (ou listar) objetos, mas alguns deles não permitem todas estas operações ou possuem alguns comandos adicionais. O comando help está disponível para todos os objetos. Ele devolve uma lista dos comandos disponíveis e convenções de sintaxe dos argumentos.
Se nenhum comando for especificado, algum comando default é assumido. Geralmente é list ou, se os objetos desta classe não puderem ser listados, help.
ARGUMENTOS é uma lista de argumentos para o comando. Os argumentos dependem do comando e do objeto. Existem dois tipos de argumentos: flags, que são uma palavra chave única, e parâmetros, palavras chave seguidas de um valor. Para facilitar, cada comando tem alguns parâmetros default que podem ser omitidos. Por exemplo, o parâmetro dev é o default para o comando ip link. Desta forma, ip link ls eth0 é equivalente a ip link ls dev eth0. Na descrição dos comandos a seguir, estes parâmetros são destacados com o marcador "(default)".
Praticamente todas as palavras chave podem ser abreviadas com as primeiras letras (ou até mesmo com a primeira letra). Os atalhos são convenientes quando o ip é usado de forma interativa, mas não são recomendados em scripts. Leia mais...