Mac VPN үчүн туруктуу маршруттар: networksetup же туташуу hook?
Ар бир кайра туташуудан кийин киргизилген маршрут саясат эмес. Префикстин VPN кызматына, убактылуу тестке же сүйлөшүүдөн кийин гана белгилүү болгон даректер үчүн hookко таандык экендигин чечиңиз.
Ар бир туташуудан кийин киргизилген маршрут учурду чечет, жуманы эмес. macOSте туруктуу тандоо адатта VPN кызматы менен бирге сакталган префикс, анткени кызмат аны ар бир туташууда кайра орнотот жана кызмат өчүк болгондо алып салат. Альтернативалар — тесттөө үчүн убактылуу route add жана сүйлөшүүдөн кийин гана белгилүү болгон даректер үчүн туташуу hook.
Маршрут кызматка же сессияга таандык экендигин чечиңиз
Префикс эмнеге көз каранды экенин сураңыз. Эгер ал жергиликтүү VPN кызматынын артындагы туруктуу жеке тармак болсо, маршрут ошол кызматка таандык. Эгер ал ар бир туташууда өзгөрүүчү өнөктөш дарегине көз каранды болсо, hook же абал менен башкарылуучу иш жакшыраак ээ болушу мүмкүн. Эгер сиз кийинки беш мүнөткө гана жолду текшерсеңиз, убактылуу маршрут жетиштүү.
Кызматка байланган маршруттун жашоо цикли эң таза. Ал кызмат менен пайда болот жана кызмат туташпаганда жоголот, ошондуктан көрсөткөн туннелден узак жашай албайт. Бул касиет бир сап буйруктун ыңгайлуулугунан кымбат.
Сессияга байланган маршрут интерфейске таандык жана бул сан эскертүүсүз өзгөрөт. Кайра туташуу туннелге мурунку сессия колдонгондон башка utun атын бериши мүмкүн, бул катуу коддолгон буйрукту эч нерсени көрсөтпөгөн же, андан жаманы, башка туннелди көрсөткөн маршрутка айландырат.
Учурдагы маршрут жана кызмат абалын окуңуз
Система чындап колдонгон аттардан баштаңыз. Тармак жөндөөлөрүндөгү кызмат аты төмөнкү буйруктар үчүн идентификатор, ал эми учурдагы маршруттар таблицасы туташкан кардар эмнени орнотконун көрсөтөт. Туннел иштеп турганда экөөнү тең окуңуз.
scutil --nc list
networksetup -listnetworkserviceorder
netstat -rn | head -30
route get 10.20.5.5
Бул издөө ядро ушул дарек үчүн ушул учурда кайсы шлюз жана интерфейсти тандаарын көрсөтөт. Эгер ал буга чейин туннелди тандаса, префикс жабылган жана жаңы маршрут ашыкча болмок. Эгер ал жергиликтүү маршрутизаторду тандаса, туннелде ошол префикс жок.
Туташкан убакта өнөктөш дарегин белгилеп кой. Ал кызматка байланган маршрутта шлюз маанисине айланат жана адатта netstat -rn ичинде туннелдин демейки маршруту үчүн көрсөтүлгөн барар жер.
Префиксти networksetup менен сактаңыз
networksetup куралы тармак кызматына кошумча маршруттарды тиркейт. OfficeVPN аталган кызмат жана туннелдин өнөктөшү аркылуу жетүүчү жеке префикс үчүн форма:
sudo networksetup -setadditionalroutes OfficeVPN 10.20.0.0 255.255.0.0 10.8.0.6
networksetup -getadditionalroutes OfficeVPN
Кызмат атынан кийинки ар бир үчтүк барар жерди, анын тармактык маскасын жана шлюз катары туннелдин өнөктөшүн берет. Бир чакыруу бир нече префиксти алып жүрүшү мүмкүн, ал эми бош чакыруу сакталган тизмени тазалайт. Окугуч текшерүү кадамы; эгер тизме бош болсо, жөндөө сиз ойлогон кызматка колдонулган эмес.
Шлюз туннелдин өнөктөшү болушу керек, физикалык маршрутизатор эмес. Жергиликтүү шлюзду атаган маршрут жеке префиксти физикалык интерфейстен сыртка жөнөтөт, бул кошумча кадамдар менен баштапкы ката. Эскирген өнөктөш — туура көрүнгөн маршруттун эч качан трафик ташыбашынын эң кеңири тараган себеби. Эски жазуудан даректи көчүрүүнүн ордуна өнөктөштү туташкан абалдан кайра окуңуз.
route add командасын тестке гана колдонуңуз
Түз маршрут префикстин иштээрин туруктуу кылганга чейин далилдөө үчүн пайдалуу. Интерфейс формасы шлюз издөөдөн качат:
sudo route -n add -net 10.20.0.0/16 -interface utun4
Маршрут кийинки кайра туташууда жоголот жана бүгүн бар интерфейс номерине көз каранды. Бул аны диагностика кылат, жайылтуу эмес. Эгер тест иштеп, кызматка байланган маршрут иштебесе, адегенде шлюз маанисин салыштырыңыз; эң көп ката кеткен талаа — ошол.
VPNдин демейки маршрутун бөлүүнү мажбурлоо үчүн алмаштырган кеңештерден этиет болуңуз. Толук туннелди мажбурлаган кардар кайра туташуудан же саясат жаңыргандан кийин өз маршруттарын кайра орнотушу мүмкүн, ошондуктан кол менен жасалган өзгөртүү үнсүз жокко чыгарылат. Бир аз жеке префикс — маршруттоо маселеси; толук туннел саясатына каршы бардык интернет трафигин жергиликтүү кармоо — сервер тараптагы чечим.
Hookту дарек сүйлөшүлгөндө гана тандаңыз
PPP негизиндеги байланыштар үчүн, мисалы L2TP, macOS байланыш түзүлгөндөн кийин /etc/ppp/ip-up аткарат. Скрипт интерфейс атын жана сүйлөшүлгөн жергиликтүү жана алыскы даректерди алат, ошондуктан сервер бөлгөн өнөктөшкө көз каранды маршрут кошо алат. Бул туруктуу кызмат маршруту билдире албаган так ушундай учур.
IKEv2 жана өндүрүүчүлөрдүн кардарлары бул PPP жолун такыр колдонбошу мүмкүн, башкача айтканда скрипт бүт сессия бою үнсүз калышы мүмкүн. Ушундай болгондо, scutil --nc status сураган жана абал өзгөрүүсүнө жооп берген launchd иши барабар механизм болуп саналат, аздыр-көптүр кечигүү менен.
Кайсы hook колдонсоңуз да, аны идемпотенттүү кылыңыз жана ал өзү түзгөн маршруттарды гана алып салсын. Туннелди эскерген ар бир маршрутту жок кылган скрипт акыры VPN серверин жеткиликтүү кармап турган маршрутту да жок кылат, жана байланыш ийгиликтүү болгон замат үзүлөт.
Жеке барар жерди, кадимки серептөөнү жана кайра туташуу же уйку цилин текшерип бүтүрүңүз. Андан кийин scutil --dns текшериңиз, анткени аттарды чечүү өзүнчө саясат жана иштеген маршрут жеке аттар чечилерин далилдебейт.