Friday, February 11, 2011

VLAN ( Virtual LAN )

1. Tổng quan:

- VLAN thực chất là các broadcast domain được tạo ra từ một hay nhiều Switch. Nó có tác dụng làm giảm lưu lượng truyền và tăng băng thông của mạng.

- Các Switch lớp 2 forward các frame giữa các thiết bị trong cùng một mạng VLAN, chúng ngăn không cho forward các frame giữa các VLAN khác nhau cho dù có cùng giải địa chỉ IP.

- Ưu điểm của VLAN thì quá rõ ràng rồi (vì không có ưu điểm chúng ta bàn đến làm gì ;) ). VLAN chia mạng lớn thành các mạng con về mặt logic, chia các host theo chức năng và không bị giới hạn về mặt vị trí địa lý và đảm bảo độ bảo mật giữa các VLAN này....

2. Tạo các VLAN:

Các switch định nghĩa VLAN ngay trên các cổng của nó đúng theo nghĩa đen, giống như là “interface 0/1 is in VLAN 1” và “interface 0/2 is in VLAN 33” mà không cần quan tâm đến địa chỉ MAC của các thiết bị nối với nó. 

Các VLAN có thể được tạo ra trên một hay nhiều Switch được nối với nhau. 

3. Trunking with ISL and 802.1q

Khi sử dụng nhiều VLAN trong mạng có nhieu Switch được nối với nhau, chả lẽ đối với mỗi VLAN thì ta lại mất một đường dây để nối chúng lại qua các cổng của Switch.Nếu có nhiều VLAN ( ví dụ 50 chẳng hạn) thì các cổng của Switch không đáp ứng đủ.

Vì thế chúng ta cần một đường Trunk để nối giữa các Switch và đường trunk này có nhiệm vụ truyền frame của các VLAN khác nhau cùng một lúc. Khi gửi một frame tới Switch khác, các Switch cần một cách để định ra các VLAN mà frame muốn gửi tới.

Lấy ví dụ, khi Switch 1 nhận một bản tin broadcast từ một máy ở VLAN1, nó cần phải forward bản tin broadcast này tới Switch 2. Trước khi gửi frame đi, Switch 1 thêm một header khác vào trong Ethernet frame gốc và header này có chứa VLAN ID number trong nó. Khi Switch 2 nhận được frame, nó thấy rằng frame đến từ một máy trong VLAN 1, vì thế nó biết rằng chỉ forward frame này ra các cổng nối với các máy trong VLAN 1 mà thôi.

Có 2 giao thức được sử dụng trên đường trunk là Inter-Switch Link (ISL) và IEEE 802.1Q.

3.1 Inter-Switch Link (ISL):

Cisco đưa ra ISL trước khi IEEE chuẩn hóa giao thức trunking. Bởi vì ISL là sở hữu độc quyền của Cisco nên nó chỉ có thể sử dụng giữa 2 Switch của Cisco mà thôi. ISL đóng gói toàn bộ các frame Ethernet gốc trong một ISL header (26 bytes) and Trailer (4 bytes). Các frame Ethernet được đóng gói bên trong không có gì thay đổi.

ISL header có thêm một vài trường nhưng không quan trọng lắm, cái chúng ta quan tâm ở đây là VLAN ID number, dựa vào số ID này mà các Switch nhận frame biết chắc chắc rằng frame đó thuộc VLAN nào. Tất nhiên, địa chỉ nguồn và đích trong ISL header sử dụng là địa chỉ MAC của switch nhận và switch gửi frame.

3.2 IEEE 802.1 Q:

Rất nhiều chuẩn IEEE được sử dụng cho mạng LAN ngày nay và VLAN trunking cũng không phải là ngoại lệ. Sau khi Cisco tạo ra ISL, IEEE cũng hoàn thiện chuẩn 802.1Q và nó định ra một cách khác để trunking.

