Comment une IPv4 ajoutée atteint-elle un invité Proxmox sans sous-réseau ?

Chaque machine inclut une IPv4. Cette adresse reste sur l'hôte et sert de cible SSH. Un invité qui a besoin de sa propre adresse publique en prend une de plus, vendue à l'unité, $2 par mois, jusqu'à 255 de plus. Ce n'est pas un préfixe à découper. L'invité porte l'une d'elles en /32. Sans adresse en plus, il ne reste que la redirection de ports.

Pont vmbr0 ou NAT, selon le nombre d'adresses

Les guides montrent d'abord deux images : attacher l'invité à vmbr0, ou faire du NAT sur l'hôte. Les deux démarrent un invité. Sur cette machine, le choix suit la liste d'adresses. La console peut mettre plusieurs adresses dans une seule chaîne, séparées par des virgules, des espaces ou des points-virgules. Après la coupe, la première est l'adresse d'administration, et SSH n'utilise que celle-là. Les suivantes peuvent aller aux invités.

L'adresse incluse ne peut pas être à la fois l'accès à l'hôte et la seule adresse publique de l'invité. La retirer de vmbr0 pour la mettre dans l'invité retire aussi le SSH vers l'hôte. Chaque adresse ajoutée appartient à un invité. Quand le compte ajouté est zéro, l'invité garde une adresse privée et l'extérieur arrive par un port choisi de l'adresse d'administration. C'est le NAT. Quand des adresses ajoutées existent, l'invité ne rejoint pas vmbr0 dans un préfixe que cette commande n'a pas. Un pont interne sans port physique porte chaque adresse en /32.

vmbr0Adresse d'administration seule
/32Chaque adresse ajoutée
RedirectionQuand rien n'a été ajouté
Adresses de la commandePont de l'invitéComment l'invité sort
Adresse d'administration seulevmbr1 interneAdresse privée, ports redirigés par l'hôte
IPv4 achetées à l'unitéLa même vmbr1Une adresse publique, masque /32
Un /28 ou /29 de guideNe pas brancher ainsiCette commande n'a pas ce préfixe

Quel nom ou quel certificat reçoit quelle adresse est une autre note : répartir chaque adresse ajoutée. Celle-ci ne couvre que le chemin vers l'invité Proxmox.

L'adresse d'administration reste sur l'hôte

Choisir Proxmox VE 8 ou Proxmox VE 9 à la commande. Les deux images sont dans la liste des systèmes. Après la livraison, SSH vers l'adresse d'administration. Une clé USB d'installation ne fait pas partie de cet enchaînement, et la carte réseau n'est pas à rechoisir dans un installeur.

Lire l'état vivant avant d'éditer les fichiers. Dans ip -4 addr, l'adresse utilisée pour SSH est sur vmbr0. Dans ip route show default, la passerelle est l'adresse après via, et dev nomme vmbr0. Cette paire est la configuration d'administration déjà posée par l'image. Le préfixe n'est pas forcément /32. Le laisser. Ne pas le réécrire en /24 ou /28 d'un guide. Le port physique est le nom déjà écrit dans bridge-ports de vmbr0, dans /etc/network/interfaces. Ne pas le remplacer par eth0 ou ens3 si ip link ne montre pas ce nom.

Une adresse ajoutée est parfois déjà un alias sur le même pont, parfois seulement dans la note de livraison. Compter les IPv4 de portée globale. Le compte égale 1 plus la quantité ajoutée de la commande. S'il manque, s'arrêter et ouvrir un ticket. Ne pas emprunter une adresse d'une autre machine. Une fois le compte juste, retirer de la configuration de l'hôte les adresses qui iront aux invités, et garder l'adresse d'administration. Une même adresse ne peut pas être alias sur l'hôte et adresse sur l'invité. Le trafic entrant toucherait l'hôte, et le service dans l'invité ne verrait rien.

Ne pas changer l'adresse, le préfixe ou la passerelle de vmbr0. Une adresse d'administration fausse coupe cette session SSH. La session graphique de la console ne dépend pas de ce SSH ; un fichier cassé s'y rétablit. Les étapes ci-dessous ne modifient pas l'adresse d'administration sur vmbr0.

Pourquoi un guide de sous-réseau démarre l'invité puis le bloque

Un guide général suppose que le site a déjà posé un préfixe entier sur vmbr0, avec la passerelle comme première adresse de ce préfixe. L'invité prend une autre adresse et copie le masque de l'hôte. La carte s'affiche comme active, parce qu'une adresse a été écrite sur l'interface. En sortie, l'invité traite la passerelle comme joignable sur le lien et envoie un ARP. Ce préfixe n'est pas sur cette machine, donc rien ne répond, et la route par défaut ne devient pas utilisable. De l'extérieur, l'invité est allumé et le port est fermé.

