libnl-3.11.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.4.

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 comando 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. Algumas delas possivelmente não sejam estritamente necessárias, 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, como o(a) usuário(a) root:

mkdir -vp /usr/share/doc/libnl-3.11.0 &&
tar -xf ../libnl-doc-3.11.0.tar.gz --strip-components=1 --no-same-owner \
   -C  /usr/share/doc/libnl-3.11.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.11.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 enfileiramentos (qdiscs) no núcleo

nl-qdisc-delete

deleta disciplinas de enfileiramentos (qdiscs) no núcleo

nl-qdisc-list

lista disciplinas de enfileiramentos (qdiscs) no núcleo

libnl*-3.so

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