.\" -*- coding: UTF-8 -*- '\" t .\" This man page is Copyright (C) 1999 Andi Kleen . .\" .\" %%%LICENSE_START(VERBATIM_ONE_PARA) .\" Permission is granted to distribute possibly modified copies .\" of this page provided the header is included verbatim, .\" and in case of nontrivial modification author and date .\" of the modification is added to the header. .\" %%%LICENSE_END .\" .\" Based on the original comments from Alexey Kuznetsov, written with .\" help from Matthew Wilcox. .\" $Id: rtnetlink.7,v 1.8 2000/01/22 01:55:04 freitag Exp $ .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH rtnetlink 7 "15 dezembro 2022" "Linux man\-pages 6.03" .SH NOME rtnetlink \- Linux routing socket .SH SINOPSE .nf \fB#include \fP \fB#include \fP \fB#include \fP \fB#include \fP \fB#include \fP .PP \fBrtnetlink_socket = socket(AF_NETLINK, int \fP\fIsocket_type\fP\fB, NETLINK_ROUTE);\fP .fi .SH DESCRIÇÃO .\" FIXME . ? all these macros could be moved to rtnetlink(3) Rtnetlink permite que as tabelas de roteamento do kernel sejam lidas e alteradas. É usado dentro do kernel para a comunicação entre vários subsistemas, apesar de que seu uso não é documentado aqui, e para comunicação com programas do espaço do usuário. Rotas de rede, endereços IP, parâmetros de ligação, configurações de vizinhança, disciplinas de filas, classes de tráfego e classificadores de pacotes podem todos ser controlados através de 'sockets' \fBNETLINK_ROUTE\fP. Ele é baseado em mensagens de "netlink"; veja \fBnetlink\fP(7) para maiores informações. .SS "Atributos de roteamento" Algumas mensagens do rnetlink têm atributos opcionais depois do cabeçalho inicial: .PP .in +4n .EX struct rtattr { unsigned short rta_len; /* Comprimento da opção */ unsigned short rta_type; /* Tipo da opção */ /* Seguem os Dados */ }; .EE .in .PP Estes atributos seriam manipulados somente pelo uso de macros RTA_* ou do libnetlink, veja \fBrtnetlink\fP(3). .SS Messages Rtnetlink consiste nos seguintes tipos de mensagens (além das mensagens padrão do netlink): .TP \fBRTM_NEWLINK\fP, \fBRTM_DELLINK\fP, \fBRTM_GETLINK\fP Cria, remove ou obtém informações sobre uma interface de rede específica. Essas mensagens contêm uma estrutura \fIifinfomsg\fP seguida por uma série de estruturas \fIrtattr\fP. .IP .EX struct ifinfomsg { unsigned char ifi_family; /* AF_UNSPEC */ unsigned short ifi_type; /* Device type */ int ifi_index; /* Interface index */ unsigned int ifi_flags; /* Device flags */ unsigned int ifi_change; /* change mask */ }; .EE .IP .\" FIXME Document ifinfomsg.ifi_type \fIifi_flags\fP contains the device flags, see \fBnetdevice\fP(7); \fIifi_index\fP is the unique interface index (since Linux 3.7, it is possible to feed a nonzero value with the \fBRTM_NEWLINK\fP message, thus creating a link with the given \fIifindex\fP); \fIifi_change\fP is reserved for future use and should be always set to 0xFFFFFFFF. .TS tab(:); c s s lb l l. Atributos de roteamento rta_type:Tipo de valor:Descrição _ IFLA_UNSPEC:\-:não\-especificado IFLA_ADDRESS:ender. de hardware:interface L2 address IFLA_BROADCAST:ender. de hardware:L2 broadcast address IFLA_IFNAME:cadeia asciiz:Nome do dispos. IFLA_MTU:int. sem sinal:MTU do dispos. IFLA_LINK:int:Tipo de ligação IFLA_QDISC:cadeia asciiz:Disciplina de fila IFLA_STATS:T{ see below T}:Interface Statistics .TE .IP The value type for \fBIFLA_STATS\fP is \fIstruct rtnl_link_stats\fP (\fIstruct net_device_stats\fP in Linux 2.4 and earlier). .TP \fBRTM_NEWADDR\fP, \fBRTM_DELADDR\fP, \fBRTM_GETADDR\fP Acrescenta, remove ou recebe informação sobre um endereço IP associado a uma interface. No Linux 2.2, uma interface pode carregar múltiplos endereços IP, isso substitui o conceito de apelido de dispositivo no Linux 2.0. No Linux 2.2, essas mensagens suportam endereços IPv4 e IPv6. Elas contêm uma estrutura \fIifaddrmsg\fP, opcionalmente seguida pelos atributos de roteamento \fIrtaddr\fP. .IP .EX struct ifaddrmsg { unsigned char ifa_family; /* Address type */ unsigned char ifa_prefixlen; /* Prefixlength of address */ unsigned char ifa_flags; /* Address flags */ unsigned char ifa_scope; /* Address scope */ unsigned int ifa_index; /* Interface index */ }; .EE .IP \fIifa_family\fP is the address family type (currently \fBAF_INET\fP or \fBAF_INET6\fP), \fIifa_prefixlen\fP is the length of the address mask of the address if defined for the family (like for IPv4), \fIifa_scope\fP is the address scope, \fIifa_index\fP is the interface index of the interface the address is associated with. \fIifa_flags\fP is a flag word of \fBIFA_F_SECONDARY\fP for secondary address (old alias interface), \fBIFA_F_PERMANENT\fP for a permanent address set by the user and other undocumented flags. .TS tab(:); c s s lb l l. Atributos rta_type:Tipo de valor:Descrição _ IFA_UNSPEC:\-:não\-especificado IFA_ADDRESS:ender. de protocolo direto:ender. da interface IFA_LOCAL:ender. de protocolo direto:ender. local IFA_LABEL:cadeia asciiz:nome da interface IFA_BROADCAST:ender. de protocolo direto:Ender. de broadcast IFA_ANYCAST:ender. de protocolo direto:ender. de anycast IFA_CACHEINFO:struct ifa_cacheinfo:Informação de ender. .TE .\" FIXME Document struct ifa_cacheinfo .TP \fBRTM_NEWROUTE\fP, \fBRTM_DELROUTE\fP, \fBRTM_GETROUTE\fP Cria, remove ou recebe informação sobre uma rota de rede. Essas mensagens contêm uma estrutura \fIrtmsg\fP com uma seqüência opcional de estruturas \fIrtattr\fP a seguir. Selecionando \fBRTM_GETROUTE\fP, \fIrtm_dst_len\fP e \fIrtm_src_len\fP para 0 significa que você obtém todas as entradas para a tabela de roteamento especificada. Para os outros campos, exceto \fIrtm_table\fP e \fIrtm_protocol\fP 0 é um caractere coringa. .IP .EX struct rtmsg { unsigned char rtm_family; /* Address family of route */ unsigned char rtm_dst_len; /* Length of destination */ unsigned char rtm_src_len; /* Length of source */ unsigned char rtm_tos; /* TOS filter */ unsigned char rtm_table; /* Routing table ID; see RTA_TABLE below */ unsigned char rtm_protocol; /* Routing protocol; see below */ unsigned char rtm_scope; /* See below */ unsigned char rtm_type; /* See below */ unsigned int rtm_flags; }; .EE .TS tab(:); lb l. rtm_type:Tipo de rota _ RTN_UNSPEC:rota desconhecida RTN_UNICAST:um gateway ou rota direta RTN_LOCAL:uma rota de interface local RTN_BROADCAST:T{ uma rota de broadcast local (enviado como um broadcast) T} RTN_ANYCAST:T{ uma rota de broadcast local (enviado como um unicast) T} RTN_MULTICAST:uma rota de multicast RTN_BLACKHOLE:uma rota de perda de pacotes RTN_UNREACHABLE:um destino não alcançável RTN_PROHIBIT:uma rota de rejeição de pacotes RTN_THROW:continua a busca de roteamento em outra tabela RTN_NAT:uma regra de tradução de endereço de rede RTN_XRESOLVE:T{ refere\-se a um resolvedor externo (não implementado) T} .TE .TS tab(:); lb l. rtm_protocol:Origem da rota _ RTPROT_UNSPEC:desconhecida RTPROT_REDIRECT:T{ por um redirecionamento de ICMP (não usado atualmente) T} RTPROT_KERNEL:pelo kernel RTPROT_BOOT:durante a inicialização RTPROT_STATIC:pelo administrador .TE .sp 1 Valores maiores que \fBRTPROT_STATIC\fP não são interpretados pelo kernel, eles são apenas para informação do usuário. Eles podem ser usados para marcar a origem de uma informação de roteamento ou para distinguir entre múltiplos daemons de roteamento. Veja \fI\fP para os identificadores de daemons de roteamento que já são atribuídos. .IP \fIrtm_scope\fP é a distância ao destino: .TS tab(:); lb l. RT_SCOPE_UNIVERSE:rota global RT_SCOPE_SITE:T{ rota interior no sistema autônomo local T} RT_SCOPE_LINK:rota nesta ligação RT_SCOPE_HOST:rota no host local RT_SCOPE_NOWHERE:destino não existe .TE .sp 1 Os valores entre \fBRT_SCOPE_UNIVERSE\fP e \fBRT_SCOPE_SITE\fP são disponíveis para o usuário. .IP O \fIrtm_flags\fP tem os seguintes significados: .TS tab(:); lb l. RTM_F_NOTIFY:T{ se a rota muda, notifica o usuário via rtnetlink T} RTM_F_CLONED:a rota é clonada a partir de outra rota RTM_F_EQUALIZE:a multipath equalizer (not yet implemented) .TE .sp 1 \fIrtm_table\fP especifica a tabela de roteamento .TS tab(:); lb l. RT_TABLE_UNSPEC:uma tabela de roteamento não especificada RT_TABLE_DEFAULT:a tabela padrão RT_TABLE_MAIN:a tabela principal RT_TABLE_LOCAL:a tabela local .TE .sp 1 .\" Keep table on same page O usuário pode atribuir valores arbitrários entre \fBRT_TABLE_UNSPEC\fP e \fBRT_TABLE_DEFAULT\fP. .bp +1 .TS tab(:); c s s lb2 l2 l. Atributos rta_type:Tipo de valor:Descrição _ RTA_UNSPEC:\-:ignorado RTA_DST:ender. do protocolo:Ender. de destino da rota RTA_SRC:ender. do protocolo:Ender. da origem da rota RTA_IIF:int:Input interface index RTA_OIF:int:Output interface index RTA_GATEWAY:ender. do protocolo:o gateway da rota RTA_PRIORITY:int:Prioridade da rota RTA_PREFSRC:ender. do protocolo:Preferred source address RTA_METRICS:int:métrica da rota RTA_MULTIPATH::T{ Multipath nexthop data br (see below). T} RTA_PROTOINFO::No longer used RTA_FLOW:int:Route realm RTA_CACHEINFO:struct rta_cacheinfo:(veja também linux/rtnetlink.h) RTA_SESSION::No longer used RTA_MP_ALGO::No longer used RTA_TABLE:int:T{ Routing table ID; if set, .br rtm_table é ignorado T} RTA_MARK:int: RTA_MFC_STATS:struct rta_mfc_stats:(veja também linux/rtnetlink.h) RTA_VIA:struct rtvia:T{ Gateway in different AF (see below) T} RTA_NEWDST:ender. do protocolo:T{ Change packet destination address T} RTA_PREF:char:T{ RFC4191 IPv6 router preference (see below) T} RTA_ENCAP_TYPE:short:T{ Encapsulation type for .br lwtunnels (see below) T} RTA_ENCAP::Defined by RTA_ENCAP_TYPE RTA_EXPIRES:int:T{ Expire time for IPv6 routes (in seconds) T} .TE .IP \fBRTA_MULTIPATH\fP contains several packed instances of \fIstruct rtnexthop\fP together with nested RTAs (\fBRTA_GATEWAY\fP): .IP .in +4n .EX struct rtnexthop { unsigned short rtnh_len; /* Length of struct + length of RTAs */ unsigned char rtnh_flags; /* Flags (see linux/rtnetlink.h) */ unsigned char rtnh_hops; /* Nexthop priority */ int rtnh_ifindex; /* Interface index for this nexthop */ } .EE .in .IP There exist a bunch of \fBRTNH_*\fP macros similar to \fBRTA_*\fP and \fBNLHDR_*\fP macros useful to handle these structures. .IP .in +4n .EX struct rtvia { unsigned short rtvia_family; unsigned char rtvia_addr[0]; }; .EE .in .IP \fIrtvia_addr\fP is the address, \fIrtvia_family\fP is its family type. .IP \fBRTA_PREF\fP may contain values \fBICMPV6_ROUTER_PREF_LOW\fP, \fBICMPV6_ROUTER_PREF_MEDIUM\fP, and \fBICMPV6_ROUTER_PREF_HIGH\fP defined incw \fI\fP. .IP \fBRTA_ENCAP_TYPE\fP may contain values \fBLWTUNNEL_ENCAP_MPLS\fP, \fBLWTUNNEL_ENCAP_IP\fP, \fBLWTUNNEL_ENCAP_ILA\fP, or \fBLWTUNNEL_ENCAP_IP6\fP defined in \fI\fP. .IP \fBPreencha esses valores!\fP .TP \fBRTM_NEWNEIGH\fP, \fBRTM_DELNEIGH\fP, \fBRTM_GETNEIGH\fP Acrescenta, remove ou recebe informação sobre uma entrada de tabela de vizinhança (por exemplo, uma entrada ARP). A mensagem contém uma estrutura \fIndmsg\fP. .IP .EX struct ndmsg { unsigned char ndm_family; int ndm_ifindex; /* índice da interface */ __u16 ndm_state; /* estado */ __u8 ndm_flags; /* sinalizadores */ __u8 ndm_type; }; struct nda_cacheinfo { __u32 ndm_confirmed; __u32 ndm_used; __u32 ndm_updated; __u32 ndm_refcnt; }; .EE .IP \fIndm_state\fP é uma máscara de bits dos seguintes estados: .TS tab(:); lb l. NUD_INCOMPLETE:uma entrada atualmente resolvida de 'cache' NUD_REACHABLE:uma entrada confirmada de 'cache' funcionando NUD_STALE:uma entrada expirada do 'cache' NUD_DELAY:uma entrada aguardando por um temporizador NUD_PROBE:uma entrada de 'cache' que é retestada atualmente NUD_FAILED:uma entrada de 'cache' inválida NUD_NOARP:um dispositivo sem 'cache' de destino NUD_PERMANENT:uma entrada estática .TE .sp 1 Os \fIndm_flags\fP válidos são: .TS tab(:); lb l. NTF_PROXY:uma entrada de arp do proxy NTF_ROUTER:um roteador IPv6 .TE .sp 1 .\" FIXME . .\" document the members of the struct better A estrutura \fIrtaddr\fP tem os seguintes significados para o campo \fIrta_type\fP: .TS tab(:); lb l. NDA_UNSPEC:tipo desconhecido NDA_DST:a neighbor cache n/w layer destination address NDA_LLADDR:ender. vizinho da camada de ligação do 'cache' NDA_CACHEINFO:estatísticas do 'cache' .TE .sp 1 Se o campo \fIrta_type\fP é \fBNDA_CACHEINFO\fP, então segue o cabeçalho \fIstruct nda_cacheinfo\fP .TP \fBRTM_NEWRULE\fP, \fBRTM_DELRULE\fP, \fBRTM_GETRULE\fP Acrescenta, apaga ou recupera uma regra de roteamento. Carrega um \fIstruct rtmsg\fP .TP \fBRTM_NEWQDISC\fP, \fBRTM_DELQDISC\fP, \fBRTM_GETQDISC\fP Acrescenta, remove ou obtém uma disciplina de fila. A mensagem contém um \fIstruct tcmsg\fP e pode ser seguida por uma série de atributos. .IP .EX struct tcmsg { unsigned char tcm_family; int tcm_ifindex; /* índice de interface */ __u32 tcm_handle; /* manipula Qdisc */ __u32 tcm_parent; /* qdisc pai */ __u32 tcm_info; }; .EE .TS tab(:); c s s lb2 l2 l. Atributos rta_type:Tipo de valor:Descrição _ TCA_UNSPEC:\-:não\-especificado TCA_KIND:cadeia asciiz:nome da disciplina de fila TCA_OPTIONS:seqüência de bytes:Opções específicas do qdisc TCA_STATS:struct tc_stats:Estatísticas do qdisc TCA_XSTATS:qdisc\-specific:Module\-specific statistics TCA_RATE:struct tc_estimator:Limite de taxa .TE .sp 1 Além desses, são permitidos vários outros atributos específicos de módulos qdisc. Para maiores informações, veja os arquivos de inclusão apropriados. .TP \fBRTM_NEWTCLASS\fP, \fBRTM_DELTCLASS\fP, \fBRTM_GETTCLASS\fP Acrescenta, remove ou obtém uma classe de tráfego. Essas mensagens contêm um \fIstruct tcmsg\fP como descrito acima. .TP \fBRTM_NEWTFILTER\fP, \fBRTM_DELTFILTER\fP, \fBRTM_GETTFILTER\fP Acrescenta, remove ou recebe informações sobre um filtro de tráfego. Essas mensagens contém um \fIstruct tcmsg\fP como descrito acima. .SH VERSÕES \fBrtnetlink\fP é uma nova implementação do Linux 2.2. .SH BUGS Este página de manual é imcompleta. .SH "VEJA TAMBÉM" \fBcmsg\fP(3), \fBrtnetlink\fP(3), \fBip\fP(7), \fBnetlink\fP(7) .PP .SH TRADUÇÃO A tradução para português brasileiro desta página man foi criada por Rubens de Jesus Nogueira e André Luiz Fassone . .PP Esta tradução é uma documentação livre; leia a .UR https://www.gnu.org/licenses/gpl-3.0.html Licença Pública Geral GNU Versão 3 .UE ou posterior para as condições de direitos autorais. Nenhuma responsabilidade é aceita. .PP Se você encontrar algum erro na tradução desta página de manual, envie um e-mail para .MT debian-l10n-portuguese@lists.debian.org a lista de discussão de tradutores .ME .