Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Router ACL

    Troubleshooting IPv4 ACLs – Cách đọc và xử lý sự cố Access Control List trên Cisco


    ACL (Access Control List) là một trong những tính năng quan trọng nhất trên thiết bị Cisco IOS, nhưng cũng là nơi rất nhiều lỗi cấu hình xảy ra. Chỉ cần sai một dòng ACL, lưu lượng mạng (traffic) có thể bị chặn hoàn toàn, NAT ngừng hoạt động, tiến trình route redistribution thất bại hoặc policy-based routing đi sai hướng. Vì vậy, với kỹ sư mạng, biết đọc và hiểu ACL như đọc log là một kỹ năng bắt buộc.
    ACL được dùng để nhận diện traffic dựa trên nhiều tiêu chí như địa chỉ IP nguồn, IP đích, source port, destination port, giao thức tầng transport (TCP/UDP), QoS marking và nhiều thuộc tính khác. Tuy nhiên, ACL chỉ là tập luật. Nếu chưa được gắn vào interface, NAT, route-map hay một feature nào đó thì ACL chưa có tác dụng gì. Ví dụ, ACL có thể dùng để xác định traffic nội bộ nào được NAT ra Internet, hoặc traffic nào được phép đi qua router.
    Khi troubleshoot ACL IPv4, trước tiên chúng ta cần hiểu cách ACL hoạt động. ACL xử lý theo nguyên tắc top-down processing. Nghĩa là router đọc từ dòng đầu tiên xuống dòng cuối cùng. Dòng nào match trước thì xử lý luôn, không nhìn các dòng phía sau nữa. Đây là điểm khiến nhiều người mới dễ nhầm.
    Ví dụ:
    access-list 1 deny 10.1.1.5
    access-list 1 permit 10.1.1.0 0.0.0.63
    Thoạt nhìn có vẻ host 10.1.1.5 được permit vì nó nằm trong subnet 10.1.1.0/26. Nhưng thực tế không phải vậy. Router đọc:
    • Dòng 1: deny 10.1.1.5 → match
    • Dừng xử lý
    • Packet bị drop liền.
    Dòng permit phía dưới không bao giờ được xét tới.
    Nguyên tắc thứ hai là immediate execution upon match. Match là xử lý ngay. Không có khái niệm “dòng sau ưu tiên hơn”.
    Nguyên tắc thứ ba là implicit deny any.
    Nếu packet đi hết ACL mà không match dòng nào, router mặc định deny.
    Dòng này không hiện ra khi xem config, nhưng luôn tồn tại một cách mặc định:
    deny ip any any
    Ví dụ:
    access-list 1 permit 10.1.1.0 0.0.0.255
    Traffic từ 10.1.1.10 → được permit.
    Traffic từ 192.168.1.10 → không match → implicit deny → drop.
    Đây là lý do vì sao nhiều kỹ sư cấu hình ACL xong rồi tự hỏi: “Sao mạng chết hết?” Standard ACL


    Standard ACL chỉ kiểm tra source IP address.
    Ví dụ:
    Standard IP access list 1
    5 deny 10.1.1.5
    10 permit 10.1.1.0 0.0.0.63
    20 deny 10.1.1.64 0.0.0.63
    30 permit 10.1.1.0 0.0.0.255
    Phân tích cụ thể cho ACL trên:Điều quan trọng là thứ tự rule. Ngày xưa cácIOS phiên bản cũ cho phép bạn tạo ACL lộn xộn. Điều này gây ra rất nhiều lỗi vì rule tổng quát có thể “nuốt” rule cụ thể. IOS mới đã thông minh hơn, ngăn một số trường hợp như vậy. Extended ACL


    Extended ACL mạnh hơn rất nhiều. Ngoài việc kiểm tra địa chỉ nguồn source IP, nó còn lựa ra (match) được:
    • Địa chỉ destination IP
    • Giao thức protocol
    • source port
    • destination port
    Chúng ta hãy xét ví dụ cụ thể như bên dưới:
    Extended IP access list 100
    10 deny tcp host 10.1.1.5 host 192.0.2.1 eq www
    20 permit tcp 10.1.1.0 0.0.0.63 host 192.0.2.1 eq telnet
    30 deny ip 10.1.1.64 0.0.0.63 host 192.0.2.1
    40 permit ip 10.1.1.0 0.0.0.255 any
    Phân tích ACL trên như sau:
    Từ máy Host 10.1.1.5:
    • đi HTTP tới 192.0.2.1 → sẽ bị deny
    • đi Telnet tới 192.0.2.1 → sẽ được permit
    • Nếu Ping tới Internet → permit dòng 40
    Subnet 10.1.1.64/26:
    • tới 192.0.2.1 → deny
    • tới nơi khác → permit
    ACL chưa apply thì vô tác dụng:


    Một lỗi rất phổ biến: tạo ACL xong… quên apply. Chúng ta phải áp ACL, ACL phải được gắn vào interface của router bằng câu lệnh:
    ip access-group 100 out
    ip access-group 1 in
    Kiểm tra bằng:
    show ip interface gigabitEthernet 0/0
    Output ví dụ:
    Outgoing access list is 100
    Inbound access list is 1
    Nếu không thấy dòng này, ACL chưa hoạt động. Những lỗi troubleshoot ACL thường gặp


    1. Sai hướng direction
    Inbound vs outbound.
    Ví dụ bạn muốn chặn traffic từ LAN đi Internet nhưng lại apply outbound ở interface LAN → không đúng logic.
    2. Sai interface
    ACL đúng nhưng gắn nhầm cổng.
    3. Rule tổng quát nằm trên rule cụ thể
    Ví dụ:
    permit ip any any
    deny tcp host 10.1.1.5 any eq 80
    Rule deny vô nghĩa.
    4. Quên implicit deny
    Không có permit phù hợp → traffic chết.
    5. Sai wildcard mask
    Ví dụ:
    10.1.1.0 0.0.0.255
    khác hoàn toàn:
    10.1.1.0 0.0.0.63 Các Lệnh troubleshoot hữu ích mà chúng ta nên nhớ để dùng khi troubleshooting:


    show access-lists: Dùng để Xem ACL và hit count.
    show ip interface: Dùng để Xem ACL đang apply ở đâu.
    show running-config: Dùng để Kiểm tra cấu hình tổng thể.
    ACL không khó lắm. Nhưng ACL đòi hỏi tư duy logic cực kỳ chính xác. Router không đoán ý bạn. Nó chỉ làm đúng từng dòng, từ trên xuống dưới, không thương lượng.​
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X