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