Trong bài viết này, chúng ta sẽ chỉ cách cấu hình giao diện VLAN có tag bằng công cụ Linux gốc trên CentOS/Fedora/RedHat. Chúng ta sẽ nghiên cứu cấu hình bằng subinterface, file vlanX riêng biệt và công cụ như NetworkManager và vconfig.
Trong CentOS/Fedora/RedHat, có hai tùy chọn cấu hình VLAN:
- Sử dụng subinterface (ví dụ,
eth12.7) - Sử dụng file vlanXX riêng biệt (
vlan7)
VLAN (Virtual Local Area Network) cho phép chia mạng của bạn thành nhiều miền broadcast riêng biệt ở tầng liên kết dữ liệu OSI. Sử dụng VLAN, bạn có thể cấu hình một số mạng trên cùng một giao diện vật lý của máy chủ. Khi dùng VLAN 802.1Q, router, switch và máy chủ phải gán tag đặc biệt (tagged traffic) với số VLAN (VLAN ID: từ 0 đến 4095) cho gói tin mạng.
Cách tạo VLAN bằng Subinterface?
Để cấu hình giao diện có tag, module nhân Linux 8021q phải được bật trên máy chủ của bạn. Để nạp module, dùng lệnh:
# modprobe 8021q
Nếu module đã được nạp, lỗi sau xuất hiện: modprobe: ERROR: could not insert ‘8021q’: Module already in kernel.
Hãy đảm bảo module đã được nạp:
# lsmod | grep 8021q
8021q 33080 0 garp 14384 1 8021q mrp 18542 1 8021q
OK, module 8021q tồn tại trong hệ thống.
Bạn phải thêm module này vào khởi động hệ thống Linux:
# echo 8021q >> /etc/modules-load.d/8021q.conf
Tạo VLAN với ID 7 cho giao diện eth0. Thêm file cấu hình ifcfg-eth0.7 (7 sau dấu chấm là số VLAN). File chứa mô tả subinterface VLAN.
# nano /etc/sysconfig/network-scripts/ifcfg-eth0.7
Thêm cấu hình sau vào nó:
ONBOOT=yes TYPE=Ethernet VLAN=yes DEVICE=eth0.7 BOOTPROTO=static IPADDR=10.61.20.10 NETMASK=255.255.255.0
File cấu hình này gắn giao diện ảo eth0.7 vào giao diện vật lý eth0. Sau khi tạo file cấu hình, khởi động lại dịch vụ mạng:
# systemctl restart network
Kiểm tra cài đặt mạng:
# ip a

Như bạn thấy, subinterface với VLAN 7 đã được thêm.
Bạn có thể hiển thị ràng buộc interface và VLAN hiện tại như sau:
# cat /proc/net/vlan/config
Để lấy thống kê giao diện (sử dụng bộ đếm gói tin, bạn có thể chắc chắn rằng giao diện VLAN nhận tagged traffic):
# cat /proc/net/vlan/eth0.7
Để ping từ giao diện VLAN cụ thể, dùng lệnh:
# ping -I eth0.7 192.168.1.22
Cấu hình VLAN bằng file vlanXX riêng biệt
Bây giờ hãy thử tạo VLAN với ID 8 bằng file cấu hình riêng biệt:
# nano /etc/sysconfig/network-scripts/ifcfg-vlan8
Thêm các dòng sau vào nó:
ONBOOT=yes TYPE=Ethernet VLAN=yes VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD DEVICE=vlan8 PHYSDEV=eth0.8 VLAN_ID=8 BOOTPROTO=static IPADDR=10.6.120.10 NETMASK=255.255.255.0
Lưu ý file cấu hình hơi khác so với trước. Trong cài đặt này, bạn chỉ định dòng 'PHYSDEV' chuyển tiếp file cấu hình đến giao diện mạng vật lý.

Sau khi hoàn tất cấu hình, khởi động lại dịch vụ mạng:
# systemctl restart network
Nếu bạn thấy lỗi No suitable device found for this connection khi restart dịch vụ mạng, hãy đảm bảo bạn đã chỉ định giá trị đúng cho tùy chọn VLAN_ID trong ifcfg-vlan8.
Kiểm tra:
ip l ls
2: eth0:mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:1d:4b:67 brd ff:ff:ff:ff:ff:ff 6: vlan8@eth0: mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:1d:4b:67 brd ff:ff:ff:ff:ff:ff
Giao diện mạng VLAN8 cũng đã có sẵn.
Sử dụng NetworkManager để cấu hình giao diện VLAN
Kể từ Centos 8 (RHEL 8), NetworkManager được dùng để quản lý kết nối mạng. Công cụ này cũng có sẵn trước đó, nhưng hầu hết quản trị viên dùng network mà họ quen.
Hãy xem cách cấu hình VLAN bằng NM. Tạo giao diện ảo ens3.7 cho VLAN 7 trên giao diện vật lý ens3 và đặt địa chỉ IP:
# nmcli con add type vlan con-name ens3.7 ifname VLAN7 id 7 dev ens3 ip4 10.1.10.11/24 gw4 10.1.10.1
Để kiểm tra giao diện mạng trên máy chủ, chạy lệnh:
# nmcli con show
NAME UUID TYPE DEVICE ens3 8bd5cfbc-5ffc-4554-8ae1-9e02e4b57ceb ethernet ens3 virbr0 e64e63a5-76ae-4661-91ae-009f566c5e66 bridge virbr0 ens3.7 e5e91557-49a8-4389-bdfc-c9bfc099714b vlan VLAN7
Khởi động lại NetworkManager sau cấu hình:
# systemctl restart NetworkManager
Sau khi restart dịch vụ NM, giao diện vẫn còn đó:

Bạn có thể hiển thị cài đặt VLAN hiện tại như sau:
# nmcli connection show ens3.7
Cách cấu hình VLAN tạm thời bằng vconfig?
Để test cài đặt mạng/VLAN, tốt hơn dùng công cụ vconfig. Vconfig là công cụ rất hữu ích khi test hoặc học tập, vì nếu bạn mất quyền truy cập máy chủ do cài đặt mạng sai, bạn có thể quay lại cấu hình gốc bằng cách reboot đơn giản. Công cụ này có trong kho EPEL, hãy cài đặt bằng yum (hoặc dnf):
# yum install epel-release -y && yum install vconfig
Tạo giao diện với VLAN9:
# vconfig add eth0 9
Added VLAN with VID == 9 to IF -:eth0:-
Sau đó gán địa chỉ IP cho giao diện mạng vừa tạo:
# ifconfig eth0.9 10.1.0.15 netmask 255.255.255.0 up
Giao diện VLAN tạm thời đã được tạo.

Đừng quên cấu hình VLAN tương ứng trên phần cứng mạng của bạn bên cạnh cấu hình VLAN trên máy chủ để đảm bảo kết nối mạng.