Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Configuration des paramètres sur le système d’exploitation hôte

Ce chapitre fournit des informations sur le réglage des paramètres sur le système d’exploitation hôte afin d’activer des fonctionnalités avancées ou d’augmenter l’échelle de la fonctionnalité cRPD.

Configuration de la mise à l’échelle ARP

Le nombre maximal d’entrées ARP est contrôlé par le noyau hôte Linux. S’il y a un grand nombre de voisins, vous devrez peut-être ajuster les limites d’entrée ARP sur l’hôte Linux. Il existe des options dans la sysctl commande sur l’hôte Linux pour ajuster les limites d’entrée ARP ou NDP.

Par exemple, pour ajuster le nombre maximal d’entrées ARP à l’aide d’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

Par exemple, pour ajuster le nombre maximal d’entrées ND à l’aide d’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

Réglage d’OSPF sous cRPD

Pour autoriser un plus grand nombre de contiguïtés OSPFv2/v3 avec cRPD, augmentez la limite d’adhésion à IGMP :

Augmenter la limite d’adhésion à l’IGMP.

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

Configuration de MPLS

Pour configurer MPLS dans le noyau Linux :

  1. Chargez les modules MPLS dans le conteneur à l’aide modprobe de ou insmod :

    root@crpd-ubuntu3:~# modprobe mpls_iptunnel

    root@crpd-ubuntu3:~# modprobe mpls_router

    root@crpd-ubuntu3:~# modprobe ip_tunnel

  2. Vérifiez que les modules MPLS sont chargés dans le système d’exploitation hôte.
  3. Après avoir chargé le mpls_router sur l’hôte, configurez les commandes suivantes pour activer MPLS sur l’interface.

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

Ajout de routes MPLS

Les messages Netlink sont utilisés pour communiquer (ajouter/apprendre) les routes avec le noyau Linux. Les routes MPLS sont ajoutées au noyau à l’aide d’un utilitaire qui utilise en interne le socket netlink pour mettre à iproute2 jour le noyau. Pour ajouter des routes MPLS à l’hôte à l’aide de l’utilitaire iproute2 :

  1. Activez mpls sur l’interface réseau.

    root@host:/# cli

    root@host> show interfaces routing

  2. Exécutez la commande suivante pour ajouter les routes MPLS au système d’exploitation hôte.

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

  3. Exécutez la commande suivante pour afficher les entrées de fib MPLS sous Linux.

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

Ajout de routes avec étiquette MPLS

Pour ajouter des routes à l’hôte en encapsulant les paquets avec une étiquette MPLS à l’aide de l’utilitaire iproute2 :

  1. Exécutez la commande suivante pour encapsuler les paquets dans le système d’exploitation hôte.

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

  2. Exécutez la commande suivante pour afficher les routes MPLS.

    root@host:~# ip route show

Création d’un dispositif VRF

Pour instancier un périphérique VRF et l’associer à une table :

  1. Exécutez la commande suivante pour créer un périphérique VRF.

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

  2. Exécutez la commande suivante pour afficher les VRF créés.

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

  3. Exécutez la commande suivante pour afficher la liste des VRF dans le système d’exploitation hôte.

    root@host:~# ip vrf show

Affectation d’une interface réseau à un VRF

Les interfaces réseau sont affectées à un VRF en affectant le netdevice à un périphérique VRF. Les routes connectées et locales sont automatiquement déplacées vers la table associée à l’appareil VRF.

Pour affecter une interface réseau à un VRF :

Exécutez la commande suivante pour affecter une interface.

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

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

Affichage des appareils affectés au VRF

Pour afficher les appareils :

Exécutez la commande suivante pour afficher les périphériques affectés à un VRF.

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

root@host:~# ip link show vrf red

Affichage des entrées voisines dans VRF

Pour répertorier les entrées voisines associées aux périphériques asservis à un périphérique VRF :

Exécutez la commande suivante pour ajouter l’option principale à la commande ip :

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

root@host:~# ip neigh show vrf red

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

Affichage des adresses d’un VRF

Pour afficher les adresses des interfaces associées à un VRF :

Exécutez la commande suivante pour ajouter l’option principale à la commande ip :

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

root@host:~# ip addr show vrf red

Affichage des itinéraires pour un VRF

Pour afficher les itinéraires d’un VRF :

  1. Exécutez la commande suivante pour afficher la table des routes IPv6 associée au périphérique VRF :

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

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

  2. Exécutez la commande suivante pour effectuer une recherche d’itinéraire pour un périphérique 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. Exécutez la commande suivante pour afficher les routes IPv4 dans un périphérique VRF :

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

Suppression de l’interface réseau d’un VRF

Les interfaces réseau sont supprimées d’un VRF en brisant l’asservissement du dispositif VRF

Exécutez la commande suivante pour supprimer l’interface réseau :

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

Après la suppression de l’interface réseau, les routes connectées sont déplacées vers la table par défaut et les entrées locales sont déplacées vers la table locale.

Sélection des champs de hachage pour l’équilibrage de charge ECMP sous Linux

Vous pouvez sélectionner la stratégie de hachage ECMP () pour le trafic transféré et généré localement (fib_multipath_hash_policyIPv4/IPv6).

