Көпірлік OpenVPN клиенттерінде интернет жоқ па? NAT ережесін тексеріңіз
Көпірлік OpenVPN клиенттері tap құрылғысы арқылы шығады, сондықтан физикалық желілік картаны атайтын masquerade ережесі ешқашан сәйкес келмейді және есептегіш нөлде қалады.
Көпірлік сервер жұмыс істеп тұр, masquerade ережесі бар, ал клиенттегі браузер әлі айналып тұр. Барлығы жұмыс істеуі керек сияқты көрінеді, сондықтан бірінші сағат туннель мен тіркелгі деректерін тексеруге кетеді. Содан кейін NAT ережесіндегі есептегішті оқып, қозғалмаған нөлді көресіз. Бірде-бір пакетті санамаған ереже ешбір пакетке сәйкес келмеген, ал көпірлік серверде себеп құрылымдық: клиент трафигі виртуалды tap құрылғысы арқылы шығады, ал ереже ескі нұсқаулықтан көшірілген физикалық картаны атайды.
Дәлел — есептегіш, кестедегі жол емес
Бар ережелер мен сәйкес келетін ережелер — бөлек нәрселер, оларды есептегіш ажыратады. NAT кестесін егжей-тегжейлі есептегіштермен шығарып, бірдеңені өзгертуден бұрын әр ереженің жанындағы сандарды оқыңыз. Трафик ағып жатқанда нөлде тұрған есептегіш ереженің өткізіліп кеткенін білдіреді, оның мекенжайлары қаншалықты орынды көрінсе де. Қосылым әлі сәтсіз болып жатқанда өсетін есептегіш сізді басқа жерге жібереді: бағыттау, қайту жолы немесе алыс жақ.
iptables -t nat -L POSTROUTING -v -nАлдымен интерфейс сәйкестігінің жанындағы есептегішті оқыңыз. Бастауыш диапазоны дұрыс, шығу жағы қате болса, түзету — жаңа ереже емес, ережедегі бір сөз.
Ядро шынымен жазатын атауды табыңыз
Ережені жазбас бұрын туннель құрылғысын есте сақтауға емес, интерфейстер тізіміне сүйеніп атауы бойынша анықтаңыз. Көпірлік OpenVPN конфигурациясында құрылғы әдетте сервер жасаған tap интерфейсі болады және оның атауы жергілікті конфигурацияңыздың бөлігі, әмбебап тұрақты емес. Туннель қосулы кезде оның бар екенін растаңыз, өйткені клиент қосылғаннан кейін ғана пайда болатын құрылғы бұрынғы сынақты ереже мәселесіне ұқсатады.
ip -brief linkАтауды жазып алыңыз. Осы диагностикадағы әрбір кейінгі команда оған сілтеме жасайды, ал мұндағы қате теру бастапқы қате сияқты дәл сол нөлдік есептегішті береді.
Ережені туннель құрылғысына қарай қайта жазыңыз
Ережені туннель құрылғысына бағыттап, клиент диапазонын оның сәйкестік шарты ретінде қалдырыңыз, осылайша ол туннель трафигін қамтиды және хосттың өз қосылымдарына тимейді. Төмендегі екі мысал да мысал ғана және ешқайсысы орнатулар арасында тасымалданбайтындықтан, өз диапазоныңыз бен құрылғы атауыңызды қойыңыз.
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o tap0 -j MASQUERADEСодан кейін сол симптом жасыратын қалған екі шартты тексеріңіз. Бағыттау қосылған ба, жоқ па, тексеріңіз, ал қосылмаса, оны қайта жүктеуде жоғалатын echo арқылы емес, дистрибутивтің өз конфигурациясында қосыңыз. forward тізбегінің есептегіштерін де оқыңыз, ал егер ол туннель трафигін тастаса, дәл сол интерфейске рұқсат беріп, тізбек саясатына тимеңіз.
forward тізбегін есептегіштермен оқу бір команда алады және басқа ережеге қол тигізбей тұрып қалған мүмкіндіктердің жартысын жоққа шығарады.
Неліктен физикалық карта ешқашан сәйкес келмейді
Көпір — tap құрылғысы мен бір физикалық интерфейстен құралған бағдарламалық коммутатор. Клиент кадры сол коммутаторға кіреді және физикалық желіге картадағы пакет ретінде емес, көпір мүшесі ретінде шығады. Сондықтан ядро пакетті көпірге және оның портына телиді, сондықтан сіз ойлаған карта сәйкестікте ешқашан көрінбейді. Физикалық интерфейсте ештеңе бұзылмаған; ол жай ғана ядро сол пакетке тілейтін құрылғы емес.
Адамдар кездесетін келесі мәселе сол құрылымнан шығады: көпірдегі кадрларды сүзу IP сүзуден бөлек механизм. Талап кадр деңгейіндегі шектеу болса, ол көпір сүзуіне жатады, IP кестесінің ережесіне емес.
Оны басынан аяғына дейін дәлелдеп, содан кейін тұрақты етіңіз
Бір клиентті қосып, сервердің жергілікті желісіндегі бірдеңеге ping жасаңыз; бұл жол ешбір аудармасыз бағыттауды жаттықтырады. Содан кейін masquerade ережесі міндетті түрде қолданылуы үшін ашық бірдеңе сұраңыз да, есептегішті тағы оқыңыз: ол осы сынақ үшін қозғалуы керек, алдыңғысы үшін емес. Туннель құрылғысында алынған жазба кадрдың қайда пайда болатынын және қандай мекенжай алып жүргенін бірге көрсетеді.
Соңғы қадам: жұмыс істейтін ережелерді қайта жүктеу оқитын конфигурацияға салыңыз және осы хосттың көпірі шынымен қолданатын құрылғы атауын жазып алыңыз. Қолмен терілгеннің бәрі қайта жүктеуден кейін жоғалады, ал сол ақау оны түсіндіретін ештеңе қалмай қайта оралады.
Егер қайта жазғаннан кейін есептегіш әлі қозғалмаса, ережедегі бастауыш диапазонын клиент шынымен алған мекенжаймен салыстырыңыз, өйткені көпірлік сервер сіз ойламаған диапазоннан мекенжайлар бере алады.