Skip to content
Thuan Bui's Blog
Go back

pfSense Lab – [Phần 5] Cấu hình VLAN cho pfSense

Updated:

Tiếp tục loạt bài về pfSense Lab, hôm nay mình quay trở lại với [Phần 5] Hướng dẫn cách cấu hình VLAN cho pfSense.

I. VLAN là gì?

Trước khi đi chi tiết vào cách cấu hình VLAN trên pfSense, mình ôn lại kiến thức căn bản tí.

VLAN (Virtual Local Area Network) hay Virtual LAN, được gọi là mạng LAN ảo. VLAN là công nghệ cho phép tạo ra các mạng LAN logic độc lập trên cùng một hệ thống mạng LAN vật lý. VLAN giúp chia nhỏ hệ thống mạng nội bộ, mang lại các lợi ích sau:

Để có thể thiết lập VLAN trong mạng nội bộ, Router và Switch phải hỗ trợ tính năng VLAN trong Firmware. Tính năng này thường chỉ được trang bị trên các thiết bị mạng cao cấp dành cho doanh nghiệp (Enterprise), không có trong các thiết bị mạng cho gia đình và văn phòng nhỏ.

Trong môi trường doanh nghiệp, VLAN thường được dùng để phân chia mạng nội bộ giữa các phòng ban, chi nhánh. Còn trong gia đình, VLAN có thể được sử dụng để phân tách các thiết bị IOT (Internet of Things) ra khỏi mạng nội bộ chính trong nhà.

II. Sơ đồ thiết lập VLAN

Nhờ sự phát triển của công nghệ ảo hoá, mình có thể nghiên cứu và thực hành VLAN mà không cần phải đầu tư mua thêm thiết bị mạng cao cấp. pfSense có sẵn tính năng VLAN và Virtual Switch của Hyper-V cũng hỗ trợ VLAN, bắt tay nghiên cứu nào!

Dưới đây sơ đồ thiết lập VLAN trên pfSense của mình

Mình sẽ tạo thêm VLAN ID 10 và chuyển máy ảo Arch Linux 2 sử dụng VLAN 10 mới này.

Các bước cần làm trong Lab hôm nay:

III. Tạo VLAN 10

Trong Web UI của pfSense, truy cập vào menu Interfaces, chọn Assigments

Bấm chọn tab VLANs, sau đó bấm Add để tạo VLAN mới
Bấm chọn tab VLANs, sau đó bấm Add để tạo VLAN mới

Chỉnh thông số VLAN:

Bấm Save để lưu lại
Bấm Save để lưu lại
VLAN tag 10 đã tạo thành công.
VLAN tag 10 đã tạo thành công.

IV. Cấu hình VLAN Interface

Bấm vào tab Interface Assignments, bạn sẽ thấy có thêm 1 dòng Available network ports: VLAN 10 on hn1 - lan (VLAN 10)

Bấm vào nút Add bên cạnh VLAN 10 để tạo VLAN Interface
Bấm vào nút Add bên cạnh VLAN 10 để tạo VLAN Interface

pfSense sẽ tự động tạo 1 Network Interface mới với tên gọi OPT1. Bấm vào chữ OPT1 để thay đổi thông số

Bấm vào OPT1
Bấm vào OPT1

Chỉnh lại các thông số như sau và bấm Save

Thiết lập thông số cho VLAN 10
Thiết lập thông số cho VLAN 10
Bấm Apply Changes để kích hoạt VLAN 10.
Bấm Apply Changes để kích hoạt VLAN 10.

V. Cấu hình DHCP Server cho VLAN

Tiếp tục, cần phải cấu hình DHCP Server cho VLAN Interface vừa mới tạo để các máy tính nằm trong VLAN được cấp IP tự động.

Truy cập vào dịch vụ DHCP Server nằm trong menu Services, chọn qua tab VLAN10 để cấu hình.

Sau đó bấm Save để lưu lại.

Cấu hình DHCP Server cho VLAN 10
Cấu hình DHCP Server cho VLAN 10

VLAN 10 đã được tạo và cấu hình DHCP thành công.

VI. Cập nhật VLAN ID cho máy ảo

Để chuyển máy ảo Arch Linux 2, mình sẽ vào Setttings của máy ảo này, truy cập vào mục Network Adapter và đổi VLAN thành 10.

Đổi VLAN ID cho máy ảo và bấm OK để lưu lại.
Đổi VLAN ID cho máy ảo và bấm OK để lưu lại.

VII. Thiết lập VLAN Trunk cho pfSense

Để pfSense có thể truyền tải VLAN trong mạng nội bộ, cần phải cấu hình đổi chế độ hoạt động của Network Adapter (card mạng) kết nối vào Private Switch thành Trunk Mode.

Việc thiết lập VLAN Trunk bắt buộc phải sử dụng dòng lệnh trong PowerShell. Không thể điều chỉnh trên Hyper-V Manager được.

Bạn cần mở PowerShell (Run as Administrator) và làm theo các bước sau

1. Kiểm tra thông số VLAN

Kiểm tra thông số VLAN của các máy ảo trong mạng bằng lệnh sau

Terminal window
Get-VMNetworkAdapterVlan -VMName "(Tên của máy ảo)"

