Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Einstellungen auf dem Host-Betriebssystem konfigurieren

Dieses Kapitel enthält Informationen dazu, wie Sie die Einstellungen auf dem Host-Betriebssystem optimieren, um erweiterte Funktionen zu aktivieren oder die cRPD-Funktionalität zu erweitern.

Konfiguration der ARP-Skalierung

Die maximale ARP-Eintragsnummer wird durch den Linux-Hostkernel gesteuert. Sie können die ARP- oder NDP-Einstiegslimits mit dem sysctl Befehl auf dem Linux-Host anpassen.

So passen Sie beispielsweise die maximalen ARP-Einträge mit IPv4 an:

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

So passen Sie beispielsweise die maximalen NDP-Einträge mit IPv6 an:

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

IGMP-Mitgliedschaft unter Linux

Um eine größere Anzahl von OSPFv2/v3-Nachbarschaften mit cRPD zuzulassen, erhöhen Sie das IGMP-Mitgliedschaftslimit:

Erhöhen Sie das IGMP-Mitgliedschaftslimit.

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

Kernel-Module

Sie müssen die folgenden Kernelmodule auf den Host laden, bevor Sie cRPD im Layer-3-Modus bereitstellen. Diese Module sind in der Regel in linux-modules-extra oder-Paketen kernel-modules-extra erhältlich. Führen Sie die folgenden Befehle aus, um die Kernelmodule hinzuzufügen.

  • 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

MPLS konfigurieren

So konfigurieren Sie MPLS im Linux-Kernel:

  1. Laden Sie die MPLS-Module in den Container mit modprobe oder insmod:

    root@crpd-ubuntu3:~# modprobe mpls_iptunnel

    root@crpd-ubuntu3:~# modprobe mpls_router

    root@crpd-ubuntu3:~# modprobe ip_tunnel

  2. Überprüfen Sie die im Host-Betriebssystem geladenen MPLS-Module.

Hashfeldauswahl für ECMP Load Balancing unter Linux

Sie können die ECMP-Hash-Richtlinie (fib_multipath_hash_policy) sowohl für weitergeleiteten als auch für lokal generierten Datenverkehr (IPv4/IPv6) auswählen.

IPv4-Datenverkehr

  1. Standardmäßig verwendet der Linux-Kernel die L3-Hash-Richtlinie für den Lastenausgleich des IPv4-Datenverkehrs. Beim L3-Hashing werden die folgenden Informationen verwendet:
    • Quell-IP-Adresse
    • Ziel-IP-Adresse

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

  2. Führen Sie den folgenden Befehl aus, um den IPv4-Datenverkehr mithilfe der Layer-4-Hash-Richtlinie auszugleichen. Layer-4-Hashing sorgt für einen Lastenausgleich des Datenverkehrs auf der Grundlage der folgenden Informationen:
    • Quell-IP-Adresse
    • Ziel-IP-Adresse
    • Quell-Portnummer
    • Ziel-Portnummer
    • Protokoll

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

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

  3. Führen Sie den folgenden Befehl aus, um L3-Hashing für den inneren Paketheader (IPv4/IPv6 über IPv4 GRE) zu verwenden.

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

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

    Die Richtlinie verwendet standardmäßig L3-Hashing für das weitergeleitete Paket, wie im Standardansatz für IPv4-Datenverkehr beschrieben.

    IPv6-Datenverkehr

  4. Standardmäßig verwendet der Linux-Kernel die L3-Hash-Richtlinie für den Lastenausgleich des IPv6-Datenverkehrs. Die L3-Hashrichtlinie führt einen Lastenausgleich des Datenverkehrs auf der Grundlage der folgenden Informationen durch:
    • Quell-IP-Adresse
    • Ziel-IP-Adresse
    • Flow-Label
    • Nächster Header (Protokoll)

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

  5. Sie können die Layer-4-Hash-Richtlinie verwenden, um den IPv6-Datenverkehr auszugleichen. Die Layer-4-Hash-Richtlinie sorgt für einen Lastenausgleich des Datenverkehrs auf der Grundlage der folgenden Informationen:
    • Quell-IP-Adresse
    • Ziel-IP-Adresse
    • Quell-Portnummer
    • Ziel-Portnummer
    • Nächster Header (Protokoll)

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

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

  6. Führen Sie den folgenden Befehl aus, um L3-Hashing für den inneren Paketheader (IPv4/IPv6 über IPv4 GRE) zu verwenden.

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

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

    MPLS

  7. Der Linux-Kernel kann den nächsten Hop einer Multipath-Route mit den folgenden Parametern auswählen:
    • Label-Stack bis zur Grenze von MAX_MP_SELECT_LABELS (4)
    • Quell-IP-Adresse
    • Ziel-IP-Adresse
    • Protokoll des inneren IPv4/IPv6-Headers

    Erkennung von Nachbarn

  8. Führen Sie den folgenden Befehl aus, um die Gültigkeit (fehlgeschlagen/unvollständig/nicht aufgelöst) des Nachbareintrags anzuzeigen.

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

    Standardmäßig werden die Pakete mit dem root@host:~# sysctl -n net.ipv4.fib_multipath_use_neigh 0 Befehl an Next-Hops weitergeleitet.

