Danh mục sản phẩm
Bài 56: Access Control List (ACL) — Khái Niệm "Chốt Kiểm Soát Ra Vào"
💡 Liên hệ thực tế
Một khu chung cư có bảo vệ đứng ở cổng — không phải ai đi ngang qua cũng được vào, bảo vệ kiểm tra danh sách trước: cư dân thì cho vào, người lạ không có tên trong danh sách bị chặn lại, khách có hẹn trước thì được vào sau khi xác nhận. Chốt bảo vệ này hoạt động theo danh sách quy tắc đã định sẵn, kiểm tra tuần tự từng người, áp dụng đúng quy tắc đầu tiên khớp.
🛂 ACL (Access Control List) trên Router/Switch Cisco hoạt động theo đúng nguyên lý đó — 1 danh sách các quy tắc (rule) được kiểm tra tuần tự trên từng gói tin đi qua, quyết định cho phép (permit) hay từ chối (deny) dựa trên các tiêu chí đã khai báo.
📘 Kiến thức cốt lõi
Access Control List (ACL) là 1 danh sách tuần tự các câu lệnh permit hoặc deny, được Router/Switch áp dụng để lọc lưu lượng mạng dựa trên các tiêu chí như địa chỉ IP nguồn, IP đích, giao thức, cổng (port)...
⚙️ Cơ chế xử lý tuần tự — nguyên tắc quan trọng nhất cần khắc cốt ghi tâm:
Router kiểm tra gói tin đi qua từng dòng ACL theo đúng thứ tự từ trên xuống dưới — ngay khi tìm thấy dòng đầu tiên khớp điều kiện, Router áp dụng hành động (permit/deny) của dòng đó và dừng lại ngay, không kiểm tra tiếp các dòng phía dưới, dù dòng phía dưới có khớp hơn hay không.
⚠️ Quy tắc "Implicit Deny" — điều dễ gây sự cố nhất cho người mới học: mọi ACL đều có 1 dòng "deny all" ẩn ở cuối danh sách, dù bạn không hề gõ ra. Nghĩa là nếu 1 gói tin đi qua không khớp bất kỳ dòng permit nào đã khai báo, nó sẽ tự động bị từ chối (deny) — đây là nguyên nhân phổ biến nhất khiến người mới học "quên mất" và vô tình chặn luôn cả lưu lượng hợp lệ không được liệt kê tường minh.
🎯 Ví dụ minh họa cơ chế tuần tự và Implicit Deny:
1. permit host 192.168.1.10 2. deny 192.168.1.0 0.0.0.255 3. permit any
Với danh sách này:
- Gói tin từ
192.168.1.10→ khớp dòng 1 → được phép, dừng kiểm tra (dù dòng 2 có vẻ chặn cả dải này). - Gói tin từ
192.168.1.20→ không khớp dòng 1, khớp dòng 2 → bị chặn. - Gói tin từ địa chỉ khác (ví dụ
10.0.0.5) → không khớp dòng 1, 2 → khớp dòng 3 (any) → được phép.
💡 Đây là lý do thứ tự các dòng trong ACL cực kỳ quan trọng — cùng 1 tập luật nhưng đảo ngược thứ tự có thể cho ra kết quả hoàn toàn khác nhau.
⚖️ 2 loại ACL chính (sẽ học chi tiết cách cấu hình ở Bài 57-58):
| Loại ACL | Lọc dựa trên | Vị trí đặt khuyến nghị |
|---|---|---|
| Standard ACL | Chỉ địa chỉ IP nguồn | Gần đích (để tránh chặn nhầm lưu lượng không liên quan) |
| Extended ACL | IP nguồn, IP đích, giao thức, cổng... | Gần nguồn (chặn sớm, tiết kiệm tài nguyên xử lý) |
📎 Vì Standard ACL chỉ nhìn được IP nguồn (không biết gói tin đang đi đến đâu), đặt nó gần nguồn dễ vô tình chặn luôn cả lưu lượng hợp lệ đi đến nhiều đích khác nhau — nên nguyên tắc chung là đặt gần đích. Ngược lại, Extended ACL có đủ thông tin để lọc chính xác từ sớm, nên đặt gần nguồn giúp tiết kiệm tài nguyên xử lý dọc đường đi.
💬 Hỏi & Đáp nhanh
❓ Nếu quên hoàn toàn không khai báo bất kỳ dòng permit any nào ở cuối, ACL có tự động cho phép mọi lưu lượng khác không?
❌ Hoàn toàn ngược lại — đây chính là lỗi kinh điển nhất. Nếu không có dòng permit any cuối cùng, mọi lưu lượng không khớp các dòng phía trên sẽ tự động bị chặn bởi Implicit Deny, dù bạn không hề có ý định chặn chúng. Đây là lý do khi cấu hình ACL thực tế, luôn cần cân nhắc kỹ có cần thêm dòng "permit any" cuối cùng hay không.
❓ ACL có thể áp dụng để lọc lưu lượng cho toàn bộ Router, hay chỉ áp dụng cho từng Interface cụ thể?
✅ ACL luôn cần được áp dụng (apply) vào 1 Interface cụ thể, theo 1 chiều nhất định (Inbound — đi vào Interface, hoặc Outbound — đi ra khỏi Interface) — chỉ khai báo danh sách ACL thôi chưa đủ, nếu không gán vào Interface nào, ACL đó sẽ không có tác dụng gì cả. Chi tiết cách áp dụng sẽ học ở Bài 57.
❓ Vì sao cần phân biệt rõ ACL lọc Inbound hay Outbound trên 1 Interface?
✅ Vì đây quyết định thời điểm ACL kiểm tra gói tin — Inbound ACL kiểm tra ngay khi gói tin vừa đi vào Interface đó (trước khi Router quyết định định tuyến), còn Outbound ACL kiểm tra ngay trước khi gói tin chuẩn bị rời khỏi Interface đó (sau khi đã định tuyến xong). Chọn sai chiều có thể khiến ACL không lọc đúng lưu lượng mong muốn, hoặc gây ra hiệu ứng phụ không lường trước.
📝 Bài tập đánh giá
Câu 1: Điều gì xảy ra với gói tin nếu nó không khớp bất kỳ dòng permit/deny tường minh nào trong ACL?
- A. Gói tin tự động được cho phép (permit)
- B. Gói tin bị chặn bởi Implicit Deny ẩn ở cuối danh sách
- C. Router sẽ báo lỗi và ngừng hoạt động
- D. Gói tin được gửi lại cho người gửi kèm cảnh báo
Câu 2: ACL kiểm tra các dòng permit/deny theo cơ chế nào?
- A. Kiểm tra tất cả các dòng cùng lúc rồi mới quyết định
- B. Kiểm tra tuần tự từ trên xuống, dừng ngay khi khớp dòng đầu tiên
- C. Kiểm tra ngẫu nhiên không theo thứ tự
- D. Chỉ kiểm tra dòng cuối cùng
👉 Đáp án:
Câu 1: B — Mọi ACL đều có 1 dòng Implicit Deny ẩn ở cuối, tự động chặn mọi lưu lượng không khớp các dòng đã khai báo tường minh phía trên.
Câu 2: B — ACL luôn kiểm tra tuần tự từ dòng đầu tiên xuống dòng cuối, và dừng lại ngay khi tìm thấy dòng đầu tiên khớp điều kiện, không xét tiếp các dòng phía dưới.
📚 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 55: VRRP & GLBP | Mục lục khóa học CCNA | Bài 57: Standard ACL — cấu hình và vị trí đặt |
