Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Configuração de configurações no sistema operacional host

Este capítulo fornece informações sobre o ajuste de configurações no sistema operacional host para permitir recursos avançados ou aumentar a escala da funcionalidade cRPD.

Configuração da escala de ARP

O número máximo de entrada de ARP é controlado pelo kernel de host do Linux. Se houver um grande número de vizinhos, você pode precisar ajustar as limitações de entrada de ARP no host Linux. Existem opções no sysctl comando no host Linux para ajustar os limites de entrada de ARP ou NDP.

Por exemplo, para ajustar as entradas ARP máximas usando IPv4:

root@host:~# sysctl -w net.ipv4.neigh.default.gc_thresh1=4096

root@host:~# sysctl -w net.ipv4.neigh.default.gc_thresh2=8192

root@host:~# sysctl -w net.ipv4.neigh.default.gc_thresh3=8192

Por exemplo, para ajustar as entradas ND máximas usando IPv6:

root@host:~# sysctl -w net.ipv6.neigh.default.gc_thresh1=4096

root@host:~# sysctl -w net.ipv6.neigh.default.gc_thresh2=8192

root@host:~# sysctl -w net.ipv6.neigh.default.gc_thresh3=8192

Tunning OSPF sob cRPD

Para permitir mais número de adjacências OSPFv2/v3 com cRPD, aumente o limite de associação ao IGMP:

Aumente o limite de associação para IGMP.

root@host:~# sysctl -w net.ipv4.igmp_max_memberships=1000

Configuração do MPLS

Para configurar o MPLS no kernel do Linux:

  1. Carregue os módulos MPLS no contêiner usando modprobe ou insmod :

    root@crpd-ubuntu3:~# modprobe mpls_iptunnel

    root@crpd-ubuntu3:~# modprobe mpls_router

    root@crpd-ubuntu3:~# modprobe ip_tunnel

  2. Verifique os módulos MPLS carregados no sistema operacional host.
  3. Depois de carregar o mpls_router host, configure os seguintes comandos para ativar o MPLS na interface.

    root@host:~# sysctl -w net.mpls.platform_labels=1048575

Adicionando rotas MPLS

As mensagens de Netlink são usadas para comunicar (adicionar/aprender) as rotas com o kernel linux. As rotas MPLS são adicionadas ao kernel usando iproute2 um utilitário que usa internamente o soquete netlink para atualizar o kernel. Para adicionar rotas MPLS para hospedar usando o iproute2 utilitário:

  1. Habilite mpls na interface de rede.

    root@host:/# cli

    root@host> show interfaces routing

  2. Execute o comando a seguir para adicionar as rotas mpls ao sistema operacional host.

    root@host:~# ip -f mpls route add 100 as 200/300 via inet 172.20.0.2 dev br-a3a2fe3ae8e3

  3. Execute o comando a seguir para visualizar as entradas de fib MPLS no Linux.

    root@host:~# ip -f mpls route show

Adicionar rotas com o rótulo MPLS

Para adicionar rotas ao host encapsulando os pacotes com o rótulo MPLS usando o iproute2 utilitário:

  1. Execute o comando a seguir para encapsular os pacotes para host OS.

    root@host:~# ip route add 172.20.0.0/30 encap mpls 200 via inet 172.20.0.2 dev br-a3a2fe3ae8e3

  2. Execute o comando a seguir para ver as rotas mpls.

    root@host:~# ip route show

Criação de um dispositivo VRF

Para instanciar um dispositivo VRF e associá-lo a uma tabela:

  1. Execute o comando a seguir para criar um dispositivo VRF.

    root@host:~# ip link add dev test1 type vrf table 11

  2. Execute o comando a seguir para visualizar os VRFs criados.

    root@host:~# ip [-d] link show type vrf

  3. Execute o comando a seguir para ver a lista de VRFs no sistema operacional de host.

    root@host:~# ip vrf show

Atribuição de uma interface de rede a um VRF

As interfaces de rede são atribuídas a um VRF atribuindo o netdevice a um dispositivo VRF. As rotas conectadas e locais são automaticamente movidas para a tabela associada ao dispositivo VRF.

Para atribuir uma interface de rede a um VRF:

Execute o comando a seguir para atribuir uma interface.

root@host:~# ip link set dev <name> master <name>

root@host:~# ip link set dev eth1 vrf test

