Các router của Cisco phần lớn hỗ trợ cơ chế phiên dịch địa chỉ. Đây là một tính năng rất hữu ích của router Cisco, với tính năng này ta tiết kiệm được tài nguyên và chi phí khi không cần triển khai dịch vụ NAT trên một NAT server riêng biệt mà bản thân router sẽ đóng vai trò như một NAT server, làm nhiệm vụ phiên dịch địa chỉ giữa mạng trong và mạng ngoài.
Mặc dù đây là một tính năng tương đối thuyết phục nhưng đôi khi nó gây cho ta không ít phiền toái. Trường hợp có thể xảy ra là khi admin đã xây dựng một bảng NAT động trên router và muốn thay đổi hoặc xóa nó đi thì không tài nào xóa được. Và tất cả những gì họ nhận lại là các thông số sau:
· Dynamic mapping in use, cannot remove
· %Pool outpool in use, cannot destroy
Bài viết này sẽ cung cấp cho bạn thủ thuật để vượt qua tình huống khó xử này.
Mô tả tình huống của vấn đề
Dynamic NAT tạo ra một cách tự động các mục trong bảng NAT của router. Và việc phiên dịch địa chỉ sẽ diễn ra khi các gói tin đi từ giao diện mạng trong (inside) ra giao diện giao tiếp với mạng ngoài (outside)– chính là mạng Internet.
Có thể thấy được bảng NAT bằng câu lệnh show ip nat translation
Để xóa đi các bảng NAT đã tạo IOS cung cấp câu lệnh sau:
· no ip nat pool name
· no ip nat {inside | outside}source {list {access-list-number | name} pool name [overload] | static local-ip global-ip}
tuy nhiên trước khi xóa, IOS sẽ check xem các NAT table còn active không trước khi xóa, nếu còn có phiên dịch đang hoạt động, IOS sẽ hiển thị thông báo
%Dynamic Mapping in Use, Cannot remove
%Pool outpool in use, cannot destroy message
Giải pháp
Về cơ bản, nguyên nhân của vấn đề trên là do các gói tin vẫn liên tục đi qua NAT server dẫn đến việc phiên dịch vẫn tiếp diễn. Như vậy để có thể thay đổi hoặc hủy bỏ các bảng NAT, ta phải cắt các traffic đi qua NAT server. Việc này đôi khi khá phức tạp vì ta phải xác định được chính xác tất cả các traffic đi qua server hoặc traffic này quá nhiều đến nỗi admin chặn không kịp.
Sử dụng câu lệnh clear ip nat translation
Thực hiện nhanh câu lệnh clear ip nat translation *
Nhanh chóng chỉnh sử hoặc thay đổi NAT configuration trước khi traffic mới đi qua và việc phiên dịch lại xảy ra
Để thực hiện nhanh việc này có thể soạn một script như sau
Ví dụ:
clear ip nat translation *
config terminal
no ip nat pool old pool name
ip nat pool new pool
sau khi tạo xong có thể copy và paste vào dòng lệnh của router để thực hiện một seri lệnh cùng lúc.
Đôi khi phải thực hiện vài lần mới thành công vì có thể vẫn không nhanh kịp với traffic của router
Vô hiệu hóa tính năng NAT trên router
NAT sẽ được kích họat khi ta phân công giao diện nào là inside, giao diện nào là outside. Bằng cách vô hiệu hóa các câu lệnh này, ta sẽ vô hiệu hóa được NAT.
Các bước của cách này như sau:
1. Sử dụng lệnh no ip nat {inside | outside}để ngừng việc phiên dịch địa chỉ
2. Dùng lệnh clear ip nat translation để hủy các NAT translation.
3. Thay đổi cấu hình cho NAT
4. Khôi phục lại các tham số {inside | outside} của NAT với câu lệnh ip nat {inside | outside}.
Ngăn chặn traffic làm phát sinh việc NAT địa chỉ
Có thể vào từng thiết bị truyền traffic để chặn hoặc tạo các access list inbound ở giao diện của router để chặn các traffic đi vào. Trong trường hợp xấu nhất, có thể tạo một access-list deny any chặn mọi traffic để có thể thay đổi bảng NAT.