Табела рута показује подразумевану руту кроз 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, затим додајте изворни NAT за саобраћај који напушта WAN интерфејс. Правила филтера морају да дозволе прослеђени ток у оба смера, јер су прослеђивање и превођење одвојени од дозволе:

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 још увек разрешава, и тестирајте једну важну апликацију, а не само прегледач.

Клијент са дуплим стеком може да настави да користи своју изворну IPv6 путању док IPv4 излази кроз ZeroTier. Ако је циљ да се сакрије или контролише сав саобраћај, потребни су одвојена ::/0 рута и прослеђивање IPv6 на излазу, а IPv4 тест не говори ништа о њима.

Обрнуто филтрирање путање у Linux-у такође може да одбаци валидан излазни саобраћај на клијенту. ZeroTier документује разматрање rp_filter за чланове који учествују; мењајте то подешавање свесно и само након што су рута и NAT потврђени, не као први експеримент.

Ако је захтев приступ NAS-у или једној канцеларијској подмрежи, управљана рута за тај префикс је мања и безбеднија промена од потпуног излаза. Слање целог прегледања кроз други уређај је другачија одлука од достизања једног приватног ресурса и заслужује одвојен преглед.

Повезани чланци