Comment passer les NICS PCIe avec Proxmox VE sur Intel et AMD

Un rapide aujourd'hui est le tutoriel super simple pour faire passer les NICS sur les machines virtuelles sur promxox ve.Les NICS de passage évitent les frais généraux de l'hyperviseur et peuvent également aider à résoudre les problèmes de compatibilité en utilisant des NIC virtuels et certains appareils de pare-feu comme PfSense et Opnsense.L'inconvénient est qu'à moins que les NIC ne prennent en charge SR-IOV, ils ne seront probablement pas des appareils partagés dans cette configuration.

Étape 1: Configuration du BIOS

La première chose à faire est d'allumer la fonction IOMMU sur votre système.Pour cela, le CPU et la plate-forme doivent prendre en charge la fonctionnalité.Ces jours-ci, la plupart des plateformes prendront en charge Iommu, mais certaines plates-formes plus anciennes ne.Sur les plates-formes Intel, c'est ce qu'on appelle «VT-D».Qui signifie Intel Virtualization Technology pour les E / S dirigées (VT-D.)

Sur les plates-formes AMD, vous verrez probablement AMD-VI comme l'option.Parfois, dans différents firmwares système, vous verrez Iommu.Ce sont les options que vous souhaitez activer.

Bien sûr, comme il s'agit d'un proxmox, vous voudrez vous assurer que votre virtualisation de base est également en cours pendant que vous êtes dans le bios.De plus, comme cela va probablement être un objectif principal pour les personnes utilisant ce guide, si vous faites un pare-feu / routeur sur la machine, nous suggérons généralement de définir le paramètre de puissance ON sur «toujours sur» ou le «dernier état» doncqu'en cas de panne de courant, votre réseau apparaît immédiatement.

Ensuite, nous devons déterminer si nous utilisons Grub ou Systemd comme chargeur de démarrage.

Étape 2: Déterminez si vous utilisez Grub ou Systemd

