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

Эмне үчүн түзмөктөрдү хостко багыттоо ишке ашпайт

Алыскы тармакка даректөөлүү пакетти алган хост ошол учурда роутер болуп калат, аны кимдир бирөө ошентип конфигурациялаганбы же жокпу, баары бир. Багыттоо Linux жана Windowsто демейки боюнча өчүк, эгер аны кандайдыр бир функция күйгүзбөсө. Даректерди которуу маанилүү, анткени алыскы тарап жоопторду кайда жөнөтүүнү билиши керек, ал эми жеке LAN дареги ага эч нерсени билдирбейт. Кайтуу маршруту үчүнчү бөлүк, жана биринчи ping ийгиликтүү көрүнгөндө адамдар унутуп калган да ушул.

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

Хостто багыттоону жана даректерди которууну күйгүзүңүз

Туташкан хосттогу эки өзгөртүү алгачкы эки бөлүктү камтыйт: IPv4 багыттоосун күйгүзүңүз жана LAN трафигин туннелдин интерфейсине которуңуз.

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

sysctl маанисин /etc/sysctl.d астындагы файлга сактаңыз жана кайра жүктөөдөн кийин masquerade эрежесин кайра текшериңиз, анткени брандмауэрдин алдыңкы бөлүктөрү ыңгайлаштырылган чынжырларды тазалашы мүмкүн. Windowsто бөлүшүү функциясы эки кадамды тең аткарат, бирок ал LAN адаптерин туруктуу ички тармакка кайра даректөөйт жана анын шлюзун өчүрөт, бул статикалык даректөөнү жана портторду багыттоону бузат. Бөлүшүү ишке ашпады деген жыйынтыкка келүүдөн мурун роутердин хостко болгон жолун анын жаңы дарегинде калыбына келтириңиз. Андан кийин экинчи түзмөк трафик жөнөтүп жатканда эреженин эсептегичтеринин өсүшүн байкаңыз.

LAN тармагына кайра жүктөөлөргө чыдаган жол бериңиз

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

ip route add 10.8.0.0/24 via 192.168.1.20 dev eth0

Кардардын демейки шлюзун хостко багыттоо анын бардык трафигин хост аркылуу өткөрөт, анын ичинде жергиликтүү басып чыгаруу жана файл бөлүшүү, ошондуктан хост уктап калганда байланышсыз нерселер токтойт. Роутерде алыскы префикс үчүн конкреттүү маршрут кошуу тарыраак: туннелдин артындагы багыттар гана туташкан машинага барат, ал эми LANдын калганы иштей берет. Жогорудагы ички тармактар мисал гана, ошондуктан аларды өзүңүздүн LAN жана туннел диапазондоруңуз менен алмаштырыңыз. Кандай болбосун, туннел күйүк жана андан кийин өчүк абалда экинчи түзмөктөн сынап көрүңүз.

Туннелди күнөөлөөдөн мурун MTUга көңүл буруңуз

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

ping -M do -s 1400 10.8.0.5

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

Бир кошумча түзмөк үчүн хосттон бөлүшүү жетиштүү. Үй-бүлө үчүн маршрутту роутерге коюңуз. Ноутбук сиз менен кеткенде да кирүү сакталышы керек болсо, туннелдин өзү өзүнчө шлюзга тиешелүү.

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