Làm thế nào để một máy chủ NAT chuyển tiếp các gói trả lời ping ICMP cho người dùng?


29

NAT sử dụng kết hợp số cổng địa chỉ IP để băm các yêu cầu gửi đi. Vì các yêu cầu ping bao gồm các gói yêu cầu echo ICMP, chúng không có bất kỳ số cổng liên quan nào. Làm thế nào để một máy chủ NAT chuyển tiếp trả lời cho các máy chủ trong mạng?


Câu trả lời:


34

Đối với các thông báo loại truy vấn / trả lời ICMP như Echoes (ping), NAPT sử dụng ID truy vấn ICMP (đôi khi chỉ được gọi là ID ICMP) giống như cách sử dụng số cổng TCP hoặc UDP.

Đối với các thông báo lỗi ICMP như Destination Unreachable, nó sử dụng bản sao bên trong của gói ICMP của các tiêu đề của khung gây ra lỗi để tìm ra ánh xạ nào trong bảng NAT được sử dụng để dịch nó.

Các quy trình này được tham chiếu ngắn gọn trong một số RFC liên quan đến NAT, nhưng tôi đã gặp khó khăn khi tìm một quy trình rõ ràng đánh vần thủ tục. Xem "NAT truyền thống", RFC3022 , phần 4.1.

Điều này không mâu thuẫn với bất kỳ ánh xạ TCP hoặc UDP nào vì trong triển khai NAPT tốt, giao thức là một trong những thông tin được giữ trong mục nhập bảng NAT để làm cho nó trở nên duy nhất.


1
bạn có thể trích dẫn nó từ một nơi nào đó
Rohit Banga

Điều gì xảy ra nếu id ICMP đụng độ với số cổng mà quy trình của tôi đang sử dụng.
Rohit Banga

@iamrohitbanga OK Tôi đã mở rộng câu trả lời của mình để trả lời các câu hỏi tiếp theo của bạn.
Spiff

0

Tôi đã thực hiện một mô phỏng nhỏ (dựa trên thiết bị GSN3 Kali Linux CLI), để kiểm tra xem điều gì xảy ra khi ICMP đụng độ (rõ ràng, nó có thể là nhà cung cấp cụ thể):

Trên các yêu cầu / phản hồi của ICMP Trước khi NAT hiển thị tình huống, khi Số nhận dạng của các yêu cầu ICMP từ 2 thiết bị (với IP 10.0.0.1 và 10.0.0.2 một cách tôn trọng) trở nên bằng nhau.

Đồng thời trên các yêu cầu / phản hồi của ICMP Sau khi NAT được hiển thị rằng Mã định danh của phiên ICMP xung đột được thay đổi thành 0 bởi NAT và được tăng lên từ đó.

Tóm lại, có thể nói rằng Linux NAT xử lý sự xung đột của các định danh ICMP trên nó (Vì các định danh ICMP không bị thay đổi trước NAT).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.