Il s'agit d'une étape plus récente, mais si vous installez une version récente de Proxmox VE, et utilisez ZFS comme racine (cela peut se développer à l'avenir), vous utilisez probablement Systemd Not Grub.Après l'installation, utilisez cette commande pour déterminer ce que vous utilisez:

efibootmgr -v

Si vous voyez quelque chose comme «Fichier (\ efi \ systemd \ systemd-bootx64.Efi) »alors vous utilisez Systemd, pas Grub.

Un autre cadeau, c'est lorsque vous démarrez, si vous voyez un écran bleu avec de la planche et un certain nombre d'options juste avant d'entrer dans le système d'exploitation, vous utilisez Grub.Si vous voyez quelque chose comme ça, vous utilisez Systemd:

Ceci est important car de nombreux guides plus anciens utilisent Grub, mais si vous utilisez Systemd et suivez les instructions de Grub, vous n'aurez pas besoin d'Iommu nécessaire pour le pass.

Étape 3A: activer iommu en utilisant Grub

Si vous avez un grub et que la plupart des installations aujourd'hui le feront, vous devrez alors modifier votre fichier de configuration:

nano /etc/default/grub

Pour les processeurs Intel, ajoutez silencieux Intel_iommu = ON:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

Pour les processeurs AMD, ajoutez silencieux AMD_IOMMU = ON:

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"

Voici une capture d'écran avec la ligne Intel pour vous montrer où la mettre:

How to Pass-through PCIe NICs with Proxmox VE on Intel and AMD

Optionally, one can also add IOMMU PT mode.Le mode PT améliore les performances des autres périphériques PCIE dans le système lorsque Passthrough est utilisé.Cela fonctionne sur les processeurs Intel et AMD et est iommu = pt.Voici la version AMD, de ce qui serait ajouté, et nous aurons une capture d'écran Intel suivante:

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"

Voici la capture d'écran de l'endroit où cela va:

N'oubliez pas d'économiser et de sortir.

Nous devons maintenant mettre à jour Grub:

update-grub

Maintenant pour aller étape 4.

Étape 3A: activer iommu à l'aide de systemd

Si à l'étape 2, vous avez trouvé que vous utilisiez Systemd, alors ajouter des bits à Grub ne fonctionnera pas.Au lieu de cela, voici ce qu'il faut faire:

nano /etc/kernel/cmdline

Pour les processeurs Intel, ajoutez:

quiet intel_iommu=on

Pour les processeurs AMD, ajoutez:

quiet amd_iommu=on

Voici une capture d'écran de l'endroit où l'ajouter à l'aide de la version Intel:

Facultativement, on peut également ajouter le mode iommu pt.Cela fonctionne sur les processeurs Intel et AMD et est iommu = pt.Voici la version AMD, de ce qui serait ajouté, et nous aurons une capture d'écran Intel suivante:

quiet amd_iommu=on iommu=pt

Voici la capture d'écran Intel:

Maintenant, nous devons actualiser notre outil de démarrage.

proxmox-boot-tool refresh

Passez maintenant à l'étape 4.

Étape 4: Ajouter des modules

Beaucoup redémarreront immédiatement après la fin de ce qui précède, et c'est probablement une bonne pratique.Habituellement, j'aime ajouter des modules juste pour gagner du temps.Si vous êtes plus conservateur, redémarrez, alors faites cette étape.Ensuite, vous voudrez ajouter des modules en édition:

nano /etc/modules

Dans ce fichier, vous voudrez ajouter:

vfiovfio_iommu_type1vfio_pcivfio_virqfd

Voici à quoi il devrait ressembler:

Ensuite, vous pouvez redémarrer.

Étape 5: Redémarrer

C'est un changement assez important pour que vous voudrez redémarrer ensuite.Avec PVE, une astuce que nous avons est de redémarrer souvent lors de la configuration du système de base.Vous ne voulez pas passer des heures à construire une configuration, puis découvrez qu'elle ne démarre pas et vous ne savez pas pourquoi.

Nous noterons rapidement que nous avons condensé un peu ci-dessus pour des systèmes plus modernes.Si quelque chose échoue dans l'étape de vérification ci-dessous, vous voudrez peut-être redémarrer avant d'ajouter des modules à la place, et non plus d'allumer le mode PT avant de redémarrer.

Étape 7: Vérifiez que tout fonctionne

Ceci est la commande que vous voudrez utiliser:

dmesg | grep -e DMAR -e IOMMU

Selon le système, quelles options vous avez, etc., une grande partie de la sortie va changer ici.Ce que vous recherchez, c'est la ligne mise en évidence dans la capture d'écran DMAR: IOMMU Activé:

Si vous avez cela, vous êtes probablement en bon état.

Étape 7: Configurer les machines virtuelles proxmox VE pour utiliser les NIC

Pour cela, nous utilisons une petite boîte très similaire au 4x 2 bon marché.Revue de la boîte de pare-feu 5GBE sans ventilateur.C'est essentiellement la même chose, juste une version différente de cette boîte.L'une des belles fonctionnalités est que chaque NIC est son propre i225-V et que nous pouvons passer par chaque NIC individuel à une machine virtuelle.Voici une capture d'écran d'une vidéo à venir que nous avons:

Autrefois, l'ajout d'une carte réseau transmise à une machine virtuelle a été effectuée via l'édition CLI.Maintenant, Proxmox tire l'ID de périphérique PCIe, puis le fournisseur et le nom de l'appareil.Cela facilite la sélection des NIC dans un système.Un point qui est agréable dans la plupart des NIC à bord est que la commande physique comme les NICS est étiquetée sur le système devrait signifier que nous avons des adresses MAC séquentielles et des ID PCIE.Dans ce qui précède 0000: 01: 00.0 est le premier NIC (ETH0).L'appareil 0000: 02: 00.0 est le deuxième, et ainsi de suite.

À ce stade, vous avez déjà terminé.Vous pouvez voir que nous travaillons à la fois sur Opnsense et PfSense et le processus est très similaire.La bonne chose est qu'en faisant cela, PfSense / Opnsense a un accès direct au NICS au lieu d'utiliser un appareil NIC virtualisé.

Quelques notes sur iommu avec pfsense et opnsense

Une fois ces NICS attribués, il y a quelques considérations clés qui sont importantes à garder à l'esprit:

Ce n'est probablement pas exhaustif, mais j'espère que cela aide.

Derniers mots

Ceci est un guide rapide pour configurer une carte réseau PCIe à travers PCIE sur Proxmox VE lorsque vous virtualisez Pfsense, Opnsense ou une autre solution.Il est plus axé sur le matériel plus récent fabriqué depuis 2017 ou 2020, donc si vous avez un système plus ancien, il peut y avoir plus de peaufinage requis.C'était une fonctionnalité que des entreprises comme Intel ont utilisées pour une segmentation lourde pour ses puces sur les marchés, mais la plupart soutiendront VT-D de nos jours.

S'il y a d'autres astuces qui vous semblent ajouter, n'hésitez pas à utiliser la section des commentaires ou les forums STH.

Articles populaires