Collegamento dei server a una VLAN
Questa guida spiega come configurare le VLAN sui server Linux per isolare e controllare il traffico di rete. I passaggi seguenti riguardano Ubuntu 22.04, Debian 11 e AlmaLinux 9 / Rocky Linux 9.
Prima di configurare le VLAN sul server, assicurarsi che la porta dello switch sia configurata correttamente. Per le VLAN con tag, la porta dello switch deve consentire gli ID VLAN richiesti. Per il traffico senza tag, la porta deve essere in modalità access e avere assegnata la VLAN appropriata.
Verificare il modulo del kernel 8021q
Su tutte le distribuzioni, verificare che il modulo del kernel 8021q sia caricato prima di configurare le VLAN:
lsmod | grep 8021q
Se il modulo non è caricato, eseguire:
sudo modprobe 8021q
Per renderlo permanente, aggiungere il modulo a /etc/modules:
echo "8021q" | sudo tee -a /etc/modules
Ubuntu 22.04
Ubuntu 22.04 utilizza netplan per la configurazione di rete.
Identificare l'interfaccia di rete
Eseguire il seguente comando per trovare il nome dell'interfaccia:
ip link show
Negli esempi seguenti, l'interfaccia è enp0s8.
Configurare la rete per una porta access senza tag
Questa sezione descrive come assegnare un indirizzo IP statico direttamente all'interfaccia fisica, senza creare una sottointerfaccia VLAN.
Aprire il file di configurazione di netplan:
sudo nano /etc/netplan/*.yaml
Aggiungere la seguente configurazione. Utilizzare indirizzi IP diversi su ciascun server:
Server 1:
network: version: 2 ethernets: enp0s8: dhcp4: no addresses: - 192.168.1.1/24 routes: - to: default via: 192.168.1.254
Server 2:
network: version: 2 ethernets: enp0s8: dhcp4: no addresses: - 192.168.1.2/24 routes: - to: default via: 192.168.1.254
Il parametro gateway4 è deprecato a partire da netplan 0.100 e genera un avviso. Utilizzare routes: come mostrato sopra.
Testare la configurazione prima di applicarla. Il comando attende fino a 120 secondi una conferma e, se non viene confermata, ripristina automaticamente la configurazione precedente. Questo è particolarmente utile sui server remoti:
sudo netplan try
Se la configurazione è valida, applicarla:
sudo netplan apply
Verificare che l'indirizzo sia stato assegnato:
ip addr show enp0s8
Configurare le VLAN con tag
Aprire il file di configurazione di netplan e aggiungere le interfacce VLAN. Utilizzare indirizzi IP diversi per ogni server su ciascuna VLAN:
Server 1:
network: version: 2 ethernets: enp0s8: dhcp4: no vlans: vlan10: id: 10 link: enp0s8 addresses: - 192.168.10.1/24 vlan20: id: 20 link: enp0s8 addresses: - 192.168.20.1/24
Server 2:
network: version: 2 ethernets: enp0s8: dhcp4: no vlans: vlan10: id: 10 link: enp0s8 addresses: - 192.168.10.2/24 vlan20: id: 20 link: enp0s8 addresses: - 192.168.20.2/24
L'utilizzo di indirizzi IP duplicati provoca un conflitto. Ogni server deve avere un indirizzo IP univoco su ciascuna VLAN.
Normalmente, una sola interfaccia VLAN dovrebbe avere un gateway predefinito. L'assegnazione di un gateway a più interfacce VLAN può causare problemi di routing, a meno che non sia configurato un routing avanzato.
Testare e applicare la configurazione:
sudo netplan try sudo netplan apply
Verificare il risultato:
ip addr
Per verificare che il tagging VLAN funzioni correttamente:
ip -d link show vlan10 ip -d link show vlan20
Verificare la connettività:
ping 192.168.10.2 ping 192.168.20.2
Debian 11
Debian 11 utilizza il file /etc/network/interfaces per la configurazione di rete.
Installare il pacchetto vlan
In un'installazione pulita di Debian, installare il pacchetto vlan prima di configurare le interfacce VLAN:
sudo apt update sudo apt install vlan
Identificare l'interfaccia di rete
ip link show
Negli esempi seguenti, l'interfaccia è enp0s8.
Configurare la rete per una porta access senza tag
Questa sezione descrive come assegnare un indirizzo IP statico direttamente all'interfaccia fisica, senza creare una sottointerfaccia VLAN.
Aggiungere quanto segue a /etc/network/interfaces su ciascun server.
Il comando ip addr add assegna un indirizzo temporaneamente e non sopravvive al riavvio. Utilizzare la configurazione persistente riportata di seguito per renderla permanente.
Server 1:
auto enp0s8 iface enp0s8 inet static address 192.168.1.1/24 gateway 192.168.1.254
Server 2:
auto enp0s8 iface enp0s8 inet static address 192.168.1.2/24 gateway 192.168.1.254
Applicare la configurazione senza riavviare:
sudo systemctl restart networking
Verificare che l'indirizzo sia attivo:
ip addr
Verificare che i server possano raggiungersi:
ping 192.168.1.2
Configurare le VLAN con tag
Aggiungere le interfacce VLAN a /etc/network/interfaces su ciascun server. Utilizzare indirizzi IP diversi per ogni server su ciascuna VLAN.
Server 1:
auto enp0s8.10 iface enp0s8.10 inet static address 192.168.10.1/24 gateway 192.168.10.254 auto enp0s8.20 iface enp0s8.20 inet static address 192.168.20.1/24
Server 2:
auto enp0s8.10 iface enp0s8.10 inet static address 192.168.10.2/24 gateway 192.168.10.254 auto enp0s8.20 iface enp0s8.20 inet static address 192.168.20.2/24
Applicare la configurazione:
Il riavvio del servizio di rete su un server remoto può interrompere la sessione SSH corrente.
sudo systemctl restart networking
Verificare il risultato:
ip addr
Per verificare che il tagging VLAN funzioni correttamente:
ip -d link show enp0s8.10 ip -d link show enp0s8.20
Verificare la connettività:
ping 192.168.10.2 ping 192.168.20.2
AlmaLinux 9 / Rocky Linux 9
AlmaLinux 9 e Rocky Linux 9 utilizzano NetworkManager per la configurazione di rete. Lo strumento consigliato per gestire le connessioni è nmcli. Il metodo precedente basato su /etc/sysconfig/network-scripts/ non è supportato nelle distribuzioni basate su RHEL 9.
Identificare l'interfaccia di rete
nmcli device status
Negli esempi seguenti, l'interfaccia è enp0s8.
Verificare le connessioni esistenti
Prima di aggiungere una nuova connessione, verificare se esiste già un profilo di connessione per l'interfaccia:
nmcli connection show
Se un profilo esistente è attivo su enp0s8, rimuoverlo per evitare conflitti. Utilizzare il nome del profilo esattamente come mostrato nell'output precedente. Saltare questo passaggio se il profilo esistente è stato creato dal provider di hosting o da cloud-init:
nmcli connection delete "Wired connection 1"
Configurare la rete per una porta access senza tag
Assegnare un indirizzo IP statico all'interfaccia fisica.
Server 1:
nmcli connection add type ethernet con-name "enp0s8-primary" ifname enp0s8 \ ipv4.method manual ipv4.addresses 192.168.1.1/24 \ ipv4.gateway 192.168.1.254 \ connection.autoconnect yes nmcli connection up enp0s8-primary
Server 2:
nmcli connection add type ethernet con-name "enp0s8-primary" ifname enp0s8 \ ipv4.method manual ipv4.addresses 192.168.1.2/24 \ ipv4.gateway 192.168.1.254 \ connection.autoconnect yes nmcli connection up enp0s8-primary
Verificare che l'indirizzo sia stato assegnato:
ip addr show enp0s8
Verificare la connettività tra i server:
ping 192.168.1.2
Configurare le VLAN con tag
Creare un'interfaccia VLAN sopra l'interfaccia fisica. Utilizzare indirizzi IP diversi su ciascun server per ogni VLAN.
Server 1:
nmcli connection add type vlan con-name vlan10 ifname enp0s8.10 \ vlan.parent enp0s8 vlan.id 10 \ ipv4.method manual ipv4.addresses 192.168.10.1/24 \ connection.autoconnect yes nmcli connection add type vlan con-name vlan20 ifname enp0s8.20 vlan.parent enp0s8 vlan.id 20 ipv4.method manual ipv4.addresses 192.168.20.1/24 connection.autoconnect yes nmcli connection up vlan10 nmcli connection up vlan20
Server 2:
nmcli connection add type vlan con-name vlan10 ifname enp0s8.10 \ vlan.parent enp0s8 vlan.id 10 \ ipv4.method manual ipv4.addresses 192.168.10.2/24 \ connection.autoconnect yes nmcli connection add type vlan con-name vlan20 ifname enp0s8.20 vlan.parent enp0s8 vlan.id 20 ipv4.method manual ipv4.addresses 192.168.20.2/24 connection.autoconnect yes nmcli connection up vlan10 nmcli connection up vlan20
L'utilizzo di indirizzi IP duplicati provoca un conflitto. Ogni server deve avere un indirizzo IP univoco su ciascuna VLAN.
Verificare il risultato:
ip addr
Per verificare che il tagging VLAN funzioni correttamente:
ip -d link show enp0s8.10 ip -d link show enp0s8.20
Verificare la connettività:
ping 192.168.10.2 ping 192.168.20.2
Risoluzione dei problemi
Se le interfacce VLAN non vengono visualizzate o non ricevono traffico:
- verificare che la porta dello switch consenta gli ID VLAN richiesti;
- confermare che il vSwitch o il gruppo di porte dell'hypervisor sia configurato per consentire il passaggio dei tag VLAN;
- assicurarsi che nella configurazione sia specificata l'interfaccia principale corretta;
- verificare che il modulo del kernel 8021q sia caricato: lsmod | grep 8021q.