À la livraison de votre serveur, une seule adresse IPv4 y est configurée et les autres restent libres. C’est voulu, et cette page vous explique comment terminer le travail. Trois méthodes s’offrent à vous, aucune ne prend longtemps : placer la machine directement sur le réseau avec sa propre adresse, faire passer son trafic par l’hôte, ou masquer tout un ensemble de machines derrière l’adresse que vous possédez déjà. Nous avons testé les trois sur notre propre réseau avant de rédiger ce guide.
Lisez les deux premières étapes. Ensuite, les étapes trois, quatre et cinq sont des alternatives — choisissez celle qui correspond à ce que vous construisez.
Cherchez l’e-mail intitulé Configuration du serveur dédié, envoyé le jour où la machine a été créée. Il liste tout ce qui est alloué au serveur : d’abord les adresses IPv4, puis les éventuelles IPv6. La même liste se trouve dans votre compte, sur la page du serveur, dans le panneau intitulé Accès, réseau et rDNS.
Sur un serveur Proxmox, cet e-mail ajoute une ligne sous la liste, vous indiquant que l’hôte n’a reçu que la première adresse et que les autres vous appartiennent pour les distribuer — à des machines virtuelles, ou à l’hôte également si vous voulez qu’il en détienne plusieurs. Nous configurons une seule adresse pour que la machine démarre joignable, puis nous nous arrêtons. Configurez-les toutes sur l’hôte et il répondra pour toutes, ne laissant rien à réclamer à vos machines virtuelles.
Deux chiffres comptent chaque fois que vous saisissez une adresse. Le masque de réseau est /24, soit 255.255.255.0. La passerelle est la plage de cette adresse, se terminant par .1 — ainsi une adresse dans 203.0.113.0/24 utilise 203.0.113.1. Les adresses attribuées ensemble sont côte à côte et partagent une passerelle. Les adresses ajoutées à un serveur des mois plus tard peuvent provenir d’une autre de nos plages, et elles utilisent alors leur propre .1. Se tromper ici est la raison la plus courante pour laquelle une nouvelle machine virtuelle ne peut rien joindre, et cela coûte un après-midi aux gens.
Pour le DNS, nous configurons 209.244.0.3 sur l’hôte. Pointez vos machines virtuelles où bon vous semble.
Connectez-vous en SSH en tant que root et jetez un œil :
ip -br addr cat /etc/network/interfaces
Sur une machine que nous venons de construire, ce fichier ressemble à peu près à ceci, avec le nom de votre interface et votre propre première adresse à la place de celles affichées :
auto lo
iface lo inet loopback
iface eno1 inet manual
auto vmbr0
iface vmbr0 inet static
address 203.0.113.10/24
gateway 203.0.113.1
bridge-ports eno1
bridge-stp off
bridge-fd 0 Ce qu’il est utile de remarquer, c’est que vmbr0 est déjà un pont, et que la carte réseau y est déjà branchée. Rien d’autre n’est nécessaire pour l’étape trois, c’est pourquoi l’étape trois ne vous demande de ne rien changer ici.
Proxmox VE 9 repose sur Debian 13 et utilise ifupdown2, donc les changements réseau prennent effet sans redémarrer la machine. Enregistrez le fichier et exécutez :
ifreload -a
Modifier via l’interface web Proxmox écrit plutôt vos changements dans /etc/network/interfaces.new et les retient jusqu’à ce que vous appuyiez sur Appliquer la configuration. Quelle que soit la méthode, ouvrez d’abord la console depuis votre compte. Une faute de frappe dans ce fichier et la machine disparaît du réseau ; la console passe par un autre chemin et continuera de fonctionner.
Commencez ici. Votre machine virtuelle se comporte comme un ordinateur séparé branché sur le même commutateur, elle parle elle-même à nos routeurs, et l’hôte n’a besoin d’aucune modification.
Dans Proxmox, ajoutez un périphérique réseau à la machine, réglez le pont sur vmbr0, et laissez l’adresse MAC que Proxmox a remplie. Configurez ensuite l’adresse à l’intérieur de la machine. Debian ou Ubuntu avec la configuration classique :
auto lo
iface lo inet loopback
auto ens18
iface ens18 inet static
address 203.0.113.58/24
gateway 203.0.113.1
dns-nameservers 209.244.0.3 1.1.1.1 Ubuntu avec netplan, dans /etc/netplan/01-netcfg.yaml :
network:
version: 2
ethernets:
ens18:
addresses: [203.0.113.58/24]
routes:
- to: default
via: 203.0.113.1
nameservers:
addresses: [209.244.0.3, 1.1.1.1] Sous Windows, les trois mêmes valeurs vont dans les paramètres IPv4 de l’adaptateur. Peu importe réellement ce que la machine exécute ; pour nous, c’est un ordinateur de plus sur le câble.
Il n’y a rien à nous signaler d’abord. Vous n’avez pas à nous envoyer l’adresse MAC de chaque machine virtuelle, et nous ne limitons pas le nombre que votre port peut utiliser. Un certain nombre d’hébergeurs le font, et leurs instructions vous font remplir un formulaire pour chaque nouvelle machine. Nous avons vérifié plutôt que supposé : le port sur lequel votre serveur est branché n’a aucune limite de MAC et la sécurité du port est désactivée, et avant de publier ceci nous avons mis une seconde adresse et une seconde MAC sur le port d’une machine du personnel et l’avons jointe depuis l’internet public.
Trois choses à bien faire :
• Chaque machine a besoin de sa propre adresse MAC. Deux machines qui en partagent une, ou qui copient celle de l’hôte, et aucune ne fonctionne correctement.
• Utilisez la passerelle appartenant à la plage de cette adresse, depuis l’étape un.
• N’utilisez que des adresses qui sont sur votre compte. Ce pont fait face à un vrai réseau avec les machines d’autres personnes. Une adresse qui n’est pas la vôtre emporte leur trafic avec elle.
Même raison : rien qui distribue des adresses n’a sa place sur vmbr0. Pas de serveur DHCP, pas d’annonces de routeur. Si vous voulez attribuer automatiquement des adresses à vos propres machines, utilisez l’étape cinq, où le pont n’a aucune sortie et ne peut joindre personne d’autre.
Choisissez ceci quand vous voulez que l’hôte voie chaque paquet, pour que son pare-feu puisse agir dessus, ou quand vous préférez que vos machines n’apparaissent jamais du tout sur le réseau partagé. Elles reçoivent toujours de vraies adresses publiques de votre compte ; seul le chemin change.
L’adresse publique quitte le pont et va sur la carte réseau, l’hôte est invité à transférer, et il répond au nom des machines derrière lui. Sur l’hôte :
auto lo
iface lo inet loopback
auto eno1
iface eno1 inet static
address 203.0.113.10/24
gateway 203.0.113.1
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up echo 1 > /proc/sys/net/ipv4/conf/eno1/proxy_arp
auto vmbr0
iface vmbr0 inet manual
bridge-ports none
bridge-stp off
bridge-fd 0
up ip route add 203.0.113.58/32 dev vmbr0
down ip route del 203.0.113.58/32 dev vmbr0 Une ligne up et down pour chaque adresse routée de cette façon. À l’intérieur de la machine, l’adresse est un /32, et l’hôte doit être joint par une route explicite avant celle par défaut :
auto lo
iface lo inet loopback
auto ens18
iface ens18 inet static
address 203.0.113.58/32
post-up ip route add 203.0.113.10 dev ens18
post-up ip route add default via 203.0.113.10
dns-nameservers 209.244.0.3 1.1.1.1 Ne supprimez pas la ligne proxy_arp. Nos routeurs demandent au réseau qui détient chaque adresse, et cette ligne est ce qui fait répondre l’hôte pour les machines derrière lui. Laissez-la de côté et elles sont tout simplement invisibles. Les deux lignes post-up echo sont la façon propre à Proxmox de l’écrire. Pour les définir de façon permanente à la place, déposez un fichier dans /etc/sysctl.d/ contenant :
net.ipv4.ip_forward=1 net.ipv4.conf.eno1.proxy_arp=1
Ce que vous achetez avec le travail supplémentaire, c’est un hôte qui peut filtrer et journaliser chaque paquet. Si vous n’en avez pas besoin, l’étape trois est moins sujette aux erreurs.
Beaucoup de machines ne font que lancer des conversations : des exécuteurs de build, des travailleurs de file d’attente, une base de données que rien d’extérieur ne devrait toucher. Donnez-leur une adresse privée sur un pont sans sortie propre, et laissez l’hôte traduire leur trafic sur son adresse au passage. Cela n’utilise rien de votre allocation, vous pouvez donc en exécuter autant que le matériel peut en porter.
Ajoutez un second pont, en laissant vmbr0 exactement tel quel :
auto vmbr1
iface vmbr1 inet static
address 10.10.10.1/24
bridge-ports none
bridge-stp off
bridge-fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE Placez les machines sur vmbr1, donnez à chacune une adresse dans cette plage avec 10.10.10.1 comme passerelle, et elles sont parties. Pour le reste de l’internet, elles ressemblent à votre serveur. Rien ne les atteint de l’extérieur à moins que vous ne le demandiez, et demander est une règle de plus à côté de la première, sur un port que l’hôte n’utilise pas déjà :
post-up iptables -t nat -A PREROUTING -i eno1 -p tcp --dport 8443 -j DNAT --to 10.10.10.2:443 post-down iptables -t nat -D PREROUTING -i eno1 -p tcp --dport 8443 -j DNAT --to 10.10.10.2:443
Ce pont n’a aucun port physique, donc un serveur DHCP y est sûr et constitue une façon propre d’adresser les machines derrière lui.
Ce que vous avez, c’est une poignée d’adresses IPv6 séparées, pas un bloc à subdiviser. Elles sont en bas du même e-mail de configuration, et elles se placent une à la fois exactement comme les IPv4 : une sur l’hôte si vous voulez que l’hôte soit joignable en IPv6, les autres sur les machines qui en ont besoin. L’installateur n’en configure aucune, donc tout ceci est à vous d’ajouter.
Écrivez chacune avec un /64 à la fin, et la passerelle est le préfixe avec ::1 après — une adresse dans 2001:db8:1234::/64 utilise 2001:db8:1234::1. Sur l’hôte, à côté du pont déjà présent :
iface vmbr0 inet6 static
address 2001:db8:1234::2/64
gateway 2001:db8:1234::1 Et dans une machine sur le pont :
iface ens18 inet6 static
address 2001:db8:1234::5/64
gateway 2001:db8:1234::1 Puis ifreload -a, comme avant. Parce que ce sont des adresses individuelles plutôt qu’un bloc à vous, n’annoncez pas de routes et ne distribuez pas d’adresses qui ne vous ont pas été données. Il vous en manque ? Demandez-nous.
Vous configurez vous-même le DNS inverse, sur n’importe quelle adresse, sans rien demander à personne. Connectez-vous, ouvrez le serveur, et trouvez le panneau intitulé Accès, réseau et rDNS. Chaque adresse est listée avec le nom auquel elle répond actuellement et un bouton Modifier le rDNS à côté. Les adresses IPv6 fonctionnent de la même façon.
Le champ attend un nom d’hôte : lettres, chiffres, tirets et points, chaque partie entre 1 et 63 caractères, au moins deux parties, et le point final est ajouté pour vous. Laissez quelques minutes pour que cela prenne effet.
Si la machine envoie des e-mails, l’adresse à nommer est celle d’où part réellement le courrier — avec l’étape cinq, c’est l’adresse de l’hôte, pas celle de la machine — et vous voudrez aussi l’enregistrement direct correspondant chez votre fournisseur DNS. Les serveurs de messagerie à l’autre bout vérifient que les deux concordent, et refusent le courrier quand ce n’est pas le cas.
Ce que les gens nous demandent après avoir suivi cette page.