Une autre rédaction attache l'invité à vmbr0, remplit l'IPv4 ajoutée, copie la passerelle de l'hôte et garde un masque /24 ou /28. Les adresses ajoutées sont des adresses isolées. Ce n'est pas un préfixe à subdiviser. L'amont les livre à cette machine, pas à une MAC d'invité qui réclamerait la passerelle. L'ARP de l'invité sur vmbr0 n'atteint pas le vrai saut suivant, ou le retour tombe encore sur l'ancien alias de l'hôte. L'adresse est visible. Le ping ne sort pas.

Un troisième empilement active le NAT source pendant que l'invité croit posséder une adresse publique. Les paquets sortants sont réécrits vers l'adresse d'administration, et le retour ne correspond plus à la session de l'invité. Une adresse qui doit rester distincte ne subit pas de NAT source. Un invité joint par redirection de port ne reçoit pas non plus d'adresse publique. Les deux formes ne partagent pas une adresse.

Remettre chaque adresse ajoutée en /32 sur un pont interne

Le pont interne s'appelle vmbr1. Il n'a pas de port physique. Il ne relie que l'hôte et les invités. L'ajouter à la fin de /etc/network/interfaces. La plage privée peut changer, mais l'hôte et l'invité la partagent. Si 10.10.10.0/24 est déjà pris, en choisir une autre. 203.0.113.20 ci-dessous est une adresse de documentation. La remplacer par une adresse ajoutée de la commande, une route par adresse.

La strophe de l'hôte contient auto vmbr1, address 10.10.10.1/24, bridge-ports none, bridge-stp off et bridge-fd 0. Chaque adresse ajoutée ajoute post-up ip route add 203.0.113.20/32 dev vmbr1. Ne pas pointer via vers une adresse d'invité qui n'existe pas encore. Quand la route vise le pont, l'invité qui tient la /32 répond à l'ARP sur ce pont.

Le transfert et le contrôle de chemin inverse vont dans /etc/sysctl.d/99-guest-route.conf, puis sysctl --system. Les lignes sont net.ipv4.ip_forward=1, net.ipv4.conf.all.rp_filter=2, et le même rp_filter=2 sur vmbr0 et vmbr1. Sans transfert, l'hôte joint l'invité, et l'invité ne joint pas l'extérieur. Le filtrage strict du chemin inverse jette ce trafic : l'adresse ajoutée vit sur l'invité, la réponse sort par vmbr0, et le mode strict décide que la source n'appartient pas à cette sortie. Le mode souple ne couvre que ce contrôle. Il ne remplace pas un pare-feu.

Appliquer le fichier avec ifreload -a. Puis lancer une commande dans la session SSH déjà ouverte et confirmer que l'adresse d'administration est encore sur vmbr0. ip route get 203.0.113.20 doit afficher dev vmbr1. Une route ajoutée seulement dans le shell courant, et pas dans le fichier, disparaît au redémarrage, et l'invité est de nouveau bloqué.

Dans Proxmox, le pont de la carte de l'invité est vmbr1, le modèle VirtIO. Il n'y a pas d'interrupteur NAT sur cette carte. Dans l'invité, l'adresse publique est en /32, le pair point à point et la passerelle par défaut valent 10.10.10.1. Un fichier interfaces de style Debian utilise address 203.0.113.20/32, pointopoint 10.10.10.1 et gateway 10.10.10.1. Le netplan d'Ubuntu utilise la même /32, une route par défaut via 10.10.10.1 et on-link: true. Remplir seulement les champs Cloud-Init de Proxmox avec une /32 et une passerelle omet souvent cette route sur le lien, et l'invité fait encore un ARP vers une passerelle qui n'est pas sur le lien. Écrire le fichier réseau de l'invité, redémarrer l'invité, lire ip route.

Un invité qui a besoin de sa propre identité publique utilise une adresse ajoutée. L'invité suivant utilise la suivante, toujours sur vmbr1, avec une route /32 de plus. Ne pas placer plusieurs invités dans un /28 inventé. Sur l'invité, ip route get 1.1.1.1 doit montrer src comme l'adresse publique, pas 10.10.10.2. Si la source est encore privée, l'extérieur voit l'adresse d'administration, et cette étape n'est pas finie.

Ne pas appliquer de NAT source à cette adresse publique. Le NAT source appartient à la section suivante, où l'invité n'a pas d'adresse ajoutée. Une fois l'adresse publique sur l'invité, l'hôte ne fait que transférer.

Sans adresse ajoutée, ne rediriger que des ports

Quand le compte ajouté est zéro, ne pas configurer d'adresse publique sur l'invité. vmbr1 utilise toujours 10.10.10.1/24. L'invité utilise une adresse de cette plage, par exemple 10.10.10.2/24, passerelle 10.10.10.1. L'invité n'a pas d'identité publique propre. Un service sur l'invité se joint en redirigeant un port de l'adresse d'administration vers cette adresse privée.

