Installer OpenWrt sur un hôte Proxmox VE à une seule carte réseau
Résultat
Section intitulée « Résultat »Vous pouvez choisir la bonne topologie sur un hôte PVE doté d’une seule carte réseau physique :
- sans modifier l’adresse de gestion de PVE ;
- sans servir du DHCP sur
vmbr0par erreur ; - avec un résolveur en contournement ou un laboratoire LAN interne ;
- et avec un accès à l’hôte qui survit à l’arrêt de la VM routeur.
Environnement concerné
Section intitulée « Environnement concerné »- Proxmox VE 8.x/9.x avec une seule carte réseau physique ;
vmbr0porte à la fois l’adresse de gestion de PVE et la passerelle amont. - Cette page est rédigée pour PVE 9.2.2, une carte Realtek RTL8111,
vmbr0 192.168.50.2/24, passerelle192.168.50.1. - Une seule carte réseau ne peut pas séparer physiquement le WAN et le LAN. Ne recopiez pas la disposition
enp1s0/enp2s0des guides à deux cartes. Utilisez un service en contournement ou un pont PVE interne. - Une deuxième carte réseau ou un commutateur compatible VLAN est plus simple ; cette topologie est hors du périmètre de cette page.
Deux topologies
Section intitulée « Deux topologies »A. DNS/passerelle en contournement (plus petit changement)
Section intitulée « A. DNS/passerelle en contournement (plus petit changement) »OpenWrt dispose d’une vNIC sur vmbr0 avec l’adresse LAN 192.168.50.3/24, et le DHCP est désactivé. Les clients l’utilisent manuellement comme DNS (ou comme passerelle) ; il accède à internet via 192.168.50.1.
| Port physique | Bridge PVE | Carte réseau virtuelle | Interface OpenWrt | Rôle |
|---|---|---|---|---|
| nic0 | vmbr0 | net0 | lan 192.168.50.3 | DNS/passerelle en contournement |
Convient pour valider le DNS, AdGuard Home ou le DNS/les règles d’OpenClash sans toucher au DHCP du routeur principal.
B. Laboratoire LAN interne PVE (recommandé pour tester le routage)
Section intitulée « B. Laboratoire LAN interne PVE (recommandé pour tester le routage) »OpenWrt dispose de deux vNIC : net0 sur vmbr0 en WAN (DHCP), net1 sur vmbr1 en LAN (192.168.1.1/24). vmbr1 n’a aucun port physique et ne sert qu’à une VM cliente de test.
| Port physique | Bridge PVE | Carte réseau virtuelle | Interface OpenWrt | Rôle |
|---|---|---|---|---|
| nic0 | vmbr0 | net0 | wan DHCP | amont 192.168.50.1 |
| — | vmbr1 | net1 | lan 192.168.1.1 | client de test interne |
Cette topologie valide le routage, le NAT, le DHCP, le DNS et « l’hôte reste joignable après l’arrêt de la VM routeur » sans toucher au LAN physique.
Avant de modifier quoi que ce soit
Section intitulée « Avant de modifier quoi que ce soit »ip -br linkip -br addrcat /etc/network/interfacesbridge linkqm listpvesm statusNotez l’adresse de vmbr0, la passerelle, le port physique et la liste des VM. Sur un hôte à une seule carte réseau, vmbr0 est votre seul chemin de gestion ; une erreur peut vous en exclure.
AttenduVous pouvez restaurer vmbr0 à partir de vos notes en cas de problème.
Utilisez un écran et un clavier, l’IPMI ou un VNC cloud ; ne vous fiez pas à SSH seul. Téléchargez ensuite l’image OpenWrt x86_64 sur l’hôte PVE :
cd /var/lib/vz/template/isowget https://downloads.openwrt.org/releases/25.12.6/targets/x86/64/openwrt-25.12.6-x86-64-generic-ext4-combined.img.gzwget https://downloads.openwrt.org/releases/25.12.6/targets/x86/64/sha256sumssha256sum -c sha256sums --ignore-missinggzip -d openwrt-25.12.6-x86-64-generic-ext4-combined.img.gzNe continuez pas si la somme de contrôle échoue. Utilisez le nom de fichier et la version actuels de downloads.openwrt.org.
AttenduVous pouvez toujours joindre PVE si SSH tombe.
Étapes minimales
Section intitulée « Étapes minimales »Commencez par un pont temporaire ; ne le rendez persistant qu’une fois qu’il fonctionne :
ip link add name vmbr1 type bridgeip link set vmbr1 upip -br link show vmbr1ip -br addr show vmbr0vmbr1 n’a aucun port physique, il ne peut donc pas diffuser de DHCP vers le LAN domestique. N’exécutez pas de serveur DHCP sur vmbr0.
Attenduvmbr1 existe et est actif ; les adresses de vmbr0 sont inchangées.
qm create 200 --name openwrt-lab --memory 512 --cores 2 --ostype l26 \ --scsihw virtio-scsi-pci \ --net0 virtio,bridge=vmbr0 \ --net1 virtio,bridge=vmbr1 \ --serial0 socketqm importdisk 200 /var/lib/vz/template/iso/openwrt-25.12.6-x86-64-generic-ext4-combined.img local-lvmqm set 200 --scsi0 local-lvm:vm-200-disk-0qm set 200 --boot order=scsi0qm start 200Utilisez pvesm status pour connaître l’identifiant réel du stockage. Après qm importdisk, vérifiez le nom du disque dans la sortie de la commande ; il peut s’agir de vm-200-disk-0.
AttenduLa VM 200 a un disque de démarrage scsi0 et net0/net1.
qm terminal 200Si le port série n’affiche rien, utilisez la console VNC de PVE. Dans OpenWrt :
ip link showip addr showuci show networkL’ordre eth0/eth1 ne correspond pas forcément à net0/net1 ; vérifiez par l’adresse MAC, l’état du lien et uci show network. Ne supposez pas que eth0 est le WAN. Dans ce laboratoire, net0=eth0=WAN et net1=eth1=LAN, mais revérifiez sur un autre hôte.
AttenduVous savez quelle interface est le WAN et laquelle est le LAN.
Dans la console OpenWrt, remplacez eth0/eth1 par les interfaces que vous avez vérifiées :
uci set network.wan=interfaceuci set network.wan.proto='dhcp'uci set network.wan.device='eth0'uci set network.lan=interfaceuci set network.lan.proto='static'uci set network.lan.device='eth1'uci set network.lan.ipaddr='192.168.1.1'uci set network.lan.netmask='255.255.255.0'uci set dhcp.wan=dhcpuci set dhcp.wan.interface='wan'uci set dhcp.wan.ignore='1'uci commit networkuci commit dhcp/etc/init.d/network reloadVérifiez que dhcp.wan.ignore='1' ; sinon OpenWrt risque de servir du DHCP sur le vmbr0 amont et de perturber le réseau domestique.
AttenduLe WAN obtient une adresse de 192.168.50.1 ; le LAN est 192.168.1.1 ; pas de DHCP sur vmbr0.
Créez une VM de test sur vmbr1 (ou rattachez-y sa carte réseau) et laissez-la obtenir un bail du LAN OpenWrt. Puis :
ip routeping 192.168.1.1ping 192.168.50.1nslookup openwrt.orgSi le client n’obtient pas de bail, inspectez dhcp.lan et dnsmasq d’OpenWrt avant de modifier vmbr0.
AttenduLe client atteint 192.168.1.1, la passerelle amont et le DNS.
Vérification
Section intitulée « Vérification »
qm status 200indique que la VM est en cours d’exécution ;qm config 200montrenet0survmbr0etnet1survmbr1.- Dans OpenWrt,
ip addr showaffiche le WAN192.168.50.xet le LAN192.168.1.1/24. - Client de test : la passerelle par défaut est
192.168.1.1, il peut joindre192.168.50.1par ping et résoutopenwrt.org. - Hôte :
ssh [email protected]et l’interface web de PVE fonctionnent toujours. - Arrêtez la VM routeur (
qm stop 200) ; la gestion de l’hôte fonctionne toujours ;qm start 200rétablit le routeur.
Cas d’échec et récupération
Section intitulée « Cas d’échec et récupération »L’hôte est injoignable en SSH
Section intitulée « L’hôte est injoignable en SSH »Cessez de modifier le réseau. Utilisez l’écran et le clavier, l’IPMI ou la console cloud, puis vérifiez :
ip -br addr show vmbr0cat /etc/network/interfacesbridge linkSi vous venez de modifier /etc/network/interfaces, restaurez la sauvegarde et rechargez :
cp /etc/network/interfaces.bak.YYYY-MM-DD /etc/network/interfacesifreload -aSi seul le vmbr1 temporaire a causé le problème, confirmez d’abord qu’aucune autre VM ne l’utilise :
grep -R "vmbr1" /etc/pve/qemu-serverNe le supprimez que si cette commande n’affiche rien :
ip link set vmbr1 downip link del vmbr1OpenWrt n’a pas d’adresse WAN
Section intitulée « OpenWrt n’a pas d’adresse WAN »qm config 200qm terminal 200Dans OpenWrt, vérifiez ip link show, uci show network et logread. Confirmez que net0 est sur vmbr0 et que nic0 est actif ; n’ajoutez pas de second serveur DHCP sur vmbr0.
Le client de test n’obtient pas de bail 192.168.1.x
Section intitulée « Le client de test n’obtient pas de bail 192.168.1.x »Vérifiez dhcp.lan d’OpenWrt et si dnsmasq s’exécute ; confirmez que la VM de test est bien rattachée à vmbr1. Ne modifiez pas les adresses ni la passerelle de vmbr0 pour « réparer » le laboratoire.
L’hôte reste-t-il joignable après l’arrêt de la VM routeur ?
Section intitulée « L’hôte reste-t-il joignable après l’arrêt de la VM routeur ? »C’est le critère de récupération : après qm stop 200, ouvrez https://192.168.50.2:8006 et connectez-vous en SSH depuis une autre machine. Si ce n’est pas possible, votre chemin de gestion dépend d’OpenWrt ; corrigez cela avant de continuer.
Essai en laboratoire E2 (2026-10-20)
Section intitulée « Essai en laboratoire E2 (2026-10-20) »- Environnement : PVE 9.2.2, un Realtek RTL8111,
vmbr0 192.168.50.2/24; VM 200 OpenWrt 25.12.6 x86_64, 512 Mo/2 vCPU. - Le WAN d’OpenWrt
eth0a reçu192.168.50.77par DHCP de192.168.50.1; le LANeth1est192.168.1.1/24. - Un client netns sur le
vmbr1interne a reçu192.168.1.191par DHCP, a utilisé192.168.1.1comme route par défaut, a résoluopenwrt.orget a obtenu un HTTP 200. - Après
qm stop 200, une nouvelle connexion SSH à l’hôte PVE fonctionnait toujours ;vmbr0est resté192.168.50.2/24. - Non testé : clients LAN physiques, disposition à deux cartes réseau, stabilité sur la durée, amont PPPoE/IPv6. Ces points sont hors du périmètre de ce résultat E2.
Sources et relecture
Section intitulée « Sources et relecture »- Cette page est un essai de laboratoire E2, pas un simple brouillon E1 ; elle n’a pas été relue de façon indépendante ni testée sur un LAN physique.
- Recette :
tests/recipes/pve-single-nic-25.12.md. Elle consigne le SHA-256 de l’image,qm config 200et les résultats du client. - Une seule carte réseau n’est pas deux cartes : n’en faites pas un guide de séparation physique du WAN et du LAN sans deuxième carte ou commutateur VLAN.
Sources
Notes indépendantes sur OpenWrt. Chaque page précise le firmware, l’appareil, le gestionnaire de paquets et le retour arrière.
Icônes : Solar by 480 Design, CC BY 4.0