Quá trình chuyển tiếp frame (Frame Forwarding Process)
Để xử lý sự cố liên quan đến chuyển tiếp Layer 2 một cách hiệu quả, bạn cần hiểu rõ cách switch hoạt động. Đây là kiến thức nền tảng mà bạn thường đã học từ CCNA Routing and Switching. Tuy nhiên, việc ôn lại cơ chế hoạt động của switch là rất quan trọng, bởi toàn bộ quá trình troubleshooting Layer 2 đều dựa trên những nguyên lý này.
Phần này sẽ giải thích cách switch xây dựng MAC address table và cách nó quyết định xử lý một frame dựa trên thông tin có trong bảng MAC.
Hub vs Switch: Khác biệt cốt lõi
Trước khi hiểu frame forwarding, hãy phân biệt giữa Ethernet Hub và Ethernet Switch.
Ethernet hub hoạt động rất đơn giản:
Hub không có khả năng "hiểu" thiết bị nào đang kết nối ở đâu.
Điều này gây ra nhiều vấn đề:
Ví dụ:
Nếu hai máy cùng truyền dữ liệu đồng thời:
Lý do:
Switch thì thông minh hơn rất nhiều.
Switch có khả năng:
Kết quả:
Lý do:
MAC Address Table là gì?
Switch duy trì một bảng gọi là:
MAC Address Table (hay CAM Table)
Ví dụ:
VLAN MAC Address Type Port
10 0050.b60c.f258 DYNAMIC Gi0/1
10 0800.275d.06d6 DYNAMIC Fa0/1
10 0800.27a2.ce47 DYNAMIC Fa0/2
Bảng này cho switch biết:
Switch học MAC như thế nào?
Switch học MAC bằng cách nhìn vào:
Ví dụ:
Switch nhận frame tại:
GigabitEthernet1/1
Frame có:
Source MAC = DDDD.DDDD.DDDD
Switch suy luận:
Sau đó switch thêm vào MAC table:
DDDD.DDDD.DDDD → Gi1/1
Từ lần sau, nếu có frame gửi tới MAC đó, switch biết chính xác phải gửi ra đâu.
Khi switch chưa biết MAC đích
Ban đầu switch chưa biết gì cả.
MAC table trống.
Nếu switch nhận frame có destination MAC chưa tồn tại trong bảng:
Switch sẽ thực hiện:
Unknown Unicast Flooding
Tức là:
Ví dụ:
Frame vào từ:
Fa0/1
Switch chưa biết MAC đích.
Nó flood ra:
Fa0/2
Fa0/3
Gi0/1
Gi0/2
(trong cùng VLAN)
Broadcast Frame hoạt động thế nào?
Broadcast MAC:
FFFF.FFFF.FFFF
Khi switch thấy destination MAC này:
Nó luôn flood.
Lý do:
Không có thiết bị nào dùng MAC:
FFFF.FFFF.FFFF
Nên switch không bao giờ học được địa chỉ này một cách động.
Ví dụ từ MAC table:
All ffff.ffff.ffff STATIC CPU
Điều này cho thấy:
Broadcast được xử lý đặc biệt.
Ví dụ thực tế: PC1 kết nối Telnet tới Server
Giả sử:
Topology:
PC1 ---- SW1 ---- Server
VLAN 100
PC1 muốn mở Telnet tới Server.
Để làm được điều đó, PC1 cần:
Bước 1: Xác định IP
IP thường:
Giả sử PC1 đã biết IP server.
Bước 2: Cần MAC Address
Ethernet truyền dữ liệu theo MAC.
Nếu PC1 chưa có MAC của server trong ARP cache:
Nó phải dùng:
ARP Request
ARP Request là broadcast
PC1 gửi:
Frame:
Destination MAC = FFFF.FFFF.FFFF
Switch nhận broadcast.
Theo nguyên tắc:
Broadcast luôn flood.
Switch gửi ARP request ra mọi cổng trong VLAN 100.
Server nhận được.
ARP Reply là unicast
Server phản hồi:
Frame này là unicast.
Switch học:
Ví dụ:
XXXX.XXXX.XXXX → Gi0/3
PC1 gửi Telnet
Bây giờ PC1 đã biết MAC server.
PC1 gửi frame:
Destination MAC = Server MAC
Switch kiểm tra MAC table.
Nếu đã có entry:
Switch forward đúng cổng duy nhất.
Không flood.
Logic chuyển tiếp của switch
Switch xử lý frame theo logic: Nếu destination MAC đã biết
→ Forward đúng cổng. Nếu destination MAC chưa biết
→ Flood trong cùng VLAN. Nếu là broadcast
→ Flood trong cùng VLAN. Nếu source MAC mới
→ Học MAC đó.
Các lệnh troubleshooting quan trọng
Kiểm tra MAC table
show mac address-table
Kiểm tra một MAC cụ thể
show mac address-table address 0800.27a2.ce47
Kiểm tra interface
show interfaces status
Kiểm tra VLAN
show vlan brief
Các lỗi Layer 2 phổ biến
Troubleshooting thực tế thường gặp: MAC không được học
Nguyên nhân:
Unknown unicast flooding liên tục
Nguyên nhân:
Broadcast storm
Nguyên nhân:
MAC learned sai cổng
Nguyên nhân:
Kết luận
Hiểu cách switch học MAC và forward frame là nền tảng quan trọng nhất khi troubleshooting Layer 2.
Hãy nhớ mô hình tư duy đơn giản:
Learn from source MAC
Lookup destination MAC
Known = Forward
Unknown = Flood
Broadcast = Always Flood
Nắm chắc logic này, bạn sẽ xử lý nhanh hầu hết các sự cố switching trong mạng doanh nghiệp.
Để xử lý sự cố liên quan đến chuyển tiếp Layer 2 một cách hiệu quả, bạn cần hiểu rõ cách switch hoạt động. Đây là kiến thức nền tảng mà bạn thường đã học từ CCNA Routing and Switching. Tuy nhiên, việc ôn lại cơ chế hoạt động của switch là rất quan trọng, bởi toàn bộ quá trình troubleshooting Layer 2 đều dựa trên những nguyên lý này.
Phần này sẽ giải thích cách switch xây dựng MAC address table và cách nó quyết định xử lý một frame dựa trên thông tin có trong bảng MAC.
Hub vs Switch: Khác biệt cốt lõi
Trước khi hiểu frame forwarding, hãy phân biệt giữa Ethernet Hub và Ethernet Switch.
Ethernet hub hoạt động rất đơn giản:
- nhận bit từ một cổng
- phát lại chính xác những bit đó ra tất cả các cổng còn lại
Hub không có khả năng "hiểu" thiết bị nào đang kết nối ở đâu.
Điều này gây ra nhiều vấn đề:
- lãng phí băng thông
- collision (va chạm dữ liệu)
- hiệu năng thấp
- bảo mật kém
Ví dụ:
Nếu hai máy cùng truyền dữ liệu đồng thời:
- frame sẽ va chạm
- dữ liệu bị lỗi
- cả hai thiết bị phải truyền lại
Lý do:
Toàn bộ hub nằm trong cùng một collision domain.
Switch thì thông minh hơn rất nhiều.
Switch có khả năng:
- học địa chỉ MAC
- ghi nhớ thiết bị nằm ở cổng nào
- chỉ chuyển frame đến đúng nơi cần thiết
Kết quả:
- tối ưu băng thông
- loại bỏ collision
- tăng hiệu suất
- cải thiện bảo mật
Lý do:
Mỗi cổng trên switch là một collision domain riêng biệt.
MAC Address Table là gì?
Switch duy trì một bảng gọi là:
MAC Address Table (hay CAM Table)
Ví dụ:
VLAN MAC Address Type Port
10 0050.b60c.f258 DYNAMIC Gi0/1
10 0800.275d.06d6 DYNAMIC Fa0/1
10 0800.27a2.ce47 DYNAMIC Fa0/2
Bảng này cho switch biết:
- MAC nào nằm ở cổng nào
- thuộc VLAN nào
- học động hay cấu hình tĩnh
Switch học MAC như thế nào?
Switch học MAC bằng cách nhìn vào:
Source MAC address của frame đi vào.
Ví dụ:
Switch nhận frame tại:
GigabitEthernet1/1
Frame có:
Source MAC = DDDD.DDDD.DDDD
Switch suy luận:
"Thiết bị có MAC DDDD.DDDD.DDDD nằm phía sau cổng Gi1/1."
Sau đó switch thêm vào MAC table:
DDDD.DDDD.DDDD → Gi1/1
Từ lần sau, nếu có frame gửi tới MAC đó, switch biết chính xác phải gửi ra đâu.
Khi switch chưa biết MAC đích
Ban đầu switch chưa biết gì cả.
MAC table trống.
Nếu switch nhận frame có destination MAC chưa tồn tại trong bảng:
Switch sẽ thực hiện:
Unknown Unicast Flooding
Tức là:
- gửi frame ra tất cả cổng cùng VLAN
- ngoại trừ cổng nhận frame
Ví dụ:
Frame vào từ:
Fa0/1
Switch chưa biết MAC đích.
Nó flood ra:
Fa0/2
Fa0/3
Gi0/1
Gi0/2
(trong cùng VLAN)
Broadcast Frame hoạt động thế nào?
Broadcast MAC:
FFFF.FFFF.FFFF
Khi switch thấy destination MAC này:
Nó luôn flood.
Lý do:
Không có thiết bị nào dùng MAC:
FFFF.FFFF.FFFF
Nên switch không bao giờ học được địa chỉ này một cách động.
Ví dụ từ MAC table:
All ffff.ffff.ffff STATIC CPU
Điều này cho thấy:
Broadcast được xử lý đặc biệt.
Ví dụ thực tế: PC1 kết nối Telnet tới Server
Giả sử:
- PC1 và Server cùng subnet
- cùng VLAN 100
- không cần routing
Topology:
PC1 ---- SW1 ---- Server
VLAN 100
PC1 muốn mở Telnet tới Server.
Để làm được điều đó, PC1 cần:
- IP address của Server
- MAC address của Server
Bước 1: Xác định IP
IP thường:
- cấu hình sẵn
hoặc - lấy từ DNS
Giả sử PC1 đã biết IP server.
Bước 2: Cần MAC Address
Ethernet truyền dữ liệu theo MAC.
Nếu PC1 chưa có MAC của server trong ARP cache:
Nó phải dùng:
ARP Request
ARP Request là broadcast
PC1 gửi:
"Ai đang giữ IP này? Hãy trả lời MAC cho tôi."
Frame:
Destination MAC = FFFF.FFFF.FFFF
Switch nhận broadcast.
Theo nguyên tắc:
Broadcast luôn flood.
Switch gửi ARP request ra mọi cổng trong VLAN 100.
Server nhận được.
ARP Reply là unicast
Server phản hồi:
"IP đó là tôi. MAC của tôi là XXXX.XXXX.XXXX"
Frame này là unicast.
Switch học:
- Source MAC của server
- cổng server đang kết nối
Ví dụ:
XXXX.XXXX.XXXX → Gi0/3
PC1 gửi Telnet
Bây giờ PC1 đã biết MAC server.
PC1 gửi frame:
Destination MAC = Server MAC
Switch kiểm tra MAC table.
Nếu đã có entry:
Switch forward đúng cổng duy nhất.
Không flood.
Logic chuyển tiếp của switch
Switch xử lý frame theo logic: Nếu destination MAC đã biết
→ Forward đúng cổng. Nếu destination MAC chưa biết
→ Flood trong cùng VLAN. Nếu là broadcast
→ Flood trong cùng VLAN. Nếu source MAC mới
→ Học MAC đó.
Các lệnh troubleshooting quan trọng
Kiểm tra MAC table
show mac address-table
Kiểm tra một MAC cụ thể
show mac address-table address 0800.27a2.ce47
Kiểm tra interface
show interfaces status
Kiểm tra VLAN
show vlan brief
Các lỗi Layer 2 phổ biến
Troubleshooting thực tế thường gặp: MAC không được học
Nguyên nhân:
- interface down
- VLAN sai
- port-security block
Unknown unicast flooding liên tục
Nguyên nhân:
- MAC aging timeout
- flapping
- topology loop
Broadcast storm
Nguyên nhân:
- loop Layer 2
- STP lỗi
MAC learned sai cổng
Nguyên nhân:
- loop
- rogue switch
- topology instability
Kết luận
Hiểu cách switch học MAC và forward frame là nền tảng quan trọng nhất khi troubleshooting Layer 2.
Hãy nhớ mô hình tư duy đơn giản:
Learn from source MAC
Lookup destination MAC
Known = Forward
Unknown = Flood
Broadcast = Always Flood
Nắm chắc logic này, bạn sẽ xử lý nhanh hầu hết các sự cố switching trong mạng doanh nghiệp.