Прослеђивање портова и тригеровање портова стоје у истом менију на већини кућних рутера, па се зато третирају као два начина да се обави један посао. Прослеђивање је статичко правило: долазна веза на WAN порт преводи се на фиксну унутрашњу адресу и порт, без обзира на то дешава ли се још нешто. Тригеровање је условно: рутер прати одлазни саобраћај и отвара долазно мапирање тек након што изађе одговарајућа веза. VPN сервер чека да се прво неко други повеже, па је управо тај услов једина ствар коју никада не може да испуни.

Два правила са различитим животним циклусима

IPv4 NAT чува стање. Када унутрашњи хост пошаље пакет напоље, рутер ствара мапирање да би одговори нашли пут назад; долазни пакет који не одговара ниједном мапирању се одбацује, и то је понашање које неажурирани стони рачунар држи ван интернета. Прослеђивање је трајни запис превођења који се додаје ручно. Тригеровање је привремена рупа коју чува образац саобраћаја.

Практична разлика је време. Прослеђивање постоји од тренутка чувања док га неко не избрише. Тригеровано мапирање постоји након што се тригер активира и затвара се на тајмеру мировања, мереном у минутима на потрошачком хардверу, или одмах при рестарту.

Ниједно није безбедније у апстрактном смислу. Прослеђивање излаже један порт непрекидно; тригер га излаже само након одређеног одлазног саобраћаја. За услугу која мора да прихвати први пакет од странца, само једно од тога одговара послу.

Зашто тригеровање неће објавити сервер

VPN сервер је пасиван по дизајну. Партнер, било да је лаптоп у кафићу или телефон на мобилним подацима, шаље први пакет, а рутер за њега нема мапирање. Ништа унутра није покренуло саобраћај ка тригер порту, па се правило никада не активира и веза умире пре него што почне руковање.

Тамо где тригеровање изгледа да ради, нешто друго ствара саобраћај на тригер порту: клијент на LAN-у, сонда за надзор или сопствене одлазне провере сервера. Мапирање се тада отвара за тај један хост и затвара када саобраћај престане, па следећи спољни партнер поново не успева, док први успех стоји у дневнику и изгледа као доказ.

Тригеровање је такође обично за један хост. Многе имплементације дозвољавају само једном унутрашњем уређају да држи мапирање у датом тренутку, што је потпуно погрешно за сервер који треба да одговори на неколико партнера. Функција је направљена за апликације које отварају контролну везу напоље и очекују долазне податке на другом порту, и још увек одговара том облику.

Шта прослеђивање заиста мапира

Прослеђивање је један запис превођења: WAN порт и протокол на унутрашњу адресу и порт. Потребан му је слушалац који већ ради на другој страни, и потребно је да унутрашња адреса остане на месту. DHCP закуп који се пресели на други рачунар тихо шаље сваки тунел на погрешан хост, па направите резервацију пре правила.

RuleOpens whenCloses whenFits a VPN listener
Port forwardSaved, at bootYou delete itYes
Port triggerMatching outbound trafficIdle timeout or rebootNo

Протокол је важнији него што форма сугерише. OpenVPN преко UDP-а тражи UDP прослеђивање, WireGuard тражи UDP, а подаци IPsec-а долазе као ESP, IP протокол 50, који уопште нема портове. Форма за прослеђивање која прима само TCP или UDP не може то да изрази, па IPsec тражи passthrough или статично мапирање један-на-један уместо правила за порт.

Слој изнад вашег рутера

Прослеђивање контролише само превођење које поседујете. Ако WAN адреса није ваша, што је случај иза NAT-а оператера где претплатници деле 100.64.0.0/10 како је описано у RFC 6598, долазна веза никада не стиже до вашег рутера јер је провајдер први превео. Ниједно правило на вашем уређају не може да исправи тај редослед.

Двоструки NAT је исти проблем у малом. Ваш рутер прослеђује ка рутеру провајдера, који нема одговарајуће правило и одбацује пакет. Или додајте правило на спољном уређају, или пребаците спољни уређај у режим моста и пустите свој да држи јавну адресу.

Зато тест мора да дође споља. Тест из истог LAN-а преко јавне адресе зависи од подршке за hairpin NAT и може да прође или не успе из разлога који нису повезани са правилом; телефон на мобилним подацима, или пријатељ на другој мрежи, чистија је провера.

Ограничите правило, па проверите обе половине

Проследите један порт на једну адресу. Опсег додат зато што су први покушаји пропали је начин на који административни интерфејси завршавају на интернету, а слушаоцу VPN-а не треба објављена административна страница рутера поред њега.

Задржите све што је већ штитило тај слушалац: идентитет по сертификату или кључу, хост заштитни зид, актуелне верзије пакета. Прослеђивање пушта пакет унутра; аутентификација одлучује да ли пакет постаје тунел, и то су два одвојена неуспеха када нешто пође наопако.

Провера има две половине. Руковање мора да се заврши са спољне мреже, а затим приватни ресурс иза сервера мора да одговори кроз тунел. Прослеђивање пушта везу тунела и ништа више; рутирање и ауторизација за 10.8.0.0/24 су друга поставка на другом екрану.

Одлучите помоћу три питања

Три питања решавају избор брже од било које табеле поређења:

  • Да ли се нешто повезује споља, као први пакет? Онда користите прослеђивање, или релеј. Тригеровање не може да се отвори без одлазног саобраћаја који никада неће постојати.
  • Да ли рупа мора да надживи време мировања? Онда користите прослеђивање, јер се тригеровано мапирање затвара по сопственом распореду.
  • Да ли је WAN адреса ваша за објављивање? Ако није, поправите слој изнад пре него што уредите било које правило.

Ако је одговор на сва три не, што је случај за лаптоп који сам зове комерцијалног провајдера, ниједно правило није потребно. Клијент иза NAT-а ради јер сам ствара мапирање са стањем, и то покрива већину људи који читају страницу о прослеђивању портова у поноћ.

Повезани чланци