Juniper Networks prend en charge le transfert basé sur les paquets sur des interfaces virtuelles à l’aide de Contrail® Networking™ cloud-native version 22.1 ou ultérieure dans un environnement orchestré par Kubernetes.
Aperçu
Par défaut, les nœuds de calcul Contrail utilisent le mode flux pour le transfert de paquets sur une interface virtuelle. Cela signifie que chaque vRouter dispose d’une table de flux pour suivre tous les flux qui le traversent. En mode flux, l’interface virtuelle traite l’ensemble du trafic en analysant l’état ou la session du trafic. Toutefois, il peut y avoir des instances où vous souhaitez passer du mode flux au mode paquet. En particulier, pour obtenir des performances de transfert de trafic plus élevées ou contourner certaines limites du mode de flux.
En mode paquet, l’interface virtuelle traite le trafic par paquet et ignore toutes les informations de flux. Le principal avantage de ce mode est que le type de traitement est sans état. Le mode sans état signifie que l’interface virtuelle ne surveille pas les informations de session ni n’effectue aucune analyse du trafic pour déterminer comment une session est établie.
Note:
Les fonctionnalités qui nécessitent une stratégie réseau (telles que les ACL, les groupes de sécurité, les ADRESSES IP flottantes) ne peuvent pas fonctionner en mode paquet.
Configurer le mode paquet sur une interface virtuelle
Suivez ces étapes pour activer le mode paquet sur une interface virtuelle.
- Vérifiez que vous exécutez le mode flux. Le mode flux est le mode de transfert par défaut.
Générez du trafic en ping sur un autre pod du même réseau. Dans cet exemple, l’adresse IP du pod est 25.26.27.2.
root@pod-vn-1:/# ping -q -c5 25.26.27.2
PING 25.26.27.2 (25.26.27.2) 56(84) bytes of data.
--- 25.26.27.2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4057ms
rtt min/avg/max/mdev = 0.059/1.721/7.620/2.955 ms
- Utilisez l’outil de ligne de commande de flux pour rechercher les flux. L’exemple suivant indique que le
virtualMachineInterface flux est en mode flux.
root@minikube:/# flow -l --match 25.26.27.3
...
...
Listing flows matching ([25.26.27.3]:*)
Index Source:Port/Destination:Port Proto(V)
-----------------------------------------------------------------------------------
159692<=>400664 25.26.27.2:28 1 (3)
25.26.27.3:0
(Gen: 1, K(nh):39, Action:F, Flags:, QOS:-1, S(nh):39, Stats:5/490, SPort 64222,
TTL 0, UnderlayEcmpIdx:0, Sinfo 7.0.0.0)
400664<=>159692 25.26.27.3:28 1 (3)
25.26.27.2:0
(Gen: 1, K(nh):33, Action:F, Flags:, QOS:-1, S(nh):33, Stats:5/490, SPort 56567,
TTL 0, UnderlayEcmpIdx:0, Sinfo 5.0.0.0)
- Activer le mode paquet sur le
virtualMachineInterface.
Créez un fichier de correctif nommé packet-mode-patch.yaml et définissez la stratégie VMI sur true.
spec:
virtualMachineInterfaceDisablePolicy:true
- Appliquez le correctif.
[user@machine:~]$ kubectl -n vmi-disablepolicy patch vmi pod-vn-1-7d622c4d --patch "$(cat packet-mode-patch.yaml)"
virtualmachineinterface.core.contrail.juniper.net/pod-vn-1-7d622c4d patched
- Une fois le correctif appliqué, les commutateurs en mode flux vers le mode paquet.
[user@machine:~]$ kubectl -n vmi-disablepolicy get vmi pod-vn-1-7d622c4d -oyaml | yq .spec.virtualMachineInterfaceDisablePolicy
true
- Vérifiez que le mode paquet est actif.
Générez du trafic en pingant un autre pod dans le même réseau que celui auquel vous avez ping à l’étape 1.
root@pod-vn-1:/# ping -q -c5 25.26.27.2
PING 25.26.27.2 (25.26.27.2) 56(84) bytes of data.
--- 25.26.27.2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4105ms
rtt min/avg/max/mdev = 0.051/2.725/13.388/5.331 ms
- Utilisez l’outil de ligne de commande de flux pour rechercher les flux.
root@minikube:/# flow -l --match 25.26.27.3
...
...
Listing flows matching ([25.26.27.3]:*)
Index Source:Port/Destination:Port Proto(V)
Succès! Aucun flux n’existe, ce qui indique que vous êtes en mode paquet.