Зворотна петля на переслану загальнодоступну IP-адресу з локальної мережі - Hairpin NAT


45

Це канонічне запитання щодо шпильки NAT (Loopback NAT).

Загальною формою цього питання є:

Ми маємо мережу з клієнтами, сервером та NAT-маршрутизатором. На маршрутизаторі на сервер є переадресація портів, тому деякі його послуги доступні зовні. У нас DNS вказує на зовнішній IP. Клієнти локальної мережі не підключаються, але працюють зовнішні.

  • Чому це не вдається?
  • Як я можу створити єдину схему імен (DNS-імена, які працюють як локально, так і зовні)?

Це питання відповідає об'єднанню багатьох інших питань. Вони спочатку посилалися на FreeBSD, D-Link, Microtik та інше обладнання. Однак вони все намагаються вирішити ту саму проблему.


1
Якщо ваша мета полягає в тестуванні доступу з Інтернету, то в кращому разі не має ніякої місії з маршрутами маршрутизатора та / або налаштуваннями DNS, зсередини ви переконаєтесь, що внутрішня частина маршрутизатора працює. Я пропоную вам використовувати проксі-сервер десь зовні.

Відповіді:


16

Те, що ви шукаєте, називається "шпилька NAT". Запити внутрішнього інтерфейсу щодо IP-адреси, призначеної для зовнішнього інтерфейсу, повинні бути NAT'ted так, ніби вони надходили із зовнішнього інтерфейсу.