802.1Q sử dụng một cách hoàn toàn khác so với ISL, nó không đóng gói frame gốc mà nó thêm vào header của frame gốc 4 byte, trong 4 byte thêm vào có một trường chứa VLAN number và chúng ta cũng chỉ quan tâm đến trường này. Bởi vì header của frame gốc đã bị thay đổi nên 802.1Q phải tính lại trường FCS gốc.

So sánh giữa 2 chuẩn Trunking:

Còn một vài điểm lưu ý khác đó là ISL Per-VLAN Spanning Tree(PVST), native VLAN nhưng sẽ không đề cập ở đây.

VLAN Trunking Protocol (VTP)

Có một bài toán được đặt ra là: Nếu chúng ta có một mạng gồm rất nhiều máy được cấu hình nằm ở các VLAN khác nhau và có các Swith để nối các máy này lại. Lúc này công việc của một admin là cấu hình cho từng Switch để quản lý các VLAN kia, công việc cấu hình cho từng Switch lặp đi lặp lại thật là nhàm chán phải không? Rất may là chúng ta có một “công cụ” trợ thủ đắc lực cho các admin đó là VLAN Trunking Protocol (VTP). Với VTP, bạn có thể cấu hình VLAN trên 1 Switch và các Switch khác sẽ học về VLAN đó một cách tự động.

VTP định nghĩa một giao thức truyền tin lớp 2 cho phép các Switch trao đổi thông tin cấu hình VLAN sao cho các thông tin cấu hình giữa các Switch là nhất quán. Lấy ví dụ, nếu bạn muốn sử dụng VLAN 3 và đặt tên là “accounting”, bạn có thể cấu hình thông tin này trên một Switch và VTP sẽ phát tán thông tin đó đến các Switch còn lại. VTP quản lý việc thêm, xóa và đổi tên của các VLAN giữa các Switch, giảm thiểu việc cấu hình thiếu và không đồng nhất chẳng hạn như việc đặt trùng tên VLAN hay các thiết lập không đúng.

Quy trình của VTP bắt đầu bằng việc tạo ra VLAN trên một Switch được gọi là VTP server. Các thay đổi được phát tán như một broadcast chạy trong mạng. Cả VTP client và VTP đều lắng nghe các bản tin VTP để cập nhật việc cấu hình của chúng. VTP cho phép các giải pháp mạng phát triển lớn hơn mà không cần phải cấu hình bằng tay trên từng Switch.

VTP Hoạt Động Như Thế Nào:

Các bản tin VTP được bắn vào VTP domain cứ 5 phút một lần hoặc bất cứ khi nào có sự thay đổi trong cấu hình VLAN. Bản tin VTP có chứa số configuration revision (chả biết dịch là gì nữa), tên của các VLAN và số lượng VLAN, thông tin của các Switch có cổng được gán cho mỗi VLAN. Để biết rõ ta dùng lệnh “show vtp status”.

Bằng cách cấu hình một cách chi tiết trên một hay nhiều VTP server và phát tán thông tin qua các bản tin thì tất cả các Switch trong mạng sẽ biết tên và số lượng của tất cả các VLAN. Một trong những thành phần quan trọng nhất trong các bản tin VTP đó là configuration revision number. Mỗi lần VTP server thay đổi thông tin VLAN( Create a new VLAN or Delete a VLAN…), nó sẽ tăng số này lên 1 đơn vị và gửi đi theo bản tin VTP. Khi một Switch nhận được thông báo này, nó sẽ so sánh với configuration revision number của nó. Nếu nó thấy số nó nhận được lớn hơn số nó đang có thì nó sẽ cập nhật cấu hình từ thông báo trên. Nếu nó thấy số nó nhận được bằng với số nó đang có thì nó biết là không có sự thay đổi nào và nó sẽ forward bản tin đó đi tiếp.

VTP có 3 trạng thái hoạt động:

+ Server mode
+ Client mode
+ Transparent mode

