Як створити мережевий інтерфейс VLAN на Ubuntu 24.04

Як створити мережевий інтерфейс VLAN на Ubuntu 24.04

 

VLAN (Virtual Local Area Network) – це мережева технологія, яка дозволяє сегментувати трафік у вашій мережі шляхом поділу фізичної мережі на логічні групи. Це призведе до безпеки та ефективності мережі, оскільки запобігає зв’язку між VLAN, якщо це спеціально не дозволено. VLAN працюють за допомогою мережевого стандарту IEEE 802.1Q, який також відомий як Dot1q.

VLAN широко використовуються в розділенні мережі офісних відділів, ізоляції гостьового Wi-Fi трафіку, пріоритезації VoIP-трафіку, захисті пристроїв IoT та багатьох інших програмах. Перш ніж налаштовувати VLAN у своїй мережевій інфраструктурі, переконайтеся, що використовуваний мережевий комутатор підтримує тегування VLAN (802.1Q). Процес перевірки підтримки VLAN буде відрізнятися від одного постачальника до іншого. Я рекомендую вам звернутися до офіційної документації постачальника перемикачів для отримання додаткової інформації.

Передумови налаштування

Щоб налаштувати мережевий інтерфейс VLAN у вашій системі Ubuntu або Debian, вам знадобиться наступна інформація.

  • Доступ до вашої системи Ubuntu як root або користувач з привілеями sudo.
  • Визначте ім’я фізичного мережевого інтерфейсу – це може бути ім’я інтерфейсу Ethernet або WiFi
  • Майте відомий ідентифікатор VLAN, який потрібно налаштувати для вашої мережі.

Увійдіть на свій сервер і встановіть пакет.vlan

sudo apt update && sudo apt install vlan

Для хостів, що використовуються у віртуалізації, увімкніть наступні налаштування у sysctl.

echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.conf.all.arp_filter=0" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.conf.all.rp_filter=2" | sudo tee -a /etc/sysctl.conf

Завантажуйте конфігурації після додавання їх до файлу.

$ sudo sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.all.arp_filter = 0
net.ipv4.conf.all.rp_filter = 2

Створення інтерфейсу VLAN на Ubuntu

Починаємо з завантаження модуля ядра, який забезпечує підтримку VLAN. Робиться це шляхом видачі наступної команди в терміналі.

sudo modprobe 8021q

Ви можете роздрукувати додаткову інформацію про модуль за допомогою команди.modinfo

$ sudo modinfo 8021q
filename:       /lib/modules/6.1.0-18-amd64/kernel/net/8021q/8021q.ko
version:        1.8
license:        GPL
alias:          rtnl-link-vlan
srcversion:     686DDAC35CEE6EFE0A30ADC
depends:        mrp,garp
retpoline:      Y
intree:         Y
name:           8021q
vermagic:       6.1.0-18-amd64 SMP preempt mod_unload modversions
sig_id:         PKCS#7
signer:         Debian Secure Boot CA
sig_key:        32:A0:28:7F:84:1A:03:6F:A3:93:C1:E0:65:C4:3A:E6:B2:42:26:43
sig_hashalgo:   sha256
signature:      A9:87:F2:68:22:66:F6:4D:A7:FF:C7:97:A3:C4:DA:73:1F:54:8D:EF:
		92:19:E2:5F:35:96:5A:95:29:25:8B:CD:08:FE:35:AC:4F:66:AE:5D:
		42:91:35:0F:AD:34:A6:6C:F3:13:2E:BF:4B:22:46:DB:A3:A8:39:27:
		6E:C6:81:03:24:93:DC:B0:78:E6:76:68:E7:B8:DF:0A:BB:F6:7F:29:
		97:80:E1:16:2D:C1:24:35:6B:6D:77:08:AE:2A:42:A7:D6:FC:9A:79:
		3A:46:29:4E:F1:53:B8:F2:26:AB:B2:7D:A7:4D:3D:4C:2F:35:AA:24:
		63:A6:F3:0A:C1:67:BE:6A:6A:20:1C:75:61:B1:3E:9D:81:5E:76:B8:
		1F:C6:90:66:20:4F:12:94:80:2B:B3:80:CE:64:C7:39:98:7B:9A:F3:
		BC:B0:AB:2B:E0:2F:5F:8C:B8:8E:2B:F3:D5:AE:ED:D8:A7:B8:37:AA:
		CB:C2:D6:7F:9D:68:91:4E:D2:81:8E:48:75:09:71:4E:B9:8A:A7:91:
		42:F0:6C:33:98:CA:01:CC:FD:71:D8:95:DC:A4:74:0D:9C:7F:23:72:
		BF:14:31:42:91:EA:57:F2:7D:4F:FE:25:BD:7A:7D:62:91:AC:89:02:
		3C:10:E9:03:95:35:F5:ED:BF:56:9A:56:0C:7F:88:74

Ми розглядаємо три варіанти виконання конфігурації VLAN.

1) Налаштуйте тимчасові теги VLAN

Цей метод можна використовувати для тестування роботи VLAN на кінцевій точці. Конфігурації не зберігатимуться, якщо систему перезавантажити. Ми будемо використовувати команду для створення інтерфейсу VLAN під час виконання на нашій машині Ubuntu Linux.ip

Перелічіть мережеві інтерфейси у вашій мережі.

