Loading...

Bài 57: Standard ACL — Cấu Hình Và Vị Trí Đặt

💡 Liên hệ thực tế

Ở Bài 56, bạn đã hiểu ACL là "chốt kiểm soát" hoạt động tuần tự. Bài này sẽ cấu hình loại ACL đơn giản nhất — Standard ACL — chỉ lọc dựa trên địa chỉ IP nguồn, giống như chốt bảo vệ chỉ hỏi "anh từ đâu tới" mà không quan tâm anh định đi đâu trong khu chung cư.


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

⚙️ Cú pháp tạo Standard ACL (dùng số hiệu từ 1-99, hoặc mở rộng 1300-1999):

Router(config)# access-list 10 permit 192.168.1.0 0.0.0.255
Router(config)# access-list 10 deny 192.168.2.0 0.0.0.255
Router(config)# access-list 10 permit any

📎 Số 10số hiệu ACL — với Standard ACL, số hợp lệ nằm trong khoảng 1-99 (hoặc dải mở rộng 1300-1999). Cú pháp dùng Wildcard Mask (0.0.0.255) giống hệt cách khai báo trong lệnh network của OSPF đã học ở Bài 49.

🎯 2 cách viết gọn thường gặp:

Router(config)# access-list 10 permit host 192.168.1.10

Từ khóa host dùng khi chỉ muốn permit/deny đúng 1 địa chỉ IP cụ thể — tương đương viết đầy đủ 192.168.1.10 0.0.0.0.

Router(config)# access-list 10 permit any

Từ khóa any tương đương 0.0.0.0 255.255.255.255 — khớp với mọi địa chỉ IP không phân biệt.

⚙️ Áp dụng ACL vào Interface — bước bắt buộc để ACL thực sự có hiệu lực:

Router(config)# interface gigabitEthernet 0/1
Router(config-if)# ip access-group 10 out

⚠️ Nhắc lại từ Bài 56: nếu chỉ tạo ACL mà quên lệnh ip access-group, ACL đó hoàn toàn không có tác dụng gì — đây là bước rất dễ bị bỏ sót. Từ khóa in/out xác định chiều áp dụng: in lọc gói tin đi vào Interface, out lọc gói tin chuẩn bị đi ra khỏi Interface.

📍 Vị trí đặt Standard ACL — vì sao nên đặt gần đích:

Vì Standard ACL chỉ nhìn được địa chỉ IP nguồn, nếu đặt gần nguồn (gần nơi lưu lượng xuất phát), nó sẽ chặn luôn mọi lưu lượng từ nguồn đó — kể cả những lưu lượng đi đến các đích hợp lệ khác mà bạn không hề muốn chặn. Đặt gần đích giúp ACL chỉ chặn đúng lưu lượng thực sự đang cố gắng đến đích cụ thể đó, không ảnh hưởng tới các đích khác.

🔍 Kiểm tra ACL đã cấu hình và số lượt khớp (matches):

Router# show access-lists
Standard IP access list 10
    10 permit 192.168.1.0, wildcard bits 0.0.0.255 (27 matches)
    20 deny 192.168.2.0, wildcard bits 0.0.0.255
    30 permit any

📎 Số (27 matches) cho biết đã có 27 gói tin khớp đúng dòng này kể từ lần cấu hình hoặc lần xóa bộ đếm gần nhất — đây là công cụ debug cực kỳ hữu ích để xác nhận ACL có đang thực sự lọc đúng lưu lượng mong muốn hay không.

Kiểm tra ACL đang áp dụng trên Interface nào, chiều nào:

Router# show ip interface gigabitEthernet 0/1

Kết quả trả về khá dài, nhưng phần quan trọng nhất cần chú ý là 2 dòng Outgoing access listInbound access list:

GigabitEthernet0/1 is up, line protocol is up
  Internet address is 192.168.100.1/24
  Broadcast address is 255.255.255.255
  Address determined by setup command
  MTU is 1500 bytes
  Helper address is not set
  Directed broadcast forwarding is disabled
  Outgoing access list is 10
  Inbound access list is not set

