Identity NAT trên ASA so với ngoại lệ NAT trên IOS cho lưu lượng VPN
Trên các cổng Cisco, cả identity NAT trên ASA và ngoại lệ của bộ phân loại NAT trên IOS đều giữ nguyên địa chỉ VPN. Các quy tắc khác nhau ở điểm mà việc dịch được bỏ qua.
Một chi nhánh chạy PAT internet và VPN site-to-site trên cùng một cổng Cisco, và VPN ngừng hoạt động ngay khi thêm NAT. Các địa chỉ bên trong đường hầm không còn khớp với thứ mà crypto ACL bảo vệ, hoặc phía đối diện thấy địa chỉ đã dịch mà nó không có tuyến. Cisco giải quyết điều này ở hai chỗ: ASA chọn một quy tắc NAT ánh xạ địa chỉ về chính nó, còn IOS giữ luồng ra ngoài quy tắc dịch bằng deny trong ACL. Cả hai đều giữ địa chỉ gốc, và không cái nào là việc bỏ qua xử lý NAT.
Ghi lại luồng trước khi chọn quy tắc
Bắt đầu bằng việc ghi lại luồng bạn định bảo vệ: nguồn LAN, đích từ xa và cặp địa chỉ chính xác mà chính sách IPsec bảo vệ. Làm việc này trước khi sửa quy tắc, vì bộ này cho biết bộ phân loại hoặc quy tắc NAT nào đáng lẽ phải khớp.
Sau đó tìm quy tắc thực sự khớp, không phải quy tắc bạn định. Trên cả hai nền tảng NAT được đánh giá theo thứ tự, và một quy tắc trước đó có thể thắng trước khi ngoại lệ của bạn được xét. Một ngoại lệ trông đúng nhưng thua quy tắc khác sẽ không bao giờ giao gói mong đợi cho chính sách bảo vệ. Triệu chứng giống hệt khi thiếu ngoại lệ, vì vậy phải đọc thứ tự quy tắc trước khi thay đổi cấu hình.
Identity NAT trên ASA là quy tắc, không phải bỏ qua
Trên ASA, identity NAT là quy tắc NAT có địa chỉ đã dịch bằng địa chỉ gốc. Nó được chọn như mọi quy tắc khác và vẫn cài một mục dịch, nên gói không bỏ qua xử lý NAT. Điều thay đổi là địa chỉ trên mạng vẫn giữ nguyên, và đó là thứ chính sách IPsec cần.
nat (inside,outside) source static LAN-NET LAN-NET destination static REMOTE-NET REMOTE-NETCác giao diện của quy tắc và thiết lập route-lookup phải khớp với thiết kế chuyển tiếp. Một quy tắc ánh xạ địa chỉ đúng nhưng áp dụng cho cặp giao diện sai sẽ không được chọn cho luồng của bạn. Route-lookup quyết định gói đã dịch có được định tuyến hay dùng đích gốc, và điều đó quyết định lưu lượng quay về có đi qua đường hầm hay không.
Truy cập quản trị vào chính ASA là trường hợp riêng. Nếu dùng identity NAT cho lưu lượng quản trị, yêu cầu route-lookup phụ thuộc phiên bản sẽ áp dụng, và một ngoại lệ rộng sao chép từ ví dụ VPN sẽ không sửa được SSH.
Deny trong ACL NAT trên IOS nghĩa là không được chọn ở đây
Trên IOS, NAT internet được điều khiển bằng danh sách nguồn, và ACL đó là bộ phân loại chứ không phải bộ lọc. Dòng permit chọn lưu lượng để dịch; dòng deny nghĩa là gói không được chọn ở đây. Deny đó không phải lệnh bỏ gói như deny trong ACL giao diện.
Không được chọn ở đây cũng hẹp hơn không bao giờ được dịch ở đâu. Một quy tắc NAT khác, giao diện khác hoặc route-map vẫn có thể dịch luồng, nên phải đọc toàn bộ bảng NAT. Gói vẫn cần tuyến, crypto ACL khớp và sự cho phép tại ranh giới kiểm soát truy cập thực tế.
Một bố trí IOS tối thiểu đặt deny trên permit trong cùng danh sách và trỏ quy tắc overload tới danh sách đó. Khi đó crypto ACL bảo vệ đúng cặp mà deny loại khỏi việc dịch.
ip access-list extended NAT-ACL
deny ip 10.10.0.0 0.0.0.255 192.0.2.0 0.0.0.255
permit ip 10.10.0.0 0.0.0.255 any
ip nat inside source list NAT-ACL interface GigabitEthernet0/1 overloadMột câu hỏi có thể kiểm chứng cho cả hai mô hình
Cả hai mô hình trả lời cùng một câu hỏi: quy tắc nào khớp với luồng này, và địa chỉ nào đã rời giao diện? Bắt gói ở giao diện ngoài và so sánh địa chỉ nguồn trước và sau cổng. Sau đó kiểm tra góc nhìn của phía đối diện về đường hầm, vì SA có thể đang lên trong khi luồng được bảo vệ lại được dịch ở nơi khác.
Trên ASA hiển thị nat detail và bảng dịch; trên IOS hiển thị ip nat translations và các bộ đếm ACL tương ứng. Một quy tắc không bao giờ tăng nghĩa là chưa từng được chọn, và điều đó chỉ ra thứ tự, giao diện hoặc hướng chứ không phải cấu hình crypto.
Cấu hình thường sai ở đâu
Các lỗi phổ biến mang tính cơ học. Deny nằm dưới permit và không bao giờ khớp. Bộ phân loại bị áp dụng sai hướng, nên luồng quay về bị dịch. Quy tắc identity bao đúng địa chỉ nhưng sai cặp giao diện. Crypto ACL bảo vệ một mạng con không còn khớp với thứ quy tắc NAT trình bày.
Ghi lại cặp địa chỉ gốc và cặp được trình bày bên cạnh chủ sở hữu quy tắc, để kỹ sư tiếp theo thấy vì sao bộ phân loại từ chối dịch trong khi tường lửa cho phép ứng dụng. Lưu điều đó trong phiếu thay đổi, không phải ghi chú cá nhân. Sau đó chạy lại luồng sau mọi thay đổi NAT, vì thứ tự quy tắc là một phần của cấu hình kể cả khi nội dung quy tắc không đổi. Đường hầm lên không chứng minh địa chỉ còn nguyên; chỉ gói đã bắt và góc nhìn sau khi giải gói của phía đối diện.