Деталі роботи NAT - CiscoLab - Лабораторія Мереж

Запустивши його і вказавши як параметр командного рядка один із публічних STUN-серверів, ви дізнаєтесь тип вашого NAT:
Наведений результат отримано на комп'ютері, що знаходиться за маршрутизатором ZyXEL Prestige 645R.
Результат для маршрутизатора Cisco 1721 з IOS версії 12.2 виглядає так:
Такий результат отримано для маршрутизатора, побудованого на основі FreeBSD, на якій NAT виконувалася демоном natd.
А ось як виглядає результат для PIX (прим. HunSolo для CiscoLab)
Залишилося пояснити, що таке "random port", "preserves ports" та "no hairpin" у наведених вище результатах.
Подивимося ще раз на рядок з таблиці NAT у прикладі:
Як видно з прикладу, наш маршрутизатор намагається зберігати номер порту незмінним (11.22.33.44:1053 і 192.168.0.141:1053), з чого випливає, що запущений у його локальній мережі STUN-клієнт повідомив би про нього preserves ports . До речі, на FreeBSD цей результат досягається ключем "-same_ports" або "-s" у рядку запуску або конфігураційному файлі демона natd.
Відповідь це питання залежить від цього, підтримує маршрутизатор функцію «hairpin» чи підтримує. Якщо він її підтримує, пакет буде зазвичай оброблений і (якщо на маршрутизаторі використовується реалізація NAT Full Cone або Port Restricted) потрапить за призначенням – на хост 192.168.0.141. Якщо ж ні ("no hairpin"), пакет буде знищений маршрутизатором. Назва функції «hairpin» (шпилька для волосся) походить від того, що, якщо зобразити проходження такого пакета на малюнку, форма його траєкторії буде схожа на U-подібну шпильку. Інше пояснення - слово hairpin перекладається так само, як розворот на 180 градусів. За підтримки маршрутизатором функції «hairpin»пакети, що підпадають під її дію, дійсно, будуть розгорнуті на 180 градусів і відправлені назад в локальну мережу.