ZeroTier мүшесі арқылы кеңседегі жергілікті желідегі принтерге жету бір ереже сияқты естіледі, бірақ шын мәнінде бұл үш түрлі жердегі үш шешім. Қабаттасқан желі жергілікті желінің қайда екенін білуі керек, Linux хосты пакеттерді жіберуге дайын болуы керек, ал жергілікті желі жауапты қалай қайтаруды білуі керек. Шлюзде порт ашатын кіріс ережесі бұлардың ешқайсысына қатысты емес. Бұл дұрыс хостқа салынған дұрыс емес құрал.

Үш жұмыс, үш иесі

Басқарылатын маршрут ZeroTier желісінің конфигурациясына жатады. Ол мүшелерге префикстің белгілі бір мүше мекенжайы арқылы қолжетімді екенін хабарлайды.

Жіберу Linux ядросына және оның желілік қорғаныс саясатын иеленушіге жатады. Ол қабаттасқан желіге келген пакеттің физикалық интерфейстен қайта шығатынын шешеді. Жібермейтін хост пакетті қабылдағаннан кейін оны үнсіз тастайды. Жіберуші уақыттың бітуін көреді, ал қызмет журналында ештеңе көрінбейді.

Қайту жолы жергілікті желіге жатады. Оның хосттары мен маршрутизаторы қабаттасқан желі префиксінің шлюзіңіздің жергілікті мекенжайы арқылы қолжетімді екенін білуі керек, әйтпесе бұл сұрақ туындамас үшін бірдеңе трафикті түрлендіруі керек.

Осылардың әрқайсысы дұрыс болып, қалғандары сәтсіз аяқталуы мүмкін, сондықтан тек шлюзді пингтейтін сынақ оның артындағы қызмет туралы ештеңе дәлелдемейді.

Басқарылатын маршрутты мүшеге бағыттаңыз

Керек жергілікті префикс үшін маршрутты шлюздің қабаттасқан мекенжайы арқылы қосыңыз, оның жергілікті мекенжайы арқылы емес. Қабаттасқан мекенжай — басқа мүшелер жете алатын мекенжай; жергілікті мекенжай тек сымда ғана мағынаға ие.

Шешім жұмыс істеуі үшін мүшелер басқарылатын маршруттарды қабылдауы керек, ал олардың өз жергілікті желілері сіз жариялаған префиксті бұрыннан қолданбауы керек. Үйде 192.168.60.0/24 желісінде тұрған қашықтағы ноутбук та 192.168.60.0/24-ті қабаттасқан желі арқылы маршруттай алмайды.

Жарияланған префиксті тапсырма рұқсат еткенінше тар ұстаңыз. Артықшылыққа әсер ету үшін үлкенірек агрегатты жариялау сізге тиесілі емес мекенжай кеңістігін де талап етуі мүмкін, ал туындаған қайшылық екі желіге де қосылған құрылғыларда көрінеді. Бұл сондай-ақ мүшені ешқайда апармайтын жолды таңдауға итермелеуі мүмкін. Маршрутты адал ұстаңыз, қалғанын саясат жасасын.

Префикс пен мүше мекенжайын желілік қорғаныс ережелерімен бірге сол жазбаға жазыңыз, өйткені ең жиі кездесетін ақау — қате мүшеге бағытталған маршрут.

Ядрода транзитті қосыңыз

Бірдеңені өзгертудің алдында ағымдағы жіберу мәнін оқыңыз, содан кейін параметрді қайта жүктеуде жоғалатын бір реттік пәрменмен емес, жүйеңіз бұрыннан қолданатын тетік арқылы тұрақты етіңіз.

Егер саясат UFW-ге тиесілі болса, оның маршрут ережелері дереккөз, межелі орын және интерфейс жұбы үшін жіберуді білдіреді. Олар шлюздің өзінде қызмет ашатын кіріс ережелерінен бөлек:

sysctl net.ipv4.ip_forward
sudo ufw route allow in on zt3f2a1c9d out on eth0 proto tcp to 192.168.60.20 port 443
sudo ufw status verbose

Интерфейс атауы — сол хосттағы нақты қабаттасқан құрылғы, оны ip link арқылы оқуға болады; бұл барлық орнатуларда бірдей бекітілген жол емес. Егер хост әдепкі бойынша жіберсе және UFW жолда болмаса, маршрут ережесі еленбейді және ядро параметрлері маңызды болады.

Жауаптардың қалай қайтатынын таңдаңыз

Дереккөзді сақтау кезінде жергілікті желі қызметі нақты қабаттасқан мекенжайды көреді және соған жауап береді. Бұл жергілікті хостта немесе оның маршрутизаторында қабаттасқан префиксті сіздің шлюзіңізге бағыттайтын маршрутты қажет етеді, ал бұл Linux жәшігінен тыс өзгеріс.

Бұл маршрутты қосу мүмкін болмағанда, шектелген дереккөз аудармасы сұранысты жергілікті желідегі шлюзден келгендей көрсетеді. Сонда жауаптар жергілікті түрде қайтады және жергілікті желі маршруттамасын өзгерту қажет емес, бірақ қызмет журналдарында бастапқы дереккөз жоғалады.

Аударманы қабаттасқан дереккөзбен және нақты жергілікті межелі орынмен шектеңіз. Жергілікті интерфейстен шығатынның бәрін аудару — бұл кең нұсқа, ол кейін ережелерді оқыған әркімді таңқалдырады, сонымен қатар бұғатталуы тиіс трафикті де жасырады.

Екі нұсқаның ешқайсысы жергілікті желіден ерікті қабаттасқан мүшелерге сұралмаған қатынас бермейді. Егер бұл қажет болса, ол өз қарауы бар бөлек ереже.

Нақты мүшеден сынаңыз

Шлюзден емес, басқа мүшеден қосылып, рұқсат етілген бір қызметті сұраңыз. Содан кейін жабық қалуы тиіс қызметті байқап көріңіз және екі сынақты қайта қосылғаннан кейін және шлюзді қайта жүктегеннен кейін қайталаңыз.

ONLINE туралы хабарлайтын мүше немесе шлюздің қабаттасқан мекенжайына сәтті пинг маршрутты, жіберу ережесін немесе қайту жолын растамайды:

zerotier-cli listnetworks
ip -4 route get 192.168.60.20
sudo ufw status numbered

Екінші пәрмен пакеттің жергілікті хостқа қай интерфейспен баратынын көрсетеді, ал үшіншісі маршрут ережесінің сіз ойлаған пішінде бар-жоғын көрсетеді. Егер екеуі де дұрыс көрінсе де қызмет әлі де уақыт бітірумен аяқталса, қалған күдікті — қайту жолы.

Қатысты мақалалар