wECMP mit BGP unter Linux

Unequal Cost Load Balancing ist eine Möglichkeit, den Datenverkehr ungleich auf verschiedene Pfade zu verteilen (einschließlich des Multipath-Next-Hop). wenn die Pfade unterschiedliche Bandbreitenkapazitäten haben. Das BGP-Protokoll versieht jede Route/jeden Pfad mit der Bandbreite der Verbindung, die die Link Bandwidth Extended Community verwendet. Die Bandbreite des entsprechenden Links kann als Teil dieser Linkbandbreiten-Community codiert werden. RPD verwendet diese Bandbreiteninformationen jedes Pfades, um die Multipath-Next-Hops mit entsprechenden linux::weights zu programmieren. Ein Next-Hop mit linux::weight ermöglicht es dem Linux-Kernel, den Datenverkehr asymmetrisch auszugleichen.

BGP bildet einen Multipath-Next-Hop und verwendet die Bandbreitenwerte der einzelnen Pfade, um den Anteil des Datenverkehrs zu ermitteln, den jeder der Next-Hops, die den ECMP-Next-Hop bilden, empfangen soll. Die in der Verbindungsbandbreite angegebenen Bandbreitenwerte müssen nicht die absolute Bandbreite der Schnittstelle sein. Diese Werte müssen die relative Bandbreite eines Pfads vom anderen widerspiegeln. Weitere Informationen finden Sie unter Grundlegendes zum Definieren von BGP-Communitys und erweiterten Communitys und zur Bewertung von BGP-Communitys und erweiterten Communitys unter Übereinstimmungsbedingungen für Routing-Richtlinien.

Stellen Sie sich ein Netzwerk mit R1 vor, das Pfade zu gleichen Kosten von R2 und R3 zu einem Ziel R4 erhält. Wenn Sie 90 % des Lastenausgleichsdatenverkehrs über den Pfad R1-R2 und die restlichen 10 % des Datenverkehrs über den Pfad R1-R3 mit wECMP senden möchten. Sie müssen die von den beiden BGP-Peers empfangenen Routen mit der Linkbandbreiten-Community kennzeichnen, indem Sie .policy-options

  1. Konfigurieren Sie die Richtlinienanweisung.

    root@host> show configuration policy-options

  2. RPD verwendet die Bandbreitenwerte, um den Datenverkehr ungleichmäßig mit den mehreren Next-Hops auf mehreren Pfaden auszugleichen.

    root@host> show route 100.100.100.100 detail

  3. Der Linux-Kernel unterstützt ungleiches Load Balancing, indem er jedem nächsten Hop linux::weights zuweist.

    root@host:/# ip route show 100.100.100.100

    Die linux::weights sind für Linux als Division der ganzen Zahl 255 (der Maximalwert eines vorzeichenlosen Zeichens) programmiert. Jeder Next-Hop im ECMP-Next-Hop erhält ein linux::weight, das proportional zu seinem Anteil an der Bandbreite ist.

Aktivieren von SRv6 auf cRPD

Sie können die IPv6 SR-Funktion auf cRPD mit dem folgenden sysctl-Befehl aktivieren:

  1. Aktivieren Sie SR.

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

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

  2. Konfigurieren Sie den folgenden Befehl, um SRv6 auf der eth0-Schnittstelle zu aktivieren.

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

  3. Konfigurieren Sie den folgenden Befehl, um die DT4-SIDs festzulegen.

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