📎 Dòng Outgoing access list is 10 xác nhận ACL số 10 đang được áp dụng theo chiều out (đi ra) trên Interface này, đúng như đã cấu hình bằng lệnh ip access-group 10 out ở trên. Nếu cả 2 dòng đều hiện is not set, đây chính là dấu hiệu quên áp dụng ACL vào Interface — nguyên nhân phổ biến khiến ACL "đã cấu hình nhưng không có tác dụng gì".

So sánh hậu quả khi đặt Standard ACL gần nguồn và gần đích Sơ đồ minh họa nếu đặt Standard ACL gần nguồn sẽ vô tình chặn luôn lưu lượng đến các đích khác hợp lệ, trong khi đặt gần đích chỉ chặn đúng lưu lượng thực sự cố gắng đến đích cụ thể đó Standard ACL nên đặt Gần Đích, không phải Gần Nguồn Quy tắc vàng giúp tránh vô tình chặn nhầm lưu lượng tới các đích hợp lệ khác Nguồn: 192.168.1.0 Đích B Đích A (bị deny) ❌ ACL đặt ở đây chặn nhầm cả đường tới B ✓ ACL đặt ở đây chỉ chặn đúng đường tới A Standard ACL chỉ biết IP nguồn — không biết đích, nên bắt buộc phải đặt gần đích


💬 Hỏi & Đáp nhanh

❓ Có thể chèn thêm 1 dòng ACL vào giữa danh sách đã tạo trước đó không, hay phải xóa hết làm lại?

✅ Có thể — Cisco IOS hiện đại hỗ trợ Sequence Number cho từng dòng ACL (như số 10, 20, 30 xuất hiện trong ví dụ show access-lists ở trên). Nhờ đó, bạn có thể chèn thêm dòng mới vào đúng vị trí mong muốn (ví dụ dòng số 15, nằm giữa dòng 10 và 20) mà không cần xóa và cấu hình lại toàn bộ danh sách từ đầu.

❓ Nếu không khai báo Wildcard Mask khi viết địa chỉ, Router hiểu ngầm định là gì?

✅ Nếu không khai báo Wildcard Mask, Cisco IOS mặc định hiểu là 0.0.0.0 — nghĩa là yêu cầu khớp chính xác tuyệt đối từng bit của địa chỉ đó, tương đương với việc dùng từ khóa host.

❓ Vì sao lệnh ip access-group cần chỉ rõ in hay out, không có mặc định chung cho cả 2 chiều sao?

✅ Vì lọc theo inout phục vụ 2 mục đích khác nhau hoàn toàn — in ngăn lưu lượng ngay khi vừa vào Interface (trước khi Router quyết định định tuyến), còn out ngăn lưu lượng ngay trước khi rời khỏi Interface (sau khi đã định tuyến). Ở các phiên bản IOS đời đầu, out từng là mặc định nếu không chỉ định, nhưng các phiên bản hiện đại bắt buộc phải khai báo rõ ràng để tránh nhầm lẫn ý định của người cấu hình.


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

Câu 1: Dải số hiệu nào hợp lệ cho Standard ACL trên Cisco IOS?

  • A. 100-199
  • B. 1-99
  • C. 200-299
  • D. 1000-1099

Câu 2: Vì sao Standard ACL nên được đặt gần đích thay vì gần nguồn?

  • A. Vì Standard ACL chỉ lọc theo IP nguồn, đặt gần nguồn dễ chặn nhầm lưu lượng đến các đích khác
  • B. Vì đặt gần đích giúp tăng tốc độ mạng
  • C. Vì Standard ACL không hoạt động được gần nguồn
  • D. Không có sự khác biệt về vị trí đặt

👉 Đáp án:

Câu 1: B — Standard ACL dùng số hiệu từ 1-99 (hoặc dải mở rộng 1300-1999), khác với Extended ACL dùng dải số khác sẽ học ở Bài 58.

Câu 2: A — Vì Standard ACL chỉ dựa vào địa chỉ IP nguồn để lọc, không biết gói tin đang đi đến đích nào, nên đặt gần đích giúp tránh chặn nhầm lưu lượng hợp lệ đến các đích khác từ cùng 1 nguồn.


📚 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 56: ACL — Khái niệm Mục lục khóa học CCNA Bài 58: Extended ACL — cấu hình chi tiết theo port, protocol