Retourner sur le site

VLAN 802.1Q sur Linux

Configurer des sous-interfaces VLAN 802.1Q sur un serveur dédié HolyCloud pour isoler trafic public, stockage ou management.

VLAN 802.1Q sur Linux

Le standard IEEE 802.1Q encapsule le trafic Ethernet dans des VLAN tagués. Sur un serveur dédié HolyCloud avec port trunk, vous séparez management, production et stockage sans cartes réseau multiples.

Prérequis

  • VLAN provisionnés côté switch/datacenter (IDs confirmés par HolyCloud)
  • Interface physique connectée en mode trunk (pas access seul)
  • Accès root, sauvegarde réseau avant modification
  • Risque de coupure SSH : gardez IPMI/KVM ouvrable

Concepts

[Switch] -- trunk (VLAN 100, 200) --> [eth0]
                                         ├── eth0.100 (public)
                                         └── eth0.200 (stockage iSCSI)

Le tag VLAN est ajouté par le module 8021q.

Charger le module

sudo modprobe 8021q
echo 8021q | sudo tee /etc/modules-load.d/vlan.conf

Création manuelle (test)

ip link show eth0
sudo ip link add link eth0 name eth0.100 type vlan id 100
sudo ip addr add 10.10.100.2/24 dev eth0.100
sudo ip link set eth0.100 up
ping -c 2 10.10.100.1

Suppression :

sudo ip link del eth0.100

Persistance : iproute2 (interfaces)

Debian /etc/network/interfaces :

auto eth0
iface eth0 inet manual

auto eth0.100
iface eth0.100 inet static
    address 203.0.113.50
    netmask 255.255.255.248
    gateway 203.0.113.49
    vlan-raw-device eth0

auto eth0.200
iface eth0.200 inet static
    address 192.168.200.10
    netmask 255.255.255.0
    vlan-raw-device eth0
sudo ifreload -a

Netplan

network:
  version: 2
  vlans:
    eth0.100:
      id: 100
      link: eth0
      addresses: [203.0.113.50/29]
      routes:
        - to: default
          via: 203.0.113.49
    eth0.200:
      id: 200
      link: eth0
      addresses: [192.168.200.10/24]
sudo netplan apply

systemd-networkd

/etc/systemd/network/10-eth0.network :

[Match]
Name=eth0

[Network]
VLAN=eth0.100
VLAN=eth0.200

/etc/systemd/network/10-eth0.100.netdev :

[NetDev]
Name=eth0.100
Kind=vlan

[VLAN]
Id=100

Fichier .network associé avec Address=.

MTU et performance

Trunk + overhead VLAN : souvent MTU 1500 sur VLAN public ; stockage peut nécessiter jumbo frames (9000) si bout-en-bout supporté.

ip link set eth0.200 mtu 9000

Validez avec HolyCloud avant jumbo sur liaison partagée.

Pare-feu par VLAN

sudo nft add table inet filter
sudo nft add chain inet filter forward { type filter hook forward priority 0 \; }
# isolez : pas de forward entre eth0.100 et eth0.200 sauf règles explicites

Ou ufw sur interfaces nommées :

ufw allow in on eth0.100 to any port 443
ufw deny in on eth0.200 from any to any

Vérification

ip -d link show type vlan
cat /proc/net/vlan/eth0.100
tcpdump -i eth0 -e vlan

Erreurs fréquentes

| Erreur | Cause |

|--------|-------|

| Pas de DHCP/routage | Mauvais VLAN ID ou port en access |

| Double tag | VLAN natif mal géré côté switch |

| iSCSI instable | MTU mismatch, filtrage SAN |

Migration sans coupure

  1. Créez l'interface VLAN avec une IP secondaire de test.
  2. Validez connectivité depuis le switch de management.
  3. Basculez les services vers la VLAN cible.
  4. Retirez l'ancienne IP sur l'interface untagged si plus nécessaire.

Besoin d'aide ?

Demandez au support HolyCloud la liste des VLAN ID autorisés, le mode port (trunk/access) et les plages IP associées avant toute config production.