Để VTP có thể trao đổi thông tin, một vài Switch được cấu hình như là server và các cái khác chạy như client. VTP server có thể tạo, sửa, xóa VLAN và các tham số cấu hình khác trong toàn bộ VTP domain. Các thông tin này lần lượt được nhân giống tới các VTP client và server trong cùng một domain.

Cấu hình VLAN được VTP server lưu trong NVRAM co dang VLAN.DAT file(Cisco Switch), trong khi với VTP client, cấu hình VLAN không được lưu vào bất cứ đâu, điều này đồng nghĩa với việc nếu mất điện thì các cấu hình VLAN trong VTP client Switch sẽ mất và nó sẽ phải học lại từ đầu. Một VTP client không thể tạo, thay đổi hay xóa VLAN.

Nhưng tại sao lại cứ phải là client? Điều này thật đơn giản, với VTP client, chúng ta không phải config gì nhiều cho nó mà nó sẽ tự học tất cả khi chúng ta đã có một VTP server trong cùng một VTP domain.

Có một điều thật thú vị, để ngăn cản việc sử dụng VTP để mở rộng VLAN một cách không mong muốn đối với các Switch của Cisco, bạn không được “disable” VTP đi mà thay vào đó, bạn hãy sử dụng chế độ VTP transparent. Với chế độ VTP transparent được sử dụng cho tất cả các switch trong mạng đồng nghĩa với việc bạn không sử dụng VTP. VTP transparent được sử dụng như một tùy chọn đối với vài Switch có chức năng đặc biệt trọng mạng mà thôi. VTP server và client vẫn làm việc bình thường với nhau như chúng vẫn đang làm cho dù có mặt VTP transparent hay không, bởi vì với VTP transparent, nó sẽ bỏ qua tất cả các VTP message. Trong chế độ này, Switch sẽ forward các bản tin VTP mà bỏ qua các thông tin chứa trong thông báo đó, nó sẽ không học bất cứ cái gì từ VTP message cho dù đã có sự thay đổi trong đó. Một Switch được cấu hình trong chế độ VTP transparent thì có thể tạo, sửa hay xóa các VLAN, nhưng sự thay đổi này không được gửi cho các Switch khác trong cùng domain, nó chỉ có tác dụng cho chính nó thôi. Chế độ transparent được sử dụng nếu bạn muốn có sự khác biệt trong việc cấu hình Switch ở một bộ phận nào đấy trong cả một mạng lớn.

VTP Pruning

Mặc định, đường Trunk sẽ truyền tải tất cả traffic cho các VLAN, cả broadcast lẫn unknow destination unicast của tất cả VLAN được gửi đi từ tất cả các Switch trong mạng, y hệt như STP (STP – Spanning Tree Protocol) đang dùng hiện nay. Tuy nhiên, không phải Switch nào cũng dùng tất cả các cổng của mình cho các VLAN, nhưng việc truyền broadcast lẫn unknow destination unicast sẽ dùng toàn bộ các cổng này, điều này sẽ làm lãng phí băng thông một cách không cần thiết.

VTP pruning cho phép các Switch ngăn chặn luồng traffic broadcast và unknow destination unicast tới các Switch không có VLAN tương tứng.

Ở hình sau ta sẽ thấy rõ điều này:

Cả Switch 2 và Switch 4 đều biết rằng đằng sau Switch 3 và Switch 5 sẽ không có VLAN 10, vì thế broadcast đi từ máy A tới máy B sẽ bị chặn và được chuyển tới đúng VLAN của nó.

VTP pruning làm tăng băng thông hợp lệ bằng cách ngăn chặn các flooded traffic bao gồm có cả broadcast và unknow destination unicast. VTP pruning là một trong hai lý do quan trọng trong việc sử dụng VTP, lý do kia chính là việc giúp cấu hình VLAN một cách dễ dàng và nhất quán.

Mulan - HVA

No comments:

Post a Comment