Visualização dos dispositivos atribuídos ao VRF

Para ver os dispositivos:

Execute o comando a seguir para visualizar os dispositivos atribuídos a um VRF.

root@host:~# ip link show vrf <name>

root@host:~# ip link show vrf red

Visualização de entradas de vizinhos para VRF

Listar as entradas vizinhas associadas a dispositivos escravizados a um dispositivo VRF:

Execute o comando a seguir para adicionar a opção principal ao comando ip:

root@host:~# ip -6 neigh show vrf <NAME>

root@host:~# ip neigh show vrf red

root@host:~# ip -6 neigh show vrf red

Visualização de endereços para UM VRF

Mostrar endereços para interfaces associadas a um VRF:

Execute o comando a seguir para adicionar a opção principal ao comando ip:

root@host:~# ip addr show vrf <NAME>

root@host:~# ip addr show vrf red

Rotas de visualização para um VRF

Para visualizar rotas para um VRF:

  1. Execute o comando a seguir para visualizar a tabela de rotas IPv6 associada ao dispositivo VRF:

    root@host:~# ip -6 route show vrf NAME

    root@host:~# ip -6 route show table ID

  2. Execute o comando a seguir para fazer uma busca de rota por um dispositivo VRF:

    root@host:~# ip -6 route get vrf <NAME> <ADDRESS>

    root@host:~# ip route get 192.0.2.1 vrf red

    root@host:~# ip -6 route get oif <NAME> <ADDRESS>

    root@host:~# ip -6 route get 2001:db8::32 vrf red

  3. Execute o comando a seguir para visualizar as rotas IPv4 em um dispositivo VRF:

    root@host:~# ip route list table <table-id>

Removendo a interface de rede de um VRF

Interfaces de rede são removidas de um VRF quebrando a escravidão para o dispositivo VRF

Execute o comando a seguir para remover a interface de rede:

root@host:~# ip link set dev NAME nomaster

Após a remoção da interface de rede, as rotas conectadas são movidas para a tabela padrão e as entradas locais são movidas para a tabela local.

Seleção de campo de hash para balanceamento de carga de ECMP no Linux

Você pode selecionar a política de hash ECMP (fib_multipath_hash_policy) para tráfego encaminhado e gerado localmente (IPv4/IPv6).

Tráfego IPv4

  1. Por padrão, o kernel do Linux usa a política de hash de Camada 3 para carregar o tráfego IPv4. O hashing da camada 3 usa as seguintes informações:
    • Endereço IP de origem
    • Endereço IP de destino

    root@host:~# sysctl -n net.ipv4.fib_multipath_hash_policy 0

  2. Execute o comando a seguir para carregar o equilíbrio do tráfego IPv4 usando a política de hash de Camada 4. A carga de hashing da Camada 4 equilibra o tráfego com base nas seguintes informações:
    • Endereço IP de origem
    • Endereço IP de destino
    • Número da porta de origem
    • Número da porta de destino
    • Protocolo

    root@host:~# sysctl -w net.ipv4.fib_multipath_hash_policy=1

    root@host:~# sysctl -n net.ipv4.fib_multipath_hash_policy 1

  3. Execute o comando a seguir para usar o hashing de Camada 3 no cabeçalho interno do pacote (IPv4/IPv6 sobre IPv4 GRE)

    root@host:~# sysctl -w net.ipv6.fib_multipath_hash_policy=2

    root@host:~# sysctl -n net.ipv6.fib_multipath_hash_policy 2

    A política é padrão para o hashing de Camada 3 no pacote encaminhado conforme descrito na abordagem padrão para tráfego IPv4.

    Tráfego IPv6

  4. Por padrão, o kernel do Linux usa a política de hash de Camada 3 para carregar o tráfego IPv6. A carga de política de hash de Camada 3 equilibra o tráfego com base nas seguintes informações:
    • Endereço IP de origem
    • Endereço IP de destino
    • Rótulo de fluxo
    • Próximo cabeçalho (Protocolo)

    root@host:~# sysctl -n net.ipv6.fib_multipath_hash_policy 0

  5. Você pode usar a política de hash de Camada 4 para carregar o tráfego IPv6. A carga de política de hash da Camada 4 equilibra o tráfego com base nas seguintes informações:
    • Endereço IP de origem
    • Endereço IP de destino
    • Número da porta de origem
    • Número da porta de destino
    • Próximo cabeçalho (Protocolo)

    root@host:~# sysctl -w net.ipv6.fib_multipath_hash_policy=1

    root@host:~# sysctl -n net.ipv6.fib_multipath_hash_policy 1

  6. Execute o comando a seguir para usar o hashing de Camada 3 no cabeçalho interno do pacote (IPv4/IPv6 sobre IPv4 GRE).

    root@host:~# sysctl -w net.ipv6.fib_multipath_hash_policy=2

    root@host:~# sysctl -n net.ipv6.fib_multipath_hash_policy 2

    MPLS

  7. O kernel linux pode selecionar o próximo salto de uma rota multicaminho usando os seguintes parâmetros:
    • pilha de rótulos até o limite de MAX_MP_SELECT_LABELS (4)
    • endereço IP de origem
    • endereço IP de destino
    • protocolo do cabeçalho IPv4/IPv6 interno

    Detecção de vizinhos

  8. Execute o comando a seguir para ver a liveness (falha/incompleta/não resolvida) da entrada do vizinho, o que ajuda no encaminhamento dos pacotes para o próximo salto.

    root@host:~# sysctl -w net.ipv4.fib_multipath_use_neigh=1

    Por padrão, os pacotes são encaminhados para next-hops usando o root@host:~# sysctl -n net.ipv4.fib_multipath_use_neigh 0 comando.

