Як NAT-сервер пересилає відповіді на відповідні пакети відповідей для користувачів ICMP?


29

NAT використовує комбінацію номерів портів IP-адреси для хешування вихідних запитів. Оскільки запити ping складаються з пакетів ехо-запитів ICMP, вони не мають жодного асоційованого номера порту. Як NAT-сервер передає відповіді хостам всередині мережі?


Відповіді:


34

Для повідомлень типу запитів / відповідей типу типу Echoes (pings) NAPT використовує ідентифікатор ICMP Query (іноді просто називається ICMP ID) так само, як і номер TCP або UDP-порту.

Для повідомлень про помилки ICMP, таких як Destination Unreachable, він використовує внутрішню копію заголовків кадру ICMP-пакету, яка спричинила помилку для з'ясування, яке відображення в таблиці NAT використовувати для її перекладу.

На ці процедури коротко посилаються в декількох RFC, пов'язаних з NAT, але мені було важко знайти той, який чітко прописав цю процедуру. Див. "Традиційний NAT", RFC3022 , розділ 4.1.

Це не суперечить жодному зіставленням TCP або UDP, оскільки при гарній реалізації NAPT протокол є однією з частин інформації, що зберігається у записі таблиці NAT, щоб зробити його унікальним.


1
чи можна це звідкись процитувати.
Rohit Banga

що робити, якщо ICMP id стикається з номером порту, який використовується в моєму процесі.
Рохіт Банга

@iamrohitbanga ОК Я розширив свою відповідь, щоб висвітлити ваші подальші запитання.
Spiff

0

Я зробив невелике моделювання (засноване на пристрої GSN3 Kali Linux CLI), щоб перевірити, що відбувається при зіткненнях ICMP (мабуть, це може бути специфічно для постачальника):

На запити / відповіді ICMP Перед NAT відображається ситуація, коли Ідентифікатори запитів ICMP з двох пристроїв (з IP-адресами 10.0.0.1 та 10.0.0.2 відповідно) стають рівними.

Одночасно на запити / відповіді ICMP Після того, як NAT показано, що Ідентифікатор сеансу ICMP, що стикається, NAT змінюється на 0, а звідти збільшується.

Як підсумок можна сказати, що Linux NAT обробляє зіткнення ідентифікаторів ICMP увімкнено (Оскільки ідентифікатори ICMP не змінюються перед NAT).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.