A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Linux

Dicionário do iproute2

Sab

14

Abr

2007


08:35

(19 votos, média 4.37 de 5) 


ip rule

As regras na base de dados da política de roteamento controlam o algaritmo de seleção de rotas.

ABREVIAÇÕES: rule, ru

Objeto

Algoritmos de roteamento clássicos usados na Internet tomam decisões de roteamento baseados apenas no endereço de destino dos pacotes (e, na teoria, mas não na prática, no campo TOS).

Em algumas ocasiões pode ser necessário rotear pacotes de forma diferente, não baseada apenas em endereços de destino, mas em outros campos dos pacotes: endereço de origem, protocolo IP, portas do protocolo de transporte ou até mesmo na carga útil (payload) dos pacotes. Esta tarefa é chamada de "política de roteamento".

Para resolver esta tarefa, a tabela de roteamento convencional baseada no destino, ordenada de acordo com a regra da combinação mais longa, é substituída por uma "base de dados de políticas de roteamento" (RPDB - routing policy database) que escolhe rotas executando algum conjunto de regras. As regras podem ter inúmeras chaves de natureza diferente, motivo pelo qual não podem ser ordenadas de forma natural - a ordenação é imposta pelo administrador. A RPDB do Linux 2.2 é uma lista linear de regras ordenada por valores numéricos de prioridade. A RPDB permite casar alguns campos do pacote:

  • endereço de origem do pacote
  • endereço de destino do pacote
  • TOS
  • interface de chegada(o que é metadado do pacote e não um campo)

Também é possível casar protocolos IP e portas de transporte indiretamente através de ipchains aproveitando sua habilidade de marcar algumas classes de pacotes com fwmark (marca de redespacho). Por este motivo, fwmark foi incluída no conjunto de chaves checadas pelas regras.

Uma regra da política de roteamento consiste de um seletor e de um predicado de ação. A RPDB é percorrida na ordem de prioridade crescente. O seletor de cada regra é aplicado (endereço de origem, endereço de destino, interface de chegada, tos, fwmark) e, se o seletor combinar com o pacote, a ação é realizada. O predicado de ação pode retornar com sucesso. Neste caso, ou ele fornece uma rota ou indica uma falha e a verificação da RPDB é encerrada. Caso contrário, o programa RPDB continua com a próxima regra.

Semanticamente, qual é a ação? A ação natural é selecionar o próximo salto e o dispositivo de saída. Isto é o que o IOS Cisco faz. Vamos chamar isto de "casar & definir". A proposta do Linux 2.2 é mais flexível. A ação inclui verificações em tabelas de roteamento baseadas em destinos e seleção de uma rota destas tabelas de acordo com o clássico algoritmo de combinação mais longa. A proposta de "casar & definir" é o caso mais simples da proposta do Linux. Ela é realizada quando uma tabela de roteamento de segundo nível contém uma única rota default. Lembre-se de que o Linux 2.2 trabalha com múltiplas tabelas administradas pelo comando ip route.

Ao ser iniciado, o kernel configura a RPDB default que possui três regras:

  1. Prioridade 0: Seletor - combina com qualquer coisa; Ação - verifica a tabela de roteamento local (ID 255). A tabela local é uma tabela de roteamento especial que contém rotas de controle de alta prioridade para endereços locais e de broadcast.
    A regra 0 é especial. Não pode ser deletada nem anulada por outra regra.
  2. Prioridade 32766: Seletor: combina com qualquer coisa; Ação - verifica a tabela de roteamento principal (ID 254). A tabela principal é a tabela de roteamento normal que contém todas as rotas não policiadas. Esta regra pode ser deletada e/ou anulada por outras criadas pelo administrador.
  3. Prioridade 32767: Seletor: combina com qualquer coisa; Ação - verifica a tabela de roteamento default (ID 253). A tabela default fica vazia. Ela é reservada para alguns processamentos posteriores se nenhuma das regras default anteriores selecionaram o pacote. Esta regra também pode ser deletada.

Não confunda tabelas de roteamento com regras: regras apontam para tabelas de roteamento, diversas regras podem se referir a uma tabela de roteamento e algumas tabelas de roteamento podem não estar sendo apontadas por qualquer regra. Se o administrador deletar todas as regras que apontem para uma tabela, a tabela não é usada, mas, ainda assim, existe - só deixará de existir quando todas as regras que ela contém também sejam deletadas.

Atributos das regras

Cada entrada RPDB possui atributos adicionais, por exemplo, cada regra possui um ponteiro para alguma tabela de roteamento. Regras NAT e de máscara possuem um atributo para selecionar novos endereços IP para traduzir/mascarar. Além disto, as regras possuem alguns atributos opcionais, que as rotas também possuem - os setores (realm). Estes valores não anulam os contidos em tabelas de roteamento, eles são usados apenas se a rota não tiver selecionado qualquer atributo.

Tipos de regras

O RPDB pode conter regras dos seguintes tipos:

  • unicast: a regra diz para retornar a rota encontrada na tabela de roteamento referenciada pela regra.
  • blackhole: (buraco negro) - a regra diz para descartar silenciosamente o pacote.
  • unreachable: a regra diz para gerar um erro "Network is unreachable" - rede inacessível.
  • prohibit: a regra diz para gerar um erro "Communication is administratively prohibited" - comunicação proibida administrativamente.
  • nat: a regra diz para traduzir endereços de origem de pacotes IP para algum outro valor.

Comandos

add, delete e show (ou list).

Informações adicionais