Была ў мяне задача - апублікаваць на роўтары D-Link DFL службу на ip-адрасе, не прывязаным да wan-інтэрфейсу. Але ў інтэрнэце не знайшоў інструкцыю, якая б рашала гэтую задачу, таму напісаў сваю.
Зыходныя дадзеныя (усе адрасы ўзяты для прыкладу)
Вэб-сервер ва ўнутранай сетцы з Ip: 192.168.0.2 (порт 8080).
Пул знешніх белых адрасоў, выдзелены правайдэрам: , шлюз правайдэра: 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 не які адпавядае адрасу інтэрфейсу запатрабуецца:
- Указаць роўтэру, што публікуемы ip трэба шукаць унутры сябе, з дапамогай .
- Публікацыя , каб роўтэр адказваў суседзям, што публікуемы адрас належыць яму.
- Правіла firewall (), якое ўнутры роўтара будзе мяняць адрас прызначэння на адрас канчатковага сервера.
- Правіла firewall (Allow), якое будзе дазваляць злучэнне з вонкавага інтэрфейсу на публікуемы адрас унутр роўтара
А цяпер крыху падрабязней пра кожны пункт
Падрыхтоўка
I. Спачатку створым для ўсіх нашых патрэб "Аб'екты" (цяпер я пакажу працэс для вэба-інтэрфейсу, думаю тыя, хто працуюць з кансоллю, змогуць перанесці дзеянні ў каманды кансолі).
1. Дадаем у адрасную кнігу два адрасы ipv4:
web-server = 192.168.0.2
public-web-server = 5.255.255.11


2. Затым дадаем парты ў спіс сэрвісаў:
int_http = tcp:8080


Порт tcp:80 ужо прысутнічае ў спісе сэрвісаў, называецца HTTP, мае абмежаванне ў 2000 сесій, абмежаванне можна скарэктаваць.
ойАказалася, што дадаваць порт сервера ва ўнутранай сетцы зусім не трэба, але пакідаю, т.я. прыклад можа спатрэбіцца для публічнага порта, а дадаюцца яны аднолькава
II. Пяройдзем непасрэдна да рашэння.
Пункт 1 и 2 можна аб'яднаць, т.я. пры даданні статычнага маршруту ёсць магчымасць адразу забяспечыць ARP. Сапраўды, кажучы, я не адразу ўбачыў гэтую магчымасць і наладжваў публікацыю ўручную, ёсць у маршрутызатара і такі функцыянал.
1. Такім чынам, калі вы яшчэ не стваралі кучы табліц маршрутызацыі і правіл для іх, тое ўсё можна зрабіць у асноўнай табліцы маршрутызацыі, яна завецца асноўнай.

У табліцы асноўнайбудзе па-змаўчанні шлях да сеткі 5.255.255.0/28 на інтэрфейс wan1. І гэтага маршруту супадае з метрыкай, указанай у наладах інтэрфейсу (па-змаўчанні 100).
![]()
Для таго, каб шлюз не адпраўляў пакеты назад у інтэрфейс wan1, трэба стварыць статычны маршрут да адрасу public-web-server у інтэрфейс ядро з метрыкай менш 100 (меншай метрыкі інтэрфейсу wan1) - тады шлюз будзе шукаць яго «ўнутры сябе».
2. Тамака ж пры стварэнні маршруту можна наладзіць Proxy ARP для таго, каб шлюз адказваў на ARP запыты. На ўкладцы Proxy ARP дадаем інтэрфейс WAN.

ствараем маршрут, але не націскаем OK, а пераходзім на другую ўкладку Proxy ARP:

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

3.Нарэшце пераходзім да налады NAT і firewall (гэта ўжо досыць падрабязна апісана ў ).

Ствараем правіла SAT, каб у пакеце з інтэрфейсу wan1 з адрасам прызначэння public-web-server портам прызначэння HTTP, якому мы наладзілі маршрут на інтэрфейс ядро, замяніць адрас прызначэння на ўнутраны адрас нашага сервера web-server і порт на 8080.

4. І наступным крокам неабходна дазволіць такі пакет - стварыць правіла Allow з аналагічнымі параметрамі (зручна скапіяваць правіла SAT і замяніць дзеянне на Allow).

заўвагаПры гэтым правілы павінны быць менавіта ў такім парадку: спачатку SAT, затым Allow:
Не забывайце, што правіла SAT павінна знаходзіцца вышэй які дазваляе правілы. Гэта злучана з тым, што пакет, пападаючы ў якое дазваляе ці забараняльнае правіла, далей не ідзе па табліцы «Rules».
Пры гэтым правіла allow ствараецца таксама для публічнага порта і адрасы:
звернеце ўвагу, што б параметры пратаколу, інтэрфейсаў і сетак у дазваляльным правіле былі такія ж, як і ў правіле з дзеяннем «SAT».
Мне здавалася, што пакет ужо апрацаваны правілам SAT радком раней, і адрас і порт прызначэння ў ім новыя, але не, падобна замена адбываецца некалі пасля адпрацоўкі ўсіх іншых правілаў.
В глыбока раскрыты функцыянал SAT, ён уяўляе шмат цікавых магчымасцяў. Маёй мэтай было раскрыць пытанне, не расчыненае ў гэтай інструкцыі і ў іншых інструкцыях. Спадзяюся, інструкцыя будзе карыснай і зразумелай.
Крыніца: habr.com