wECMP usando BGP no Linux

O balanceamento desigual de carga de custo é uma maneira de distribuir tráfego de forma desigual entre diferentes caminhos (compreendendo o next-hop multicaminho); quando os caminhos têm diferentes recursos de largura de banda. O protocolo BGP alcança isso marcando cada rota/caminho com a largura de banda do link usando a comunidade estendida de largura de banda do link. A largura de banda do link correspondente pode ser codificada como parte desta comunidade de largura de banda de link. O RPD usa essas informações de largura de banda de cada caminho para programar os próximos saltos multicaminho com linux apropriado::pesos. Um próximo salto com linux:: o peso permite que o kernel do linux carregue o equilíbrio do tráfego de forma assimétrica.

O BGP forma um next-hop multicaminho e usa os valores de largura de banda de caminhos individuais para descobrir a proporção de tráfego que cada um dos próximos saltos que formam o next-hop do ECMP deve receber. Os valores de largura de banda especificados na largura de banda do link não precisam ser a largura de banda absoluta da interface. Esses valores precisam refletir a largura de banda relativa de um caminho do outro. Para obter mais informações, veja Como definir comunidades BGP e comunidades estendidas e como as comunidades BGP e comunidades estendidas são avaliadas em condições de correspondência de políticas de roteamento.

Considere uma rede com R1 recebendo caminhos de custo igual de R2 e R3 para um R4 de destino; se você quiser enviar 90% do tráfego equilibrado de carga pelo caminho R1-R2 e os 10% restantes do tráfego pelo caminho R1-R3 usando o wECMP, você precisa marcar rotas recebidas dos dois pares BGP com a comunidade de largura de banda de link configurando policy-options.

  1. Configure a declaração de política.

    root@host> show configuration policy-options

  2. O RPD usa os valores de largura de banda para equilibrar de forma desigual o tráfego com os próximos saltos de caminho múltiplos.

    root@host> show route 100.100.100.100 detail

  3. O kernel linux oferece suporte a balanceamento de carga desigual, atribuindo linux::pesos para cada próximo salto.

    root@host:/# ip route show 100.100.100.100

    Os pesos linux são programados para linux como divisões do inteiro 255 (o valor máximo de um caractere não assinado). Cada próximo salto no next-hop do ECMP recebe um linux:peso proporcional à sua parte da largura de banda.

Habilite o SRv6 no cRPD

Você pode habilitar o recurso de roteamento por segmentos IPv6 no cRPD usando o seguinte comando sysctl:

  1. Para viabilizar o roteamento por segmentos.

    root@host:~# sysctl net.ipv6.conf.all.seg6_enabled=1

    root@host:~# sysctl net.ipv6.conf.all.forwarding=1

  2. Configure o comando a seguir para habilitar o SRv6 na interface eth0.

    root@host:~# sysctl net.ipv6.conf.eth0.seg6_enabled=1

  3. Configure o comando a seguir para definir os SIDs DT4.

    root@host:~# sysctl -wq net.vrf.strict_mode=1