Préparation de la configuration de la segmentation de nœud Junos
Les rubriques de cette section s’appliquent uniquement à la segmentation de nœud Junos configurée à l’aide du modèle de serveur externe. Pour la segmentation de nœud Junos dans le châssis, passez à Configuration du routeur MX Series pour qu’il fonctionne en mode châssis.
Avant de configurer la segmentation de nœud Junos (modèle de serveur externe), vous devez effectuer quelques étapes préparatoires, telles que la connexion des serveurs et du routeur, l’installation de packages supplémentaires, la configuration du serveur x86 Linux GRUB et la configuration du BIOS des processeurs du serveur x86.
Connexion des serveurs et du routeur
Pour configurer la segmentation de nœud Junos, vous devez connecter directement une paire de serveurs x86 externes au routeur MX Series. Outre le port de gestion pour l’hôte Linux, chaque serveur nécessite également deux ports supplémentaires pour fournir une connectivité de gestion pour les machines virtuelles JDM et GNF, respectivement, et deux ports pour se connecter au routeur MX Series.
-
Ne connectez pas le câble de bouclage au port CB externe lorsque la segmentation de nœud Junos est activée sur le routeur MX Series. Assurez-vous également que le port CB externe n'est pas connecté au port externe de l'autre CB.
-
Pour empêcher le serveur hôte de toute attaque SSH par force brute, nous vous recommandons d’ajouter des règles IPtables sur le serveur hôte. Voici un exemple :
iptables -N SSH_CONNECTIONS_LIMIT iptables -A INPUT -i jmgmt0 -p tcp -m tcp --dport 22 -m state --state NEW -j SSH_CONNECTIONS_LIMIT iptables -A SSH_CONNECTIONS_LIMIT -m recent --set --name SSH --rsource iptables -A SSH_CONNECTIONS_LIMIT -m recent --update --seconds 120 --hitcount 10 --name SSH --rsource -j DROP iptables -A SSH_CONNECTIONS_LIMIT -j ACCEPT
La règle de l’exemple ci-dessus est utilisée pour limiter le débit des connexions SSH entrantes. Il vous permet de bloquer les connexions à partir de l’adresse IP distante pendant un certain temps lorsqu’un certain nombre de tentatives SSH sont effectuées. Comme dans l’exemple ci-dessus, après 10 tentatives, les connexions à partir d’une adresse IP distante seront bloquées pendant 120 secondes.
La figure 1 montre comment un routeur MX2020 est connecté à une paire de serveurs externes x86.
externe du serveur x86
Selon l’exemple de la Figure 1, em1, em2et em3 sur les serveurs x86 se trouvent les ports utilisés pour la gestion de l’hôte Linux, JDM et GNF, respectivement. p3p1 et p3p2 sur chaque serveur se trouvent les deux ports 10 Gbit/s connectés aux cartes de contrôle du routeur MX Series.
Pour activer les ports XGE sur les cartes de contrôle pour la segmentation de nœud Junos, vous devez configurer set chassis network-slices ou set chassis network-slices guest-network-functions.
Les noms des interfaces sur le serveur, tels que em1, p3p1 peuvent varier en fonction de la configuration matérielle du serveur.
Pour plus d’informations sur les ports XGE des MX Series routeur carte de contrôle (CB) mentionnés à la Figure 1, consultez :
-
Description SCBE2-MX (pour MX960 et MX480)
Remarque :Les numéros de port XGE ne sont pas étiquetés sur le SCBE2. Sur un SCBE2 orienté verticalement, le port supérieur est XGE-0 et le port inférieur est XGE-1. Sur un SCBE2 orienté horizontalement, le port gauche est XGE-0 et le port droit est XGE-1.
-
Description des modèles REMX2K-X8-64G et REMX2K-X8-64G-LT CB-RE (pour les modèles MX2010 et MX2020)
Utilisez la show chassis ethernet-switch commande pour afficher ces ports XGE. Dans la sortie de la commande sur le MX960, reportez-vous aux numéros 24 de ports et 26 pour afficher ces ports sur le SCBE2. Dans la sortie de la commande sur MX2010 et MX2020, reportez-vous aux numéros 26 de port et 27 pour afficher ces ports sur la carte de contrôle-moteur de routage (CB-RE).
Paramètres BIOS du processeur du serveur x86
Pour la segmentation de nœud Junos, le BIOS des processeurs du serveur x86 doit être configuré de telle sorte que :
L’hyperthreading est désactivé.
Les cœurs du processeur fonctionnent toujours à leur fréquence nominale.
Les cœurs du processeur sont configurés pour réduire la gigue en limitant l’utilisation de l’état C.
Pour trouver la fréquence nominale des cœurs de processeur sur le serveur, exécutez la commande lscpuLinux host , et vérifiez la valeur du champ Model name. Voir l’exemple suivant :
Linux server0:~# lscpu
..
Model name: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz
..
Pour trouver la fréquence à laquelle les cœurs de processeur sont actuellement en cours d’exécution, exécutez la commande grep MHz /proc/cpuinfo Linux host et vérifiez la valeur de chaque cœur de processeur.
Sur un serveur dont le BIOS est configuré pour faire fonctionner les cœurs du processeur à leur fréquence nominale, les valeurs observées pour les cœurs du processeur correspondront toutes à la fréquence nominale (ou seront très proches de celle-ci), comme indiqué dans l’exemple suivant.
Linux server0:~# grep MHz /proc/cpuinfo
…
cpu MHz : 2499.902
cpu MHz : 2500.000
cpu MHz : 2500.000
cpu MHz : 2499.902
…
Sur un serveur dont le BIOS n’est pas configuré pour faire fonctionner les cœurs CPU à leur fréquence nominale, les valeurs observées pour les cœurs CPU ne correspondent pas à la fréquence nominale et les valeurs peuvent également varier avec le temps (vous pouvez le vérifier en réexécutant la commande).
Linux server0:~# grep MHz /proc/cpuinfo
…
cpu MHz : 1200.562
cpu MHz : 1245.468
cpu MHz : 1217.625
cpu MHz : 1214.156
Pour configurer le profil système BIOS du serveur x86 afin qu’il utilise les cœurs du processeur à leur fréquence nominale, réduise la gigue et désactive l’hyperthreading, consultez le fabricant du serveur, car ces paramètres varient selon le modèle du serveur et les versions du BIOS.
Les paramètres typiques du profil système du BIOS pour y parvenir sont les suivants :
Logical processor: réglé sur Désactivé.CPU power management: réglé sur Performances maximales.Memory frequency: réglé sur Performances maximales.Turbo boost: réglé sur Désactivé.C-states and C1E state: réglé sur Désactivé.Energy efficient policy: réglé sur Performances.Monitor/Mwait: réglé sur Désactivé.
Un profil système BIOS personnalisé peut être nécessaire pour définir ces valeurs.
x86 Serveur Linux Configuration GRUB
Lors de la segmentation de nœud Junos, des cœurs de processeur dédiés sont attribués à chaque machine virtuelle GNF. Cette attribution est gérée par le Gestionnaire de périphériques de Juniper (JDM). Sur chaque serveur x86, JDM exige que tous les cœurs de processeur autres que les cœurs de processeur 0 et 1 soient réservés à la segmentation de nœud Junos (ce qui signifie que ces cœurs soient isolés des autres applications). Les cœurs CPU 2 et 3 sont dédiés au disque virtuel GNF et aux E/S réseau. Les cœurs CPU 4 et supérieurs peuvent être attribués aux machines virtuelles GNF. Pour réserver ces cœurs de processeur, vous devez définir le isolcpus paramètre dans la configuration GRUB Linux comme décrit dans la procédure suivante :
Pour les serveurs x86 exécutant Red Hat Enterprise Linux (RHEL) 7.3, effectuez les opérations suivantes :
Déterminez le nombre de cœurs de processeur sur le serveur x86. Assurez-vous que l’hyperthreading a déjà été désactivé, comme décrit dans Paramètres du BIOS du processeur du serveur x86. Vous pouvez utiliser la commande
lscpuLinux pour rechercher le nombre total de cœurs de processeur, comme indiqué dans l’exemple suivant :Linux server0:~#
lscpu… Cores per socket: 12 Sockets: 2 …Ici, il y a 24 cœurs (12 x 2). Les cœurs du processeur sont numérotés du cœur 0 au cœur 23.
Selon cet exemple, le
isolcpusparamètre doit être défini sur 'isolcpus=4-23' (isoler tous les cœurs de processeur autres que les cœurs 0, 1, 2 et 3 pour une utilisation par les machines virtuelles GNF). Leisolcpusparamètre est défini sur 'isolcpus=4-23' pour les raisons suivantes :Sur chaque serveur x86, JDM exige que tous les cœurs de processeur autres que les cœurs de processeur 0 et 1 soient réservés à la segmentation de nœud Junos.
Les cœurs CPU 2 et 3 sont dédiés au GNF, au disque virtuel et aux E/S réseau.
Remarque :Auparavant, le
isolcpusparamètre 'isolcpus=2-23' était utilisé. Cela a maintenant été mis à jour en 'isolcpus=4-23'. Pour plus d’informations, reportez-vous à KB35301.Pour définir le
isolcpusparamètre dans le fichier de configuration GRUB Linux, suivez les procédures spécifiques à la version de votre système d’exploitation hôte. Pour RHEL 7, la procédure est décrite dans la section Isolation des processeurs du planificateur de processus dans ce document Red Hat. Pour RHEL 9, les informations sur la modification de la ligne de commande du noyau sont décrites dans ce document Red Hat.Voici un résumé des procédures :
Modifiez le fichier GRUB Linux /etc/default/grub pour ajouter le
isolcpusparamètre à la variable GRUB_CMDLINE_LINUX, comme indiqué dans l’exemple suivant :GRUB_CMDLINE_LINUX= "crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet
isolcpus=4-23”Exécutez la commande
grub2-mkconfigshell Linux pour générer le fichier GRUB mis à jour comme indiqué ci-dessous :Si vous utilisez une ancienne version du BIOS, exécutez la commande suivante :
# grub2-mkconfig -o /boot/grub2/grub.cfgSi vous utilisez UEFI, exécutez la commande suivante :
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfgÀ partir de RHEL 9.3, exécutez la commande suivante pour les systèmes BIOS ou UEFI hérités :
# grub2-mkconfig -o /boot/grub2/grub.cfg --update-bls-cmdlineRedémarrez le serveur x86.
Vérifiez que le
isolcpusparamètre a maintenant été défini, en vérifiant la sortie de la commandecat /proc/cmdlineLinux , comme indiqué dans l’exemple suivant :#
cat /proc/cmdlineBOOT_IMAGE=/vmlinuz-3.10.0-327.36.3.el7.x86_64 … quiet isolcpus=4-23
Pour les serveurs x86 exécutant Ubuntu 24.04, effectuez les opérations suivantes :
Déterminez le nombre de cœurs de processeur sur le serveur x86. Assurez-vous que l’hyperthreading a déjà été désactivé, comme décrit dans Paramètres du BIOS du processeur du serveur x86. Vous pouvez utiliser la commande
lscpuLinux pour trouver le nombre total de cœurs de processeur.Modifiez le fichier /etc/default/grub pour ajouter le paramètre isolcpus à la variable GRUB_CMDLINE_LINUX_DEFAULT, comme indiqué dans l’exemple suivant :
GRUB_CMDLINE_LINUX_DEFAULT= "intel_pstate=disable processor.ignore_ppc=1
isolcpus=4-23"Pour mettre à jour les modifications, exécutez
update-grub.Redémarrez le serveur.
Vérifiez que le
isolcpusparamètre a maintenant été défini en vérifiant la sortie de la commandecat /proc/cmdlineLinux .
Mise à jour du pilote Intel X710 NIC pour les serveurs x86
Si vous utilisez Intel X710 NIC, assurez-vous que le pilote le plus récent (2.4.10 ou version ultérieure) est installé sur les serveurs x86 et que la version du micrologiciel X710 NIC est 18.5.17 ou ultérieure.
Vous devez d’abord identifier l’interface NIC X710 sur les serveurs. Par exemple, il peut s’agir p3p1de .
Vous pouvez vérifier la version NIC du pilote en exécutant la commande ethtool -i interfaceLinux . Voir l’exemple suivant :
root@Linux server0# ethtool -i p3p1
driver: i40e
version: 2.4.10
firmware-version: 5.05 0x80002899 18.5.17
...
Reportez-vous à la page de support Intel pour obtenir des instructions sur la mise à jour du pilote.
La mise à jour du système d’exploitation hôte peut remplacer le pilote NIC Intel X710. Par conséquent, assurez-vous que le système d’exploitation hôte est à jour avant de mettre à jour le pilote NIC Intel X710.
Vous avez besoin des packages suivants pour créer le pilote :
Pour RedHat :
kernel-devel
Outils de développement
Pour Ubuntu :
make
CCG
Si vous utilisez RedHat, exécutez les commandes suivantes pour installer les packages :
root@Linux server0#yum install kernel-develroot@Linux server0#yum group install "Development Tools"
Si vous utilisez Ubuntu, exécutez les commandes suivantes pour installer les packages :
root@Linux server0#apt-get install makeroot@Linux server0#apt-get install gcc
Après la mise à jour du pilote Intel X710 NIC, vous remarquerez peut-être le message suivant dans le journal du système d’exploitation hôte :
"i40e: module verification failed: signature and/or required key missing - tainting kernel"
Ignorez ce message. Cela apparaît parce que le module de pilote NIC mis à jour a remplacé la version de base du pilote fourni avec le système d’exploitation hôte.
Voir aussi
Installation de packages supplémentaires pour JDM
Les serveurs x86 doivent être équipés de Red Hat Enterprise Linux (RHEL) 7.3, (RHEL) 9.4 ou Ubuntu 24.04 LTS.
Les packages de virtualisation doivent être installés sur les serveurs x86.
Pour RHEL 9.4, assurez-vous que podman et containernetworking-plugins sont installés. Si ce n’est pas le cas, utilisez l’utilitaire DNF pour installer les packages supplémentaires suivants, qui peuvent être téléchargés à partir du portail client Red Hat.
-
Podman
-
containernetworking-plugins
Pour RHEL 7.3, installez les packages supplémentaires suivants, qui peuvent être téléchargés à partir du portail client Red Hat.
-
python-psutil-1.2.1-1.el7.x86_64.rpm
-
net-snmp-5.7.2-24.el7.x86_64.rpm
-
net-snmp-libs-5.7.2-24.el7.x86_64.rpm
-
libvirt-snmp-0.0.3-5.el7.x86_64.rpm
Uniquement pour Junos OS versions 17.4R1 et antérieures, et pour 18.1R1, si vous exécutez RHEL 7.3, installez également le package supplémentaire suivant :
-
libstdc++-4.8.5-11.el7.i686.rpm
-
Les numéros de version des packages indiqués sont les versions minimales. Des versions plus récentes peuvent être disponibles dans les derniers correctifs RHEL 7.3 et RHEL 9.4.
-
L’extension
.i686du package libstdc++ indique qu’il s’agit d’un package 32 bits. -
Pour RHEL, nous vous recommandons d’installer les packages à l’aide de la
yumcommande ordnf.
For Ubuntu 24.04, installez les packages suivants :
-
python-psutil
Uniquement pour les versions 17.4R1 et antérieures de Junos OS, et pour 18.1R1, si vous utilisez Ubuntu, installez également le package supplémentaire suivant :
-
libstdc++6 :i386
-
Pour Ubuntu, vous pouvez utiliser la
apt-getcommande pour installer la dernière version de ces paquets. Par exemple, utilisez :-
la commande
apt-get install python-psutilpermettant d’installer la dernière version dupython-psutilpackage. -
la commande
apt-get install libstdc++6:i386d’installation de lalibstdc++6dernière version du package (l’extension:i386indique que le package en cours d’installation est une version 32 bits).
-
Terminer la connexion entre les serveurs et le routeur
Procédez comme suit avant de commencer à installer le JDM :
Assurez-vous que le routeur MX Series est connecté aux serveurs x86, comme décrit dans la section Connexion des serveurs et du routeur.
Mettez sous tension les deux serveurs x86 et les deux moteurs de routage du routeur MX Series.
Identifiez le port de gestion de l’hôte Linux sur les deux serveurs x86. Par exemple,
em1.Identifiez les ports à affecter aux ports de gestion JDM et GNF. Par exemple,
em2etem3.Identifiez les deux ports 10 Gbit/s connectés aux cartes de contrôle du routeur MX Series. Par exemple,
p3p1etp3p2.