.\" -*- coding: UTF-8 -*- '\" t .\" SPDX-License-Identifier: Linux-man-pages-1-para .\" .\" This man page is Copyright (C) 1999 Andi Kleen . .\" .\" 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 julho 2023" "Linux man\-pages 6.05.01" .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 IFLA_PERM_ADDRESS:ender. de hardware:T{ hardware address provided by device (since Linux 5.5) T} .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; /* Interface index */ __u16 ndm_state; /* State */ __u8 ndm_flags; /* Flags */ __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 .