Зашто VPN сервер иза CGNAT-а никада не прихвата везе
Адреса 100.64, динамичко DNS име које се разрешава на другом месту и изостанак долазног руковања су један проблем: NAT оператера. Потврдите то, па затим проследите одлазни саобраћај кроз релеј.
Рутер пријављује WAN адресу која почиње са 100.72, динамичко DNS име се разрешава на другу јавну адресу, а VPN сервер на том рутеру никада не завршава руковање споља. Прослеђивање портова је конфигурисано, услуга ради, а тест из LAN-а и даље пролази. У дневнику рутера ништа не изгледа као грешка. Та комбинација је NAT на нивоу оператера и ниједно правило заштитног зида не може да отвори порт на адреси коју држи ISP.
Потврђивање заједничке адресе траје два минута и спречава недељу измена конфигурације.
Знакови који указују на NAT оператера
Упоредите WAN адресу на страници стања рутера са адресом коју пријављује спољашња претрага. WAN адреса у 100.64.0.0/10 је уобичајен знак, а приватни опсези 10/8, 172.16/12 и 192.168/16 значе исто. Ако traceroute показује исти јавни скок поновљен или рани скок одговара приватном адресом, између рутера и интернета стоји још један преводилац. Неки ISP наводе додељену адресу само у клијентском порталу, зато извезите ту вредност заједно са traceroute.
Мењање протокола или портова не помаже, јер је проблем долазна доступност, а не затворен порт.
Зашто прослеђивање и динамички DNS не могу то да поправе
Правило прослеђивања порта мапира порт на WAN интерфејсу рутера, али долазни саобраћај никада не стиже до тог интерфејса: ISP га прво преводи и прослеђује само оно што његова сопствена табела дозвољава. Објављивање заједничке адресе у динамичком DNS-у усмерава клијенте на пролаз ISP-а који користи много претплатника, зато се име разрешава, а руковање ипак не успева. Hairpin тестови успевају јер рутер одговара на сопствено правило изнутра, а UPnP има потпуно исту слепу тачку.
Ни реконфигурисање клијента неће помоћи, јер се отказ дешава пре него што се прочита било које подешавање клијента.
Прослеђивање кроз VPS са јасним рутама
Ставите јавну адресу напред тако што ћете изнајмити најмањи VPS који може да носи саобраћај, а затим натерајте кућни рутер да се одлазно повеже са њим. Одлазни UDP из кућне мреже пролази кроз NAT оператера, па се тунел успоставља изнутра и VPS постаје доступна крајња тачка. Кућна страна постаје клијент са фиксном адресом тунела, а не сервер.
На VPS-у додајте запис директоријума специфичан за клијента да би сервер знао који партнер поседује кућну подмрежу, и додајте одговарајућу руту језгра.
# /etc/openvpn/server/ccd/home-site.conf ifconfig-push 10.8.0.10 255.255.255.0 iroute 192.168.50.0 255.255.255.0 # server.conf client-config-dir /etc/openvpn/server/ccd route 192.168.50.0 255.255.255.0 push "route 10.8.0.0 255.255.255.0"
Линија iroute говори OpenVPN који клијент прима саобраћај за кућну подмрежу; линија route ставља ту подмрежу у табелу језгра VPS-а да би пакети уопште ушли у тунел. За објављену услугу додајте правило одредишног NAT-а које прослеђује јавни порт на 10.8.0.10 и омогућите net.ipv4.ip_forward.
Тестирајте пут споља
Проверите сваки скок на јавној страни, јер успешан тунел не доказује да је услуга доступна. Стање слушања и снимање пакета на VPS-у раздвајају „ништа није стигло“ од „стигло и одбачено“.
ss -lunp | grep 1194 tcpdump -ni any udp port 1194 nft list ruleset | grep -A4 dnat # from a phone on mobile data, not the home Wi-Fi nc -vz -u 203.0.113.10 1194
Ако снимање показује пакете са телефона али нема одговора, следећа станица је конфигурација сервера или заштитни зид. Ако снимање не показује ништа, клијент још разрешава или шаље на погрешну адресу.
Алтернативе које вреди прво проценити
Наменска IPv4 адреса од ISP-а је најкраће решење и обично је мала месечна такса. Уграђени IPv6 уклања превођење на оба краја када га подржавају VPN, клијентска мрежа и DNS записи. Mesh слој са рутером подмреже у кућној мрежи постиже исто прослеђивање без VPS-а, али по цену зависности од координационе услуге.
Изаберите прослеђивање када је захтев стабилан долазни приступ и свако правило треба да остане под вашом контролом. Изаберите адресу од ISP-а када буџет дозвољава и циљ је једноставно да престанете да мислите о томе.