Bài 16b: Thực hành Ethernet Switching — Quan sát ARP, bảng MAC và cách switch chuyển frame
Sơ đồ lab Bài 16b · ⬇️ Tải sơ đồ (SVG) · 🔍 Mở cỡ lớn
💡 Liên hệ thực tế
Chị Mai ở phòng Kinh doanh ping máy anh Tùng ngồi cùng phòng. Gói tin chỉ có địa chỉ IP 192.168.1.13 — vậy làm sao switch biết phải đẩy nó ra cổng nào? Câu trả lời nằm ở hai cái bảng: bảng ARP trên máy tính (IP → MAC) và bảng MAC trên switch (MAC → cổng).
Bài lab này dùng chế độ Simulation của Packet Tracer để bạn nhìn từng frame: lúc nào switch phát tràn ra mọi cổng, lúc nào chỉ gửi đúng một cổng.
Quy tắc ghi nhớ: switch học MAC nguồn của frame đi vào, và tra MAC đích để chọn cổng ra. Không tìm thấy đích (hoặc đích là broadcast) thì phát tràn ra mọi cổng trừ cổng đã nhận.
🎯 Mục tiêu bài lab
- Đọc được địa chỉ MAC của PC và bảng MAC của switch (
show mac address-table). - Theo dõi một lần ARP: request broadcast, reply unicast.
- Xem trường EtherType trong Ethernet frame (ARP 0x0806, IPv4 0x0800).
- Thấy hiện tượng phát tràn unknown unicast khi switch chưa biết MAC đích.
📋 Bảng địa chỉ và đấu nối
| Thiết bị | IP / Mask | Nối vào | Địa chỉ MAC (tự ghi) |
|---|---|---|---|
| PC1 | 192.168.1.11/24 | SW1 Fa0/1 | … |
| PC2 | 192.168.1.12/24 | SW1 Fa0/2 | … |
| PC3 | 192.168.1.13/24 | SW1 Fa0/3 | … |
| PC4 | 192.168.1.14/24 | SW2 Fa0/1 | … |
| Từ | Cổng | Đến | Cổng | Cáp |
|---|---|---|---|---|
| SW1 | Fa0/1 – Fa0/3 | PC1 – PC3 | FastEthernet0 | Copper Straight-Through |
| SW2 | Fa0/1 | PC4 | FastEthernet0 | Copper Straight-Through |
| SW1 | Gi0/1 | SW2 | Gi0/1 | Copper Cross-Over |
⚙️ Các bước thực hiện
⚙️ Bước 1 — Dựng sơ đồ, đặt IP và ghi MAC
Kéo ra 2 switch 2960-24TT (để mặc định) và 4 PC, nối cáp theo bảng, đặt IP (không cần gateway — mọi máy cùng một mạng). Đợi đèn các cổng chuyển xanh.
Trên từng PC chạy ipconfig /all, ghi dòng Physical Address vào cột cuối của bảng. Địa chỉ MAC dài 48 bit, viết thành 12 số hex — Cisco nhóm 4 số một (vd 0001.6400.1111).
⚙️ Bước 2 — Xoá các bảng để bắt đầu từ đầu
Trên SW1 và SW2:
SW1# clear mac address-table dynamic
SW1# show mac address-table
Bảng lúc này không còn địa chỉ của PC nào. Trên PC1 chạy arp -a: chưa có dòng nào (No ARP Entries Found).
⚙️ Bước 3 — Theo dõi PC1 ping PC3 ở chế độ Simulation
- Chuyển sang Simulation (góc phải dưới). Trong Edit Filters chỉ giữ ARP và ICMP.
- Trên PC1 mở Command Prompt, gõ
ping 192.168.1.13. - Bấm Capture/Forward từng bước và quan sát:
- PC1 chưa biết MAC của 192.168.1.13 nên gửi ARP Request tới MAC đích
FFFF.FFFF.FFFF(broadcast). - SW1 phát frame này ra mọi cổng trừ Fa0/1: tới PC2, PC3 và sang SW2 → PC4.
- Chỉ PC3 trả lời ARP Reply — gửi thẳng (unicast) về MAC của PC1. SW1 chỉ đẩy frame này ra Fa0/1.
- Sau đó gói ICMP Echo đi thẳng từ PC1 tới PC3.
- PC1 chưa biết MAC của 192.168.1.13 nên gửi ARP Request tới MAC đích
Bấm vào gói ARP Request trong danh sách sự kiện → tab Outbound PDU Details: phần Ethernet có MAC đích FFFF.FFFF.FFFF, MAC nguồn của PC1 và TYPE: 0x0806 (ARP). Mở một gói ICMP: TYPE là 0x0800 (IPv4).
⚙️ Bước 4 — Xem switch đã học được gì
Quay lại chế độ Realtime. Trên SW1 và SW2 chạy show mac address-table; trên PC1 chạy arp -a.
- SW1 học MAC của PC1 trên Fa0/1 (từ ARP Request) và MAC của PC3 trên Fa0/3 (từ ARP Reply).
- SW2 cũng học MAC của PC1 — trên cổng Gi0/1, vì ARP Request phát tràn đã đi sang SW2. Với SW2, mọi máy bên SW1 đều "nằm sau" cổng Gi0/1.
- PC1 có dòng 192.168.1.13 → MAC của PC3.
⚙️ Bước 5 — PC2 ping PC4 (qua hai switch)
Ở chế độ Realtime, từ PC2 ping 192.168.1.14, rồi xem lại bảng MAC. SW1 giờ có MAC của PC4 trên Gi0/1; SW2 có MAC của PC4 trên Fa0/1 và MAC của PC2 trên Gi0/1. Một cổng (Gi0/1) có thể gắn với nhiều MAC.
⚙️ Bước 6 — Thấy unknown unicast flooding
- Trên SW1:
clear mac address-table dynamic. Bảng ARP của PC1 vẫn còn MAC của PC3. - Chuyển sang Simulation, từ PC1
ping 192.168.1.13. - Lần này PC1 không cần ARP — nó gửi ngay frame ICMP tới đúng MAC của PC3. Nhưng SW1 vừa bị xoá bảng, không biết MAC đó ở cổng nào → phát tràn ra mọi cổng. PC2 và PC4 nhận được rồi bỏ đi (dấu X đỏ) vì MAC đích không phải của mình.
- Gói trả lời của PC3 giúp SW1 học lại; các gói sau chỉ đi đúng một cổng.
🔍 Kiểm tra kết quả
| # | Kiểm tra | Lệnh / thao tác | Kết quả mong đợi |
|---|---|---|---|
| 1 | MAC của PC | ipconfig /all |
Đã ghi đủ 4 MAC vào bảng |
| 2 | ARP Request | Simulation, mở gói ARP | MAC đích FFFF.FFFF.FFFF, TYPE 0x0806, đi ra mọi cổng |
| 3 | ARP Reply | Simulation | Unicast, chỉ đi về PC1 |
| 4 | Bảng MAC SW1 | show mac address-table |
MAC PC1 ↔ Fa0/1, PC3 ↔ Fa0/3, PC4 ↔ Gi0/1 |
| 5 | Bảng MAC SW2 | show mac address-table |
MAC PC1, PC2 ↔ Gi0/1; PC4 ↔ Fa0/1 |
| 6 | Bảng ARP PC1 | arp -a |
192.168.1.13 ↔ MAC PC3 |
🔍 Output mẫu trên SW1 sau Bước 5 (MAC của bạn sẽ khác)
SW1# show mac address-table
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
1 0001.6400.1111 DYNAMIC Fa0/1
1 0002.4a00.2222 DYNAMIC Fa0/2
1 0003.e400.3333 DYNAMIC Fa0/3
1 0004.9a00.4444 DYNAMIC Gig0/1
C:\>arp -a
Internet Address Physical Address Type
192.168.1.13 0003.e400.3333 dynamic
🛠️ Lỗi thường gặp & cách xử lý
| Triệu chứng | Nguyên nhân thường gặp | Cách kiểm tra & sửa |
|---|---|---|
| Simulation không hiện gói ARP | Bảng ARP của PC đã có sẵn MAC đích | Đợi vài phút cho mục ARP hết hạn, hoặc dựng lại PC; kiểm tra bằng arp -a |
| Danh sách sự kiện quá nhiều gói lạ | Bộ lọc đang bật cả CDP, STP… | Edit Filters → chỉ giữ ARP, ICMP |
| Ping lần đầu mất 1 gói | Bình thường: gói đầu chờ ARP xong | Ping lại — các gói sau thành công hết |
| Bảng MAC trống dù vừa ping | Đang xem nhầm switch, hoặc chạy lệnh sau khi xoá bảng | Ping lại rồi xem ngay |
🏆 Thử thách mở rộng
- Từ PC4 gửi ping tới địa chỉ broadcast 192.168.1.255 ở chế độ Simulation. Frame đi tới những máy nào? Switch có học thêm gì không?
- Rút cáp PC3 khỏi Fa0/3 và cắm sang Fa0/10 của SW1. Ping lại từ PC1 — có được ngay không? Bảng MAC của SW1 thay đổi thế nào?
👉 Gợi ý đáp án
Thử thách 1: Gói tới mọi máy trong mạng (MAC đích FFFF.FFFF.FFFF), cả hai switch phát tràn. Switch chỉ học MAC nguồn của PC4 (nếu chưa có).
Thử thách 2: Khi cáp rút ra, cổng Fa0/3 down và switch xoá các MAC đã học trên cổng đó. Khi PC3 gửi frame từ Fa0/10, switch học lại MAC của PC3 trên Fa0/10 — ping tiếp tục bình thường, có thể mất một gói đầu.
💬 Hỏi & Đáp nhanh
❓ Switch giữ một dòng MAC trong bao lâu?
✅ Mặc định trên switch Cisco là 300 giây không thấy frame nào từ MAC đó thì xoá (aging time). Mỗi frame mới từ MAC đó làm mới thời gian.
❓ Switch có dùng địa chỉ IP để chuyển frame không?
✅ Không. Switch Layer 2 chỉ đọc địa chỉ MAC trong Ethernet header. IP chỉ dùng khi PC cần hỏi ARP để biết MAC đích.
❓ Broadcast và unknown unicast khác nhau thế nào?
✅ Broadcast có MAC đích FFFF.FFFF.FFFF — luôn phát tràn và mọi máy đều xử lý. Unknown unicast có MAC đích cụ thể nhưng switch chưa học — cũng phát tràn, nhưng chỉ máy có đúng MAC đó nhận, các máy khác bỏ.
📝 Bài tập đánh giá
Câu 1: Switch học được dòng mới trong bảng MAC từ thông tin nào của frame?
- A. MAC đích
- B. MAC nguồn và cổng nhận frame
- C. IP nguồn
- D. Trường EtherType
Câu 2: Frame có MAC đích chưa có trong bảng MAC của switch sẽ được xử lý thế nào?
- A. Bị huỷ
- B. Gửi ngược lại cổng vừa nhận
- C. Phát tràn ra mọi cổng trong cùng VLAN, trừ cổng đã nhận
- D. Gửi về router
👉 Đáp án
- Câu 1: B — Switch ghi lại "MAC nguồn này nằm sau cổng này".
- Câu 2: C — Đây là unknown unicast flooding.
💡 Output trong bài là output mẫu trên Packet Tracer, trên máy bạn có thể khác một chút (ví dụ địa chỉ MAC).
📚 Bài viết thuộc khóa học CCNA của VNExperts
🧭 Điều hướng
| ⬅️ Bài trước | 🏠 Mục lục khóa học | Bài kế tiếp ➡️ |
|---|---|---|
| Bài 16: Ethernet Frame & Switching cơ bản — ARP và bảng MAC | Mục lục khóa học CCNA | Bài 17: Cân bằng tải & dự phòng: FHRP tổng quan |