Я взагалі не знайомий з FreeBSD, але читаючи посібник "pf" для OpenBSD ( http://www.openbsd.org/faq/pf/rdr.html ) запропоновані рішення DNS з розділеним горизонтом, використовуючи Мережа DMZ або прокси TCP приводять мене до думки, що "pf" не підтримує шпильку NAT.

Я хотів би переглянути маршрут DNS з розділеним горизонтом і не використовувати IP-адреси в URL-адресах, а замість цього використовувати імена.


Я натрапив на цю нитку, намагаючись вирішити ту саму проблему, і хоча це правда, що FreeBSD не підтримує шпильку з коробки, є способи перенаправити та NAT внутрішній -> зовнішній -> внутрішній трафік.
малиновий-чапля

Наприклад: no nat on $int_if proto tcp from $int_if to $int_net , nat on $int_if proto tcp from $int_net to $hairpin_int port $hairpin_ports -> $int_if, rdr on $int_if proto tcp from $int_net to $ext_if port $hairpin_ports -> $hairpin_int
малиново-чапля

48

Оскільки це було піднято як канонічне питання щодо шпильки NAT , я подумав, що він, мабуть, повинен відповісти, що є більш загальним, ніж прийнятий на даний момент, який (хоча і відмінно) стосується конкретно FreeBSD.

Це питання стосується сервісів, що надаються серверами в мережах IPv4, адресованих RFC1918, які надаються зовнішнім користувачам шляхом введення NAT (DNAT) на шлюзі. Потім внутрішні користувачі намагаються отримати доступ до цих служб за допомогою зовнішньої адреси. Їх пакет виходить з клієнта на пристрій шлюзу, який переписує адресу призначення та негайно вводить його назад у внутрішню мережу. Саме цей різкий зворотний поворот пакета робить на шлюзі і породжує назву шпильки NAT , за аналогією з поворотом шпильки .

Проблема виникає, коли пристрій шлюзу переписує адресу призначення, але не адресу джерела. Потім сервер отримує пакет із внутрішньою адресою призначення (власною) та внутрішньою адресою джерела (клієнтською); він знає, що може відповісти безпосередньо на таку адресу, тому робить це. Оскільки ця відповідь є прямою, вона не проходить через шлюз, що, отже, ніколи не отримує шансу врівноважити ефект вхідного пункту призначення на початковий пакет, переписавши адресу джерела зворотного пакету.

Таким чином, клієнт відправляє пакет на зовнішню IP-адресу, але отримує відповідь з внутрішньої IP-адреси. Поняття не має, що два пакети є частиною однієї розмови, тому жодної розмови не відбувається.

Рішення полягає в тому, що для пакетів, які потребують такого NAT, і які дістаються до шлюзу з внутрішньої мережі , також виконувати джерело NAT (SNAT) у вхідному пакеті, зазвичай, переписавши адресу джерела на адресу шлюзу. Потім сервер вважає, що клієнт є самим шлюзом, і відповідає безпосередньо на нього. Це, в свою чергу, дає шлюзу можливість збалансувати ефекти і DNAT, і SNAT на вхідний пакет, переписавши обидва джерела та адреси призначення на зворотний пакет.

Клієнт думає, що він спілкується із зовнішнім сервером. Сервер думає, що він спілкується з пристроєм шлюзу. Всі вечірки раді. На даний момент може бути корисна діаграма:

введіть тут опис зображення

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

Правильні мережеві пристрої, як правило, можна сказати, що вони працюють, але - оскільки вони не займаються вгадуванням своїх адміністраторів, - їм це потрібно сказати. Linux використовує iptablesдля DNAT таким чином:

iptables -t nat -A PREROUTING  -p tcp --dport 80 -j DNAT --to-destination 192.168.3.11

що дозволить простий DNAT для порту HTTP, для внутрішнього сервера на 192.168.3.11. Але для включення шпильки NAT також потрібно таке правило, як:

iptables -t nat -A POSTROUTING -d 192.168.3.11 -p tcp --dport 80 -j MASQUERADE

Зауважте, що для правильної роботи такі правила повинні знаходитись у потрібному місці у відповідних ланцюжках, і залежно від налаштувань filterланцюга можуть знадобитися додаткові правила, щоб дозволити потоку NATED трафік. Всі такі дискусії виходять за рамки цієї відповіді.

Але, як говорили інші, належна підтримка шпильки NAT - це не найкращий спосіб вирішити цю проблему. Найкращим є DNS з розділеним горизонтом , де ваша організація подає різні відповіді на оригінальний пошук залежно від того, де знаходиться запитуючий клієнт, або за допомогою різних фізичних серверів для внутрішніх проти зовнішніх користувачів, або за допомогою налаштування сервера DNS, щоб відповідати по-різному відповідно до адреса запитуючого клієнта.


Мені цікаво трохи про адреси в пакетах, обмінюваних між шлюзом і сервером. Хіба це не було б більш послідовно, якби сервер бачив публічну IP-адресу маршрутизатора як клієнтський IP? Технічно і те й інше може працювати, але щоб залишатися узгодженими з тим, як інші сервери бачать клієнтів, доведеться використовувати публічний IP.
kasperd

1
Я запевняю, що ви маєте на увазі останній випадок, "належна шпилька NAT". Найважливіше - переписати адресу джерела на вхідний пакет таким чином, щоб він повернувся до маршрутизатора, який може потім перевернути і DNAT, і SNAT і таким чином уникнути проблеми. Який із багатьох адрес, який маршрутизатор використовує для цього, є точнішим смаком, і якщо ви це робите, ви iptables, звичайно, можете щось налаштувати, якщо захочете.
MadHatter підтримує Моніку

1
Багато адміністраторів, включаючи мене, вважають DNS з роздвоєним горизонтом ліком, який є гіршим за хворобу. Якщо один додатковий СНАТ взагалі можна назвати хворобою. DNS з розділеним виглядом бентежить людей, але полегшує життя маршрутизаторів. Цю тему краще обробити окремим запитанням / відповіддю ServerFault.
kubanczyk

Моя відповідь дуже стосується шпильки NAT. Я бачу плюси і мінуси відкриття канонічного питання "DNS з розділеним горизонтом": плюси включають в себе питання, присвячені використанню та проблемам SHDNS, але мінуси полягають у тому, що в цьому питанні вже було багато інших питань, які стосуються воно злилося в ньому, так що може трапитися і з вашим запитанням. Якби я був, я б порушив питання щодо мета та домагався консенсусу. Якщо таке запитання все-таки буде написано, я з нетерпінням чекаю вашої відповіді на нього!
MadHatter підтримує Моніку

@MadHatter Де слід написати команду iptables? на клієнті чи шлюзі чи сервері?
Rocky Balboa

9

Проблема тут полягає в тому, що ваш маршрутизатор не NAT внутрішню адресу клієнта. Таким чином, рукостискання TCP не вдається.

Припустимо наступні IP-адреси

  • Клієнт: 192.168.1.3
  • Сервер: 192.168.1.2
  • Внутрішній маршрутизатор: 192.168.1
  • Маршрутизатор зовнішній: 123.123.123.1

Ось що відбувається:

  1. Клієнт (192.168.1.3) надсилає TCP-SYN на ваш зовнішній IP, порт 80 (123.123.123.1:80)
  2. Маршрутизатор бачить правило переадресації портів і пересилає пакет на сервер (192.168.1.2:80) без зміни вихідного IP (192.168.1.3)
  3. Клієнт чекає SYN-ACK від зовнішнього IP
  4. Сервер надсилає свою відповідь клієнту безпосередньо, оскільки він знаходиться в одній підмережі. Він не посилає пакет на маршрутизатор, який би перевернув NAT.
  5. Клієнт отримує SYN-ACK від 192.168.1.2 замість 123.123.123.1. І відкидає це.
  6. Клієнт все ще чекає SYN-ACK від 123.123.123.1 та вичерпується.

4

Чому б не використовувати розділені dns-горизонти dns замість жорсткого кодування IP-адрес скрізь? Ви мали б ext.yourdomain вказувати на 217.xxx зовні, а потім 192.xxx на внутрішній стороні.


1
Якщо у вас є момент, ви можете розширити, що таке DNS-розділ-Horizon, як він працює, та основні недоліки. Це канонічне питання зараз, і було б непогано отримати більш повну відповідь.
Кріс S

2

Якщо це оригінальний маршрутизатор D-Link (тобто не Rev. D / Прошивка версії 1.00VG від Virgin Media), ви повинні мати можливість налаштувати параметри для обходу цього. (Однак я погоджуюся з пропозицією DD-WRT попереднього афіші з багатьох інших причин!)

  1. Увійдіть у веб-інтерфейс маршрутизатора
  2. Перейдіть на вкладку Додатково вгорі
  3. Перейдіть на вкладку Налаштування брандмауера зліва
  4. Клацніть перемикач Кінцева точка Незалежно під TCP Фільтрування кінцевих точок , як показано на знімку екрана нижче (або дивіться емулятор маршрутизатора на веб-сайті D-Link)
  5. Зберегти зміни; ти закінчив

Скріншот веб-інтерфейсу маршрутизатора D-Link

Цей скріншот зроблений із моделі Rev. C; ваш може трохи відрізнятися.


2

Нещодавно відповів на подібне запитання: Cisco статичний NAT не працює на стороні локальної мережі та просто зрозумів, що це канонічне запитання. Тож дозвольте тут узагальнити рішення.

Перш за все: забудьте про NAT (якщо можете) - питання зовсім не в налаштуванні NAT. Йдеться про доступ до сервера, розміщеного позаду NAT, з Інтернету та локальної мережі. Використання двох зон DNS - це життєздатна альтернатива, але не завжди це рішення. Але рішення існує і є неймовірно простим (хоча й не ідеальним, мабуть):

(1) на сервері: додайте загальнодоступну IP-адресу як вторинну IP-адресу в мережевий інтерфейс сервера з маскою 255.255.255.255 (веб-сервіс або все, що ви хочете на сервері, слід слухати і на цій IP-адресі); всі сучасні операційні системи дозволять вам це зробити (або замість додавання вторинного IP до основного інтерфейсу можна використовувати інтерфейс зворотного зв'язку з призначеною для нього загальною IP-адресою.

(2) на хостах локальної мережі: додайте маршрут хосту для загальнодоступної IP-адреси, наприклад, для хостів Windows використовується така команда: route -p додати маску 203.0.113.130 255.255.255.255 192.168.1.11 (ви також можете використовувати DHCP " статичний маршрут "варіант розподілу маршруту). Або якщо між клієнтами та маршрутизатором, орієнтованим на Інтернет, є (a) комутатори (маршрутизатори) L3 / маршрутизатори, налаштуйте цей хост-маршрут на цьому (цих) проміжних комутаторах / маршрутизаторах, а не на клієнтів.

Для тих, що стосуються тристороннього рукостискання TCP: він буде працювати нормально у запропонованій конфігурації.

Надайте відгуки (принаймні, голосуйте).


Вимога №2 робить це не дуже добре в мережах BYOD ...
Майкл

1

Я відповідаю на мої запитання просто для розширення кругозору для тих, хто має подібні проблеми.

Я зв’язався зі своїм провайдером і попросив їх спробувати вирішити мої проблеми. Те, що вони мені запропонували, - це ще одна публічна IP-адреса, призначена лише для сервера. Зараз я маю локальний трафік на стороні WAN FreeBSD, і ми створили конкретні канали для швидшого проходження локального трафіку до загальнодоступного IP-сервера


2
Це рішення реалізує мережу Perimeter або DMZ і є хорошою альтернативою як Hairpin NAT, так і DNS Split-Horizon.
Chris S

1

З технічної точки зору найкращим рішенням цієї проблеми є включення IPv6 у вашій мережі. Коли ввімкнено IPv6, вам потрібно створити запис AAAA для вашого домену. Зберігайте існуючий запис A, що вказує на зовнішній IPv4 маршрутизатора . Створіть запис AAAA, що вказує на IPv6 адресу сервера .

IPv6 має достатньо адрес, щоб уникнути NAT, тому вам не знадобиться шпилька NAT для IPv6. І як тільки ви ввімкнули IPv6 і створили записи AAAA, будь-який клієнт, що підтримує RFC 8305 , спробує IPv6 перед IPv4. Це означає, що вам також не потрібна шпилька NAT для IPv4, оскільки клієнти не будуть її використовувати.

Вам все одно знадобиться ваш існуючий IPv4 NAT для вихідних з'єднань та переадресації портів для вхідних з'єднань, поки більшість країн світу також не включить IPv6.

Це теж швидше.

Використання IPv6 дасть вам кращі показники, ніж шпилька NAT.

За допомогою шпильки NAT ваш клієнт відправить пакет через комутатор до маршрутизатора, потім маршрутизатор виконає два раунди перекладу і, нарешті, відправить пакет через комутатор на сервер. Пакети з сервера до клієнта пройдуть весь цей шлях у зворотному напрямку.

За допомогою IPv6 ви уникаєте NAT, натомість пакети надсилаються безпосередньо через перемикання між клієнтом та сервером. Це означає, що в обидва кінці ви зменшуєте кількість проходів через комутатор з 4 до 2, і ви уникаєте 2 прогулянок через маршрутизатор і 4 перекладу, які б роутер виконував. Це означає кращі показники роботи.

Це справедливо навіть у тому випадку, якщо ви використовуєте комутатор, вбудований у ту саму коробку, що і маршрутизатор.

Що робити, якщо у провайдера немає IPv6?

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

Спочатку скажіть провайдеру, що вам потрібен IPv6. І, можливо, нагадайте їм, що протокол IPv6 існує вже 20 років, тому вони давно назріли в його підтримці. Якщо цього провайдера недостатньо, щоб ви серйозно сприйняли, почніть шукати інших провайдерів.

Якщо ви знайдете провайдера з підтримкою IPv6, ви можете працювати з обома провайдерами протягом перехідного періоду. На маршрутизаторі, підключеному до нового провайдера, ви можете відключити IPv4 на стороні локальної мережі, а потім підключити сторони локальної мережі обох маршрутизаторів до одного і того ж комутатора. IPv4 та IPv6 - це два незалежних протоколи, і тому вони взагалі не є проблемою, якщо ці з'єднання проходять через різні маршрутизатори. Як побічна вигода, це дає вам певну кількість надмірності, якщо в одному з з'єднань є відключення.

Якщо ви не можете знайти Інтернет-провайдера з підтримкою IPv6, вам слід розглянути можливість переміщення сервера на хостинг-сервіс. З сервером в хостинговому центрі ви менш залежні від географічного розташування, і тому існує більша конкуренція між провайдерами, що допоможе переконатися, що існує той, який задовольняє ваші потреби.

Переміщення сервера на хостинг-об'єкт не дасть клієнтам IPv6, але переміщення сервера означає, що вам більше не потрібна шпилька NAT, щоб досягти цього.

Чого не слід робити

Не вмикайте IPv6 і не створюйте записи AAAA, якщо у вас немає способу спрямувати трафік IPv6. Якщо ваш Інтернет-провайдер не підтримує IPv6, але ви вирішите включити IPv6 у вашій локальній мережі (можливо, використовуючи адреси RFC 4193) та створити записи AAAA, він працюватиме для клієнтів у вашій локальній мережі, досягаючи сервера у вашій локальній мережі. Але спілкування між вашою локальною мережею та зовнішнім світом спочатку спробує IPv6 (що не працює), і ви покладаєтесь на повернення до IPv4, що в кращому випадку трохи повільніше або в гіршому випадку не відбувається.


0

Оскільки я також задав це запитання (див. Як мені отримати доступ до мережевої послуги NATED за брандмауером зсередини, використовуючи її зовнішній IP? ), І тут було перенаправлено, але відповіді тут не забезпечили рішення (на відміну від загальних пояснень ), нехай мій надайте тут моє Linux ( iptablesспецифічне) рішення, щоб зберегти всіх на кілька годин експериментів. Цей файл у iptables-restoreформаті і його можна читати безпосередньо в iptables (звичайно після редагування IP-адрес). Це для веб-сервера (порт 80) і лише для IPv4 - правила для IPv6 та для SSL (порт 443) є аналогічними.


# Port forwarding for VM / Container access with „hairpin NAT“.
*nat
:PREROUTING ACCEPT [3:205]
:INPUT ACCEPT [59:670]
:OUTPUT ACCEPT [16:172]
:POSTROUTING ACCEPT [20:257]

# This was simple port forwarding - access works from outside but not from inside
#-A PREROUTING  -4 -p tcp -i eth0 --dport 80 -j DNAT --to web.local:80

# This is real hairpin NAT which allows „web.local“ to access itself via the VM hosts external IP.
# First we need to masquerade any traffic going out the external interface:
-A POSTROUTING -o eth0 -j MASQUERADE

# Then we need to reroute incoming traffic on the public IP to the local IP:
-A PREROUTING  -4 -p tcp -d web.public.com --dport  80 -j DNAT --to web.local:80

# And finally we need to tell the router that the source IP of any traffic
# coming from the LAN must be source-rewritten when going to the web server:
-A POSTROUTING -4 -p tcp -s lan.local/24 -d web.local --dport  80 -j SNAT --to-source web.public.com:80

COMMIT

Замінити lan.local, web.localі web.public.comз вашої локальної мережі (наприклад. 10.0.x.0 / 24), локальний IP вашого веб - сервера (наприклад 10.0.1.2), і публічний IP вашого маршрутизатора (наприклад, 4.5.6.7). Справа -4лише в тому, щоб дозволити правила IPv6 та IPv4 в одному файлі (такі рядки ігноруються ip6tables). Крім того, не забудьте помістити IPv6 адреси в [дужки], коли вони включають декларації портів, наприклад [fe0a:bd52::2]:80.

Це були все те, що змусило мене витягнути волосся, намагаючись реалізувати пояснення в цьому питанні. Я сподіваюся, що нічого не залишив.


MASQUERADE в інтерфейсі wan, як правило, корисний, але не пов'язаний з питанням "шпилька NAT". Канонічна відповідь пропонує MASQUERADE на інтерфейсі lan, а ви натомість пропонуєте SNAT ( SNAT приблизно такий же, як MASQUERADE ). Ви змушуєте дещо дивне джерело IP: переопрацювання портів.
kubanczyk

0

Я додам відповідь тут, оскільки коментарі тут не стосуються моєї конкретної проблеми. Я підозрюю, що це тому, що я потрапив у неприємну помилку ядра Linux. Установка така:

internet <--> modem 1.1.1.1/30 <--> switch <---> LAN 10.1.1.0/24
                                      ^
        +----------------------+      |
        |              /--eth0 o <----/
        |              |       |           
        | 10.1.1.1/24 br0      |           v (antenna)
        |  1.1.1.2/30  |       |           |
        |              \-wlan0 o ----------/
        +----------------------+ 

Незважаючи на складну вигляд картини, єдиною актуальною зміною ситуацій, які розглядаються в інших коментарях, є додавання програмного мосту, br0. Це там, тому що коробка шлюзу є також бездротовою точкою доступу для локальної мережі.

Наш шлюз все ще виконує завдання NAT для машин в локальній мережі. Оскільки він має лише 1 ефірний порт, він змушений робити шпильки NAT. Я підозрюю, що він повинен просто працювати з правилами iptables, наведеними в інших коментарях тут, але в ядрі Linux 4.9, принаймні, це не так. До 4.9 наш, поки наш шлюз може отримати доступ до Інтернету, машини в локальній мережі намагаються отримати доступ через NAT не можуть.

tcpdumpпоказує відповіді на вхідні пакети, що потрапляють на eth0, але вони не роблять це з br0. Запуск цієї команди виправляє, що:

ebtables -t brouter -A BROUTING -d 01:00:00:00:00:00/01:00:00:00:00:00 -j ACCEPT
ebtables -t brouter -A BROUTING -p IPv4 --ip-dst 10.1.1.0/24 -j ACCEPT
ebtables -t brouter -A BROUTING -p IPv4 --ip-src 10.1.1.0/24 -j ACCEPT
ebtables -t brouter -A BROUTING -p IPv4 -j DROP

Перед виконанням цієї команди вхідні пакети обробляються відповідно до поведінки за замовчуванням ядер, яка полягає у наданні їх мосту, а потім передачі модулів маршрутизації ядра. Команда змушує пакети, які не є локальною мережею, обходити міст і переходити безпосередньо до маршрутизації, що означає, що міст не отримує шансу їх скинути. Адреси широкомовної та багатоадресної передачі повинні бути усунені, інакше такі речі, як DHCP та mDNS, не працюватимуть. якщо ви використовуєте IPv6, ви також повинні додати правила для нього.

Ви можете спокуситись усунути проблему за допомогою цього:

brctl hairpin br0 eth0 on
brctl hairpin br0 wlan0 on

Я, звичайно, був так спокушений - це була моя перша спроба. Як тільки я це зробив, машини з локальної мережі отримали доступ до Інтернету, тож він працює деякий час. Тоді сталося таке (і я не переймався повторенням експерименту):

  1. Час пінг-сигналу через локальну мережу до шлюзу подвоївся з інтервалом приблизно 10 секунд, піднімаючись від 0,1 мс, до 0,2 мс, 0,4 мс, 0,8 мс, 2 мс і так далі, поки вікно шлюзу не виявилося недоступним для локальної мережі. Пахло, як штормовий пакет, але STP було включено скрізь.
  2. Невдовзі всі точки бездротового доступу загинули.
  3. Намагаючись діагностувати, що відбувається з бездротовим зв’язком, усі IP-телефони перезавантажилися.
  4. Невдовзі провідні машини втратили будь-який контакт з локальною мережею.

Єдиний вихід - перезавантажити кожну машину в будівлі. Єдиним винятком були апаратні комутатори, які неможливо було перезавантажити. Їх треба було провести на велосипеді.


0

Оскільки це питання канонічного. Я відповім, якщо у вас є маршрутизатор Sonicwall.

Вираз знати - це політика зворотного зв'язку NAT

Цей документ описує, як хост у локальній мережі SonicWall може отримати доступ до сервера в локальній мережі SonicWall, використовуючи загальнодоступну IP-адресу сервера до FQDN. Уявіть мережу NSA 4500 (SonicOS Enhanced), в якій основна підмережа локальної мережі дорівнює 10.100.0.0 / 24, а IP-адреса первинної WAN - 3.3.2.1. Скажімо, у вас є веб-сайт для ваших клієнтів, а ім'я його хоста -. Ви вже написали необхідну політику та правила, щоб сторонні люди могли потрапити на веб-сайт, але це дійсно працює на приватному серверному боці 10.100.0.2. А тепер уявіть, що ви є особою, яка користується ноутбуком на приватній стороні з IP 10.100.0.200. Ви хочете дістатися до сервера, використовуючи його загальнодоступне ім’я, тому що ви робите те саме, коли ваш ноутбук з вами в дорозі. Якщо ви сідаєте на приватну сторону, і подайте запит на http://www.example.com>, циклічне повернення - це те, що дає змогу працювати, навіть якщо сервер знаходиться поруч з вами на локальній IP-адресі.

Щоб дозволити цю функціональність, вам потрібно створити NAT-цикл політики, також відомий як NAT відображення або шпилька.

Політика зворотного звороту за допомогою IP-адреси інтерфейсу WAN

Login to the SonicWall Management GUI.
Navigate to Manage | Rules | NAT Policies submenu.
Click on the Add button.
Create the following NAT Policy.
Original Source: LAN Subnets (or Firewalled Subnets if you want hosts in other zones to be included)
Translated Source: WAN Interface IP
Original Destination: WAN Interface IP
Translated Destination: (LAN server object)
Original Service: Any
Translated Service: Original
Inbound Interface: Any
Outbound Interface: Any

Sonicwall розпізнає зовнішню службу, до якої ви намагаєтеся зв’язатися, і перепише адресу призначення, щоб відповідати внутрішній адресі сервера, таким чином, вона буде прозорою для комп'ютера.


-2

У FreeBSD за допомогою PF це просто так: (у файлі pf.conf):

extif = "tun0"
intif = "em0"
{other rules}...
nat on $intif from any to 192.168.20.8 port 80 -> ($extif)

192.168.20.8 - це внутрішній веб-сервер.

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