Switch chuyển tiếp frame và học địa chỉ MAC thế nào?

Lần theo quá trình switch học MAC nguồn, chọn cổng theo VLAN và xử lý unknown unicast. Đọc bảng MAC theo thời điểm để phân biệt aging, MAC move và lỗi IP.
Switch vừa khởi động, bảng MAC chưa có địa chỉ máy B. Máy A vẫn gửi được frame tới B, dù switch chưa biết B cắm ở cổng nào. Điều này không có nghĩa switch đã hỏi IP của B hoặc tự tra ARP như một router. Nó có thể đưa unknown unicast tới các cổng đủ điều kiện trong cùng VLAN, rồi học vị trí của B khi thấy frame do B gửi.
Bài này dùng SW1 với A ở Gi1/0/1, B ở Gi1/0/2 và C ở Gi1/0/3, cả ba thuộc VLAN 10. MAC minh họa lần lượt là 0200.0000.1020, 0200.0000.1030 và 0200.0000.1040. Các frame và bảng được biên tập để giải thích cơ chế; chưa phải output chạy trên thiết bị. STP, policy và trạng thái cổng được giả định đang cho phép chuyển tiếp.
1. Học từ MAC nguồn, quyết định bằng MAC đích
Khi nhận frame, switch có thể ghi nhận MAC nguồn trên cổng và VLAN đã nhận. Sau đó, để quyết định đường ra của unicast, nó tra địa chỉ đích trong ngữ cảnh VLAN. Đây là hai thao tác khác nhau: địa chỉ nguồn giúp xây bảng, còn địa chỉ đích giúp chọn cách chuyển frame. Không học vị trí của B chỉ vì thấy B được nhắc trong trường destination.
Ví dụ A gửi tới B lần đầu. SW1 học MAC A ở Gi1/0/1 trong VLAN 10. Nếu B chưa có trong bảng, switch chưa thể chỉ chọn Gi1/0/2 dựa trên một phép tra đã biết. Trong mô hình chuyển mạch Layer 2 thông thường, nó flood frame tới các port khác đủ điều kiện trong VLAN, không gửi trở lại chính ingress port.

Cuộn ngang khi cần, hoặc chạm sơ đồ để mở ảnh gốc.
Khi B phản hồi, SW1 học MAC B ở Gi1/0/2. Lúc này MAC đích của phản hồi là A và A đã có trong bảng, nên switch có thể chuyển frame tới Gi1/0/1. Các frame sau từ A tới B cũng có thể đi đúng cổng đã học, chừng nào mục còn hợp lệ và các điều kiện chuyển tiếp không đổi.
Hướng dẫn quản trị switch Catalyst của Cisco mô tả dynamic MAC learning và aging. Ví dụ phần mềm trong tài liệu thuộc thế hệ cũ; bài dùng nguyên lý để giải thích, không lấy mọi lệnh hoặc giới hạn bảng của model đó làm mặc định cho Catalyst hiện hành.
2. Đọc khóa VLAN–MAC và cổng, không biến bảng thành danh bạ IP
Một bảng MAC thông thường thể hiện VLAN, MAC, loại entry và cổng liên quan. Trên nhiều nền tảng, cùng giá trị MAC có thể có entry ở các VLAN khác nhau. Vì vậy, tìm thấy một MAC ở VLAN 20 không đủ để xác nhận host thuộc VLAN 10 đã được học đúng. Phải đối chiếu cổng nhận và VLAN mà lưu lượng thực sự đi vào.
Ví dụ biên tập sau khi A và B trao đổi:
VLAN MAC Loại Cổng
10 0200.0000.1020 dynamic Gi1/0/1
10 0200.0000.1030 dynamic Gi1/0/2
C chưa phát frame trong ví dụ, nên chưa khẳng định có entry C.
Địa chỉ MAC động được học từ lưu lượng khác với entry static do cấu hình hoặc entry có cơ chế bảo vệ riêng. Không thấy chữ dynamic chưa có nghĩa thiết bị không hoạt động. Ngược lại, một static entry còn tồn tại chưa chứng minh host đang cắm tại cổng đó hoặc đang phản hồi ứng dụng.
Bảng ARP của host ánh xạ IPv4 tới MAC trên interface phù hợp; bảng tuyến chọn next hop; bảng MAC của switch chọn port trong VLAN. Ba bảng không thay thế nhau. Switch Layer 2 chuyển frame không nhất thiết biết IP của mọi endpoint, và việc thiết bị có một IP quản trị không làm nó tự động thực hiện định tuyến giữa các VLAN.

