Các kỹ sư có thể thiết kế VLAN với nhiều mục đích. Trong nhiều trường hợp ngày nay, các thiết bị có thể nằm trong cùng một VLAN do cùng chung một vị trí đặt máy. Vấn đề bảo mật là một trong nhưng yếu tố khác trong thiết kế VLAN: các thiết bị khác nhau trong các VLAN khác nhau không nghe broadcast. Thêm vào đó, việc chia các máy tính ra các VLAN khác nhau sẽ dẫn đến yêu cầu dùng router hoặc các switch đa lớp giữa các subnet và các kiểu thiết bị này thường có thêm nhiều chức năng bảo mật. Trong một vài trường hợp, nhu cầu tăng tính bảo mật bằng cách tách các thiết bị bên trong một VLAN nhỏ sẽ xung đột với mục đích thiết kế sử dụng các địa chỉ IP sẵn có. Tính năng private VLAN của Cisco giúp giải quyết vấn đề này.
Private VLAN cho phép một switch tách biệt các máy tính như thể các máy tính này trên các VLAN khác nhau trong khi vẫn dùng duy nhất một IP subnet.
Một tình huống phổ biến để triển khai private VLAN là trong phòng trung tâm dữ liệu (data center) của các nhà cung cấp dịch vụ. Nhà cung cấp dịch vụ có thể cài đặt một router và một switch. Sau đó, nhà cung cấp dịch vụ sẽ gắn các thiết bị từ các khách hàng khác nhau vào cùng một switch. Private VLAN cho phép nhà cung cấp dịch vụ (service provider) dùng một subnet duy nhất cho cả toà nhà, cho các cổng khác nhau của khách hàng sao cho nó không thể giao tiếp trực tiếp trong khi vẫn hỗ trợ tất cả các khách hàng trong một switch duy nhất.
Về mặt ý niệm, một private VLAN bao gồm các đặc điểm sau:
Để hỗ trợ những nhóm cổng trên, một private VLAN bao gồm một VLAN chính gọi là primary VLAN và một hoặc nhiều VLAN phụ gọi là secondary VLAN. Các cổng trong primary VLAN được gọi là promicuous có nghĩa là nó có thể gửi và nhận khung (frame) với bất kỳ cổng nào khác, kể cả với những cổng được gán vào secondary VLAN. Các thiết bị được truy cập chung, chẳng hạn như router hay server thường được đặt vào trong primary VLAN. Các cổng khác, chẳng hạn như các cổng của khách hàng sẽ gắn vào một trong những secondary VLAN. Secondary VLAN thường có một trong hai dạng VLAN là community VLAN và isolated VLANs. Các kỹ sư sẽ chọn lựa kiểu tùy thuộc vào thiết bị có là một phần của tập hợp các cổng mà cho phép gửi frame vào và ra (community VLAN). Còn kiểu isolated sẽ không thể truyền đến các cổng khác ngoài VLAN.
Mô tả kiểu cổng nào có thể nói với cổng nào |
Cổng thuộc Primary VLAN |
Cổng thuộc Community VLAN |
Cổng thuộc Isolated VLAN |
Nói với các cổng trong kiểu primary VLAN (promiscuous port) |
YES |
YES |
YES |
Nói với các cổng trong secondary VLAN (hostport) |
Yes |
Yes |
No |
Nói với các cổng trong secondary VLAN |
Yes |
No |
No |
Ta đã biết trong cùng một VLAN , nếu một máy tính gởi gói tin cho tất cả máy tính khác (gọi là gởi broadcast) thì tất cả các máy tính còn lại trong VLAN đó sẽ nhận được gói tin broadcast này. Thường thì người ta muốn chia nhỏ không gian broadcast ra bằng cách phân ra làm nhiều VLAN, sau đó dùng router hay switch lớp 3 để định tuyến giữa các VLAN này. Tuy nhiên để giải quyết việc ảnh hưởng qua lại giữa các thiết bị trong cùng một VLAN thì ta phải có một giải pháp nào đó nhằm cho các lưu lượng trong cùng một VLAN là độc lập với nhau. Ví dụ: chúng ta là nhà cung cấp dịch vụ, các khách hàng thuê của ta 10 máy chủ. Một mặt chúng ta muốn 10 máy chủ này nằm trong một VLAN gọi là server farm VLAN để dễ quản lí, và có thể giao tiếp trên internet thông qua defaut gateway. Mặt khác chúng ta cũng muốn rằng các máy chủ của các khách hàng khác nhau sẽ độc lập và không bị ảnh hưởng lẫn nhau. Private VLAN ra đời nhằm giải quyết vấn đề này, đó là độc lập lưu lượng ở lớp 2 giữa các thiết bị trong cùng một VLAN. Trong ví dụ trên, nếu các khách hàng khác nhau đặt ở các VLAN khác nhau nghĩa là ta phải cung cấp riêng cho mỗi VLAN một subnet. Hơn nữa ta phải tiêu tốn cho mỗi VLAN một interface, và càng có nhiều VLAN nghĩa là STP chạy càng phức tạp hơn. Để quản lí các VLAN này, chúng ta cũng phải cùng thêm nhiều danh sách quản lý truy cập (Access Control List – ACL) hơn , làm cho việc quản lí mạng cũng trở nên phức tạp hơn. Giải pháp private VLAN cung cấp những thuận lợi sau:
Private VLAN phân ra làm 2 khái niệm: primary VLAN và secondary VLAN. Trong đó Primary VLAN cung cấp kết nối logic giữa nó và các secondary VLAN. Một máy tính thuộc secondary VLAN có thể giao tiếp với một cổng thuộc primary VLAN nhưng không thể giao tiếp với một máy tính nằm trong secondary VLAN khác. Các máy tính trong secondary VLAN sẽ giao tiếp với thế giới bên ngoài (Internet) thông qua primary VLAN. Ta hình dung primary VLAN có tác dụng chuyên chở các máy tính nằm trong các secondary VLAN ra ngoài. Secondary VLAN chia ra làm 2 loại : isolated VLAN và community VLAN.
Tất cả secondary VLAN phải được kết hợp với một primary VLAN. Private VLAN là một loại VLAN đặc biệt nên nó chỉ có ý nghĩa cục bộ trên một switch mà thôi. Switch nào cấu hình private VLAN thì chỉ có switch đó mới có các VLAN này thôi. Giao thức VTP sẽ không quảng bá thông tin về private VLAN cho các switch khác. Và lúc cấu hình private VLAN thì chúng ta cũng bị yêu cầu phải cấu hình trên chế độ VTP transparent. Đối với một VLAN thường, chúng ta muốn gắn một cổng nào đó vào VLAN nào thì ta gõ câu lệnh “switchport access VLAN_id”. Nhưng đối với private VLAN thì lại định nghĩa ra hai dạng cổng: promiscuous và host. Promiscuous là cổng của switch kết nối với gateway Router. Qui luật của private VLAN không áp dụng cho loại cổng này. Cổng này có thể giao tiếp với các loại primary VLAN hay secondary VLAN mà không bị giới hạn nào cả. Máy tính kết nối với cổng của switch thuộc loại isolated VLAN hay community VLAN. Cổng loại này chỉ có thể giao tiếp với promiscuous cổng hoặc các cổng khác nằm trong cùng một community VLAN. Đối với các máy tính nằm trong isolated VLAN thì cũng không giao tiếp được với nhau luôn, mà chỉ có thể giao tiếp với promiscuous cổng mà thôi.
Trong hình trên cổng 2/1 của switch được cấu hình là cổng promiscuous. Cổng 1/1 , 1/2 thuộc về secondary VLAN 10. Community VLAN: các máy tính trong VLAN này có thể thấy nhau và thấy promiscuous cổng, tuy nhiên không thể thấy được các secondary VLAN khác. Các máy tính nằm trong secondary VLAN 10 có thể thấy nhau nhưng không thể thấy các máy tính nằm trong secondary VLAN 20. Cả 2 VLAN này đều là community nhưng chỉ là community trong nội bộ của VLAN đó mà thôi. Cổng 1/4, 1/5 thuộc về Secondary VLAN 20 ( community VLAN ). Cổng 1/3 thuộc về Isolated VLAN 30 (secondary VLAN 30). Các máy tính nằm trong VLAN 30 chỉ có thể giao tiếp với cổng promiscuous mà thôi, không thể giao tiếp với nhau và với các secondary VLAN khác. Cấu hình private VLAN chỉ có thể thực hiện trên Catalyst 6500. Switch 3550 không thực hiện được chức năng private-VLAN . Mặc dù trong switch 3550 cũng có câu lệnh private-VLAN nhưng các câu lệnh bổ sung không hề có, hoặc có nhưng không có tác động.
Switch(config)# vlan 10
Switch(config-vlan)# private-vlan community à định nghĩa secondary VLAN 10 có thuộc tính community
Switch(config)# vlan 20
Switch(config-vlan)# private-vlan community
Switch(config)# vlan 30
Switch(config-vlan)# private-vlan isolated à định nghĩa secondary VLAN 30 có thuộc tính isolated
Switch(config)# vlan 100
Switch(config-vlan)# private-vlan primary à VLAN 100 là primary VLAN
Switch(config-vlan)# private-vlan association 10,20,30 à các secondary vlan 10,20,30 sẽ giao tiếp với vlan 100
Switch(config-vlan)# exit
Switch(config)# interface range fastethernet 1/1 - 2
Switch(config-if)# switchport private-vlan host à 2 cổng này là 2 cổng gắn với máy tính
Switch(config-if)# switchport private-vlan host-association 100 10 à 2 cổng này gán cho vlan 10 . VLAN 10 giao tiếp được với primary vlan 100 .
Switch(config)# interface range fastethernet 1/4 - 5
Switch(config)# switchport private-vlan host
Switch(config-if)# switchport private-vlan host-association 100 20
Switch(config)# interface fastethernet 1/3
Switch(config-if)# switchport private-vlan host
Switch(config-if)# switchport private-vlan host-association 100 30
Switch(config)# interface fastethernet 2/1
Switch(config-if)# switchport mode private-vlan promiscuous à port promiscuous này kết nối với gateway router .
Switch(config-if)# switchport private-vlan mapping 100 10,20,30 à cổng này giao tiếp với tất cả các vlan 100,10,20,30 .
Switch(config)# interface vlan 100
Switch(config-if)# ip address 192.168.199.1 255.255.255.0 à đặt địa chỉ ip cho VLAN primary để thực hiện routing lưu lượng của các VLAN khác ra ngoài .
Switch(config-if)# private-vlan mapping 10,20,30 à các VLAN 10,20,30 được mang đi bởi primary vlan để ra internet. Khi cấu hình Private VLAN, cần phải lưu ý những điều sau:
Trước hết phải cấu hình VTP ở chế độ transparent , sau khi đã cấu hình private vlan rồi thì không thể quay lại chế độ VTP client hay VTP server dược nữa
Không thể cấu hình vlan 1 hay vlan 1002à1005 là private vlan .
Cấu hình giao diện lớp 3 VLAN (interface VLAN) chỉ cho primary vlan. Trên switch lúc này chỉ có giao diện lớp 3 của primary VLAN là hoạt động mà thôi. Private VLAN không áp dụng cho cổng được cấu hình tính năng Etherchannel. Nếu một cổng là SPAN đích thì mọi cấu hình private VLAN dành cho cổng đó không có tác dụng. Đối với private VLAN, hỗ trợ các đặc điểm của SPAN sau: có thể cấu hình private VLAN cổng là một cổng nguồn của SPAN. Có thể sử dụng tính năng SPAN dựa trên VLAN trên primary, isolated, community VLAN. Một primary VLAN có thể có 1 isolated VLAN và nhiều community VLAN đi kèm với nó. Isolated VLAN hay Community VLAN chỉ có thể có 1 primary VLAN đi kèm với nó. Bật tính năng portfast và BPDU guard trên các cổng thuộc isolated VLAN và community VLAN nhằm tránh bị lặp vòng STP do cấu hình sai và tăng tốc độ hội tụ của STP. Nếu ta xóa một VLAN đã được cấu hình là private VLAN thì các cổng thuộc về vlan đó sẽ không sử dụng được nữa. Đối với một cổng nằm trong nhóm 12 cổng ( 1-12, 13-24,25-36,37-48) là trunk hay cấu hình SPAN đích, hay cổng thuộc promiscuous VLAN thì 11 cổng còn lại không thể cấu hình thuộc isolated VLAN hay community VLAN. Nếu cố tình cấu hình thì 11 cổng này sẽ không sử dụng được nữa. Nếu muốn sử dụng lại thì phải xóa cấu hình isolated VLAN và community VLAN đã cấu hình trước đó. Dùng câu lện shutdown và no shutdown để cho phép giao diện đó hoạt động trở lại. Private vlan không nhất thiết phải nằm trên một switch, nó có thể nằm trên 2 switch khác nhau miễn là 2 switch này kết nối qua trunk và trên kết nối trunk này isolated VLAN và community VLAN vẫn chưa bị xóa. VTP không hỗ trợ tính năng private VLAN. Bạn phải cấu hình bằng tay tính năng private VLAN trên mỗi thiết bị mà bạn muốn. Có thể áp dụng các cấu hình chất lượng dịch vụ (QoS) khác nhau cho primary, isolated, và community VLAN. Không thể áp đặt danh sách điều khiên truy cập trong VLAN (VACL) cho secondary VLAN. Áp đặt danh sách điều khiển truy cập (ACL) vào giao diện lớp 3 của primary VLAN, ACL này cũng sẽ tự động áp đặt cho isolated vlan và primary vlan.
Giao thức Dynamic Trunking Protocol (DTP) tự động cấu hình trung kế (trunk) ISL/802.1Q và được sử dụng để trao đổi thông tin giữa các switch. Nó đồng bộ chế độ của trung kế giữa hai đầu cuối của tuyến và hạn chế sự cần thiết của việc can thiệp các biên pháp quản lý tại mỗi switch. Nhân viên quản trị mạng có thể cấu hình trạng thái DTP trên mỗi cổng trung kế. Các trạng thái bao gồm On, Off, Desirable, Auto và Non-Negotiate.
On: trạng thái này được sử dụng khi switch khác không hiểu giao thức DTP.
Off: trạng thái này được sử dụng khi cổng đã được cấu hình từ trước không với mục đích trở thành cổng trung kế.
Desirable: trạng thái này được sử dụng khi cổng switch muốn trở thành cổng trung kế.
Auto: Đây là trạng thái mặc định trên nhiều switch.
Non-Negotiate: trạng thái này được sử dụng khi người quản trị mạng muốn một loại trung kế ISL hay dot1Q cụ thể. Đặc điểm chính cần nhớ về giao thức DTP là chế độ mặc định của các cổng trên phần lớp các switch là tự động.
Vụ tấn công xảy ra khi kẻ tấn công đánh lừa switch để switch nghĩ hắn là một switch đang muốn một kết nối trunk. Kỹ thuật này đòi hỏi một thiết lập "trunking-favorable", kiểu như thiết lập Auto, thì mới có thể tấn công thành công. Bây giờ, kẻ tấn công đã trở thành thành viên của rất nhiều VLAN được kết nối đến switch và có thể gửi và nhận lưu lượng trên các VLAN này. Cách tốt nhất để ngăn chặn kiểu tấn công VLAN hopping cơ bản là tắt kết nối trên tất cả các cổng ngoại trừ những cổng cần thiết.
Kiểu tấn công này lợi dụng cách mà phần cứng trong phần lớn các switch hoạt động. Hiện nay, phần lớn các switch chỉ thực hiện đóng gói IEEE 802.1Q một mức. Điều này cho phép kẻ tấn công, trong những tính huống cụ thể, có khả năng gắn các đuôi 802.1Q (gọi là .1Q tag) của hắn vào khung. Khung này sẽ vào VLAN với đuôi .1Q đầu ra không xác định. Một đặc điểm quan trọng của kiểu tấn công VLAN hopping đóng gói kép là nó có thể tiến hành thậm chỉ với các cổng trunk kế đã được thiết lập ở chế độ Off. Ngăn chặn các cuộc tấn công kiểu này không dễ như việc ngăn chặn các cuộc tấn công kiểu VLAN hopping cơ bản. Biện pháp tốt nhất để đảm bảo các VLAN thuần của các cổng trung kế được phân biệt rạch ròi với các VLAN thuần của các cổng của người dùng. Để biêt thêm biện pháp ngăn chặn các cuộc tấn công kiểu này, xem tại kết nối .