Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Definir configurações no sistema operacional host

Este capítulo fornece informações sobre como ajustar as configurações no sistema operacional host para habilitar recursos avançados ou aumentar a escala da funcionalidade do cRPD.

Configurar o dimensionamento ARP

O número máximo de entrada ARP é controlado pelo kernel do host Linux. Você pode ajustar os limites de entrada ARP ou NDP usando o sysctl comando no host Linux.

Por exemplo, para ajustar o máximo de entradas ARP 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 o máximo de entradas NDP 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

Associação IGMP no Linux

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

Aumente o limite de membros do IGMP.

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

Módulos do kernel

Você precisa carregar os seguintes módulos de kernel no host antes de implantar o cRPD no modo de Camada 3. Esses módulos geralmente estão disponíveis em linux-modules-extra ou kernel-modules-extra pacotes. Execute os comandos a seguir para adicionar os módulos do kernel.

  • modprobe tun

  • modprobe fou

  • modprobe fou6

  • modprobe ipip

  • modprobe ip_tunnel

  • modprobe ip6_tunnel

  • modprobe mpls_gso

  • modprobe mpls_router

  • modprobe mpls_iptunnel

  • modprobe vrf

  • modprobe vxlan

Configurar MPLS

Para configurar o MPLS no kernel Linux:

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

    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.

Seleção de campo de hash para balanceamento de carga 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 Linux usa a política de hash L3 para balancear a carga do tráfego IPv4. O hash L3 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 balancear a carga do tráfego IPv4 usando a política de hash de Camada 4. O hashing de camada 4 balanceia a carga do 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 hash L3 no cabeçalho do pacote interno (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

    O padrão da política é o hash L3 no pacote encaminhado, conforme descrito na abordagem padrão para o tráfego IPv4.

    Tráfego IPv6

  4. Por padrão, o kernel Linux usa a política de hash L3 para balancear a carga do tráfego IPv6. A política de hash L3 balanceia a carga do 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 balancear a carga do tráfego IPv6. A política de hash de Camada 4 balanceia 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 hash L3 no cabeçalho do pacote interno (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 multipath 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 exibir a atividade (falha/incompleta/não resolvida) da entrada vizinha.

    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 de carga de custo desigual é uma maneira de distribuir o tráfego de forma desigual entre diferentes caminhos (compreendendo o próximo salto multipath); quando os caminhos têm recursos de largura de banda diferentes. O protocolo BGP marca 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 dessa comunidade de largura de banda do link. O RPD usa essas informações de largura de banda de cada caminho para programar os próximos hops multipath com linux::weights apropriados. Um next-hop com linux::weight permite que o kernel Linux balanceie a carga do tráfego de forma assimétrica.

O BGP forma um próximo salto multipath e usa os valores de largura de banda de caminhos individuais para descobrir a proporção de tráfego que cada um dos next-hops que formam o next-hop 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 em relação ao outro. Para obter detalhes, consulte Noções básicas sobre 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ítica de roteamento.

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

  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 hops de vários caminhos.

    root@host> show route 100.100.100.100 detail

  3. O kernel Linux suporta balanceamento de carga desigual atribuindo linux::weights para cada próximo salto.

    root@host:/# ip route show 100.100.100.100

    Os linux::weights são programados para linux como divisões do inteiro 255 (o valor máximo de um caractere sem sinal). Cada próximo salto no ECMP next-hop recebe um linux::weight proporcional à sua participação na largura de banda.

Habilitar SRv6 no cRPD

Você pode habilitar o recurso IPv6 SR no cRPD usando o seguinte comando sysctl:

  1. Habilite o SR.

    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