Сервер жаңы дарекке көчтү, клиенттер дагы эле туташат, жана алар жөнөткөн нерсенин эч бири интернетке жетпейт. Ушул бөлүнүү — белги: угуучу сокет жана портту өткөрүп берүү көчүүдөн аман калды, ошондуктан туннель көтөрүлөт, ал эми өткөрүлгөн пакеттерге колдонулуучу булак котормосу дагы эле хостто жок даректи атайт. Кайра жазылган ошол пакеттерге жооптор мындан ары жок машинага кетет.

Туташуу жана өткөрүп берүү ар башка жерде ишке ашпайт

Орношуу клиенттер мурунтан билген акыркы чекитке көз каранды: коомдук дарек, анын алдындагы портту өткөрүп берүү жана ичиндеги угуучу. Өткөрүлгөн трафик пакет туннелге киргенден кийин кабыл алынуучу экинчи чечимге көз каранды, ошондо хост өз булагын кайра жазат, жооптор кайтуу жолун табышы үчүн.

Дарек өзгөрүүсү экинчи чечимди гана бузат, ошондуктан симптом "туташкан, бирок интернет жок" деп окулат. Бул ошондой эле клиент тараптагы кадимки текшерүүлөр эмне үчүн соо көрүнөрүн түшүндүрөт: кол алышуу бүтөт, клиент дарек алат, атүгүл сервердин туннель дарегине ping да жооп бериши мүмкүн. Жарымсыздык экинчи тарапта жашаса да, клиентте сааттар кетет, ошондуктан эрежелер таблицасы — эң оболу кароочу жер.

Түзөтүүдөн мурун эрежени жана анын эсептегичтерин окуңуз

Которуу эрежелерин эсептегичтер менен тизмелеп, конфигурацияланган булакты хост чындыгында ээлик кылган даректер менен салыштырыңыз. Өлүк дарекке кайра жазылган эреже адатта кирүү жолунда трафикти көрсөтөт, анткени пакеттер ага жетип, которулат, ал эми кайтуу жолунда эч нерсе көрүнбөйт.

sudo iptables -t nat -L POSTROUTING -n -v --line-numbers
ip -4 addr show

Ошол жерде болгондо үч талааны текшериңиз: булак дал келүүсүндөгү пул, эреже бирөөнү атаса чыгуу интерфейси, жана туннелдер аралык трафиктин кайра жазылышын болтурбаган өзгөчөлүк. Бул өзгөчөлүктү түзөтүү учурунда жоготуу оңой, ал эми аны жоготуу өнөктөштөрдүн ортосундагы трафик иштеп жаткандай көрүнөт, бирок анын жооптору кызыктай жол менен жүрөт.

Эгер эсептегичтер нөлдө токтоп калса, пакеттер бул эрежеге эч качан жетпейт жана дарек учурдагы маселе эмес. Чынжырда эртеректеги атаандаш эрежени издеңиз, бул бирөө түпнусканы түзөтүүнүн ордуна алмаштыргыч кошкондо болот. Эреже номерлерин бир мүнөт мурун жазып алган чыгарылыш менен салыштырыңыз. Тартип конфигурациянын бөлүгү, кооздук деталы эмес.

Булакты алмаштырыңыз, же аны атоону токтотуңуз

Хосттун туруктуу дареги болсо, дагы бирөөнү кошуунун ордуна эрежени ордунда алмаштырыңыз. Эреже номери боюнча алмаштыруу чынжырдын калган бөлүгү көз каранды болгон тартипти сактайт.

sudo iptables -t nat -R POSTROUTING 1 -s 10.8.0.0/24 ! -d 10.8.0.0/24 -j SNAT --to-source 10.151.0.40

Дарек динамикалык түрдө берилсе, эч кандай булакты атпаңыз жана ядрого чыгуу интерфейсинен учурдагыны тандоого уруксат бериңиз. Бул вариант кийинки көчүүдөн түзөтүүсүз аман өтөт, кайсы дарек колдонулганын жашыруу баасына.

sudo iptables -t nat -R POSTROUTING 1 -s 10.8.0.0/24 ! -d 10.8.0.0/24 -o eth0 -j MASQUERADE

IPv4 өткөрүп берүү башкарылуучу конфигурация аркылуу дагы эле күйүп турганын ырастаңыз, андан кийин эрежени дистрибутивдин өз механизми менен туруктуу кылыңыз. Жалгыз иштеп жаткан ядрода жасалган өзгөртүү кийинки кайра жүктөөдө кайтат, адатта эч ким өзгөртүүгө байланыштырбаган тейлөө терезесинде.

Алмаштырууну туура эмес жасоонун эки жолу

Пулду сервердин LAN дарегинин ордуна анын туннель дарегине которуу жоопторду түз туннелге кайтарат, ал жерде алар эч качан сурабаган клиентке карай багытталат. Туташуу маршруттоо илмегине окшош түрдө токтойт, анткени ал чындыгында илмек.

Эскинин үстүнө экинчи которууну каттоо — экинчи ката. Биринчи дал келген эреже жеңет, ошондуктан эскирген жазуу жок кылынганга чейин пакеттерди иштете берет, ал эми жаңы эреженин эсептегичтери нөлдө калат, бирок баары алмаштыргычты күнөөлөйт. Жаңы нерсе кошпой туруп көчүрмөнү жок кылыңыз. Андан кийин тизмени дагы бир жолу окуп, пулга так бир которуу дал келерин ырастаңыз.

Эгер туннель IPv6 да ташыса, бүт кароону экинчи стекте кайталаңыз. Которуусуз жана багытталган префикссиз IPv6 демейки маршруту ошондой эле үнсүз ишке ашпайт, жана аны унутуу оңой, анткени анын үстүндөгүнүн баары бирдей көрүнөт.

Кирүүчү кызматтарга тескери которуу керек

VPN клиентиндеги сырттан жеткиликтүү болушу керек кызмат жарамдуулуктун которуусун талап кылат, булактыкын эмес: коомдук порт кирээрден мурун клиенттин туннель дарегине кайра жазылат. Андан кийин өткөрүп берүү жолуна ошол трафикке уруксат берген ачык эреже керек.

sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 10.9.8.2:8080

Туннелдин өзүн ташыган портту эч качан которбоңуз, анткени бул кайра жазуу кызматты жеткиликтүү кармап турган туташууну үзөт. Туннель портун дайындоо эрежелеринен толук тышкары кармаңыз. Аягында эки тараптан текшериңиз: жаңы эрежедеги эсептегичтер, туннель түзмөгүндө кыска жазуу жана коомдук даректи сынаардан мурун туннелдин ичиндеги дарекке бир суроо.

Тектеш макалалар