Préparation de la configuration de la segmentation de nud 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 intégrée au châssis, reportez-vous à la section Configuration du routeur MX Series pour qu’il fonctionne en mode dans le 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 la connexion 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 éviter que le serveur hôte ne subisse une attaque par force brute SSH, 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.

Selon l’exemple de la Figure 1, em1
, em2
et em3
sur les serveurs x86 sont les ports utilisés pour la gestion de l’hôte Linux, le JDM et les 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.
Les noms des interfaces sur le serveur, par exemple em1
, p3p1
peuvent varier en fonction de la configuration matérielle du serveur.
Pour plus d’informations sur les ports XGE de la carte de contrôle (CB) du routeur MX Series mentionnés à la Figure 1, reportez-vous à :
Description du SCBE2-MX (pour MX960 et MX480)
Note: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 du REMX2K-X8-64G et du REMX2K-X8-64G-LT CB-RE (pour MX2010 et MX2020)
Utilisez la show chassis ethernet-switch
commande pour afficher ces ports XGE. Dans la sortie de commande sur le MX960, reportez-vous aux numéros 24
de port et 26
pour afficher ces ports sur le SCBE2. Dans la sortie de 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 du BIOS du processeur 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 connaître la fréquence nominale des cœurs de processeur sur le serveur, exécutez la commande lscpu
Linux host et vérifiez la valeur du champ Model name
. Reportez-vous à l’exemple suivant :
Linux server0:~# lscpu
..
Model name: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz
..
Pour connaître la fréquence à laquelle les cœurs du processeur sont en cours d’exécution, exécutez la commande grep MHz /proc/cpuinfo
Linux host et vérifiez la valeur de chaque cœur du 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 du processeur à leur fréquence nominale, les valeurs observées pour les cœurs du processeur 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 du BIOS du serveur x86 afin de faire fonctionner les cœurs du processeur à leur fréquence nominale, de réduire la gigue et de désactiver 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 du BIOS système pour y parvenir sont les suivants :
Logical processor
: défini sur Désactivé.CPU power management
: réglé sur Performances maximales.Memory frequency
: réglé sur Performances maximales.Turbo boost
: défini sur Désactivé.C-states and C1E state
: défini sur Désactivé.Energy efficient policy
: réglé sur Performance.Monitor/Mwait
: défini sur Désactivé.
Un profil système BIOS personnalisé peut être nécessaire pour définir ces valeurs.
Configuration GRUB Linux du serveur x86
Dans la segmentation de nœud Junos, chaque machine virtuelle GNF se voit attribuer des cœurs de processeur dédiés. Cette affectation est gérée par Juniper Device Manager (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 et, en fait, que ces cœurs soient isolés des autres applications. Les cœurs de processeur 2 et 3 sont dédiés au disque virtuel GNF et aux E/S réseau. Les cœurs de processeur 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 les paramètres du BIOS du processeur du serveur x86. Vous pouvez utiliser la commande
lscpu
Linux pour trouver le nombre total de cœurs de processeur, comme illustré 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 de 0 à 23.
Dans cet exemple, le
isolcpus
paramètre doit être défini sur « isolcpus=4-23 » (isolez tous les cœurs de processeur autres que les cœurs 0, 1, 2 et 3 pour les utiliser par les machines virtuelles GNF). Leisolcpus
paramè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 pour la segmentation de nœud Junos.
Les cœurs de processeur 2 et 3 sont dédiés au disque virtuel GNF et aux E/S réseau.
Note:Auparavant, le
isolcpus
paramè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
isolcpus
paramètre dans le fichier de configuration de Linux GRUB, 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 Isolement des processeurs du planificateur de processus de 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
isolcpus
paramètre à la variable GRUB_CMDLINE_LINUX, comme illustré 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-mkconfig
shell Linux pour générer le fichier GRUB mis à jour comme indiqué ci-dessous :Si vous utilisez une version antérieure du BIOS, exécutez la commande suivante :
# grub2-mkconfig -o /boot/grub2/grub.cfg
Si vous utilisez UEFI, exécutez la commande suivante :
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
Dans RHEL 9.3 et versions ultérieures, exécutez la commande suivante pour les systèmes BIOS ou UEFI hérités :
# grub2-mkconfig -o /boot/grub2/grub.cfg --update-bls-cmdline
Redémarrez le serveur x86.
Vérifiez que le
isolcpus
paramètre a maintenant été défini, en vérifiant la sortie de la commandecat /proc/cmdline
Linux , comme indiqué dans l’exemple suivant :#
cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.10.0-327.36.3.el7.x86_64 … quiet isolcpus=4-23
Pour les serveurs x86 exécutant Ubuntu 20.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 les paramètres du BIOS du processeur du serveur x86. Vous pouvez utiliser la commande
lscpu
Linux 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 illustré 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
isolcpus
paramètre a maintenant été défini, en vérifiant la sortie de la commandecat /proc/cmdline
Linux .
Mise à jour du pilote de la carte réseau Intel X710 pour les serveurs x86
Si vous utilisez une carte réseau Intel X710, 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 de la carte réseau X710 est 18.5.17 ou ultérieure.
Vous devez d’abord identifier l’interface de la carte réseau X710 sur les serveurs. Par exemple, il peut s’agir de p3p1
.
Vous pouvez vérifier la version du pilote de la carte réseau en exécutant la commande ethtool -i interface
Linux . Reportez-vous à 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 d’assistance 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 de la carte réseau Intel X710. Par conséquent, assurez-vous que le système d’exploitation hôte est à jour avant de mettre à jour le pilote de la carte réseau Intel X710.
Vous avez besoin des packages suivants pour construire le pilote :
Pour RedHat :
kernel-devel
Outils de développement
Pour Ubuntu :
faire
Gcc
Si vous utilisez RedHat, exécutez les commandes suivantes pour installer les packages :
root@Linux server0#yum install kernel-devel
root@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 make
root@Linux server0#apt-get install gcc
Après avoir mis à jour le pilote de la carte réseau Intel X710, 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 s’affiche parce que le module de pilote de carte réseau mis à jour a remplacé la version de base du pilote qui était fourni avec le système d’exploitation hôte.
Voir aussi
Installation de packages supplémentaires pour JDM
Red Hat Enterprise Linux (RHEL) 7.3, (RHEL) 9 ou Ubuntu 20.04 LTS doit être installé sur les serveurs x86.
Les packages de virtualisation doivent être installés sur les serveurs x86.
Pour RHEL 9, 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 (en anglais seulement)
-
conteneurplug-ins-réseau
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 utilisez RHEL 7.3, installez également le package supplémentaire suivant :
-
libstdc++-4.8.5-11.el7.i686.rpm
-
Les numéros de version de package indiqués sont les versions minimales. Des versions plus récentes peuvent être disponibles dans les derniers correctifs RHEL 7.3 et RHEL 9.
-
L’extension
.i686
de 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
yum
commande ordnf
.
For Ubuntu 20.04, installez les packages suivants :
-
python-psutil
Uniquement pour Junos OS versions 17.4R1 et antérieures, 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-get
commande pour installer la dernière version de ces packages. Par exemple, utilisez :-
la commande
apt-get install python-psutil
permettant d’installer lapython-psutil
dernière version du package. -
la commande
apt-get install libstdc++6:i386
pour installer la dernière version dulibstdc++6
paquet (l’extension:i386
indique que le paquet 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 l’installation de JDM :
Assurez-vous que le routeur MX Series est connecté aux serveurs x86 comme décrit dans Connexion des serveurs et du routeur.
Mettez sous tension les deux serveurs x86 et les deux moteurs de routage sur le routeur MX Series.
Identifiez le port de gestion de l’hôte Linux sur les deux serveurs x86. Par exemple,
em1
.Identifiez les ports à attribuer pour les ports de gestion JDM et GNF. Par exemple,
em2
etem3
.Identifiez les deux ports 10 Gbits/s connectés aux cartes de contrôle sur le routeur MX Series. Par exemple,
p3p1
etp3p2
.