Docker hovuz üst-üstə düşmə xətası VPN marşrut problemi deyil
Bir xəta ayırma zamanı, digəri marşrut dəyişdikdən sonra baş verir. Konteyner ünvanlarına və ya tunelə toxunmadan əvvəl IPAM alt şəbəkələrini oxuyun.
Docker bu ünvan məkanında hovuzun digəri ilə üst-üstə düşdüyü mesajı ilə şəbəkə yaratmaqdan imtina edir və kimsə VPN marşrutunun səbəb olduğuna qərar verir. Ola bilməz. Bu xəta hovuz ayrılarkən, hələ bir dənə də paket yoxkən yaranır və əl ilə yazılmış kernel marşrutunun ona heç bir aidiyyəti yoxdur. VPN bir addım sonra, artıq ünvanı olan konteyner marşrut peyda olduqdan sonra əlçatmaz olduqda önəm kəsb edir. İki problem, iki sübut dəsti və onları qarışdırmaq heç birini düzəltməyən dəyişiklik yaradır.
Oxşar görünən iki xəta
Ayırma xətası arifmetikdir. Docker istədiyiniz alt şəbəkəni artıq idarə etdiyi alt şəbəkələrlə müqayisə edir, kəsişmə tapır və imtina edir. Hələ heç nə işləmir, ona görə də marşrut, konteyner və yoxlanılacaq trafik yoxdur.
İşləmə zamanı simptomu əlçatanlıq sualıdır. Dünən cavab verən konteyner indi cavab vermir və hostun marşrut cədvəlində nəsə dəyişib. Konteyner hələ də öz ünvanını saxlayır; sual bu ünvanın hansı yolla getdiyidir.
Hər ikisi ünvan planı problemidir. Yalnız biri Docker problemidir.
Əvvəlcə ayrılmış hovuzları oxuyun
Şəbəkələri siyahıya alın və kəsişə biləcəkləri yoxlayın. Alt şəbəkə IPAM konfiqurasiyasında yaşayır, qoşulmuş konteynerlər isə ayrıca göstərilir:
docker network ls
docker network inspect EXISTING_NETWORK
Həmin alt şəbəkəni yeni şəbəkənin tələb etdiyi hovuzla müqayisə edin və unutmayın ki, Compose hər layihə üçün öz standart şəbəkəsini yaradır. Unutduğunuz bir layihə ilə toqquşma daemonla toqquşmaya tam bənzəyir.
Xidmətdəki statik ipv4_address bir konteynerin ünvanıdır, hovuz təyini deyil. Onu dəyişmək üst-üstə düşməni aradan qaldırmır, çünki üst-üstə düşmə konteynerlər arasında deyil, şəbəkə alt şəbəkələri arasındadır. Docker şəbəkə yaratma sənədi adi körpü ayrılması üçün üst-üstə düşməyən alt şəbəkələr tələb edir və birini açıq şəkildə necə seçməyi sənədləşdirir.
VPN-dən keçib qalan prefiks seçin
Yaxın toqquşma və gələcək marşrut eyni seçimlə həll olunur, ona görə də bir dəfə edin. Namizəd diapazonu LAN ilə, hostun çata bildiyi hər VPN təyinatı ilə və istifadədə olan hər hansı digər overlay ilə müqayisə edin.
Docker-i qane edən və uzaq şəbəkə ilə toqquşan prefiks sizə təmiz başlayan və tunel qalxdığı anda əlçatmaz olan konteyner verir. Bu, bu məqalədəki ikinci xətadır və sonradan diaqnostika etmək indi ondan çəkinməkdən qat-qat çətindir.
Seçilmiş diapazonları növbəti layihənin oxuya biləcəyi yerə yazın. Ayrılmış prefikslərin bir sətirlik reyestri izahsız fasilələrin bir həftəsindən ucuzdur.
Şəbəkəni qəsdən ləğv edin və ya dəyişin
Yeni Compose şəbəkəsi üçün istifadə olunmayan prefiksi şəbəkənin IPAM konfiqurasiyasında təyin edin. Mövcud layihə üçün yenidən nömrələməni planlaşdırın: sabit ünvanlar, asılı xidmətlər və şəbəkənin yenidən yaradılması addımı nəzərə alınmalıdır, çünki YAML redaktə etmək işləyən şəbəkəni yenidən nömrələmir.
Əgər toqquşan ayırma köhnə şəbəkəyə aiddirsə, onu silməzdən əvvəl kimin qoşulduğunu yoxlayın. Aktiv son nöqtələr mövcud olduqda docker network rm imtina edir və docker stop şəbəkə adı deyil, konteyner adları və ya ID-ləri qəbul edir. Konteyneri dayandırmaq da hovuzu saxlayan şəbəkə təyinatını silmir.
Geniş prune diaqnostika aləti deyil. O, əlaqəsiz layihələrə çatır və toplamaq üzrə olduğunuz sübutları məhv edir.
Standart hovuzlar yalnız növbəti ayırmaya kömək edir
Daemon-un standart ünvan hovuzu parametri gələcək avtomatik ayırmaları saxladığınız diapazonlardan kənarda saxlayaraq yaxşılaşdırır. O, artıq mövcud olan şəbəkələri geriyə dönük yenidən ünvanlamır və başqa açıq alt şəbəkə ilə üst-üstə düşən açıq alt şəbəkəni həll etmir.
Bu parametrə öz yenidən işə salınması olan ayrıca, planlaşdırılmış dəyişiklik kimi yanaşın, bir layihənin təmirinin hissəsi kimi deyil. İkisini qarışdırmaq daemon yenidən işə salınmasının əlaqəsiz bir araşdırmanın ortasına düşməsi deməkdir. Onu öz pəncərəsində planlaşdırın. Sonra bir yeni avtomatik ayırmanın həqiqətən saxladığınız diapazonlardan kənarda olduğunu təsdiqləyin.
Yaradılma uğurlu olduqdan sonra həqiqətən işləyən alt şəbəkəni yoxlayın və sonra VPN təyin olunmuş vəziyyətdə ikən bir real tətbiq sorğusu edin. Əgər hovuz etibarlıdır və giriş hələ də uğursuz olursa, qalan iş marşrut seçimi, filtrləmə və qayıdış yoludur. Bu, işləmə zamanı araşdırmasıdır və ayırma xətasını geriyə dönük mənasız etmir.
İş qaydası: ayrılmış hovuzları oxuyun, həm Docker-dən, həm VPN təyinatlarından yan keçən prefiks seçin, şəbəkəni qəsdən yenidən yaradın, sonra tunel qalxmış halda bir sorğu sınayın.