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

  • NAT Troubleshooting

    NAT Troubleshooting – Những lỗi NAT khiến kỹ sư mạng mất hàng giờ tìm nguyên nhân


    NAT (Network Address Translation) là một trong những tính năng được triển khai rộng rãi nhất trong mạng doanh nghiệp. Tuy nhiên, khi xảy ra sự cố kết nối Internet hoặc VPN, NAT thường là một trong những thành phần đầu tiên cần được kiểm tra. Cấu hình NAT/PAT mẫu


    Ví dụ dưới đây minh họa cấu hình Dynamic NAT kết hợp PAT sử dụng một nhóm địa chỉ công cộng (NAT Pool):
    interface FastEthernet1/0
    ip address 10.1.1.1 255.255.255.0
    ip nat inside

    interface GigabitEthernet0/0
    ip address 203.0.113.1 255.255.255.248
    ip nat outside

    ip nat pool OUTSIDE_POOL 203.0.113.3 203.0.113.6 netmask 255.255.255.248

    ip nat inside source list 1 pool OUTSIDE_POOL overload

    access-list 1 permit 10.1.1.0 0.0.0.255 Những lỗi cấu hình NAT thường gặp


    Khi xử lý sự cố NAT, có nhiều vị trí có thể gây lỗi.

    Đầu tiên là cấu hình inside/outside interface. Nếu kỹ sư cấu hình nhầm hướng NAT, router sẽ không biết gói tin nào cần được dịch địa chỉ và NAT sẽ không hoạt động.

    Tiếp theo là NAT Pool. Nếu địa chỉ public trong pool sai subnet hoặc không đúng dải được cấp phát, quá trình dịch địa chỉ sẽ thất bại.

    Một lỗi khá phổ biến khác là các địa chỉ public trong pool NAT không được định tuyến trên Internet. NAT có thể dịch địa chỉ thành công nhưng lưu lượng phản hồi sẽ không bao giờ quay trở lại vì Internet không biết đường đi đến các địa chỉ đó.

    ACL dùng để xác định các địa chỉ cần NAT cũng thường gây ra sự cố. Chỉ cần wildcard mask hoặc subnet cấu hình sai, NAT sẽ không khớp với lưu lượng mong muốn.

    Ngoài ra, câu lệnh:
    ip nat inside source list 1 pool OUTSIDE_POOL overload

    chính là nơi liên kết ACL và NAT Pool với nhau. Nếu tham chiếu sai ACL hoặc sai Pool thì NAT cũng không hoạt động.

    Một lỗi rất dễ bỏ sót là quên từ khóa:
    overload

    Nếu thiếu từ khóa này, PAT sẽ không được kích hoạt và số lượng kết nối đồng thời sẽ bị giới hạn bởi số lượng địa chỉ trong NAT Pool.
    Những vấn đề NAT thường gây khó khăn khi Troubleshooting

    NAT kết hợp VPN


    Đây là một trong những tình huống kinh điển.

    Một số giao thức VPN như IPsec sử dụng cơ chế kiểm tra checksum hoặc hash để xác minh tính toàn vẹn của gói tin.

    Khi NAT thay đổi địa chỉ IP nguồn hoặc đích, giá trị checksum cũng thay đổi theo. Kết quả là thiết bị VPN có thể xem gói tin đó là đã bị chỉnh sửa và từ chối xử lý.

    Đây chính là lý do NAT Traversal (NAT-T) ra đời trong IPsec.
    NAT che giấu địa chỉ IP thực


    NAT giúp tiết kiệm địa chỉ IPv4 nhưng lại khiến việc theo dõi luồng dữ liệu trở nên phức tạp hơn.

    Ví dụ:
    10.1.1.10
    |
    v
    203.0.113.3
    |
    v
    Internet

    Khi xem log trên firewall hoặc server bên ngoài, kỹ sư chỉ nhìn thấy địa chỉ public sau NAT thay vì địa chỉ IP thật của máy bên trong.

    Lệnh đầu tiên nên kiểm tra là:
    show ip nat translations

    Lệnh này cho biết ánh xạ giữa:
    • Inside Local Address
    • Inside Global Address
    • Outside Local Address
    • Outside Global Address

    Ứng dụng không tương thích với NAT


    Không phải mọi ứng dụng đều hoạt động tốt với NAT.

    Một số ứng dụng tự động chọn cổng giao tiếp ngẫu nhiên khi khởi tạo kết nối. Điều này có thể gây khó khăn cho NAT khi xử lý lưu lượng quay về.

    Các hệ thống VoIP là ví dụ điển hình.

    Nhiều giao thức thoại sử dụng RTP (Real-Time Transport Protocol) để truyền media và tự động chọn các cổng UDP động. Nếu NAT hoặc firewall không theo dõi đúng phiên làm việc, âm thanh có thể bị mất một chiều hoặc không có tiếng.

    Một vấn đề khác là nhiều ứng dụng nhúng địa chỉ IP trực tiếp vào payload.

    Ví dụ:
    Payload chứa:
    192.168.1.100

    Mặc dù NAT đã thay đổi địa chỉ IP ở phần header thành địa chỉ public, địa chỉ nằm trong payload vẫn là địa chỉ private.

    Thiết bị ở xa sẽ cố gắng gửi dữ liệu về địa chỉ private này và kết nối thất bại.

    Đây là lý do nhiều giao thức như SIP, FTP hoặc H.323 cần cơ chế ALG (Application Layer Gateway) để hỗ trợ NAT.
    Độ trễ phát sinh do NAT


    Mỗi lần NAT xử lý gói tin, router phải:
    • Kiểm tra bảng NAT
    • Tạo hoặc cập nhật translation
    • Thay đổi thông tin Layer 3
    • Tính toán lại checksum

    Quá trình này tiêu tốn CPU và bộ nhớ.

    Trong các môi trường có hàng trăm nghìn hoặc hàng triệu phiên NAT đồng thời, chẳng hạn như ISP hoặc Data Center, hiệu năng NAT có thể trở thành điểm nghẽn nếu thiết bị không đủ năng lực xử lý.
    Các lệnh kiểm tra NAT quan trọng


    Khi xử lý sự cố NAT trên Cisco IOS, ba lệnh dưới đây thường được sử dụng đầu tiên:
    show ip nat translations

    Hiển thị các bản ghi NAT đang tồn tại.
    show ip nat statistics

    Hiển thị số lượng bản dịch, hit count và thông tin NAT Pool.
    debug ip nat

    Theo dõi quá trình NAT theo thời gian thực.

    NAT nhìn bề ngoài có vẻ đơn giản, nhưng khi kết hợp với VPN, VoIP, ứng dụng thời gian thực hoặc các hệ thống nhiều lớp bảo mật, nó có thể trở thành một trong những nguyên nhân khó phát hiện nhất trong quá trình Troubleshooting. Vì vậy, khi gặp sự cố kết nối Internet hoặc ứng dụng hoạt động bất thường, việc kiểm tra NAT luôn nên nằm trong danh sách ưu tiên hàng đầu của kỹ sư mạng.
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

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