Публікація сервера через шлюз D-Link DFL

Було в мене завдання - опублікувати на роутері D-Link DFL службу на IP-адресі, не прив'язаній до wan-інтерфейсу. Але в інтернеті не знайшов інструкцію, яка б вирішувала це завдання, тож написав своє.

Вихідні дані (всі адреси взяті для прикладу)

Веб-сервер у внутрішній мережі з Ip: 192.168.0.2 (порт 8080).
Пул зовнішніх білих адрес, виділений провайдером: 5.255.255.0/28, шлюз провайдера: 5.255.255.1, що залишилися «наші» адреси 5.255.255.2-14.

Нехай адреси 5.255.255.2-10 ми використовуємо під NAT та інші потреби. Лінк провайдера підключено до порту wan1. До інтерфейсу wan1 прив'язана адреса 5.255.255.2.

Завдання: опублікувати внутрішній веб-сервер на публічній адресі 5.255.255.11, на порту 80.

Рішення коротко

Для публікації служби на ip не відповідає адресі інтерфейсу потрібно:

  1. Вказати роутеру, що публікований IP потрібно шукати всередині себе, за допомогою таблиць маршрутизації.
  2. Публікація ARP, щоб роутер відповідав сусідам, що адреса, що публікується, належить йому.
  3. Правило firewall (SAT), яке всередині роутера змінюватиме адресу призначення на адресу кінцевого сервера.
  4. Правило firewall (Allow), яке дозволятиме з'єднання із зовнішнього інтерфейсу на опубліковану адресу всередину роутера

А тепер трохи докладніше про кожен пункт

Підготовка

I. Спочатку створимо для всіх наших потреб «Об'єкти» (зараз я покажу процес для веб-інтерфейсу, думаю, ті, хто працюють з консоллю, зможуть перенести дії в команди консолі).

1. Додаємо до адресної книги дві адреси ipv4:
веб-сервер = 192.168.0.2
public-web-server = 5.255.255.11

Публікація сервера через шлюз D-Link DFL

Публікація сервера через шлюз D-Link DFL

2. Потім додаємо порти до списку сервісів:
int_http = tcp:8080

Публікація сервера через шлюз D-Link DFL

Публікація сервера через шлюз D-Link DFL

порт tcp:80 вже є у списку сервісів, називається HTTP, має обмеження у 2000 сесій, обмеження можна скоригувати.

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

II. Перейдемо безпосередньо до рішення.

Пункт 1 и 2 можна поєднати, т.к. при додаванні статичного маршруту можна відразу забезпечити ARP. Чесно, кажучи, я не відразу побачив цю можливість і налаштовував публікацію вручну, має маршрутизатор і такий функціонал.

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

Публікація сервера через шлюз D-Link DFL

В таблиці основнийбуде за замовчуванням шлях до мережі 5.255.255.0/28 на інтерфейс wan1. І метрика цього маршруту збігається з метрикою, вказаною в налаштуваннях інтерфейсу (за замовчуванням 100).

Публікація сервера через шлюз D-Link DFL

Для того щоб шлюз не відправляв пакети назад в інтерфейс wan1потрібно створити статичний маршрут до адреси public-web-server в інтерфейс ядро з метрикою менше 100 (меншої метрики інтерфейсу wan1) - Тоді шлюз шукатиме його «всередині себе».

2. Там же під час створення маршруту можна налаштувати Proxy ARP для того, щоб шлюз відповідав на ARP запити. На вкладці Proxy ARP додаємо інтерфейс WAN.

Публікація сервера через шлюз D-Link DFL

створюємо маршрут, але не натискаємо OK, а переходимо на другу вкладку Proxy ARP:

Публікація сервера через шлюз D-Link DFL

ARP, додаємо інтерфейс wan1:

Публікація сервера через шлюз D-Link DFL

3.Нарешті переходимо до налаштування NAT і firewall (це вже досить докладно описано в інструкції на сайті dlink.ua).

Публікація сервера через шлюз D-Link DFL

Створюємо правило SAT, щоб у пакеті з інтерфейсу wan1 з адресою призначення public-web-server портом призначення HTTP, якому ми налаштували маршрут на інтерфейс ядро, замінити адресу призначення на внутрішню адресу нашого сервера веб-сервер і порт на 8080.

Публікація сервера через шлюз D-Link DFL

4. І наступним кроком необхідно дозволити такий пакет створити правило Allow з аналогічними параметрами (зручно скопіювати правило SAT і замінити дію на Allow).

Публікація сервера через шлюз D-Link DFL

приміткаПри цьому правила мають бути саме в такому порядку: спочатку SAT, потім Allow:

Не забувайте, що правило SAT має знаходитися вище за дозвільне правило. Це з тим, що пакет, потрапляючи у дозвільне чи забороняюче правило, далі йде за таблицею «Rules».

dlink.ua
При цьому правило allow створюється також для публічного порту та адреси:

Зверніть увагу, що параметри протоколу, інтерфейсів і мереж у вирішальному правилі були такі ж, як і в правилі з дією «SAT».

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

В інструкції від D-link глибоко розкритий функціонал SAT, він має багато цікавих можливостей. Моєю метою було розкрити питання, не розкрите в цій інструкції та в інших інструкціях. Сподіваюся, інструкція буде корисною і зрозумілою.

Джерело: habr.com

Додати коментар або відгук