Loading...

Bài 59: Named ACL & Troubleshooting ACL Thường Gặp

💡 Liên hệ thực tế

Sau khi cấu hình cả chục ACL đánh số như access-list 110, access-list 120... anh Nam bên VNExperts nhận ra 1 vấn đề: nhìn con số không thể nào nhớ nổi ACL nào dùng để làm gì, phải liên tục show access-lists để tra cứu lại mục đích từng ACL. Giải pháp: Named ACL — đặt tên gợi nhớ như BLOCK-FTP-ACCOUNTING thay vì chỉ là con số 110 khô khan.


📘 Kiến thức cốt lõi

⚙️ Cú pháp cấu hình Named ACL:

Router(config)# ip access-list extended BLOCK-FTP-ACCOUNTING
Router(config-ext-nacl)# deny tcp 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255 eq 21
Router(config-ext-nacl)# permit ip any any

📎 Lệnh ip access-list extended <tên> đưa Router vào chế độ cấu hình ACL riêng (dấu nhắc lệnh đổi thành (config-ext-nacl)#), sau đó gõ các dòng permit/deny không cần lặp lại số/tên ACL ở đầu mỗi dòng — khác với ACL đánh số phải gõ access-list 110 ... lặp lại ở từng dòng.

Tương tự với Standard ACL:

Router(config)# ip access-list standard ALLOW-MANAGEMENT
Router(config-std-nacl)# permit host 192.168.1.100

⚙️ Sequence Number — cơ chế đánh số ẩn giúp chèn/sửa dễ dàng:

Mỗi dòng ACL (dù đánh số hay đặt tên) đều tự động được gán 1 Sequence Number, mặc định dòng đầu tiên là 10, các dòng sau tăng dần thêm 10 mỗi dòng (10, 20, 30...). Nhờ vậy, có thể chèn thêm dòng mới vào đúng vị trí mong muốn mà không cần xóa và gõ lại toàn bộ ACL — ví dụ chèn dòng mới với Sequence Number 15 để nó nằm giữa dòng 1020.

Router(config-ext-nacl)# 15 permit tcp any any eq 443

Có thể đánh số lại toàn bộ (resequence) nếu các số đã quá sát nhau:

Router(config)# ip access-list resequence BLOCK-FTP-ACCOUNTING 100 10

📎 Lệnh trên đánh số lại từ 100, mỗi dòng cách nhau 10 đơn vị. Lệnh resequence cực kỳ hữu ích khi bạn đã chèn quá nhiều dòng nhỏ (như 11, 12, 13, 14, 15...) khiến các số dính sát vào nhau và không còn khoảng trống để chèn thêm luật mới giữa dòng 10 và 20 nữa.

⚠️ Tổng hợp các lỗi Troubleshooting ACL phổ biến nhất:

Triệu chứngNguyên nhân thường gặp
Lưu lượng hợp lệ bị chặn hoàn toàn Quên dòng permit cuối cùng — bị Implicit Deny chặn (Bài 56)
ACL cấu hình xong nhưng "không có tác dụng gì" Quên áp dụng ip access-group/ip access-class vào Interface
Chặn nhầm cả lưu lượng không liên quan Đặt sai vị trí ACL (Standard đặt gần nguồn thay vì gần đích — Bài 57)
ACL áp dụng đúng nhưng vẫn không lọc đúng ý Thứ tự các dòng permit/deny bị sai — dòng phía trên "chặn đường" dòng phía sau đúng ý hơn (Bài 56)
Router mất khả năng học định tuyến động (OSPF...) ACL vô tình chặn cả gói tin Multicast của giao thức định tuyến (địa chỉ 224.0.0.5/224.0.0.6 của OSPF, liên hệ lại Bài 51)

🔍 Bộ 3 lệnh kiểm tra kinh điển khi troubleshooting ACL:

Router# show access-lists
Router# show ip interface gigabitEthernet 0/1
Router# show running-config | include access-list

So sánh cấu hình ACL đánh số và Named ACL Sơ đồ minh họa ACL đánh số phải lặp lại số 110 ở đầu mỗi dòng lệnh, trong khi Named ACL chỉ cần khai báo tên 1 lần rồi vào chế độ cấu hình riêng để gõ các dòng permit deny mà không cần lặp lại tên ACL Đánh Số vs Named ACL So sánh cú pháp cấu hình và khả năng quản trị trong Cisco IOS ACL Đánh Số (Numbered ACL) access-list 110 deny tcp ... eq 21 access-list 110 permit ip any any ⚠️ Phải lặp lại "110" mỗi dòng Named ACL ip access-list extended BLOCK-FTP deny tcp ... eq 21 permit ip any any ✓ Tên gợi nhớ, dễ quản lý hơn ⚠️ 2 Lỗi Phổ Biến Nhất Khi Troubleshooting ACL 1. Quên dòng permit cuối → Implicit Deny chặn toàn bộ traffic 2. Quên gán "ip access-group" vào Interface → ACL không có tác dụng


💬 Hỏi & Đáp nhanh

❓ Named ACL có thể áp dụng cho VTY line (quản lý Telnet/SSH) giống ACL đánh số không? 

❌ Không — đây là 1 giới hạn quan trọng cần nhớ: ACL áp dụng cho VTY line bắt buộc phải dùng ACL đánh số, không thể dùng Named ACL cho mục đích này. Named ACL chỉ áp dụng được cho Interface thông thường qua ip access-group.

📎 VTY (Virtual Teletype) line là gì? Đây là các "cổng ảo" trên Router/Switch dùng để quản trị viên truy cập từ xa qua Telnet hoặc SSH — khác với cổng Console (kết nối trực tiếp bằng cáp Rollover, đã học ở Bài 5) chỉ dùng được khi ngồi ngay tại thiết bị. ACL áp dụng lên VTY line (bằng lệnh access-class thay vì ip access-group) giúp giới hạn chỉ những địa chỉ IP quản trị được phép mới đăng nhập quản lý thiết bị từ xa — đây là 1 lớp bảo mật quan trọng, tránh việc bất kỳ ai trên mạng cũng có thể thử đăng nhập vào Router/Switch.

❓ Có thể chuyển đổi qua lại giữa ACL đánh số và Named ACL không, hay phải chọn 1 trong 2 ngay từ đầu?

✅ Về mặt chức năng, cả 2 loại hoạt động hoàn toàn tương đương — sự khác biệt chỉ nằm ở cách đặt tên/đánh số. Tuy nhiên, Cisco IOS không hỗ trợ lệnh "convert" trực tiếp — muốn đổi từ đánh số sang đặt tên (hoặc ngược lại), cần tạo lại ACL mới với đầy đủ các dòng permit/deny tương tự.

❓ Khi ACL vô tình chặn cả gói tin Multicast của OSPF, làm sao phát hiện ra nguyên nhân này nhanh nhất?

✅ Dấu hiệu rõ ràng nhất: OSPF Neighbor đột nhiên rớt xuống Down hoặc không hình thành được (đã học ở Bài 51), dù cấu hình network/area vẫn đúng. Kiểm tra ngay ACL đang áp dụng trên Interface đó (show ip interface) xem có dòng nào vô tình chặn dải Multicast 224.0.0.0/24 hay không — đây là nguyên nhân rất dễ bị bỏ sót vì không liên quan trực tiếp đến "ý định ban đầu" khi viết ACL.


📝 Bài tập đánh giá

Câu 1: Named ACL có điểm hạn chế nào so với ACL đánh số?

  • A. Không thể dùng để lọc theo địa chỉ IP
  • B. Không thể áp dụng cho VTY line, chỉ ACL đánh số mới áp dụng được
  • C. Named ACL luôn chạy chậm hơn
  • D. Named ACL không hỗ trợ Extended ACL

Câu 2: Nguyên nhân phổ biến nhất khiến ACL "cấu hình xong nhưng không có tác dụng gì" là gì?

  • A. Quên áp dụng ACL vào Interface bằng ip access-group
  • B. Đặt tên ACL quá dài
  • C. Dùng sai Wildcard Mask
  • D. ACL chỉ hoạt động vào ban đêm

👉 Đáp án:

Câu 1: B — ACL áp dụng cho VTY line bắt buộc phải là ACL đánh số, Named ACL không áp dụng được cho mục đích này.

Câu 2: A — Đây là lỗi phổ biến nhất: dù ACL được cấu hình đúng nội dung, nếu quên ip access-group để gán vào Interface, ACL đó hoàn toàn không có tác dụng lọc bất kỳ lưu lượng nào.


📚 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ọcBài kế tiếp ➡️
Bài 58: Extended ACL Mục lục khóa học CCNA Bài 60: Interpreting routing table thực chiến