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 route add, change, replace

ABREVIAÇÕES: add, a; change, chg; replace, repl

Argumentos

  • to PREFIXO
    to TIPO PREFIX
    (default): o prefixo do destino da rota. Se o TIPO for omitido, o ip assume o tipo unicast. O PREFIXO é um endereço IP ou IPv6, seguido opcionalmente por uma barra e o comprimento do prefixo. Se o comprimento do prefixo não for dado, o ip considera o comprimento total da rota do host. Também existe um PREFIXO especial - default - que é equivalente a IP 0/0 ou IPv6 ::/0.
  • tos TOS
    dsfield TOS
    : a chave do Tipo de Serviço (TOS). Esta chave não possui uma máscara associada e a combinação mais longa é entendida como: primeiro, compare o TOS da rota e do pacote; se não forem iguais, então o pacote ainda pode combinar com uma rota com um TOS zero. O TOS é um número hexadecimal de 8 bits ou um identificador presente no arquivo /etc/iproute2/rt_dsfield.
  • metric NÚMERO
    preference NÚMERO
    : o valor preferencial da rota. NÚMERO é qualquer número de 32 bits.
  • table IDTABELA: a tabela à qual a rota deve ser adicionada. IDTABELA pode ser um número ou uma string do arquivo /etc/iproute2/rt_tables. Se este parâmetro for omitido, o ip assume a tabela principal, exceto para rotas locais, broadcast e nat, que são colocadas na tabela local por default.
  • dev NOME: o nome do dispositivo de saída.
  • via ENDEREÇO: o endereço do roteador do próximo salto. Na verdade, o significado deste campo depende do tipo de rota. Para rotas de unicast normais, é o verdadeiro roteador do próximo salto ou, se for uma rota direta instalada no modo de compatibilidade BSD, pode ser um endereço local da interface. Para rotas NAT, é o primeiro endereço do bloco de destinos do IP traduzido.
  • src ENDEREÇO: o endereço de origem preferido para alcançar os destinos cobertos pelo prefixo da rota.
  • realm IDSETOR: o setor (realm) à qual pertence a rota. IDSETOR pode ser um número ou uma string do arquivo /etc/iproute2/rt_realms.
  • mtu MTU
    mtu lock MTU
    : a MTU juntamente com o caminho para o destino. Se o modificador lock não for usado, a MTU pode ser atualizada pelo kernel devido ao Path MTU Discovery. Se o modificador lock for usado, não será feita a tentativa de descobrir a MTU do caminho, todos os pacotes serão enviados sem o bit DF no IPv4 ou fragmentados na MTU no IPv6.
  • window NÚMERO: a janela (window) máxima para que o TCP informe estes destinos, medida em bytes. Ela limita o máximo de disparos de dados que nossos peers TCP podem nos enviar.
  • rtt NÚMERO: a estimativa inicial do RTT (Round Trip Time).
  • rttvar NÚMERO: (apenas 2.3.15+) a estimativa inicial da variância do RTT.
  • ssthresh NÚMEROM: (apenas 2.3.15+) uma estimativa para o limiar da partida lenta inicial.
  • cwnd NÚMERO: (apenas 2.3.15+) o limitador (clamp) para a janela de congestinamento. É ignorado se a flag lock não é usada.
  • advmss NÚMERO: (apenas 2.3.15+) o MSS (Maximal Segment Size- Tamanho Máximo do Segmento) informado a estes destinos quando forem estabelecidas conexões TCP. Se for omitido, o Linux usa um valor default calculado a partir da MTU do dispositivo do primeiro salto.
    info Se o caminho para este destino for assimétrico, esta estimativa pode estar errada.
  • reordering NÚMERO: (apenas 2.3.15+) reordenação máxima no caminho para este destino. Se for omitido, o Linux usa o valor selecionado com a variável sysctl de net/ipv4/tcp_reordering.
  • nexthop PRÓXIMOSALTO: o próximo salto de uma rota de múltiplos caminhos. PRÓXIMOSALTO é um valor complexo com sintaxe própria, semelhante à das listas de argumentos do nível mais alto (top level):
    • via ENDEREÇO: é o roteador do próximo salto.
    • dev NOME: é o dispositivo de saída.
    • weight NÚMERO: é um peso para este elemento de uma rota de caminhos múltiplos que reflete sua largura de banda ou qualidade.
  • scope SCOPE_VAL: o escopo dos destinos cobertos pelo prefixo da rota. SCOPE_VAL pode ser um número ou uma string do arquivo /etc/iproute2/rt_scopes. Se este parâmetro for omitido, o ip assume scope global para todos as rotas unicast com gateway, scope link para unicast direto e broadcast routes e scope host para rotas locais.
  • protocol RTPROTO: o identificador do protocolo de roteamento desta rota. RTPROTO pode ser um número ou uma string do arquivo /etc/iproute2/rt_protos. Se a ID do protocolo de roteamento for omitida, o ip assume protocol boot (isto é, assume que a rota doi adicionada por alguém que não sabe o que está fazendo). Vários valores de protocolo possuem uma interpretação fixa, ou seja:
    • redirect: a rota foi instalada devido ao um redirecionamento ICMP.
    • kernel: a rota foi instalada pelo kernel durante uma autoconfiguração.
    • boot: a rota foi instalada durante a sequência de bootup. Se um daemon de rotemaneto for iniciado, ele eliminará todas elas.
    • static: a rota foi instalada pelo administrador para se sobrepor ao roteamento dinâmico. O daemon de roteamento vai respeitar todas elas e, provavelmente, até as transmita para seus peers.
    • ra: a rota foi instalada pelo protocolo Router Discovery. O restante dos valores não são reservados e o administrador pode designar (ou não) tags de protocolo. No mínimo, os daemons de roteamento deveriam designar alguns valores de protocolo únicos, por exemplo, da mesma forma como estão designados em rtnetlink.h ou na base de dados rt_protos.
  • onlink: simular que o próximo salto está diretamente atrelado a este link, mesmo que não combine com qualquer prefixo de interface.
  • equalize: permitir randomização pacote a pacote em rotas de múltiplos caminhos. Sem este modificador, a rota ficará pendurada num próximo salto selecionado e um fracionamento de carga (load splitting) só ocorrerá por fluxo. (equalize só funciona se o kernel estiver com o patch adequado)

info Existem mais comando: prepend faz o mesmo que o clássico route add, isto é, adiciona uma rota mesmo se já existir outra para o mesmo destino. Seu oposto é append, que adiciona a rota no fim da lista. Estes comandos devem ser evitados.

info Mais notícias tristes: o IPv6 só entende o comando append. Todos os outros são transformados em comandos append. Isto certamente deve mudar no futuro.

Exemplos

Adicionar uma rota simples para a rede 10.0.0/24 via gateway 193.233.7.65

  ip route add 10.0.0/24 via 193.233.7.65

Alterá-la para uma rota direta via dispositivo dummy

  ip ro chg 10.0.0/24 dev dummy

Adicionar uma rota multi-caminho default fracionando a carga entre ppp0 e ppp1

  ip route add default scope global nexthop dev ppp0 nexthop dev ppp1

Observe o valor do escopo. Ele não é necessário, mas informa o kernel que esta rota não é direta,
sai pelo gateway. Na verdade, se você souber os endereços de pontos remotos seria melhor usar
o parâmetro via.

Avisar que o endereço 192.203.80.144 não é real, mas deve ser traduzido para
193.233.7.83 antes do envio

  ip route add nat 192.203.80.144 via 193.233.7.83

Informações adicionais