Cuộn ngang khi cần, hoặc chạm sơ đồ để mở ảnh gốc.
Trên uplink nối tới một switch khác, thấy nhiều MAC cùng xuất hiện tại một port là bình thường. Điều đó không có nghĩa mọi endpoint đều cắm trực tiếp vào chính cổng uplink. Cần lần tiếp qua switch bên kia hoặc công cụ inventory để tìm cổng cuối. Điện thoại có cổng nối máy tính cũng có thể khiến nhiều MAC xuất hiện theo điều kiện riêng.
3. Phân biệt forward, filter và flood
Nếu MAC đích đã được biết ở một cổng ra khác ingress, switch chuyển frame theo mục đó khi policy cho phép. Nếu địa chỉ đích được học ở cùng ingress, một bridge thông thường không cần đưa frame quay lại cổng vừa nhận trong mô hình này. Hành vi phản chiếu, hairpin hoặc tính năng đặc biệt cần xét riêng, không dùng làm quy tắc mặc định cho bài cơ bản.
Unknown unicast là frame unicast nhưng switch chưa có vị trí đích. Broadcast có địa chỉ đích broadcast và phục vụ một nhóm hành vi khác. Cả hai có thể được đưa tới nhiều port, nhưng không vì vậy mà đổi unknown unicast thành ARP request. Nếu A đã có ARP của B nhưng SW1 hết entry B, frame dữ liệu vẫn có thể là unknown unicast.
Multicast cũng không tự đồng nghĩa broadcast. Các cơ chế như snooping và thông tin membership có thể tác động phạm vi chuyển tiếp. Ở bước học này, chỉ cần tránh gọi mọi traffic đến nhiều port là broadcast. Đọc destination MAC, protocol và cấu hình liên quan trước khi gắn tên.

