Comando ip do Linux
Nos sistemas operacionais Linux , o comando ip edita e exibe a configuração de interfaces de rede , roteamento e túneis . Em muitos sistemas Linux, ele substitui o comando descontinuado ifconfig .
Sintaxe
ip [ OPÇÕES ] OBJETO { COMANDO | Socorro }
onde OBJECT pode estar:
{link | endereço | addrlabel | rota | regra | neigh | tabela | túnel | tuntap maddr | mroute | mrule | monitor | xfrm netns | l2tp | tcp_metrics}
e OPÇÕES podem ser:
{-V [ersão] | -s [estatísticas] | -r [esolve] | -família] {inet | inet6 | ipx dnet | link} | -uma linha] }
Opções
-V , -Versão | imprima a versão do utilitário ip e saia. |
-s , -stats , -statistics | Saída mais informações. Se a opção aparecer duas ou mais vezes, a quantidade de informações aumenta. Como regra, as informações são estatísticas ou alguns valores de tempo. |
-l , -loops | Especifique o número máximo de loops que a lógica ‘ ip addr flush ‘ tentará antes de desistir. O padrão é 10. Zero (” 0 “) significa loop até que todos os endereços sejam removidos. |
-f , -família | seguido pelo identificador da família de protocolos : inet , inet6 , bridge , ipx , dnet ou link , imponha a família de protocolos a ser usada. Se a opção não estiver presente, a família do protocolo será adivinhada por outros argumentos . Se o restante da linha de comando não fornecer informações suficientes para adivinhar a família, o ip retornará ao padrão, geralmente inet ou any . link é um identificador de família especial, o que significa que nenhum protocolo de rede está envolvido. |
-4 | atalho para -family inet . |
-6 | atalho para -family inet6 . |
-B | atalho para ponte -família . |
-0 | atalho para o link -família . |
-o , -online | imprima cada registro em uma única linha, substituindo os feeds de linha pelo caractere ‘ \ ‘. Isso é conveniente quando você deseja contar registros com wc ou grep a saída. |
-r , -resolve | use o resolvedor de nomes do sistema para imprimir nomes DNS em vez de endereços de host . |
Objeto
endereço | endereço de protocolo ( IP ou IPv6 ) em um dispositivo. |
addrlabel | configuração de etiqueta para seleção de endereço de protocolo. |
l2tp | Ethernet de túnel sobre IP (L2TPv3). |
ligação | dispositivo de rede. |
maddress | endereço multicast . |
monitor | preste atenção nas mensagens do netlink. |
mroute | entrada de cache de roteamento multicast. |
mrule | regra no banco de dados de diretiva de roteamento multicast. |
vizinho | gerenciar entradas de cache ARP ou NDISC. |
netns | gerenciar namespaces de rede. |
tabela | gerenciar a operação do cache vizinho. |
rota | entrada da tabela de roteamento . |
regra | regra no banco de dados de diretiva de roteamento. |
tcp_metrics, tcpmetrics | gerenciar métricas TCP. |
túnel | túnel sobre IP. |
tuntap | gerenciar dispositivos TUN / TAP. |
xfrm | gerenciar políticas IPSec . |
Os nomes de todos os objetos podem ser escritos na forma completa ou abreviada (por exemplo, endereço é abreviado como addr ou apenas a ).
Comando
Especifica a ação a ser executada no objeto. O conjunto de ações possíveis depende do tipo de objeto. Como regra, é possível adicionar , excluir e mostrar (ou listar ) objetos, mas alguns objetos não permitem todas essas operações ou possuem alguns comandos adicionais. O comando help está disponível para todos os objetos. Ele imprime uma lista de comandos disponíveis e convenções de sintaxe de argumento.
Se nenhum comando for fornecido, algum comando padrão será assumido. Geralmente é list ou, se os objetos desta classe não puderem ser listados, ajuda .
link ip: configuração de dispositivo de rede
link é um dispositivo de rede e os comandos correspondentes exibem e alteram o estado dos dispositivos.
o conjunto de links ip altera os atributos do dispositivo:
conjunto de links IP DEVICE {up | para baixo | arp {on | desativado} | promisc {em | desativado} | allmulticast {on | desativado} | dinâmico {on | desativado} | difusão seletiva {on | desativado} | PACOTES txqueuelen | nome NEWNAME | endereço LLADDR | transmissão LLADDR | MTU MTU | redes PID | alias NAME | vf NUM [mac LLADDR ] [VLAN VLANID [qos VLAN - QOS ]] [taxa TXRATE ]}
dev NAME | (Padrão.) NAME especifica o dispositivo de rede para operar. Ao configurar dispositivos da função virtual SR-IOV (VF), essa palavra-chave deve especificar o dispositivo associado à função física (PF). |
para cima , para baixo | altere o estado do dispositivo para UP ou DOWN . |
arp ligado , arp desligado | altere a bandeira NOARP no dispositivo. |
multicast ativado , multicast desativado | altere a bandeira MULTICAST no dispositivo. |
dinâmico ativado , dinâmico desativado | altere a bandeira DINÂMICA no dispositivo. |
nome NAME | mude o nome do dispositivo. Esta operação não é recomendada se o dispositivo estiver em execução ou se alguns endereços já estiverem configurados. |
txqueuelen NUMBER , txqlen NUMBER | altere o comprimento da fila de transmissão do dispositivo. |
mtu NUMBER | altere a MTU do dispositivo. |
endereço LLADDRESS | altere o endereço da estação da interface . |
transmissão LLADDRESS | brd LLADDRESS |
pares LLADDRESS | altere o endereço de broadcast da camada de link ou o endereço do mesmo nível quando a interface estiver POINTOPOINT. |
netns PID | mova o dispositivo para o namespace da rede associado ao processo PID. |
alias NAME | dê ao dispositivo um nome simbólico para facilitar a referência. |
vf NUM | especifique um dispositivo de função virtual a ser configurado. O dispositivo PF associado deve ser especificado usando o parâmetro dev . |
mac LLADDRESS | altere o endereço da estação para o VF especificado. O parâmetro vf deve ser especificado. |
vlan VLANID | altere a VLAN atribuída para a VF especificada. Quando especificado, todo o tráfego enviado da VF será marcado com o ID da VLAN especificado. O tráfego de entrada será filtrado para o ID da VLAN especificado e terá todas as tags da VLAN removidas antes de serem passadas para a VF. Definir este parâmetro como 0 desativa a marcação e a filtragem de VLAN. O parâmetro vf deve ser especificado. |
qos VLAN-QOS | atribua bits de VLAN QOS (prioridade) à etiqueta VLAN. Quando especificado, todos os tags VLAN transmitidos pelo VF incluirão os bits de prioridade especificados no tag VLAN. Se não especificado, o valor será assumido como 0 . Os parâmetros vf e vlan devem ser especificados. Definir vlan e qos como 0 desativa a marcação e a filtragem de VLAN para o VF. |
taxa TXRATE | altere a largura de banda de transmissão permitida, em Mbps , para o VF especificado. Definir este parâmetro como 0 desativa a limitação da taxa. O parâmetro vf deve ser especificado. |
Aviso : Se várias alterações de parâmetro forem solicitadas, o IP será interrompido imediatamente após a falha de qualquer uma das alterações. Este é o único caso em que o ip pode mover o sistema para um estado imprevisível. A solução é evitar alterar vários parâmetros com uma chamada de conjunto de links IP .
ip link show exibe os atributos do dispositivo:
show de link ip [ DEVICE ]
dev NAME | (Padrão.) NAME especifica o dispositivo de rede a ser exibido. Se esse argumento for omitido, todos os dispositivos serão listados. |
acima | exibir apenas interfaces em execução. |
endereço IP: Gerenciamento de endereços de protocolo
O endereço é um endereço de protocolo (IP ou IPv6) conectado a um dispositivo de rede. Cada dispositivo deve ter pelo menos um endereço para usar o protocolo correspondente. É possível ter endereços diferentes conectados a um dispositivo. Esses endereços não são discriminados, de modo que o termo alias não é muito apropriado para eles e não o usamos neste documento.
O comando ip addr exibe endereços e suas propriedades, adiciona novos endereços e exclui os antigos.
O endereço IP add adiciona um novo endereço de protocolo:
endereço IP adicionar IFADDR dev NAME
dev NAME | o nome do dispositivo ao qual adicionar o endereço. |
ENDEREÇO local | (Padrão.) O endereço da interface. O formato do endereço depende do protocolo. É um quad pontilhado para IP e uma sequência de meias palavras hexadecimais separadas por dois pontos para IPv6. O ENDEREÇO pode ser seguido por uma barra e um número decimal que codifica o comprimento do prefixo da rede. |
ENDEREÇO de pares | o endereço do terminal remoto para interfaces de ponto de ponto. Novamente, o ENDEREÇO pode ser seguido por uma barra e um número decimal , codificando o comprimento do prefixo da rede. Se um endereço de par for especificado, o endereço local não poderá ter um tamanho de prefixo. O prefixo da rede está associado ao par e não ao endereço local. |
broadcast ADDRESS | o endereço de transmissão na interface. É possível usar os símbolos especiais ‘ + ‘ e ‘ – ‘ em vez do endereço de transmissão. Nesse caso, o endereço de broadcast é derivado pela configuração / redefinição dos bits do host do prefixo da interface. |
etiqueta NAME | Cada endereço pode ser marcado com uma string de etiqueta. Para preservar a compatibilidade com os aliases de rede do Linux -2.0, essa sequência deve coincidir com o nome do dispositivo ou ser prefixada com o nome do dispositivo seguido de dois pontos. |
escopo SCOPE_VALUE | o escopo da área em que este endereço é válido. Os escopos disponíveis estão listados no arquivo / etc / iproute2 / rt_scopes . Os valores de escopo predefinidos são: global o endereço é globalmente válido. local (Somente IPv6) o endereço é local do site, ou seja, é válido dentro deste site. ligação o endereço é link local, ou seja, é válido apenas neste dispositivo. hospedeiro o endereço é válido apenas dentro deste host. |
A exclusão do endereço IP exclui um endereço de protocolo:
Os argumentos para exclusão do endereço IP são os mesmos que os argumentos do endereço IP addr (veja acima). O nome do dispositivo é um argumento obrigatório; o resto é opcional. Se nenhum argumento for fornecido, o primeiro endereço será excluído.
O endereço IP mostra os endereços de protocolo:
endereço ip {show | flush} [dev STRING ] [escopo -ID do escopo] [para PREFIXAR ] [ LISTA DE BANDEJA ] [rótulo PADRÃO ]
dev NAME | (Padrão.) Nome do dispositivo. |
escopo SCOPE_VAL | lista apenas endereços com esse escopo. |
PREFIXAR | lista apenas os endereços que correspondem a esse prefixo. |
label PATTERN | liste apenas endereços com etiquetas correspondentes ao PATTERN. PATTERN é um padrão usual de estilo de shell . |
dinâmico , permanente | (Somente IPv6) lista apenas endereços instalados devido à configuração de endereço sem estado ou lista apenas endereços permanentes (não dinâmicos). |
provisório | (Apenas IPv6) lista apenas endereços que não passaram na detecção de endereços duplicados. |
descontinuada | (Apenas IPv6) lista apenas endereços obsoletos. |
primário , secundário | liste apenas endereços principais (ou secundários). |
ip address flush libera um endereço de protocolo:
Este comando libera os endereços de protocolo selecionados por alguns critérios.
Este comando tem os mesmos argumentos que o show (veja acima). A diferença é que ele não é executado quando nenhum argumento é fornecido.
Aviso: Este comando (e outros comandos de descarga descritos abaixo) são bastante perigosos. Se você cometer um erro, ele não o perdoará, mas removerá cruelmente todos os endereços.
Com a opção -estatistics , o comando se torna detalhado . Ele imprime o número de endereços excluídos e o número de rodadas feitas para liberar a lista de endereços. Se essa opção for dada duas vezes, o ip addr flush também despeja todos os endereços excluídos no formato descrito na subseção anterior.
ip addrlabel: Gerenciamento de etiqueta de endereço de protocolo
A etiqueta de endereço IPv6 é usada para a seleção de endereço descrita na RFC 3484. A precedência é gerenciada pelo espaço do usuário e apenas a etiqueta é armazenada no kernel .
ip addrlabel add adiciona uma entrada de etiqueta de endereço ao kernel:
ip addrlabel {add | del} prefixo PREFIX [dev DEV ] [label NUMBER ]
endereço IP addrlabel {lista | rubor }
prefixo PREFIX | o prefixo a ser usado. |
dev DEV | a interface de saída. |
etiqueta NUMBER | o rótulo para o prefixo. 0xffffffff está reservado. |
ip addrlabel del flushes etiquetas de endereço:
o comando exclui uma entrada de etiqueta de endereço no kernel. Os argumentos coincidem com os argumentos de ip addrlabel add, mas label não é necessário.
lista ip addrlabel lista etiquetas de endereço:
este comando mostra o conteúdo das etiquetas de endereço.
o nivelamento do endereço IP delimita as etiquetas de endereço:
esse comando libera o conteúdo das etiquetas de endereço e não restaura as configurações padrão.
vizinho ip – gerenciamento de tabelas vizinho / arp.
objetos vizinhos estabelecem ligações entre endereços de protocolo e endereços de camada de link para hosts que compartilham o mesmo link. As entradas vizinhas são organizadas em tabelas. A tabela de vizinhos IPv4 é conhecida por outro nome: a tabela ARP.
Os comandos correspondentes exibem ligações de vizinhos e suas propriedades, adicionam novas entradas de vizinhos e excluem as antigas.
vizinho de ip {add | del | mudar | substituir} { ADDR [lladdr LLADDR ] [nud {permanente | noarp | obsoleto | alcançável}] | proxy ADDR } [dev DEV ]
ip neighbour add – adiciona uma nova entrada vizinha
alteração de vizinho de ip – altera uma entrada existente
ip Neighbor replace – adicione uma nova entrada ou altere uma existente
para ENDEREÇO | (Padrão.) O endereço de protocolo do vizinho. É um endereço IPv4 ou IPv6. |
dev NAME | a interface à qual esse vizinho está conectado. |
illaddr LLADDRESS | o endereço da camada de link do vizinho. LLADDRESS também pode ser nulo . |
nud NUD_STATE | o estado da entrada do vizinho. O nud é uma abreviação de ‘Detecção de inacessibilidade de vizinhos’. O estado pode assumir um dos seguintes valores: permanente a entrada do vizinho é válida para sempre e só pode ser removida administrativamente. noarp a entrada do vizinho é válida. Nenhuma tentativa de validar esta entrada será feita, mas ela poderá ser removida quando a vida útil expirar. alcançável a entrada do vizinho é válida até o tempo limite de alcançabilidade expirar. obsoleto a entrada do vizinho é válida, mas suspeita. Esta opção para vizinho de ip não altera o estado do vizinho se for válido e o endereço não for alterado por este comando. |
A exclusão do vizinho ip exclui uma entrada vizinha:
Este comando invalida uma entrada vizinha.
Os argumentos são os mesmos que com o vizinho ip add , exceto que lladdr e nud são ignorados.
Aviso: Tentativas de excluir ou alterar manualmente uma entrada noarp criada pelo kernel podem resultar em comportamento imprevisível. Particularmente, o kernel pode tentar resolver esse endereço mesmo em uma interface NOARP ou se o endereço for multicast ou broadcast.
vizinho ip {show | liberar} [para PREFIXAR ] [dev DEV ] [nud STATE ]
ip neighbour show lista entradas vizinhas:
Este comando exibe tabelas vizinhas.
para ENDEREÇO (padrão) | o prefixo selecionando os vizinhos a serem listados. |
dev NAME | liste apenas os vizinhos conectados a este dispositivo. |
não utilizado | liste apenas os vizinhos que não estão em uso no momento. |
nud NUD_STATE | liste apenas as entradas vizinhas nesse estado. NUD_STATE utiliza os valores listados abaixo ou o valor especial, o que significa todos os estados. Esta opção pode ocorrer mais de uma vez. Se esta opção estiver ausente, ip listará todas as entradas, exceto none e noarp . |
ip vizinho flush libera entradas vizinho:
Este comando libera tabelas vizinhas, selecionando entradas para liberar por alguns critérios.
Este comando tem os mesmos argumentos que show . As diferenças são que ele não é executado quando nenhum argumento é fornecido e que os estados vizinhos padrão a serem liberados não incluem permanente e noarp .
Com a opção -estatistics , o comando se torna detalhado. Ele imprime o número de vizinhos excluídos e o número de rodadas feitas para liberar a tabela vizinha. Se a opção for dada duas vezes, o vizinho ip flush também despeja todos os vizinhos excluídos.
O ip route gerencia tabelas de roteamento:
Manipular entradas de rota nas tabelas de roteamento do kernel mantém informações sobre caminhos para outros nós da rede.
Tipos de rotas:
unicast | a entrada da rota descreve caminhos reais para os destinos cobertos pelo prefixo da rota. |
inacessível | esses destinos são inacessíveis. Os pacotes são descartados e o host de mensagens ICMP inacessível é gerado. Os remetentes locais recebem um erro EHOSTUNREACH. |
buraco negro | esses destinos são inacessíveis. Pacotes são descartados silenciosamente. Os remetentes locais recebem um erro EINVAL. |
proibir | esses destinos são inacessíveis. Os pacotes são descartados e a comunicação de mensagens ICMP administrativamente proibida é gerada. Os remetentes locais recebem um erro EACCES. |
local | os destinos são atribuídos a este host. Os pacotes são retornados e entregues localmente. |
transmissão | os destinos são endereços de transmissão. Os pacotes são enviados como transmissões de link. |
lançar | uma rota de controle especial usada junto com regras de política. Se essa rota for selecionada, a pesquisa nesta tabela será encerrada, fingindo que nenhuma rota foi encontrada. Sem o roteamento de políticas, é equivalente à ausência da rota na tabela de roteamento. Os pacotes são descartados e a rede de mensagens ICMP inacessível é gerada. Os remetentes locais recebem um erro ENETUNREACH. |
nat | uma rota NAT especial. Os destinos cobertos pelo prefixo são considerados endereços fictícios (ou externos) que exigem tradução para endereços reais (ou internos) antes do encaminhamento. Os endereços para os quais traduzir são selecionados com o atributo via . Aviso: O NAT da rota não é mais suportado no Linux 2.6. |
anycast | ( ainda não implementado! ) os destinos são endereços anycast atribuídos a este host. Eles são principalmente equivalentes ao local, com uma diferença: esses endereços são inválidos quando usados como o endereço de origem de qualquer pacote. |
multicast | um tipo especial usado para roteamento multicast. Não está presente nas tabelas de roteamento normais. |
Tabelas de rotas:
O Linux-2.x pode compactar rotas em várias tabelas de roteamento identificadas por um número no intervalo de 1 a 255 ou pelo nome do arquivo / etc / iproute2 / rt_tables Por padrão, todas as rotas normais são inseridas na tabela principal (ID 254 ) e o kernel usa apenas esta tabela ao calcular rotas.
Na verdade, sempre existe uma outra tabela, que é invisível, mas ainda mais importante. É a tabela local (ID 255 ). Esta tabela consiste em rotas para endereços locais e de broadcast. O kernel mantém essa tabela automaticamente e o administrador geralmente não precisa modificá-la ou mesmo examiná-la.
As várias tabelas de roteamento são envolvidas quando o roteamento de política é usado.
rota ip {add | del | mudar | acrescentar | substituir | monitor} ROUTE
ip route add – adicionar nova rota
mudança de rota ip – alterar rota
ip route replace – altere a rota ou adicione uma nova rota
para TYPE PREFIX (padrão) | o prefixo de destino da rota. Se TYPE for omitido, ip assumirá o tipo unicast. Outros valores de TYPE estão listados acima. PREFIX é um endereço IP ou IPv6 opcionalmente seguido por uma barra e o comprimento do prefixo. Se o comprimento do prefixo estiver ausente, o ip assumirá uma rota de host de tamanho completo. Há também um padrão especial de PREFIX – que é equivalente ao IP 0/0 ou ao IPv6 :: / 0 . |
tos TOS , dsfield TOS | a chave Type Of Service (TOS). Essa chave não possui máscara associada e a correspondência mais longa é entendida como: Primeiro, compare os TOS da rota e do pacote. Se eles não forem iguais, o pacote ainda poderá corresponder a uma rota com um TOS zero. TOS é um número hexadecimal de 8 bits ou um identificador de / etc / iproute2 / rt_dsfield . |
métrica NUMBER , preferência NUMBER | o valor da preferência da rota. NUMBER é um número arbitrário de 32 bits . |
mesa TABLEID | a tabela à qual adicionar esta rota. TABLEID pode ser um número ou uma string do arquivo / etc / iproute2 / rt_tables . Se esse parâmetro for omitido, ip assumirá a tabela principal, com exceção das rotas local , broadcast e nat , que são colocadas na tabela local por padrão. |
dev NAME | o nome do dispositivo de saída. |
via ADDRESS | o endereço do roteador nexthop. Na verdade, o sentido desse campo depende do tipo de rota. Para rotas unicast normais, é o verdadeiro roteador do próximo salto ou, se for uma rota direta instalada no modo de compatibilidade com BSD , pode ser um endereço local da interface. Para rotas NAT, é o primeiro endereço do bloco de destinos IP traduzidos. |
src ADDRESS | o endereço de origem a ser preferido ao enviar para os destinos cobertos pelo prefixo da rota. |
reino REALMID | o domínio ao qual esta rota está atribuída. REALMID pode ser um número ou uma sequência do arquivo / etc / iproute2 / rt_realms . |
MTU MTU , MTU bloqueio MTU | o MTU ao longo do caminho até o destino. Se o bloqueio do modificador não for usado, o MTU poderá ser atualizado pelo kernel devido ao Path MTU Discovery. Se o bloqueio do modificador for usado, nenhum caminho MTU discovery será tentado, todos os pacotes serão enviados sem o bit DF no caso IPv4 ou fragmentados no MTU para IPv6. |
janela NUMBER | a janela máxima para o TCP anunciar nesses destinos, medido em bytes. Limita o máximo de rajadas de dados que nossos pares TCP podem enviar para nós. |
rtt TIME | a estimativa inicial de RTT (‘Round Trip Time’). Se nenhum sufixo for especificado, as unidades serão valores brutos passados diretamente para o código de roteamento para manter a compatibilidade com liberações anteriores. De outra forma: um sufixo de s , s ou s é usado para especificar segundos ; ms , ms ou ms para especificar milissegundos ; us , usec ou usecs para especificar microssegundos ; ns , nsec ou nsecs para especificar nanossegundos ; ou j , hz ou jiffies para especificar jiffies . O valor é então convertido para o que o código de roteamento espera. |
rttvar TIME | a estimativa inicial da variação da RTT. Os valores são especificados como com rtt acima. |
rto_min TIME | o tempo limite mínimo de retransmissão TCP a ser usado ao se comunicar com esse destino. Os valores são especificados como com rtt acima. |
ssthresh NUMBER | uma estimativa para o limite inicial de início lento. |
cwnd NUMBER | o grampo para janela de congestionamento. Será ignorado se o sinalizador de bloqueio não for usado. |
initcwnd NUMBER | o tamanho máximo da janela inicial de congestionamento (cwnd) no MSS de uma conexão TCP. |
initrwnd NUMBER | o tamanho inicial da janela de recebimento para conexões com este destino. O tamanho real da janela é esse valor multiplicado pelo MSS da conexão. O valor padrão é zero, o que significa usar o valor Slow Start. |
advmss NUMBER | o MSS (‘Tamanho máximo de segmento’) para anunciar nesses destinos ao estabelecer conexões TCP. Se não for fornecido, o Linux usará um valor padrão calculado a partir da MTU do dispositivo de primeiro salto. Se o caminho para esses destinos for assimétrico, esse palpite pode estar errado. |
reordenando NUMBER | Reordenação máxima no caminho para este destino. Se não for fornecido, o Linux usará o valor selecionado com a variável sysctl net / ipv4 / tcp_reordering . |
NEXTHOP | o próximo ponto de uma rota de caminhos múltiplos. NEXTHOP é um valor complexo com sua própria sintaxe semelhante às listas de argumentos de nível superior: via ADDRESS é o roteador nexthop. dev NAME é o dispositivo de saída. peso NUMBER é um peso para esse elemento de uma rota de caminhos múltiplos que reflete sua largura de banda ou qualidade relativa. |
escopo SCOPE_VAL | o escopo dos destinos cobertos pelo prefixo da rota. SCOPE_VAL pode ser um número ou uma sequência do arquivo / etc / iproute2 / rt_scopes . Se esse parâmetro for omitido, o ip assumirá o escopo global para todas as rotas unicast com gateway , o link do escopo para rotas diretas de difusão ponto a ponto e de difusão e o host do escopo para rotas locais. |
protocolo RTPROTO | o identificador do protocolo de roteamento desta rota. RTPROTO pode ser um número ou uma sequência do arquivo / etc / iproute2 / rt_protos . Se o ID do protocolo de roteamento não for fornecido, o ip assumirá a inicialização do protocolo (isto é, assume que a rota foi adicionada por alguém que não entende o que está fazendo). Vários valores de protocolo têm uma interpretação fixa. Nomeadamente: redirecionamento – a rota foi instalada devido a um redirecionamento ICMP . kernel – a rota foi instalada pelo kernel durante a configuração automática. boot – a rota foi instalada durante a sequência de inicialização. Se um daemon de roteamento iniciar, ele limpará todos eles. estático – a rota foi instalada pelo administrador para substituir o roteamento dinâmico. O daemon de roteamento os respeitará e, provavelmente, até os anunciará aos seus pares. ra – a rota foi instalada pelo protocolo Router Discovery. |
O restante dos valores não é reservado e o administrador pode atribuir (ou não atribuir) tags de protocolo:
onlink | finja que o nexthop está diretamente anexado a esse link, mesmo que não corresponda a nenhum prefixo da interface. |
igualar | permitir pacote por randomização de pacotes em rotas de caminhos múltiplos. Sem esse modificador, a rota será congelada para um próximo ponto selecionado, para que a divisão de carga ocorra apenas na base por fluxo. equalizar funciona apenas se o kernel estiver corrigido. |
excluir rota ip – excluir rota
ip route del tem os mesmos argumentos que ip route add , mas sua semântica é um pouco diferente.
Os valores-chave ( para , tos , preferência e tabela ) selecionam a rota a ser excluída. Se atributos opcionais estiverem presentes, o ip verificará se eles coincidem com os atributos da rota a serem excluídos. Se nenhuma rota com a chave e os atributos fornecidos for encontrada, ip route del falhará.
ip route show – lista rotas
o comando exibe o conteúdo das tabelas de roteamento ou as rotas selecionadas por alguns critérios.
para SELECTOR (padrão) | selecione apenas rotas no intervalo de destinos especificado. SELECTOR consiste em um modificador opcional ( raiz , correspondência ou exato ) e um prefixo. root PREFIX seleciona rotas com prefixos não menores que PREFIX . Por exemplo, a raiz 0/0 seleciona a tabela de roteamento inteira. match PREFIX seleciona rotas com prefixos não maiores que PREFIX . Por exemplo, a correspondência 10.0 / 16 seleciona 10.0 / 16 , 10/8 e 0/0 , mas não seleciona 10.1 / 16 e 10.0.0 / 24 . E PREFIX exato (ou apenas PREFIX ) seleciona rotas com esse prefixo exato. Se nenhuma dessas opções estiver presente, o ip assumirá a raiz 0/0, ou seja, lista a tabela inteira. |
tos TOS , dsfield TOS | selecione apenas rotas com os TOS fornecidos. |
mesa TABLEID | mostre as rotas desta (s) tabela (s). A configuração padrão é mostrar o domínio da tabela . TABLEID pode ser o ID de uma tabela real ou um dos valores especiais: tudo liste todas as tabelas. cache despejar o cache de roteamento. clonado , em cache listar rotas clonadas, ou seja, rotas que foram bifurcadas dinamicamente de outras rotas porque algum atributo da rota (fe MTU) foi atualizado. Na verdade, é equivalente ao cache da tabela . |
de SELECTOR | a mesma sintaxe de para , mas vincula o intervalo de endereços de origem ao invés de destinos. Observe que a opção from funciona apenas com rotas clonadas. |
protocolo RTPROTO | apenas liste as rotas deste protocolo. |
escopo SCOPE_VAL | lista apenas rotas com esse escopo. |
tipo TYPE | lista apenas rotas deste tipo. |
dev NAME | lista apenas as rotas que passam por este dispositivo. |
via PREFIX | lista apenas as rotas que passam pelos roteadores nexthop selecionados pelo PREFIX . |
src PREFIX | apenas liste as rotas com os endereços de origem preferidos selecionados pelo PREFIX . |
reino REALMID , domínios FROMREALM / TOREALM | apenas liste rotas com esses reinos. |
ip route flush – tabelas de roteamento niveladas
esse comando libera as rotas selecionadas por alguns critérios.
Os argumentos têm a mesma sintaxe e semântica que os argumentos da rota IP , mas as tabelas de roteamento não são listadas, mas eliminadas. A única diferença é a ação padrão: show despeja toda a tabela de roteamento principal IP, mas flush imprime a página auxiliar.
Com a opção -estatistics , o comando se torna detalhado. Ele imprime o número de rotas excluídas e o número de rodadas feitas para liberar a tabela de roteamento. Se a opção for dada duas vezes, o ip route flush também despeja todas as rotas excluídas no formato descrito na subseção anterior.
ip route get – obtém uma única rota
esse comando obtém uma única rota para um destino e imprime seu conteúdo exatamente como o kernel o vê.
para ENDEREÇO (padrão) | o endereço de destino. |
de ADDRESS | o endereço de origem. |
tos TOS , dsfield TOS | o tipo de serviço. |
iif NAME | o dispositivo a partir do qual esse pacote deve chegar. |
oif NAME | forçar o dispositivo de saída no qual este pacote será roteado. |
conectado | se nenhum endereço de origem (opção de ) foi fornecido, pesquise novamente a rota com a origem definida no endereço preferencial recebido na primeira pesquisa. Se o roteamento de política for usado, pode ser uma rota diferente. |
Note que esta operação não é equivalente ao ip route show . show mostra rotas existentes. get resolve-os e cria novos clones, se necessário. Essencialmente, get é equivalente a enviar um pacote nesse caminho. Se o argumento iif não for fornecido, o kernel criará uma rota para enviar pacotes para o destino solicitado. Isso é equivalente a executar ping no destino com um cache de rota ip subsequente, no entanto, nenhum pacote é realmente enviado. Com o argumento iif , o kernel finge que um pacote chegou dessa interface e procura um caminho para encaminhar o pacote.
regra ip – gerenciamento de banco de dados de diretiva de roteamento
As regras no banco de dados da política de roteamento controlam o algoritmo de seleção de rota.
Os algoritmos de roteamento clássicos usados na Internet tomam decisões de roteamento baseadas apenas no endereço de destino dos pacotes (e na teoria, mas não na prática, no campo TOS).
Em algumas circunstâncias, queremos rotear pacotes de maneira diferente, dependendo não apenas dos endereços de destino, mas também de outros campos de pacotes: endereço de origem , protocolo IP , portas de protocolo de transporte ou até carga útil de pacotes . Essa tarefa é chamada ‘roteamento de política’.
Para resolver essa tarefa, a tabela de roteamento convencional baseada em destino, ordenada de acordo com a regra de correspondência mais longa, é substituída por um ‘banco de dados de políticas de roteamento’ (ou RPDB), que seleciona rotas executando algum conjunto de regras.
Cada regra de roteamento de política consiste em um seletor e um predicado de ação. O RPDB é verificado na ordem crescente de prioridade. O seletor de cada regra é aplicado a { endereço de origem , endereço de destino , interface de entrada , tos , fwmark } e, se o seletor corresponder ao pacote, a ação será executada. O predicado de ação pode retornar com sucesso. Nesse caso, ele fornecerá uma indicação de rota ou falha e a pesquisa do RPDB será encerrada. Caso contrário, o programa RPDB continuará na próxima regra.
Semanticamente, a ação natural é selecionar o ponto de partida e o dispositivo de saída.
regra de ip [lista | adicionar | del | flush] AÇÃO DO SELETOR
ip rule add – insira uma nova regra
ip rule delete – excluir uma regra
tipo TYPE (padrão) | o tipo desta regra. A lista de tipos válidos foi fornecida na subseção anterior. |
PREFIX | selecione o prefixo de origem para corresponder. |
PREFIXAR | selecione o prefixo de destino para corresponder. |
iif NAME | selecione o dispositivo recebido para corresponder. Se a interface for loopback, a regra corresponderá apenas aos pacotes originários desse host. Isso significa que você pode criar tabelas de roteamento separadas para pacotes encaminhados e locais e, portanto, segregá-los completamente. |
tos TOS , dsfield TOS | selecione o valor TOS para corresponder. |
fwmark MARK | selecione o valor fwmark para corresponder. |
PREFERÊNCIA prioritária | a prioridade desta regra. Cada regra deve ter um valor de prioridade exclusivo explicitamente definido. As opções preferência e ordem são sinônimos com prioridade. |
mesa TABLEID | o identificador da tabela de roteamento a procurar, se o seletor de regras corresponder. Também é possível usar a pesquisa em vez da tabela . |
regiões de / para | Domínios para selecionar se a regra correspondeu e a pesquisa da tabela de roteamento foi bem-sucedida. A região TO é usada apenas se a rota não selecionou nenhuma região. |
ENDEREÇO nat | A base do bloco de endereços IP a ser convertido (para endereços de origem). O ENDEREÇO pode ser o início do bloco de endereços NAT (selecionado pelas rotas NAT) ou um endereço de host local (ou mesmo zero). No último caso, o roteador não converte os pacotes, mas os mascara para esse endereço. Usar mapear para em vez de nat significa a mesma coisa. |
Aviso: As alterações no RPDB feitas com esses comandos não ficam ativas imediatamente. Supõe-se que, após um script concluir um lote de atualizações, ele libera o cache de roteamento com o cache de liberação de rota ip .
ip rule flush – também despeja todas as regras excluídas.
Este comando não tem argumentos.
regra de ip show – lista regras
Este comando não tem argumentos. A lista de opções ou lst são sinônimos de show .
ip maddress – gerenciamento de endereços multicast
objetos maddress são endereços multicast.
show de ip mangas [dev STRING ]
ip maddress [adicionar | del] MULTIADDR dev STRING
ip maddress show – lista endereços multicast
dev NAME | o nome do dispositivo. |
ip maddress add – adicione um endereço multicast
ip maddress delete – exclui um endereço multicast
esses comandos anexam / desanexam um endereço multicast da camada de link estático para escutar na interface. Observe que é impossível ingressar em grupos multicast de protocolo estaticamente. Este comando gerencia apenas endereços da camada de link.
endereço LLADDRESS (padrão) | o endereço multicast da camada de link. |
dev NAME | o dispositivo para ingressar / sair deste endereço multicast. |
mroute ip – gerenciamento de cache de roteamento multicast
Objetos mroute são entradas de cache de roteamento multicast criadas por um daemon mrouting no nível do usuário (por exemplo, pimd ou mrouted ).
Devido às limitações da interface atual para o mecanismo de roteamento de difusão seletiva, é impossível alterar objetos de mroute administrativamente, para que possamos exibi-los apenas. Segundo os autores, essa limitação será removida no futuro.
ip mroute show – lista entradas do cache do mroute
ip mroute show [ PREFIX ] [do PREFIX ] [iif DEVICE ]
PREFIXAR (padrão) | the prefix selecting the destination multicast addresses to list. |
iif NAME | the interface on which multicast packets are received. |
from PREFIX | the prefix selecting the IP source addresses of the multicast route. |
ip tunnel – tunnel configuration
tunnel objects are tunnels, encapsulating packets in IP packets and then sending them over the IP infrastructure. The encapulating (or outer) address family is specified by the -f option. The default is IPv4.
ip tunnel { add | change | del | show | prl } [ NAME ] [ mode MODE ] [ remote ADDR ] [ local ADDR ] [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ] ] [ encaplimit ELIM ] [ ttl TTL ] [ tos TOS ] [ flowlabel FLOWLABEL ] [ prl-default ADDR ] [ prl-nodefault ADDR ] [ prl-delete ADDR ] [ [no]pmtudisc ] [ dev PHYS _ DEV ] [ dscp inherit ]
ip tunnel add – add a new tunnel
ip tunnel change – change an existing tunnel
ip tunnel delete – destroy a tunnel
name NAME (default) | select the tunnel device name. |
mode MODE | set the tunnel mode. Available modes depend on the encapsulating address family. Modes for IPv4 encapsulation available: ipip, sit, isatap, and gre. Modes for IPv6 encapsulation available: ip6ip6 , ipip6 and any . |
remote ADDRESS | set the remote endpoint of the tunnel. |
local ADDRESS | set the fixed local address for tunneled packets. It must be an address on another interface of this host. |
ttl N | set a fixed TTL N on tunneled packets. N is a number in the range 1-255 . 0 is a special value meaning that packets inherit the TTL value. The default value for IPv4 tunnels is: inherit . The default value for IPv6 tunnels is: 64 . |
tos T , dsfield T , tclass T | set a fixed TOS (or traffic class in IPv6) T on tunneled packets. The default value is: inherit . |
dev NAME | bind the tunnel to the device NAME so that tunneled packets will only be routed via this device and will not be able to escape to another device when the route to endpoint changes. |
nopmtudisc | disable Path MTU Discovery on this tunnel. It is enabled by default. Note that a fixed ttl is incompatible with this option: tunnelling with a fixed ttl always makes pmtu discovery. |
key K , ikey K , okey K | ( only GRE tunnels ) use keyed GRE with key K . K is either a number or an IP address-like dotted quad. The key parameter sets the key to use in both directions. The ikey and okey parameters set different keys for input and output. |
csum , icsum , ocsum | ( only GRE tunnels ) generate/require checksums for tunneled packets. The ocsum flag calculates checksums for outgoing packets. The icsum flag requires that all input packets have the correct checksum. The csum flag is equivalent to the combination icsum ocsum . |
seq , iseq , oseq | ( only GRE tunnels ) serialize packets. The oseq flag enables sequencing of outgoing packets. The iseq flag requires that all input packets are serialized. The seq flag is equivalent to the combination iseq oseq . |
dscp inherit | ( only IPv6 tunnels ) Inherit DS field between inner and outer header. |
encaplim ELIM | ( only IPv6 tunnels ) set a fixed encapsulation limit. Default is 4 . |
flowlabel FLOWLABEL | ( only IPv6 tunnels ) set a fixed flowlabel. |
ip tunnel prl – potential router list (ISATAP only)
dev NAME | mandatory device name. |
prl-default ADDR , prl-nodefault ADDR , prl-delete ADDR | Add or delete ADDR as a potential router or default router. |
ip tunnel show – list tunnels
This command has no arguments.
ip monitor and rtmon – state monitoring
The ip utility can monitor the state of devices, addresses, and routes continuously. This option has a slightly different format. Namely, the monitor command is the first in the command line and then the object list follows:
ip monitor [ all | OBJECT-LIST ]
OBJECT-LIST é a lista de tipos de objetos que queremos monitorar. Pode conter link , endereço e rota . Se nenhum argumento de arquivo for fornecido, o ip abrirá o RTNETLINK, ouvirá e despejará as alterações de estado no formato descrito nas seções anteriores.
Se um nome de arquivo for fornecido, ele não escuta no RTNETLINK, mas abre o arquivo que contém as mensagens RTNETLINK salvas no formato binário e as despeja. Esse arquivo de histórico pode ser gerado com o utilitário rtmon . Este utilitário possui uma sintaxe de linha de comando semelhante ao monitor IP . Idealmente, o rtmon deve ser iniciado antes que o primeiro comando de configuração de rede seja emitido. Por exemplo, se você inserir:
arquivo rtmon /var/log/rtmon.log
em um script de inicialização, você poderá visualizar o histórico completo posteriormente.
Certamente, é possível iniciar o rtmon a qualquer momento. Anexa o histórico com o instantâneo do estado despejado no momento da inicialização.
ip xfrm – configurando xfrm
xfrm é uma estrutura IP, que pode transformar o formato dos datagramas, ou seja, criptografar os pacotes com algum algoritmo. A política xfrm e o estado xfrm são associados através dos modelos TMPL_LIST. Essa estrutura é usada como parte do protocolo IPsec.
estado xfrm ip {add | atualização} ID [ XFRM _ OPT ] [ MODO MODO ] [reqid REQID ] [seq SEQ ] [replay-window SIZE ] [flag FLAG - LIST ] [encap ENCAP ] [sel SELECTOR ] [ LIMIT - LIST ]
IP xfrm state alocspi ID [mode MODE ] [reqid REQID ] [seq SEQ ] [ SPI mínimo SPI máximo]
ip xfrm state add – adiciona um novo estado ao xfrm
ip xfrm state update – atualiza o estado xfrm
alocspi de estado xfrm ip – aloca valor SPI
MODO | está definido como padrão para transporte, mas pode ser definido como túnel, ro ou beterraba. |
LISTA DE BANDEIRAS | contém um ou mais sinalizadores. |
BANDEIRA | pode ser definido como noecn, decap-dscp ou wildrecv. |
ENCAP | encapsulamento é definido para o tipo de encapsulamento ENCAP-TYPE, porta de origem SPORT, porta de destino DPORT e OADDR. |
ENCAP-TYPE | pode ser definido como espinudp ou espinudp-nonike . |
ALGO-LIST | contém um ou mais algoritmos ALGO que dependem do tipo de algoritmo definido por ALGO_TYPE. O algoritmo pode ser enc , auth ou comp . |
política de xfrm ip {add | atualização} dir DIR SELECTOR [index INDEX ] [tipo PTYPE ] [ação AÇÃO ] [prioridade PRIORIDADE ] [ LIMIT - LIST ] [ TMPL - LIST ]
política de xfrm ip {delete | get} dir DIR [ SELECTOR | índice INDEX ] [tipo PTYPE ]
política de xfrm ip {deleteall | lista} [dir DIR ] [ SELECTOR ] [índice INDEX ] [ação AÇÃO ] [prioridade PRIORIDADE ]
liberação da política de xfrm IP [ptype PTYPE ]
add xfrm policy add – adicione uma nova política
atualização da política ip xfrm – atualiza uma política existente
excluir política xfrm ip – excluir política existente
ip xfrm policy get – obtém a política existente
política xfrm ip deleteall – exclui todas as políticas xfrm existentes
lista de políticas ip xfrm – imprima a lista de políticas xfrm
liberação de política ip xfrm – políticas de liberação
A liberação da política xfrm ip pode liberar todas as políticas ou apenas as especificadas com o ptype .
dir DIR | O diretório pode ser um destes: inp , out ou fwd . |
SELECTOR | seleciona quais endereços a política configurará. O seletor é definido pelo endereço de origem e destino. |
UPSPEC | é definido pelo esporte da porta de origem, porta da porta de destino, digite como número e código e também número. |
dev DEV | especifique o dispositivo de rede. |
índice INDEX | o número de política indexada. |
tipo PTYPE | o tipo padrão é principal . |
ação AÇÃO | o padrão é permitir . |
prioridade PRIORIDADE | prioridade é um número. O padrão é zero. |
LISTA DE LIMITES | limites são definidos em segundos, bytes ou número de pacotes. |
TMPL-LIST | A lista de modelos é baseada em ID , modo , reqid e nível . |
EU IRIA | é especificado pelo endereço de origem , endereço de destino , proto e valor de spi . |
XFRM_PROTO | valores: esp , ah , comp , route2 ou hao . |
MODO | está definido como padrão para transporte , mas pode ser definido como túnel ou beterraba . |
NÍVEL | é definido como padrão em obrigatório e a outra opção é usar. |
UPSPEC | é especificado por esporte , dport , tipo e código (NUMBER). |
monitor xfrm ip [tudo | LISTA DE OBJETOS ]
ip xfrm monitor – é usado para listar todos os objetos ou grupo definido deles.
O monitor xfrm pode monitorar as políticas para todos os objetos ou grupo definido deles.
Exemplos
GorjetaVocê deve ter acesso root para usar algumas funções do comando ip .
show de endereço de ip
Lista as interfaces de rede.
show de rota ip
Lista a tabela de roteamento.
addr ip add 104.20.56.118 dev eth1
Atribua o endereço IP 104.20.56.118 ao dispositivo Ethernet eth1 .
Uma observação sobre outros sistemas operacionais
Se você estiver usando outro sistema operacional semelhante ao Unix, como BSD ou macOS X (cujas bases são baseadas no BSD), o comando ip pode não estar disponível; no entanto, a mesma funcionalidade, ou muito semelhante, pode ser alcançada usando o comando route . Por exemplo, este comando ip do Linux:
a rota do ip obtém 74.125.226.35
… que produz:
74.125.226.35 via 192.168.1.1 dev wlan0 src 192.168.1.2 cache
… é semelhante a este comando de rota do OS X:
rota obter 74.125.226.35
Rota para: lga15s43-in-f3.1e100.net destino: padrão mask: default gateway: 192.168.1.1 interface: en1 sinalizadores: <UP, GATEWAY, DONE, STATIC, PRCLONING> recvpipe sendpipe ssthresh rtt, msec rttvar contagem de hop mtu expiram 0 0 0 0 0 0 1500 0
Observe que esta forma do comando route é específica para BSD e não é transferida para a rota Linux. Além disso, observe que o comando route executa a resolução DNS, mas o ip não. Portanto, no BSD, este comando funcionará:
rota obtenha google.com
… mas este comando do Linux:
rota ip obter google.com
… não, porque precisa de um endereço IP e não pode (por design) resolver o nome do domínio por si próprio.
Existem muitas diferenças entre esses tipos de utilitários de nível de kernel em diferentes sistemas operacionais, apesar de compartilharem o mesmo nome de comando, e é aconselhável verificar as páginas de manual do sistema operacional para obter detalhes exatos de uso.
Comandos relacionados
arp – Manipule o cache do ARP do sistema.
ifconfig – exibe ou modifica a configuração das interfaces de rede.
netstat – Imprime informações sobre conexões de rede, tabelas de roteamento, estatísticas de interface, conexões mascaradas e associações multicast.
route – Exiba e manipule a tabela de roteamento IP.
tcpdump – captura o tráfego bruto da rede.