Marşrut cədvəli ZeroTier interfeysi üzərindən standart marşrut göstərir, şəbəkə onlayn görünür, amma brauzer yenə də yerli ISP ünvanından çıxır. Bu birləşmə geniş yayılıb və bu, müştəri səhvi deyil. Standart marşrut yalnız paketlərin hara getməli olduğunu deyir; o biri tərəfdə onları yönləndirən və çevirən bir şey olmalıdır. Çıxış qovşağının işləməsi üçün üç ayrı hissə doğru olmalıdır.

Marşrut var, amma heç nə çıxmır

Əvvəlcə müştərinin marşrut cədvəlini yoxlayın. default via 10.147.20.5 dev zt0 kimi bir sətir marşrutun quraşdırıldığını sübut edir, hədəfin trafiki qəbul edəcəyini yox. Növbəti hop onu yönləndirməyə həvəsli və qadir olan üzv olmalıdır.

Əgər eyni sorğu hələ də fiziki interfeysdən çıxırsa, müştəri marşrutu quraşdırmayıb, ya da onu yerli standart marşruta uduzan metrika ilə quraşdırıb. Marşrut quraşdırıldıqdan sonra sorğu yox olursa, çıxış üzvü paketləri alır, lakin onları yönləndirə və ya çevirə bilmir. Fiziki standart marşrutu saxlayan müştəri çıxışa ümumiyyətlə heç bir paket göndərmir.

Bu fərq harada işləməyi müəyyən edir. Dəyişiklikdən əvvəl və sonra ictimai ünvanı müqayisə etmək heç vaxt istifadə olunmamış marşrutu istifadə olunub atılmış marşrutdan ayırır və bütün konfiqurasiyanın nəzərdən keçirilməsi əvəzinə bir əmr tələb edir. Müqayisəni başqa heç nəyi dəyişməzdən əvvəl edin ki, hər iki nəticə eyni başlanğıc vəziyyətindən gəlsin.

Hamısı doğru olmalı olan üç hissə

Çıxış bir zəncirdir və ən zəif halqa simptomu müəyyən edir. Aşağıdakı cədvəl halqaları adətən uğursuz olduqları sıra ilə sadalayır.

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

Birinci sətir seçim adının gizlətdiyi sətirdir. Üzv yalnız o zaman çıxış olur ki, onun nüvəsi paketləri ZeroTier interfeysi ilə internetə baxan interfeys arasında yönləndirsin və cavab yolu tunelə geri çevrilsin. Bu yönləndirmə olmadan üzv şlüz deyil, bərabər tərəfdir.

Nəzarətçi sətri icazədir, konfiqurasiya deyil. 0.0.0.0/0-i bir üzv vasitəsilə elan etmək hər müştəriyə çıxışın harada olduğunu bildirir; bu, həmin üzvü trafiki daşımağa qadir etmir. O, həmçinin üzvün internetə işlək yolu olduğunu təsdiqləmir. ZeroTier-in çıxış qovşağı sənədləri qovşaq, marşrut və müştəri arasındakı eyni bölgünü əhatə edir.

Çıxış qovşağını yönləndirmə və çevirmə üçün qurun

IPv4 yönləndirməsini davamlı olaraq aktivləşdirin, sonra WAN interfeysindən çıxan trafik üçün mənbə NAT əlavə edin. Filtre qaydaları yönləndirilmiş axına hər iki istiqamətdə icazə verməlidir, çünki yönləndirmə və çevirmə icazədən ayrıdır:

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 və eth0-i hostdakı adlarla əvəz edin; nümunə interfeys üçün saxlanmış qayda real interfeysdə paketləri izləmir. Dəyişiklikləri qaydalara sahib olan firewall meneceri vasitəsilə davamlı edin, çünki interaktiv qabıqdakı əmr növbəti yenidən başlatmada yox olur.

Əgər hostda UFW və ya firewalld kimi firewall meneceri işləyirsə, qaydaları onun yanında iptables sətirləri yığmaq əvəzinə həmin menecer vasitəsilə əlavə edin. Eyni zəncirləri redaktə edən iki sahib yükləmə sırasından asılı siyasət yaradır. Menecer öz zəncirlərini yaradanda sıra vacibdir. Meneceri yenidən yüklədikdən sonra müştəridən sınaq keçirin, əvvəl deyil.

Marşrutu elan edin və müştəridə qəbul edin

Şəbəkə nəzarətçisində 0.0.0.0/0 üçün idarə olunan marşrut əlavə edin, onun növbəti hopu çıxış üzvünün ZeroTier ünvanı olsun. Sonra ondan istifadə etməli olan üzvdə həmin şəbəkə üçün ləğvetməyə icazə verin. İcazə lokaldır: digər üzvləri yenidən konfiqurasiya etmir və nəzarətçini dəyişmir.

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

Son əmr ZeroTier interfeysini və çıxış üzvünün ünvanını göstərməlidir. Əgər hələ də fiziki interfeysi göstərirsə, marşrut yoxdur və ya rəqib standart marşrutun daha yaxşı metriki var.

Ayarları yalnız ona ehtiyacı olan şəbəkə ilə məhdudlaşdırın. Standart marşrut qəbulunu qlobal olaraq və ya yalnız şəxsi alt şəbəkə təmin etməli olan şəbəkədə aktivləşdirmək trafiki heç vaxt onun üçün ölçülməmiş çıxışdan keçirir.

Çıxışı yoxlayın və digər ünvan ailələrini nəzərdən keçirin

Mənbəni bildirən bir xidmətdən ictimai ünvan istəyin və onu çıxış qovşağının WAN ünvanı ilə müqayisə edin. Sonra DNS-in hələ də həll etdiyini təsdiqləmək üçün adlı sayt yükləyin və yalnız brauzer deyil, vacib olan bir tətbiqi sınaqdan keçirin.

İki yığımlı müştəri öz yerli IPv6 yolunu istifadə etməyə davam edə bilər, halbuki IPv4 ZeroTier üzərindən çıxır. Məqsəd bütün trafiki gizlətmək və ya idarə etməkdirsə, ayrı ::/0 marşrutu və çıxışda IPv6 yönləndirməsi lazımdır, IPv4 testi isə onlar haqqında heç nə demir.

Linux tərs yol filtrləməsi müştəridə etibarlı çıxış trafikini də ata bilər. ZeroTier iştirakçı üzvlər üçün rp_filter mülahizəsini sənədləşdirir; bu ayarı yalnız marşrut və NAT təsdiqləndikdən sonra qəsdən dəyişin, ilk təcrübə kimi deyil.

Tələb NAS-a və ya bir ofis alt şəbəkəsinə çıxışdırsa, həmin prefiks üçün idarə olunan marşrut tam çıxışdan daha kiçik və təhlükəsiz dəyişiklikdir. Bütün gəzintini başqa cihazdan keçirmək bir şəxsi resursa çatmaqdan fərqli qərardır və ayrıca baxışa layiqdir.

Əlaqəli məqalələr