Virtual switch vs physical switch

Virtual switch (vSwitch) là phần mềm nằm trong hypervisor của vmware để xử lý các traffic network cho các virtual machine.

Điểm giống nhau giữa virtual switch và physical switch

Virtual switch không thay đổi thông tin trên frame, cũng như physical switch, nó hoàn toàn tuân theo chuẩn IEEE 802.3. Do đó một frame đi qua physical switch cũng sẽ đi qua virtual switch mà không cần một thiết bị chuyển đổi nào, chiều ngược lại cũng vậy.
Virtual switch cũng tương thích với mọi network adapter phổ biến như intel, qlogic, emulex…

Sự khác nhau giữa virtual switch và physical switch

Flexible

Vì là software nên vSwitch linh động (flexible) hơn physical switch, bạn có thể thêm virtual port chỉ bằng cách cấu hình đơn giản, trong khi đó để thêm physical port, bạn cần mở rộng line card của switch hoặc thêm một switch mới.

Learning và forwarding

Một khác biệt rất quan trọng là ở quá trình learning và forwarding. Với một physical switch, bất cứ một frame nào đến switch, thông tin source mac của frame sẽ được map với physical port mà switch nhận được frame. Thông tin này được ghi nhận vào bảng MAC (còn có tên gọi là bảng CAM – Content Addressable Memory) nếu chưa có. Đây là một bảng thông tin nằm trong memory của switch được sử dụng để thực hiện các quyết định forwarding. Nếu nhận thấy physical port thay đổi, điều đó có nghĩa là thiết bị đã được di chuyển từ port này sang port khác, switch sẽ update lại entry. Một entry mới: mac – new port được bổ sung, còn entry cũ: mac – old port sẽ được gắn timer, khi timer này chạy hết, entry cũ sẽ được xóa bỏ hoàn toàn để giải phóng memory cho switch. Toàn bộ quá trình trên là quá trình learning của switch.

Còn khi nhận một frame, nếu biết destination mac của frame, switch sẽ forward frame đó đến đúng port, nếu chưa biết mac của frame, switch sẽ thực hiện flooding, nó sẽ forward frame đến tất cả các port ngoại trừ port mà nó nhận được frame đó. Tòan bộ quá trình trên là quá trình forwarding của switch.

Nhưng trong thế giới của vSwitch, quá trình lại không giống như vây. Thứ nhất, vSwitch sẽ không cần quá trình learning. Nó chỉ cần biết những mac address của các virtual nic của virtual machine đang được gắn với virtual port nào. Thứ hai, cách đối xử của vSwitch với destination mac mà nó không biết rất khác biệt. Nếu một frame đến vSwitch từ bên ngoài có destination mac nó không biết, nó sẽ không thực hiện flooding như physical switch mà chỉ drop frame đó. Nếu một frame đến vSwitch từ bên trong (từ một trong số các virtual machine) có destination mac nó không biết, nó cũng không thực hiện flooding mà chỉ forward ra uplink – physical port của vmware host và hi vọng một physical switch nào đó sẽ xử lý frame.

Quá trình forwarding của vSwitch có thể tóm gọn trong hình vẽ sau:

vSwitch_forwarding.png

vSwitch hoàn toàn là switch layer 2

Khác với physical switch có thể có một số dòng hoạt động ở layer 3, cho phép inter-vlan routing. vSwitch hoàn toàn là switch layer 2, do đó mọi hoạt động inter-vlan routing bạn phải để cho một physical router hoặc physical layer 3 switch ở bên ngoài thực hiện.

Comments

comments