Kết quả nhận được khi kiểm tra 3 máy ảo pfSense, Arch Linux và Arch Linux 2 như sau:

2. Đổi tên Network Adapter của pfSense

Hiện tại cả hai Network Adapter của pfSense đều sử dụng tên giống nhau: “Network Adapter”. Mình cần phải đổi thành hai tên khác nhau thì mới cấu hình VLAN chính xác.

Kiểm tra tên của Network Adapter của máy ảo pfSense

Terminal window
Get-VMNetworkAdapterVlan -VMName "pfSense Firewall (test)"

Thay đổi tên của Network Adapter thành InternalExternal dựa theo Mac Address

Terminal window
Get-VMNetworkAdapter -VMName "pfSense Firewall (test)" | Where-Object MacAddress -EQ "00155D006426"| Rename-VMNetworkAdapter -NewName "Internal"
Get-VMNetworkAdapter -VMName "pfSense Firewall (test)" | Where-Object MacAddress -EQ "00155D006425"| Rename-VMNetworkAdapter -NewName "External"

Kiểm tra lại xem tên Adapter đã thay đổi đúng chưa?

Terminal window
Get-VMNetworkAdapterVlan -VMName "pfSense Firewall (test)"
2 Network Adapter đã đổi tên thành External và Internal
2 Network Adapter đã đổi tên thành External và Internal

3. Thiết lập VLAN Trunk Mode

Giờ mình đã có thể thay đổi VLAN Mode của Network Adapter “Internal” thành Trunk Mode với lệnh sau

Terminal window
Set-VMNetworkAdapterVlan -VMName "pfSense Firewall (test)" -VMNetworkAdapterName "Internal" -Trunk -NativeVlanId 0 -AllowedVlanIdList 1-4094

Kiểm tra lại thông số VLAN

Terminal window
Get-VMNetworkAdapterVlan -VMName "pfSense Firewall (test)"
Thiết lập Trunk Mode thành công cho Internal Adapter
Thiết lập Trunk Mode thành công cho Internal Adapter

pfSense đã sẵn sàng phân chia VLAN cho mạng nội bộ.

VIII. Kiểm tra VLAN

1. Trước khi thiết lập VLAN

Dưới đây là thông số DHCP Leases của pfSense trước khi thiết lập VLAN 10.

Cả hai máy ảo thuanbui-archarch2 đều nằm chung mạng LAN nội bộ 10.0.0.0/24 với IP lần lượt là 10.0.0.10110.0.0.102

2. Sau khi thiết lập VLAN10

Mình mở lại hai máy ảo nằm trong mạng nội bộ cua pfSense. Sau đó kiểm tra lại DHCP Lease

Ở bước sau mình sẽ thiết lập Firewall để VLAN10 có thể truy cập Internet và chặn kết nối giữa LAN và VLAN.

Hai máy ảo tuy cùng cắm vào chung 1 Switch nhưng thuộc 2 mạng LAN khác nhau: 10.0.0.0/2410.0.10.0/24.

Kiểm tra kết nối mạng bằng lệnh ping

  • Máy ảo Arch Linux - LAN

  • Máy ảo Arch Linux 2 - VLAN 10

IX. Thiết lập Firewall Rule cho VLAN

1. Mở truy cập Internet cho VLAN10

Để máy ảo trong VLAN10 có thể truy cập Internet, mình cần tạo 1 Firewall Rule mới như sau

Rule này sẽ cho phép VLAN10 truy cập qua LAN. Do đó mình cần tạo thêm 1 Rule để chặn kết nối VLAN10 đến LAN và kéo nó lên đầu danh sách Rule để ưu tiên

Firewal Rule cho VLAN10
Firewal Rule cho VLAN10
Máy ảo Arch Linux 2 có thể Ping ra Internet, nhưng không thể Ping qua máy ảo Arch Linux trong mạng LAN
Máy ảo Arch Linux 2 có thể Ping ra Internet, nhưng không thể Ping qua máy ảo Arch Linux trong mạng LAN

2. Chặn kết nối từ LAN đến VLAN10

Tạo Firewall Rule tương tự như bước ở trên để chặn kết nối giữa 2 mạng nội bộ

Tạo thêm Firewall Rule chặn kết nối đến VLAN10
Tạo thêm Firewall Rule chặn kết nối đến VLAN10
Kiểm tra lại trên máy ảo Arch Linux: không thể ping đến VLAN10
Kiểm tra lại trên máy ảo Arch Linux: không thể ping đến VLAN10

X. Tổng kết

Trong bài viết này mình đã hướng dẫn cách thiết lập 1 hệ thống VLAN đơn giản sử dụng pfSense trên nền tảng ảo hoá Hyper-V. Trong điều kiện thực tế, tuỳ theo nhu cầu sử dụng, bạn có thể thiết lập thêm nhiều VLAN (tối đa 4096 VLANs) và cấu hình Firewall Rule tương ứng.

Hẹn gặp lại ở các phần tiếp theo của pfSense Lab.


Share this post on:

Previous Post
pfSense Lab - [Phần 3] Cấu hình căn bản cho pfSense
Next Post
pfSense Lab – [Phần 6] Cấu hình Dynamic DNS