Маршрут таблицасы 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 ордуна хосттогу аттарды коюңуз; үлгү интерфейси үчүн сакталган эреже чыныгы интерфейсте пакеттерди ээрчибейт. Өзгөртүүлөрдү эрежелерге ээ 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ка же бир кеңсе ички тармагына жетүү болсо, ошол префикс үчүн башкарылуучу маршрут толук чыгуудан кичирээк жана коопсуз өзгөртүү. Бардык серептөөнү башка түзмөк аркылуу өткөрүү бир жеке ресурска жетүүдөн башка чечим жана ал өзүнчө кароого татыктуу.

Тектеш макалалар