Маршрутын хүснэгт ZeroTier интерфэйсээр дамжуулсан анхдагч маршрутыг харуулж, сүлжээ онлай гэж мэдээлж байгаа ч хөтөч локал ISP хаягаас гарсаар байна. Энэ хослол нийтлэг бөгөөд энэ нь клиентийн алдаа биш. Анхдагч маршрут нь пакетууд хаашаа явахыг л хэлдэг; нөгөө талд нь тэдгээрийг дамжуулж, хөрвүүлэх зүйл байх ёстой. Гарах зангилаа ажиллахын өмнө гурван тусдаа хэсэг зөв байх ёстой.

Маршрут байгаа ч юу ч гарахгүй байна

Эхлээд клиентийн маршрутын хүснэгтийг шалгана уу. default via 10.147.20.5 dev zt0 шиг мөр нь маршрут суулгасан гэдгийг нотолж байгаа бөгөөд хүрэх цэг трафикийг хүлээн авахыг биш. Дараагийн үсрэлт нь түүнийг дамжуулахад бэлэн, чадвартай гишүүн байх ёстой.

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

Энэ ялгаа нь хаана ажиллахыг тодорхойлно. Өөрчлөлтийн өмнө болон дараа нийтийн хаягыг харьцуулах нь хэзээ ч ашиглагдаагүй маршрутыг ашиглагдаж хаягдсан маршрутаас ялгаж, бүх тохиргоог хянахын оронд нэг командыг шаарддаг. Өөр зүйлийг өөрчлөхөөс өмнө харьцуулалтыг хий, хоёр үр дүн нэг эхлэлийн байдлаас гарсан байх ёстой.

Бүгд зөв байх ёстой гурван хэсэг

Гарах нь гинжин хэлхээ бөгөөд хамгийн сул холбоос нь шинж тэмдгийг тодорхойлдог. Доорх хүснэгт холбоосуудыг ихэвчлэн бүтэлгүйтдэг дарааллаар жагсаав.

PartWhere it livesWhat a failure looks like
Forwarding and NATExit node kernel and firewallTraffic arrives, no reply
Managed default routeZeroTier network controllerNo default via the tunnel on the member
Client acceptanceMember's per-network settingRoute offered but not installed
DNS behaviorClient resolver configurationPages 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 ACCEPT

zt0 болон eth0-г хостын нэрээр солино уу; жишээ интерфэйст зориулж хадгалсан дүрэм бодит интерфэйс дээр пакетыг дагадаггүй. Өөрчлөлтийг дүрмийг эзэмшдэг галт ханын менежерээр дамжуулан байнгын болго, учир нь интерактив бүрхүүл дэх команд дараагийн дахин ачаалалтад алга болдог.

Хэрэв хост UFW эсвэл firewalld зэрэг галт ханын менежер ажиллуулж байвал, хажууд нь 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 эсвэл нэг оффисын дэд сүлжээнд нэвтрэх бол тэр угтварт зориулсан удирдлагатай маршрут нь бүрэн гарахаас жижиг, аюулгүй өөрчлөлт юм. Бүх хөтөлбөрийг өөр төхөөрөмжөөр дамжуулах нь нэг хувийн нөөцөд хүрэхээс өөр шийдвэр бөгөөд тусдаа хяналт хүртэх ёстой.

Холбоотой нийтлэлүүд