Mettre les règles dans post-up de la strophe vmbr1 de l'hôte pour qu'elles survivent au redémarrage. Entrée : iptables -t nat -A PREROUTING -d ADMIN -p tcp --dport 443 -j DNAT --to-destination 10.10.10.2:443. Sortie : iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o vmbr0 -j MASQUERADE. Sur Proxmox VE 8 et 9, ces commandes passent par iptables-nft. Vérifier avec -C avant -A, et ne pas ajouter si la règle existe déjà. Sinon chaque ifreload empile une copie.

Ne pas rediriger le TCP 22 de l'adresse d'administration. C'est le SSH de l'hôte. Les sites, les API et le bureau distant de l'invité utilisent un autre port externe. Un invité Windows qui a besoin de RDP peut recevoir un port choisi de l'adresse d'administration, redirigé vers le 3389 de cet invité. Le 22 de l'hôte reste. Le service dans l'invité doit écouter sur l'adresse privée ou sur toutes les adresses. S'il n'écoute que sur une adresse publique jamais configurée, la redirection n'a pas de processus.

La redirection de ports n'ajoute pas d'adresses et n'élève pas le débit. 250M, 1G et 2G sont une autre ligne, et aucune ne compte le volume transféré. Dix invités qui sortent par l'adresse d'administration montrent encore cette seule source. Quand une liste d'autorisation exige une source distincte par service, revenir à la section précédente et acheter des adresses à l'unité. Les règles de redirection n'inventent pas un sous-réseau.

Vérifier trois fois depuis l'extérieur du site

  1. L'adresse d'administration ouvre encore une session

    Depuis un réseau de bureau ou de domicile, SSH vers la première adresse. La session arrive sur l'hôte, pas sur un invité. Ne pas coller toute la chaîne de la console dans SSH.

  2. Chaque adresse ajoutée arrive sur son invité

    Ouvrir le vrai service sur chaque adresse ajoutée qui doit servir. Sur l'hôte, ip route get pointe vers vmbr1. Sur l'invité, ip -4 addr montre la /32. Un curl de l'adresse de l'hôte depuis l'hôte reste souvent sur la boucle locale et ne dit rien du chemin extérieur.

  3. Sans adresse ajoutée, vérifier le port

    De l'extérieur, le port redirigé doit répondre depuis l'invité. Le port 22 de l'hôte doit encore répondre depuis l'hôte. Les deux doivent passer. La redirection ne doit pas avoir remplacé l'accès.

  4. Relire après redémarrage

    Redémarrer l'hôte. L'adresse d'administration, le pont interne, les routes /32 ou les redirections doivent encore être là. sysctl net.ipv4.ip_forward doit valoir 1. S'il manque un morceau, corriger le fichier d'interfaces. Ne pas seulement retaper la commande dans cette session.

Si l'adresse et la route sont justes et que le chemin extérieur reste fermé, regarder le pare-feu. Avec le pare-feu du centre ou du nœud actif, la chaîne forward peut rejeter selon la politique par défaut. Pour tracer, le pare-feu de cette seule carte d'invité peut être coupé. Une fois le chemin ouvert, autoriser les ports précis. Ne pas laisser le filtrage de tout l'hôte vide comme raccourci.

Dans l'invité, la carte peut s'appeler ens18 ou eth0. Prendre le nom de ip link dans cet invité. Un mauvais nom signifie que l'adresse n'apparaît pas, et la commande de route ne dira pas qu'un sous-réseau manque. Confirmer que l'interface est active, puis que le saut suivant de la route par défaut est 10.10.10.1.

Le compte et le loyer mensuel avancent ensemble

Chaque IPv4 ajoutée coûte $2 par mois. La commande enregistre un compte, pas une longueur de préfixe. Quatre adresses ajoutent $8 par mois. Vingt ajoutent $40 par mois. Avec l'adresse incluse, le total reste au plus à 256. Ces adresses rejoignent la machine, les disques, le débit et le système dans un loyer mensuel, puis le nombre de mois s'applique. Le trimestre est trois fois le loyer mensuel, six mois six fois, l'année douze fois. Pas de remise supplémentaire. Pas de frais d'installation.

La machine 128 Go est à $455 par mois et inclut déjà une IPv4 et 250M. La machine 256 Go est à $612 par mois, avec la même règle d'adresses. Les deux sont des AMD EPYC 7543P, 32 cœurs et 64 threads, en DDR4-3200 ECC RDIMM. 256 Go, c'est ce modèle, pas de la mémoire ajoutée à la machine 128 Go. Le palier de mémoire n'inclut pas plus d'adresses. Passer le port à 1G ajoute $248 par mois et laisse le compte d'adresses inchangé.

La machine est déployée à Tokyo, au Japon. Le SSH vers l'hôte utilise l'adresse d'administration indiquée dans la console. Un invité Windows utilise RDP sur cet invité. Cela ne remplace pas l'adresse d'administration de l'hôte. Proxmox VE 8 et 9 sont dans la liste des images gratuites et sont livrés comme système installé, pas comme support d'installation séparé.

Chaque adresse ajoutée part en /32.

$455 / mois