
Giới thiệu
Bạn đã bao giờ gặp tình huống pipeline CI/CD bị chậm vì lưu lượng mạng tràn ngập broadcast? Hay lo ngại về bảo mật khi tất cả microservices chạy chung một mạng phẳng? VLAN là giải pháp để giải quyết những vấn đề này. Trong bài thứ bảy của series chuyên sâu về networking, chúng ta sẽ khám phá chi tiết cách VLAN tagging hoạt động, các nguyên tắc thiết kế mạng phân đoạn, và cách áp dụng thực tế để cô lập lưu lượng trong môi trường DevOps. Hãy sẵn sàng để nâng tầm kỹ năng quản lý mạng của bạn!
VLAN là gì?
Định nghĩa và vai trò của VLAN
VLAN (Virtual Local Area Network) là công nghệ chia một mạng vật lý thành nhiều mạng logic mà không cần thêm phần cứng. Thay vì dùng nhiều switch riêng biệt, bạn có thể tạo ra các “vùng” mạng tách biệt ngay trên cùng một thiết bị.
- Cơ chế cơ bản: VLAN gắn nhãn (tag) cho mỗi gói tin để xác định nó thuộc mạng nào.
- Lợi ích chính:
- Cô lập lưu lượng: Giảm broadcast domain, tránh tắc nghẽn.
- Tăng bảo mật: Ngăn thiết bị ở VLAN khác truy cập trái phép.
- Linh hoạt: Thay đổi cấu hình mà không cần kéo thêm cáp.
Ví dụ thực tế: Trong một văn phòng DevOps, VLAN 10 dành cho team phát triển (developer laptops), VLAN 20 cho server production, và VLAN 30 cho monitoring tools. Tất cả chạy trên cùng switch nhưng hoàn toàn tách biệt.
Tại sao VLAN quan trọng trong DevOps?
Trong môi trường DevOps, nơi hệ thống phân tán và tự động hóa là cốt lõi, VLAN mang lại nhiều giá trị:
- Pipeline CI/CD: Tách traffic của runner khỏi lưu lượng ứng dụng, tránh ảnh hưởng lẫn nhau.
- Microservices: Mỗi service (web, API, DB) chạy trên VLAN riêng để giảm rủi ro bảo mật.
- Cloud và hybrid: Các nhà cung cấp như AWS (VPC) hay GCP dùng VLAN để phân đoạn subnet trong mạng ảo.
- Debug dễ hơn: Khi lỗi xảy ra, bạn chỉ cần kiểm tra lưu lượng trong VLAN liên quan thay vì toàn mạng.
Tình huống cụ thể: Một team DevOps gặp vấn đề khi traffic monitoring (port 9090) tràn sang VLAN của database (port 3306), gây chậm truy vấn. Sử dụng VLAN đúng cách đã giải quyết vấn đề này.
VLAN Tagging: Cơ chế phân biệt lưu lượng
Chuẩn 802.1Q – Nền tảng của VLAN
VLAN hoạt động nhờ chuẩn IEEE 802.1Q, thêm một tag 4 byte vào frame Ethernet để đánh dấu gói tin:
- VLAN ID: 12 bit, hỗ trợ 4094 VLAN (1-4094, vì 0 và 4095 dành cho mục đích đặc biệt).
- Priority: 3 bit, dùng cho QoS (Quality of Service).
- TPID: 16 bit, xác định frame có tag 802.1Q.
Quy trình:
- Thiết bị gửi gói tin vào access port (untagged).
- Switch gắn tag dựa trên VLAN ID của port.
- Gói tin đi qua trunk port (tagged) đến switch/router khác.
- Thiết bị đích nhận gói untagged nếu là access port.
Ví dụ: Server A (VLAN 10) gửi gói tin qua trunk port đến switch B. Switch B đọc tag và chuyển gói tin đúng đến VLAN 10 trên mạng đích.
Access Port vs Trunk Port
- Access Port: Kết nối với thiết bị cuối (PC, server), gửi/receive gói untagged, gắn vào một VLAN duy nhất.
- Trunk Port: Kết nối giữa switch hoặc switch-router, gửi gói tagged để giữ thông tin VLAN.
Ứng dụng: Trong DevOps, trunk port dùng để kết nối switch chính với switch phụ trong data center, còn access port dùng cho server hoặc runner.
Inter-VLAN Routing
Khi hai VLAN cần giao tiếp (VD: developer VLAN cần truy cập staging server):
- Router: Định tuyến giữa VLAN bằng IP (cần subnet riêng).
- Layer 3 Switch: Hỗ trợ routing mà không cần router riêng.
Ví dụ: VLAN 10 (10.0.1.0/24) và VLAN 20 (10.0.2.0/24) giao tiếp qua router với rule cho phép port 8080.
Thiết kế phân đoạn mạng: Nguyên tắc và thực tiễn
Tại sao cần phân đoạn mạng?
Mạng phẳng (flat network) – nơi tất cả thiết bị cùng subnet – gây ra nhiều vấn đề:
- Broadcast tràn lan, làm chậm hệ thống.
- Khó kiểm soát truy cập.
- Rủi ro bảo mật cao.
Thiết kế mạng phân đoạn với VLAN giải quyết những vấn đề này bằng cách chia mạng thành các “vùng” riêng biệt.
Nguyên tắc thiết kế trong DevOps
- Phân đoạn theo chức năng:
- VLAN 100: Development (laptop, tool).
- VLAN 200: Staging (test server).
- VLAN 300: Production (live app).
- Giới hạn broadcast: Mỗi VLAN chỉ chứa traffic liên quan, giảm tải switch.
- Bảo mật: Áp dụng firewall rule giữa VLAN (VD: VLAN dev không truy cập VLAN prod).
- Scalability: Dễ mở rộng khi thêm team hoặc service mới.
Ví dụ thực tế: Một hệ thống DevOps gặp lỗi khi traffic ARP từ VLAN CI/CD tràn sang VLAN database, gây timeout. Sau khi dùng VLAN tách biệt và thêm rule chặn, hiệu năng cải thiện rõ rệt.
VLAN vs Subnet: Sự khác biệt
| Tiêu chí | VLAN | Subnet |
|---|---|---|
| Tầng OSI | Tầng 2 (MAC) | Tầng 3 (IP) |
| Phạm vi | Trong LAN | Giữa các mạng |
| Công cụ | Switch | Router |
| Ứng dụng DevOps | Cô lập service | Chia IP logic |
Kết hợp tối ưu: Mỗi VLAN gắn với một subnet (VD: VLAN 10 → 10.0.1.0/24, VLAN 20 → 10.0.2.0/24) để tận dụng cả tầng 2 và 3.

