libnl-3.9.0

Introdução ao libnl

A suíte "libnl" é uma coleção de bibliotecas que fornecem "APIs" para interfaces do núcleo Linux baseadas no protocolo "netlink".

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.1.

Informação do Pacote

Transferência Opcional

Instalação do libnl

Instale o "libnl" executando os seguintes comandos:

./configure --prefix=/usr    \
            --sysconfdir=/etc \
            --disable-static  &&
make
[Nota]

Nota

Se o comando make foi executado com várias tarefas paralelas habilitadas, ele poderá interromper o modo de terminal e causar alguns efeitos visuais divertidos. Na pior das hipóteses, esse problema possivelmente cause entradas geradas de teclado não exibidas na tela (mas você ainda consegue executar qualquer comando se conseguir digitá-lo corretamente). Execute o reset para corrigir esse problema.

Se desejar executar os testes, verifique se as seguintes opções estão habilitadas na configuração do núcleo e recompile o núcleo se necessário. Alguns deles possivelmente não sejam estritamente necessários, mas deveriam suportar uma cobertura completa de testes.

General setup --->
  -*- Namespaces support --->                                       [NAMESPACES]
    [*] User namespace                                                 [USER_NS]
    [*] Network namespace                                               [NET_NS]

[*] Networking support --->                                                [NET]
  Networking options --->
    [*]   TCP/IP networking                                               [INET]
    [*]     IP: advanced router                             [IP_ADVANCED_ROUTER]
    [*]       IP: policy routing                            [IP_MULTIPLE_TABLES]
    <*/M>   IP: tunneling                                             [NET_IPIP]
    <*/M>   IP: GRE demultiplexer                              [NET_IPGRE_DEMUX]
    <*/M>   IP: GRE tunnels over IP                                  [NET_IPGRE]
    <*/M>   Virtual (secure) IP: tunneling                           [NET_IPVTI]
    <*>     The IPv6 protocol --->                                        [IPV6]
      <*/M>   IPv6: IPv6-in-IPv4 tunnel (SIT driver)                  [IPV6_SIT]
      <*/M>   IPv6: IP-in-IPv6 tunnel (RFC2473)                    [IPV6_TUNNEL]
      [*]     IPv6: Multiple Routing Tables               [IPV6_MULTIPLE_TABLES]
    [*]   Network packet filtering framework (Netfilter) --->        [NETFILTER]
      Core Netfilter Configuration --->
        <*/M> Netfilter nf_tables support                            [NF_TABLES]
        [*]     Netfilter nf_tables netdev tables support     [NF_TABLES_NETDEV]
        {*/M}   Netfilter packet duplication support             [NF_DUP_NETDEV]
        <*/M>   Netfilter nf_tables netdev packet forwarding support
                                                           ...  [NFT_FWD_NETDEV]
    <*/M> 802.1d Ethernet Bridging                                      [BRIDGE]
    <*/M> 802.1Q/802.1ad VLAN Support                               [VLAN_8021Q]
    -*-   L3 Master device support                           [NET_L3_MASTER_DEV]

Device Drivers --->
  [*] Network device support --->                                   [NETDEVICES]
    [*]   Network core driver support                                 [NET_CORE]
    <*/M>   Bonding driver support                                     [BONDING]
    <*/M>   Dummy net driver support                                     [DUMMY]
    <*/M>   Intermediate Functional Block support                          [IFB]
    <*/M>   MAC-VLAN support                                           [MACVLAN]
    <*/M>     MAC-VLAN based tap driver                                [MACVTAP]
    <*/M>   IP-VLAN support                                             [IPVLAN]
    <*/M>   Virtual eXtensible Local Area Network (VXLAN)                [VXLAN]
    <*/M>   IEEE 802.1AE MAC-level encryption (MACsec)                  [MACSEC]
    <*/M>   Virtual ethernet pair device                                  [VETH]
    <*/M>   Virtual Routing and Forwarding (Lite)                      [NET_VRF]

Para testar os resultados, emita: make check.

Agora, como o(a) usuário(a) "root":

make install

Se você desejar instalar a documentação da "API", [então] como o(a) usuário(a) "root":

mkdir -vp /usr/share/doc/libnl-3.9.0 &&
tar -xf ../libnl-doc-3.9.0.tar.gz --strip-components=1 --no-same-owner \
   -C  /usr/share/doc/libnl-3.9.0

Explicações do Comando

--disable-static: Essa chave impede a instalação das versões estáticas das bibliotecas.

--disable-cli: Use esse parâmetro se não quiser instalar ferramentas "CLI" fornecidas pelo pacote.

Conteúdo

Aplicativos Instalados: genl-ctrl-list, idiag-socket-details, nl-class-add, nl-class-delete, nl-classid-lookup, nl-class-list, nl-cls-add, nl-cls-delete, nl-cls-list, nl-link-list, nl-pktloc-lookup, nl-qdisc-add, nl-qdisc-delete, nl-qdisc-list e quarenta e oito (48) outros aplicativos auxiliares com prefixos "nl-" e "nf-"
Bibliotecas Instaladas: libnl-3.so, libnl-cli-3.so, libnl-genl-3.so, libnl-idiag-3.so, libnl-nf-3.so, libnl-route-3.so, libnl-xfrm-3.so e módulos "CLI" sob a árvore "/usr/lib/libnl/cli"
Diretórios Instalados: /etc/libnl, /usr/include/libnl3, /usr/lib/libnl e /usr/share/doc/libnl-3.9.0

Descrições Curtas

genl-ctrl-list

consulta o controlador "Generic Netlink" no núcleo e imprime uma lista de todas as famílias "Generic Netlink" registradas, incluindo a versão da interface que tenha sido registrada

nl-class-add

adiciona, atualiza ou substitui Classes de Tráfego

nl-class-delete

deleta Classes de Tráfego

nl-classid-lookup

é usado para resolver nomes de "qdisc"/classe para valores "classid" e vice-versa

nl-class-list

lista Classes de Tráfego

nl-cls-add

adiciona um classificador

nl-cls-delete

deleta um classificador

nl-cls-list

lista classificadores

nl-link-list

despeja atributos de link

nl-pktloc-lookup

permite a consulta de definições de localização de pacotes

nl-qdisc-add

adiciona disciplinas de filas ("qdiscs") no núcleo

nl-qdisc-delete

deleta disciplinas de filas ("qdiscs") no núcleo

nl-qdisc-list

lista disciplinas de filas ("qdiscs") no núcleo

libnl*-3.so

Essas bibliotecas contêm funções de "API" usadas para acessar interfaces "Netlink" no núcleo Linux