$ sudo ip link  show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether bc:24:11:44:e9:6f brd ff:ff:ff:ff:ff:ff
    altname enp0s18
3: ens19: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether bc:24:11:bc:3f:d4 brd ff:ff:ff:ff:ff:ff
    altname enp0s19

Ми будемо використовувати команду для створення нового тегованого імені інтерфейсу з фізичного інтерфейсу. Вам доведеться замінити ім’я на ваше фактичне ім’я інтерфейсу, а ідентифікатор VLAN на ваш ідентифікатор VLAN.ip link add

Синтаксис такий:

sudo ip link add link <interface_name> name <vlan_interface_name> type vlan id <vlan_id>

Ось приклад, де ми створюємо тегований інтерфейс з іменем vlan30 з VLAN ID 30 на фізичному інтерфейсі ens19:

sudo ip link add link ens19 name vlan30 type vlan id 30

Тепер ми можемо призначити IP-адресу інтерфейсу VLAN.

sudo ip addr add 172.20.30.44/24 dev vlan30

Де:

  • 172.20.30.44 – IP-адреса
  • /24 – маска підмережі == 255.255.255.0
  • vlan30 — це ім’я інтерфейсу VLAN

Викличте інтерфейс.

sudo ip link set dev vlan30 up

Якщо для використання інтерфейсу потрібна маршрутизація, додайте шлюз до мережі за потреби.

sudo ip route add 192.168.89.0 via 172.20.30.1

Для шлюзу за замовчуванням ми можемо використовувати.

sudo ip route add default via 172.20.30.1

Підтвердьте налаштування мережі.

$ ip ad show dev vlan30
5: vlan30@ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether bc:24:11:0c:69:4e brd ff:ff:ff:ff:ff:ff
    inet 172.20.30.44/24 scope global vlan30
       valid_lft forever preferred_lft forever
    inet6 fe80::be24:11ff:fe0c:694e/64 scope link
       valid_lft forever preferred_lft forever

2) Використання файлу /etc/network/interfaces

Щоб зберегти зміни, зроблені в 1), ми можемо редагувати та поміщати конфігурації VLAN у файл./etc/network/interfaces

$ sudo vim /etc/network/interfaces
# Primary interface
auto ens19
iface ens19 inet manual

# Example for VLAN ID 30 on interface 
auto ens19.30
iface ens19.30 inet static
    address 172.20.30.2
    netmask 255.255.255.0
    gateway 172.20.30.1
    dns-nameservers 172.20.30.254

Зробіть заміну даних, наведених вище, на власні налаштування мережі. Коли робіть перезавантаження мережі.

sudo systemctl restart networking

Якщо ви використовуєте Linux bridge, ви будете редагувати, як показано нижче.

# Primary interface
auto ens19
iface ens19 inet manual

# Example for VLAN ID 30 on interface 
auto ens19.30
iface ens19.30 inet manual

# Bridge creation
auto br0
iface br0 inet static
 bridge_ports ens19.30
  bridge_stp off         # disable Spanning Tree Protocol
  bridge_waitport 0    # no delay before a port becomes available
  bridge_fd 0             # no forwarding delay
  address 172.20.30.2
  netmask 255.255.255.0
  gateway 172.20.30.1
  dns-nameservers 172.20.30.1

Приклади конфігурацій на моїй машині.

$ ip ad
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 1c:69:7a:ab:be:de brd ff:ff:ff:ff:ff:ff
    altname enp0s31f6
    inet6 fe80::1e69:7aff:feab:bede/64 scope link
       valid_lft forever preferred_lft forever
3: ens19.30@ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 1c:69:7a:ab:be:de brd ff:ff:ff:ff:ff:ff
    inet 172.20.30.2/24 brd 172.20.30.255 scope global ens19.30
       valid_lft forever preferred_lft forever
    inet6 fe80::1e69:7aff:feab:bede/64 scope link
       valid_lft forever preferred_lft forever

3) Використання netplan

Netplan – це мережеве рішення, яке спрощує керування мережевими інтерфейсами в системі Ubuntu Linux. Нижче наведено приклад налаштування інтерфейсу VLAN за допомогою Netplan:

Створіть новий файл netplan.

sudo vim /etc/netplan/01-vlan-interface.yaml

Налаштуйте параметри відповідно до вашого випадку використання.

network:
  version: 2
  ethernets:
    ens19:
      dhcp4: no
  vlans:
    vlan.30:
      id: 30
      link: ens19
      addresses: [ 172.20.30.2/24 ]
      routes:
       - to: default
         via: 172.20.30.1
      nameservers:
        addresses: [172.20.30.1, 8.8.4.4] 

Застосуйте конфігурації та активуйте інтерфейс.

sudo netplan apply

Перевірте ефект за допомогою

 ip addr show

Висновок

У цій публікації ми використовували різні методи для налаштування та роботи VLAN на нашій системі Ubuntu 24.04 Linux. Ви можете протестувати працездатність за допомогою ping або аналогічних інструментів для перевірки доступу до сервісу із зовнішніх пристроїв. Не забудьте налаштувати деталі мережі, які використовуються в цьому посібнику, відповідно до налаштувань мережі. З будь-якими проблемами, з якими ви зіткнетеся, дотримуючись нашого посібника, не соромтеся звертатися до нас.

Прокрутка до верху