Podłączanie serwerów do sieci VLAN
Ten przewodnik wyjaśnia, jak skonfigurować sieci VLAN na serwerach Linux w celu izolowania i kontrolowania ruchu sieciowego. Poniższe kroki obejmują Ubuntu 22.04, Debian 11 oraz AlmaLinux 9 / Rocky Linux 9.
Przed skonfigurowaniem sieci VLAN na serwerze upewnij się, że port przełącznika jest prawidłowo skonfigurowany. W przypadku sieci VLAN z tagowaniem port przełącznika musi zezwalać na wymagane identyfikatory VLAN. W przypadku ruchu bez tagów port musi działać w trybie access z przypisaną odpowiednią siecią VLAN.
Sprawdzanie modułu jądra 8021q
We wszystkich dystrybucjach przed skonfigurowaniem sieci VLAN sprawdź, czy moduł jądra 8021q jest załadowany:
lsmod | grep 8021q
Jeśli moduł nie jest załadowany, uruchom:
sudo modprobe 8021q
Aby ładować moduł automatycznie, dodaj go do /etc/modules:
echo "8021q" | sudo tee -a /etc/modules
Ubuntu 22.04
Ubuntu 22.04 używa netplan do konfiguracji sieci.
Identyfikacja interfejsu sieciowego
Uruchom następujące polecenie, aby znaleźć nazwę interfejsu:
ip link show
W poniższych przykładach interfejsem jest enp0s8.
Konfiguracja sieci dla nietagowanego portu access
W tej sekcji opisano przypisanie statycznego adresu IP bezpośrednio do fizycznego interfejsu, bez tworzenia podinterfejsu VLAN.
Otwórz plik konfiguracyjny netplan:
sudo nano /etc/netplan/*.yaml
Dodaj następującą konfigurację. Używaj różnych adresów IP na każdym serwerze:
Serwer 1:
network: version: 2 ethernets: enp0s8: dhcp4: no addresses: - 192.168.1.1/24 routes: - to: default via: 192.168.1.254
Serwer 2:
network: version: 2 ethernets: enp0s8: dhcp4: no addresses: - 192.168.1.2/24 routes: - to: default via: 192.168.1.254
Parametr gateway4 jest przestarzały od wersji netplan 0.100 i spowoduje wyświetlenie ostrzeżenia. Użyj zamiast niego routes:, jak pokazano powyżej.
Przetestuj konfigurację przed jej zastosowaniem. Polecenie czeka do 120 sekund na potwierdzenie, a następnie automatycznie przywraca poprzednią konfigurację, jeśli nie zostanie potwierdzona. Jest to szczególnie przydatne w przypadku serwerów zdalnych:
sudo netplan try
Jeśli konfiguracja jest prawidłowa, zastosuj ją:
sudo netplan apply
Sprawdź, czy adres został przypisany:
ip addr show enp0s8
Konfiguracja tagowanych sieci VLAN
Otwórz plik konfiguracyjny netplan i dodaj interfejsy VLAN. Używaj różnych adresów IP dla każdego serwera w każdej sieci VLAN:
Serwer 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
Serwer 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
Użycie zduplikowanych adresów IP spowoduje konflikt. Każdy serwer musi mieć unikalny adres IP w każdej sieci VLAN.
Zwykle tylko jeden interfejs VLAN powinien mieć domyślną bramę. Przypisanie bramy do wielu interfejsów VLAN może powodować problemy z routingiem, chyba że skonfigurowano zaawansowany routing.
Przetestuj i zastosuj konfigurację:
sudo netplan try sudo netplan apply
Sprawdź wynik:
ip addr
Aby sprawdzić, czy tagowanie VLAN działa prawidłowo:
ip -d link show vlan10 ip -d link show vlan20
Sprawdź łączność:
ping 192.168.10.2 ping 192.168.20.2
Debian 11
Debian 11 używa pliku /etc/network/interfaces do konfiguracji sieci.
Instalacja pakietu vlan
W przypadku czystej instalacji Debiana zainstaluj pakiet vlan przed skonfigurowaniem interfejsów VLAN:
sudo apt update sudo apt install vlan
Identyfikacja interfejsu sieciowego
ip link show
W poniższych przykładach interfejsem jest enp0s8.
Konfiguracja sieci dla nietagowanego portu access
W tej sekcji opisano przypisanie statycznego adresu IP bezpośrednio do fizycznego interfejsu, bez tworzenia podinterfejsu VLAN.
Dodaj poniższą konfigurację do pliku /etc/network/interfaces na każdym serwerze.
Polecenie ip addr add przypisuje adres tymczasowo i nie przetrwa ponownego uruchomienia. Użyj poniższej trwałej konfiguracji, aby ustawienie zostało zachowane.
Serwer 1:
auto enp0s8 iface enp0s8 inet static address 192.168.1.1/24 gateway 192.168.1.254
Serwer 2:
auto enp0s8 iface enp0s8 inet static address 192.168.1.2/24 gateway 192.168.1.254
Zastosuj konfigurację bez ponownego uruchamiania systemu:
sudo systemctl restart networking
Sprawdź, czy adres jest aktywny:
ip addr
Sprawdź, czy serwery mogą komunikować się ze sobą:
ping 192.168.1.2
Konfiguracja tagowanych sieci VLAN
Dodaj interfejsy VLAN do pliku /etc/network/interfaces na każdym serwerze. Używaj różnych adresów IP dla każdego serwera w każdej sieci VLAN.
Serwer 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
Serwer 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
Zastosuj konfigurację:
Ponowne uruchomienie usługi sieciowej na zdalnym serwerze może przerwać bieżącą sesję SSH.
sudo systemctl restart networking
Sprawdź wynik:
ip addr
Aby sprawdzić, czy tagowanie VLAN działa prawidłowo:
ip -d link show enp0s8.10 ip -d link show enp0s8.20
Sprawdź łączność:
ping 192.168.10.2 ping 192.168.20.2
AlmaLinux 9 / Rocky Linux 9
AlmaLinux 9 i Rocky Linux 9 używają NetworkManager do konfiguracji sieci. Zalecanym narzędziem do zarządzania połączeniami jest nmcli. Starsze podejście oparte na /etc/sysconfig/network-scripts/ nie jest obsługiwane w dystrybucjach opartych na RHEL 9.
Identyfikacja interfejsu sieciowego
nmcli device status
W poniższych przykładach interfejsem jest enp0s8.
Sprawdzanie istniejących połączeń
Przed dodaniem nowego połączenia sprawdź, czy dla interfejsu istnieje już profil połączenia:
nmcli connection show
Jeśli istniejący profil jest aktywny na enp0s8, usuń go, aby uniknąć konfliktów. Użyj nazwy profilu dokładnie tak, jak została pokazana w powyższym wyniku. Pomiń ten krok, jeśli istniejący profil został utworzony przez dostawcę hostingu lub cloud-init:
nmcli connection delete "Wired connection 1"
Konfiguracja sieci dla nietagowanego portu access
Przypisz statyczny adres IP do fizycznego interfejsu.
Serwer 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
Serwer 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
Sprawdź, czy adres został przypisany:
ip addr show enp0s8
Sprawdź łączność między serwerami:
ping 192.168.1.2
Konfiguracja tagowanych sieci VLAN
Utwórz interfejs VLAN na fizycznym interfejsie. Używaj różnych adresów IP na każdym serwerze dla każdej sieci VLAN.
Serwer 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
Serwer 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
Użycie zduplikowanych adresów IP spowoduje konflikt. Każdy serwer musi mieć unikalny adres IP w każdej sieci VLAN.
Sprawdź wynik:
ip addr
Aby sprawdzić, czy tagowanie VLAN działa prawidłowo:
ip -d link show enp0s8.10 ip -d link show enp0s8.20
Sprawdź łączność:
ping 192.168.10.2 ping 192.168.20.2
Rozwiązywanie problemów
Jeśli interfejsy VLAN nie pojawiają się lub nie odbierają ruchu:
- sprawdź, czy port przełącznika zezwala na wymagane identyfikatory VLAN;
- upewnij się, że vSwitch lub grupa portów hypervisora jest skonfigurowana tak, aby przepuszczać tagi VLAN;
- upewnij się, że w konfiguracji określono właściwy interfejs nadrzędny;
- sprawdź, czy moduł jądra 8021q jest załadowany: lsmod | grep 8021q.