Trafic IPv4

  1. Par défaut, le noyau Linux utilise la stratégie de hachage de couche 3 pour équilibrer la charge du trafic IPv4. Le hachage de couche 3 utilise les informations suivantes :
    • Adresse IP source
    • Adresse IP de destination

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

  2. Exécutez la commande suivante pour équilibrer la charge du trafic IPv4 à l’aide de la stratégie de hachage de couche 4. Le hachage de couche 4 équilibre la charge du trafic en fonction des informations suivantes :
    • Adresse IP source
    • Adresse IP de destination
    • Numéro de port source
    • Numéro de port de destination
    • Protocole

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

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

  3. Exécutez la commande suivante pour utiliser le hachage de couche 3 sur l’en-tête interne du paquet (IPv4/IPv6 sur IPv4 GRE)

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

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

    La stratégie utilise par défaut le hachage de couche 3 sur le paquet transféré, comme décrit dans l’approche par défaut pour le trafic IPv4.

    Trafic IPv6

  4. Par défaut, le noyau Linux utilise la stratégie de hachage de couche 3 pour équilibrer la charge du trafic IPv6. La stratégie de hachage de couche 3 équilibre la charge du trafic en fonction des informations suivantes :
    • Adresse IP source
    • Adresse IP de destination
    • Étiquette de flux
    • En-tête suivant (Protocole)

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

  5. Vous pouvez utiliser la stratégie de hachage de couche 4 pour équilibrer la charge du trafic IPv6. La stratégie de hachage de couche 4 équilibre la charge du trafic en fonction des informations suivantes :
    • Adresse IP source
    • Adresse IP de destination
    • Numéro de port source
    • Numéro de port de destination
    • En-tête suivant (Protocole)

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

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

  6. Exécutez la commande suivante pour utiliser le hachage de couche 3 sur l’en-tête interne du paquet (IPv4/IPv6 sur 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. Le noyau Linux peut sélectionner le saut suivant d’une route à chemins multiples à l’aide des paramètres suivants :
    • pile d’étiquettes jusqu’à la limite de MAX_MP_SELECT_LABELS (4)
    • Adresse IP source
    • Adresse IP de destination
    • de l’en-tête interne IPv4/IPv6

    Détection des voisins

  8. Exécutez la commande suivante pour afficher la vivacité (échec/incomplet/non résolu) de l’entrée voisine, ce qui facilite le transfert des paquets vers next-hops.

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

    Par défaut, les paquets sont transférés vers next-hops à l’aide de la root@host:~# sysctl -n net.ipv4.fib_multipath_use_neigh 0 commande.

wECMP utilisant BGP sous Linux

L’équilibrage de charge à coûts inégaux est un moyen de répartir le trafic de manière inégale entre différents chemins (comprenant le prochain saut multi-chemins) ; lorsque les chemins ont des capacités de bande passante différentes. Le protocole BGP y parvient en marquant chaque route/chemin avec la bande passante de la liaison à l’aide de la communauté étendue de bande passante de liaison. La bande passante de la liaison correspondante peut être encodée dans le cadre de cette communauté de bande passante de liaison. RPD utilise ces informations de bande passante de chaque chemin pour programmer les sauts suivants multichemins avec linux ::weights appropriés. Un next-hop avec linux ::weight permet au noyau linux d’équilibrer la charge du trafic de manière asymétrique.

BGP forme un next-hop à chemins multiples et utilise les valeurs de bande passante de chemins individuels pour déterminer la proportion de trafic que chacun des next-hops formant le next-hop ECMP doit recevoir. Les valeurs de bande passante spécifiées dans la bande passante de liaison ne doivent pas nécessairement correspondre à la bande passante absolue de l’interface. Ces valeurs doivent refléter la bande passante relative d’un chemin par rapport à l’autre. Pour plus d’informations, reportez-vous à Comprendre comment définir des communautés BGP et des communautés étendues et Comment les communautés BGP et les communautés étendues sont évaluées dans les conditions de correspondance de la stratégie de routage.

Considérons un réseau avec R1 recevant des chemins de coût égal de R2 et R3 vers une destination R4 ; si vous souhaitez envoyer 90 % du trafic à charge équilibrée sur le chemin R1-R2 et les 10 % restants sur le chemin R1-R3 à l’aide de wECMP, vous devez marquer les routes reçues des deux homologues BGP avec la communauté de bande passante de liaison en configurant policy-options.

  1. Configurez l’instruction de stratégie.

    root@host> show configuration policy-options

  2. Le RPD utilise les valeurs de bande passante pour équilibrer de manière inégale le trafic avec les sauts suivants à chemins multiples.

    root@host> show route 100.100.100.100 detail

  3. Le noyau Linux prend en charge l’équilibrage de charge inégal en attribuant linux ::weights à chaque saut suivant.

    root@host:/# ip route show 100.100.100.100

    Les linux ::weights sont programmés pour linux sous forme de divisions de l’entier 255 (la valeur maximale d’un caractère non signé). Chaque next-hop dans l’ECMP next-hop se voit attribuer un linux ::weight proportionnel à sa part de la bande passante.

Activer SRv6 sur cRPD

Vous pouvez activer la fonctionnalité de routage de segments IPv6 sur cRPD à l’aide de la commande sysctl suivante :

  1. Pour activer le routage de segments.

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

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

  2. Configurez la commande suivante pour activer SRv6 sur l’interface eth0.

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

  3. Configurez la commande suivante pour définir les SID DT4.

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