ZeroTier шығу түйіні жұмыс істемей ме? Маршрутты, NAT-ты және клиентті тексеріңіз
Клиенттегі 0.0.0.0/0 маршруты әлі шығу емес. Түйін жіберіп, түрлендіруі керек, желі маршрутты жариялауы керек, ал клиент оны қабылдауы керек.
Маршрут кестесі ZeroTier интерфейсі арқылы әдепкі маршрутты көрсетеді, желі онлайн деп хабарлайды, бірақ шолғыш әлі де жергілікті ISP мекенжайынан шығады. Бұл тіркес жиі кездеседі және бұл клиенттің қатесі емес. Әдепкі маршрут тек пакеттер қайда баруы керегін айтады; екінші ұшта оларды жіберіп, түрлендіретін нәрсе болуы керек. Шығу түйіні жұмыс істеуі үшін үш бөлек бөлік дұрыс болуы керек.
Маршрут бар, бірақ ештеңе шықпайды
Алдымен клиенттің маршрут кестесін тексеріңіз. default via 10.147.20.5 dev zt0 сияқты жол маршруттың орнатылғанын дәлелдейді, ал мақсаттың трафикті қабылдайтынын емес. Келесі секіріс оны жіберуге дайын және қабілетті мүше болуы керек.
Егер сол сұраныс әлі де физикалық интерфейстен шығып жатса, клиент маршрутты орнатпаған, немесе оны жергілікті әдепкіден ұтылған метрикамен орнатқан. Маршрут орнатылғаннан кейін сұраныс жоғалса, шығу мүшесі пакеттерді алып, оларды жіберуге немесе түрлендіруге қабілетсіз. Физикалық әдепкіні сақтайтын клиент шығуға мүлде пакет жібермейді.
Бұл айырмашылық қайда жұмыс істеу керегін шешеді. Өзгеріс алдында және кейін жария мекенжайды салыстыру ешқашан қолданылмаған маршрутты қолданылып, тасталғаннан ажыратады және бүкіл конфигурацияны қарап шығудың орнына бір команданы қажет етеді. Басқа нәрсені өзгертуден бұрын салыстыруды жасаңыз, екі нәтиже де бір бастапқы күйден келсін.
Барлығы дұрыс болуы керек үш бөлік
Шығу — тізбек, ал әлсіз буын симптомды анықтайды. Төмендегі кесте буындарды әдетте сәтсіздікке ұшырайтын ретпен тізімдейді.
| Part | Where it lives | What a failure looks like |
|---|---|---|
| Forwarding and NAT | Exit node kernel and firewall | Traffic arrives, no reply |
| Managed default route | ZeroTier network controller | No default via the tunnel on the member |
| Client acceptance | Member's per-network setting | Route offered but not installed |
| DNS behavior | Client resolver configuration | Pages fail by name, IP works |
Бірінші жол — опция атауы жасыратын жол. Мүше оның ядросы ZeroTier интерфейсі мен интернетке қараған интерфейс арасында пакеттерді жібергенде және жауап жолы туннельге кері түрлендірілгенде ғана шығу болады. Бұл жіберусіз мүше серіктес, шлюз емес.
Контроллер жолы — рұқсат, конфигурация емес. 0.0.0.0/0-ні мүше арқылы жариялау әр клиентке шығудың қайда екенін айтады; бұл мүшені трафикті көтеруге қабілетті етпейді. Ол сондай-ақ мүшенің интернетке жұмыс істейтін жолы бар-жоғын тексермейді. ZeroTier-дің шығу түйіні туралы құжаттамасы түйін, маршрут және клиент арасындағы дәл осы бөліністі қамтиды.
Шығу түйінін жіберу мен түрлендіруге баптаңыз
IPv4 жіберуін тұрақты түрде қосыңыз, содан кейін WAN интерфейсінен шығатын трафик үшін бастапқы NAT қосыңыз. Сүзгі ережелері жіберілген ағынға екі бағытта да рұқсат беруі керек, өйткені жіберу мен түрлендіру рұқсаттан бөлек:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i zt0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o zt0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPTzt0 және eth0 орнына хосттағы атауларды қойыңыз; үлгі интерфейсі үшін сақталған ереже нақты интерфейсте пакеттерді бақыламайды. Өзгерістерді ережелерге ие firewall менеджері арқылы тұрақты етіңіз, өйткені интерактивті қабықтағы команда келесі қайта жүктеуде жоғалады.
Егер хост UFW немесе firewalld сияқты firewall менеджерін іске қосса, iptables жолдарын қасына қабаттаудың орнына ережелерді сол менеджер арқылы қосыңыз. Бірдей тізбектерді өңдейтін екі ие жүктелу ретіне тәуелді саясат жасайды. Менеджер өз тізбектерін жасағанда рет маңызды. Менеджерді қайта жүктегеннен кейін клиенттен сынаңыз, бұрын емес.
Маршрутты жариялаңыз және клиентте қабылдаңыз
Желі контроллерінде 0.0.0.0/0 үшін басқарылатын маршрут қосыңыз, оның келесі секірісі шығу мүшесінің ZeroTier мекенжайы болсын. Содан кейін оны пайдалануы керек мүшеде сол желі үшін қайта анықтауға рұқсат беріңіз. Рұқсат жергілікті: ол басқа мүшелерді қайта конфигурацияламайды және контроллерді өзгертпейді.
zerotier-cli listnetworks
zerotier-cli set <network-id> allowDefault=1
ip route get 1.1.1.1Соңғы команда ZeroTier интерфейсін және шығу мүшесінің мекенжайын хабарлауы керек. Егер ол әлі физикалық интерфейсті хабарласа, маршрут жоқ немесе бәсекелес әдепкінің метрикасы жақсырақ.
Баптауды оған мұқтаж желімен шектеңіз. Әдепкі маршрутты қабылдауды жаһандық түрде немесе тек жеке ішкі желі беретін желіде қосу трафикті ол үшін ешқашан өлшенбеген шығу арқылы жібереді.
Шығуды тексеріңіз және басқа мекенжай отбасыларын қараңыз
Көзді хабарлайтын қызметтен жария мекенжай сұраңыз және оны шығу түйінінің WAN мекенжайымен салыстырыңыз. Содан кейін DNS әлі шешетінін растау үшін атауы бар сайтты жүктеңіз және тек шолғыш емес, маңызды қосымшаны сынаңыз.
Қос стекті клиент IPv4 ZeroTier арқылы шығып жатқанда өзінің табиғи IPv6 жолын пайдалануды жалғастыра алады. Мақсат барлық трафикті жасыру немесе бақылау болса, жеке ::/0 маршруты және шығуда IPv6 жіберуі қажет, ал IPv4 сынағы олар туралы ештеңе айтпайды.
Linux-тің кері жол сүзгісі клиентте жарамды шығу трафигін де тастай алады. ZeroTier қатысушы мүшелер үшін rp_filter туралы ескертуді құжаттайды; бұл баптауды әдейі және маршрут пен NAT расталғаннан кейін ғана өзгертіңіз, бірінші тәжірибе ретінде емес.
Талап NAS-қа немесе бір кеңсе ішкі желісіне қатынас болса, сол префикс үшін басқарылатын маршрут толық шығудан кішірек және қауіпсіз өзгеріс. Барлық шолуды басқа құрылғы арқылы өткізу бір жеке ресурсқа жетуден өзгеше шешім және ол жеке қарауды қажет етеді.