Ipinapakita ng talahanayan ng ruta ang default na ruta sa pamamagitan ng interface ng ZeroTier, nag-uulat ang network na online, at lumalabas pa rin ang browser sa lokal na address ng ISP. Karaniwan ang kombinasyong iyon at hindi ito bug sa kliyente. Ang default na ruta ay nagsasabi lamang kung saan dapat pumunta ang mga packet; kailangang may mag-forward at mag-translate sa kanila sa kabilang dulo. Tatlong magkakahiwalay na bahagi ang dapat totoo bago gumana ang exit node.

May ruta pero walang lumalabas

Suriin muna ang talahanayan ng ruta ng kliyente. Ang linyang tulad ng default via 10.147.20.5 dev zt0 ay nagpapatunay na na-install ang ruta, hindi na tatanggapin ng destinasyon ang trapiko. Ang susunod na hop ay dapat miyembrong handa at kayang i-forward ito.

Kung ang parehong kahilingan ay lumalabas pa rin sa pisikal na interface, hindi na-install ng kliyente ang ruta, o na-install ito nang may sukat na natalo sa lokal na default. Kung nawala ang kahilingan pagkatapos ma-install ang ruta, tumatanggap ng packet ang exit member at nabigo itong i-forward o i-translate. Ang kliyenteng nagpapanatili ng pisikal na default ay hindi nagpapadala ng kahit isang packet sa exit.

Ang pagkakaibang iyon ang nagtatakda kung saan magtatrabaho. Ang paghahambing ng pampublikong address bago at pagkatapos ng pagbabago ay naghihiwalay ng rutang hindi kailanman ginamit sa rutang ginamit at itinapon, at nangangailangan ito ng isang utos sa halip na pagsusuri sa buong configuration. Gawin ang paghahambing bago baguhin ang anupaman, upang ang dalawang resulta ay mula sa parehong panimulang kalagayan.

Tatlong bahagi na lahat ay dapat totoo

Ang exit ay isang kadena, at ang pinakamahinang kawing ang nagtatakda ng sintomas. Inililista ng talahanayan sa ibaba ang mga kawing sa pagkakasunod-sunod kung paano sila karaniwang nabigo.

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

Ang unang hilera ang itinatago ng pangalan ng opsyon. Nagiging exit lamang ang isang miyembro kapag ang kernel nito ay nag-forward ng packet sa pagitan ng interface ng ZeroTier at ng interface na nakaharap sa internet, at kapag ang daan ng sagot ay na-translate pabalik sa tunnel. Kung wala ang forward na iyon, ang miyembro ay kapantay, hindi gateway.

Ang hilera ng controller ay awtorisasyon, hindi configuration. Ang pagpapahayag ng 0.0.0.0/0 sa pamamagitan ng miyembro ay nagsasabi sa bawat kliyente kung nasaan ang exit; hindi nito nagagawang kayang magdala ng trapiko ang miyembrong iyon. Hindi rin nito vine-verify na may gumaganang daan ang miyembro patungo sa internet. Sinasaklaw ng dokumentasyon ng ZeroTier tungkol sa exit node ang parehong paghahati sa pagitan ng node, ruta at kliyente.

I-configure ang exit node para mag-forward at mag-translate

I-enable nang permanente ang pag-forward ng IPv4, pagkatapos idagdag ang source NAT para sa trapikong lumalabas sa interface ng WAN. Dapat pahintulutan ng mga panuntunan ng filter ang na-forward na daloy sa parehong direksyon, dahil ang pag-forward at pag-translate ay hiwalay sa pahintulot:

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

Palitan ang zt0 at eth0 ng mga pangalan sa host; ang panuntunang nai-save para sa halimbawang interface ay hindi sumusunod sa mga packet sa totoong interface. Gawing permanente ang mga pagbabago sa pamamagitan ng tagapamahala ng firewall na nagmamay-ari ng mga panuntunan, dahil ang utos sa interactive na shell ay nawawala sa susunod na reboot.

Kung ang host ay nagpapatakbo ng tagapamahala ng firewall tulad ng UFW o firewalld, idagdag ang mga panuntunan sa pamamagitan ng tagapamahala na iyon sa halip na magpatong ng mga linyang iptables sa tabi nito. Dalawang may-ari na nag-e-edit ng parehong chain ay gumagawa ng patakarang nakadepende sa pagkakasunod-sunod ng boot. Mahalaga ang pagkakasunod-sunod kapag ang tagapamahala ay bumubuo ng sarili nitong chain. Subukan mula sa kliyente pagkatapos i-reload ang tagapamahala, hindi bago.

Ipahayag ang ruta at tanggapin ito sa kliyente

Sa controller ng network, magdagdag ng pinamamahalaang ruta para sa 0.0.0.0/0 na ang susunod na hop ay ang address ng ZeroTier ng exit member. Pagkatapos, sa miyembrong dapat gumamit nito, pahintulutan ang override para sa network na iyon. Lokal ang pahintulot: hindi nito muling kino-configure ang ibang miyembro at hindi nito binabago ang controller.

zerotier-cli listnetworks
zerotier-cli set <network-id> allowDefault=1
ip route get 1.1.1.1

Dapat iulat ng huling utos ang interface ng ZeroTier at ang address ng exit member. Kung nag-uulat pa rin ito ng pisikal na interface, nawawala ang ruta o may mas magandang sukat ang katunggaling default.

Panatilihing limitado ang setting sa network na nangangailangan nito. Ang pag-enable ng pagtanggap ng default na ruta sa buong mundo, o sa network na dapat magbigay lamang ng pribadong subnet, ay nagpapadala ng trapiko sa exit na hindi kailanman dinisenyo para dito.

I-verify ang exit at tingnan ang iba pang pamilya ng address

Humiling ng pampublikong address mula sa serbisyong nag-uulat ng pinagmulan, at ihambing ito sa WAN address ng exit node. Pagkatapos, i-load ang site sa pamamagitan ng pangalan upang kumpirmahin na nagre-resolve pa rin ang DNS, at subukan ang isang mahalagang application sa halip na browser lamang.

Ang kliyenteng may dual-stack ay maaaring magpatuloy na gumamit ng sarili nitong IPv6 na daan habang lumalabas ang IPv4 sa pamamagitan ng ZeroTier. Kung ang layunin ay itago o kontrolin ang lahat ng trapiko, kailangan ang hiwalay na rutang ::/0 at pag-forward ng IPv6 sa exit, at walang sinasabi ang pagsubok ng IPv4 tungkol sa mga iyon.

Ang reverse-path filtering ng Linux ay maaari ring magtapon ng valid na trapiko ng exit sa kliyente. Dinodokumento ng ZeroTier ang pagsasaalang-alang sa rp_filter para sa mga kalahok na miyembro; baguhin ang setting na iyon nang sinasadya at pagkatapos lamang makumpirma ang ruta at NAT, hindi bilang unang eksperimento.

Kung ang pangangailangan ay access sa isang NAS o isang subnet ng opisina, ang pinamamahalaang ruta para sa prefix na iyon ay mas maliit at mas ligtas na pagbabago kaysa sa buong exit. Ang pagpapadala ng lahat ng pagba-browse sa pamamagitan ng ibang device ay ibang desisyon kaysa sa maabot ang isang pribadong resource, at karapat-dapat itong hiwalay na pagsusuri.

Kaugnay na mga artikulo