Cuộn ngang khi cần, hoặc chạm sơ đồ để mở ảnh gốc.
C không phải đích của frame unicast A gửi B, dù frame có thể xuất hiện tại port C khi bị flood. NIC, driver, chế độ capture và cơ chế bảo vệ còn quyết định ứng dụng C có nhìn thấy hay không. Một capture không thấy frame tại C chưa chứng minh switch không flood; điểm đo và công cụ cũng cần được kiểm tra.
4. Aging và di chuyển MAC tạo thay đổi hợp lệ lẫn dấu hiệu lỗi
Dynamic entry có thời gian sống và được làm mới theo quy tắc nền tảng. Khi không còn được làm mới, entry có thể bị aging. Đây là cơ chế giúp tránh giữ mãi thông tin vị trí cũ, không phải lỗi riêng của host. Không ghi một timeout mặc định thành hằng số áp dụng cho mọi model hoặc mọi loại entry.
Nếu B chuyển từ Gi1/0/2 sang Gi1/0/4 rồi phát frame, switch có thể học lại vị trí mới. Một lần MAC move phù hợp thao tác thực tế là dữ kiện có thể giải thích. Nếu cùng MAC liên tục nhảy giữa hai cổng mà không có thay đổi hợp lệ, cần xét loop, kết nối sai, duplicate MAC hoặc cơ chế dự phòng/ảo hóa trước khi kết luận tấn công.
Đổi aging time chỉ để làm bảng “ổn định” có thể che triệu chứng hoặc tăng thời gian giữ entry cũ. Xóa toàn bộ bảng MAC sẽ buộc học lại và có thể làm unknown unicast tăng tạm thời. Thu thập snapshot theo thời gian và ghi rõ thay đổi trước khi dùng thao tác reset; không làm mất bằng chứng đầu tiên.
Port-security, entry sticky và cơ chế chuyển tiếp phần cứng có thể thêm ràng buộc. Ví dụ một địa chỉ đã bị khóa theo chính sách không nhất thiết được học lại tự do như entry dynamic thông thường. Bài bảo mật Layer 2 sẽ phân tích điều kiện này; chưa áp cấu hình bảo vệ lên cổng đang dùng chỉ để thử bảng MAC.
5. Dùng lệnh show để kiểm tra một endpoint cụ thể
Trên Catalyst IOS/IOS XE phù hợp, có thể bắt đầu bằng các lệnh sau. Cú pháp filter và tên interface có thể khác theo release, nên dùng trợ giúp và tài liệu model. Tìm theo cả VLAN và MAC giúp giảm lượng dữ liệu, tránh nhầm entry ở một VLAN khác.
show mac address-table dynamic
show mac address-table address 0200.0000.1030
show mac address-table vlan 10
show interfaces GigabitEthernet1/0/2 switchport
show interfaces GigabitEthernet1/0/2
Đầu ra bảng MAC chỉ là một snapshot. Nếu host chưa phát frame gần đây, không thấy entry có thể phù hợp cơ chế aging. Hãy tạo một phép trao đổi được phép từ chính host hoặc dùng log hiện có rồi đọc lại, thay vì gắn static entry ngay để làm bảng có dòng mong muốn.
Nếu entry xuất hiện trên uplink, lần theo uplink tới switch tiếp theo, đối chiếu topology và trạng thái VLAN. Không đổi port access ngẫu nhiên theo địa chỉ IP của host. IP có thể thuộc máy ảo, thiết bị phía sau điện thoại hoặc adapter có địa chỉ khác điều bạn đang nhìn trong hồ sơ.
Khi chia sẻ kết quả, có thể cần che MAC/IP nội bộ theo chính sách. Giữ dữ liệu tương quan port/VLAN và thời điểm để người nhận vẫn phân tích được. Một ảnh chụp chỉ có MAC mà không có VLAN hoặc tên switch thường không đủ để tìm host trong hệ thống nhiều tầng.
6. Tách lỗi học MAC khỏi lỗi IP và lỗi ứng dụng
Nếu không học được A, kiểm tra A có thực sự phát frame, ingress port có up, VLAN đúng và có policy loại bỏ không. Link up không tự bảo đảm lưu lượng được phép qua. Nếu MAC A học đúng nhưng A không tới B, tiếp tục kiểm tra tập cổng chuyển tiếp, VLAN của B, trạng thái port và ARP trên A.
Nếu cùng VLAN trao đổi được nhưng sang VLAN khác thất bại, MAC learning chỉ giải quyết một phần Layer 2. Lúc này cần gateway, route và policy như bài inter-VLAN sau. Đừng thêm MAC tĩnh cho server ở xa vào switch access với kỳ vọng thay thế default route của client.
Trong mô hình A/B/C, hãy thử suy luận một chuỗi: A gửi B khi bảng trống, B trả lời, rồi C gửi A. Sau hai sự kiện đầu, switch đã biết A và B; khi C gửi, nó học C từ nguồn và có thể đưa frame tới port A đã biết. Không cần flood chỉ vì C vừa xuất hiện nếu destination A đã có entry dùng được.
Kết luận sửa xong cần xác nhận tác vụ mong muốn, không chỉ việc bảng MAC “đầy”. Theo dõi hiện tượng flap nếu có, đọc port/VLAN đúng và kiểm tra ứng dụng theo phạm vi được yêu cầu. Bảng có ba địa chỉ không chứng minh cả ba host đã dùng đúng IP hoặc được cấp quyền dịch vụ.
7. Giữ VLAN trong mọi câu trả lời về switching
Hãy trả lời: switch học từ source hay destination, unknown unicast khác ARP ở đâu, và tại sao một uplink có nhiều MAC? Nếu câu trả lời bỏ VLAN, hãy bổ sung lại. VLAN là ngữ cảnh xác định miền chuyển tiếp, không chỉ một nhãn để quản trị viên phân nhóm người dùng.
Bài VLAN và trunk sẽ kéo dài VLAN 10 qua hai switch và thêm VLAN 20 mà không trộn hai miền quảng bá. Sau đó bài inter-VLAN routing chỉ ra nơi gói phải rời một VLAN để tới VLAN khác. Bạn cũng có thể đọc lại Ethernet và ARP để đối chiếu bảng MAC của switch với cache neighbor của host.