Docker, bu adres uzayında pool'un başka biriyle çakıştığı mesajıyla ağ oluşturmayı reddeder ve birisi bunun nedeni olarak VPN rotasını gösterir. Olamaz. Bu hata, bir pool ayrılırken, tek bir paket bile yokken üretilir ve elle yazılmış bir çekirdek rotasının buna hiçbir etkisi yoktur. VPN bir adım sonra önem kazanır; zaten adresi olan bir konteyner, bir rota ortaya çıktıktan sonra erişilemez hale gelir. İki sorun, iki kanıt kümesi ve bunları karıştırmak ikisini de düzeltmeyen bir değişiklik üretir.

Birbirine benzeyen iki hata

Ayırma hatası aritmetiktir. Docker istediğiniz alt ağı hâlihazırda yönettiği alt ağlarla karşılaştırır, bir kesişim bulur ve reddeder. Henüz hiçbir şey çalışmıyor, bu yüzden ne rota ne konteyner ne de incelenecek trafik var.

Çalışma zamanı belirtisi bir erişilebilirlik sorusudur. Dün yanıt veren bir konteyner şimdi yanıt vermiyor ve ana makinenin yönlendirme tablosunda bir şey değişti. Konteyner adresini hâlâ koruyor; soru, o adresin hangi yolu izlediğidir.

İkisi de adres planı sorunudur. Yalnızca biri Docker sorunudur.

Önce ayrılmış pool'ları okuyun

Ağları listeleyin ve kesişebilecek olanları inceleyin. Alt ağ IPAM yapılandırmasında yaşar ve bağlı konteynerler ayrı olarak listelenir:

docker network ls
docker network inspect EXISTING_NETWORK

Bu alt ağı yeni ağın istediği pool ile karşılaştırın ve Compose'un her proje için kendi varsayılan ağını oluşturduğunu unutmayın. Unuttuğunuz bir projeyle çakışma, daemon'la çakışmayla tamamen aynı görünür.

Bir hizmetteki statik ipv4_address tek bir konteynerin adresidir, pool tanımı değildir. Onu değiştirmek çakışmayı ortadan kaldırmaz, çünkü çakışma konteynerler arasında değil ağ alt ağları arasındadır. Docker'ın network-create başvurusu olağan köprü ayırması için çakışmayan alt ağlar ister ve birini açıkça nasıl seçeceğinizi belgeler.

VPN'i atlatan bir ön ek seçin

Anlık çakışma ve gelecekteki rota aynı seçimle belirlenir, bu yüzden bir kez yapın. Aday aralığı LAN ile, ana makinenin ulaşabildiği her VPN hedefiyle ve kullanımdaki diğer herhangi bir overlay ile karşılaştırın.

Docker'ı memnun edip uzak ağla çakışan bir ön ek, size temiz başlayan ve tünel kalktığı anda erişilemez hale gelen bir konteyner verir. Bu, bu makaledeki ikinci hatadır ve sonradan teşhis etmek şimdi kaçınmaktan çok daha zordur.

Seçilen aralıkları bir sonraki projenin okuyabileceği bir yere yazın. Ayrılmış ön eklerin tek satırlık kaydı, açıklanamayan bir haftalık zaman aşımlarından daha ucuzdur.

Bir ağı bilerek devre dışı bırakın veya değiştirin

Yeni bir Compose ağı için kullanılmayan ön eki ağın IPAM yapılandırmasına ayarlayın. Mevcut bir proje için yeniden numaralandırmayı planlayın: sabit adresler, bağımlı hizmetler ve ağın yeniden oluşturulması adımı hesaba katılmalıdır, çünkü YAML düzenlemek çalışan bir ağı yeniden numaralandırmaz.

Çakışan ayırma eski bir ağa aitse, onu kaldırmadan önce kimin bağlı olduğunu inceleyin. docker network rm etkin endpoint'ler varken reddeder ve docker stop ağ adı yerine konteyner adlarını veya ID'lerini alır. Bir konteyneri durdurmak da pool'u tutan ağ tanımını kaldırmaz.

Geniş bir prune tanı aracı değildir. İlgisiz projelere ulaşır ve toplamak üzere olduğunuz kanıtları yok eder.

Varsayılan pool'lar yalnızca sonraki ayırmaya yardımcı olur

Daemon'ın varsayılan adres pool ayarı, gelecekteki otomatik ayırmaları ayırdığınız aralıkların dışında tutarak iyileştirir. Mevcut ağlara geriye dönük olarak yeni adresler vermez ve başka bir açık alt ağla çakışan açık bir alt ağı çözmez.

Bu ayarı kendi yeniden başlatması olan ayrı ve planlı bir değişiklik olarak ele alın, bir projenin onarımının parçası olarak değil. İkisini karıştırmak, daemon yeniden başlatmasının ilgisiz bir soruşturmanın ortasına düşmesi demektir. Kendi penceresinde planlayın. Ardından yeni bir otomatik ayırmanın gerçekten ayırdığınız aralıkların dışına düştüğünü doğrulayın.

Oluşturma başarılı olduğunda, gerçekten çalışan alt ağı doğrulayın ve ardından VPN amaçlanan durumdayken gerçek bir uygulama isteği yapın. Pool geçerliyse ve erişim hâlâ başarısızsa, kalan iş rota seçimi, filtreleme ve dönüş yoludur. Bu bir çalışma zamanı soruşturmasıdır ve ayırma hatasını geriye dönük olarak anlamsız kılmaz.

İş sırası: ayrılmış pool'ları okuyun, hem Docker'ı hem de VPN hedeflerini atlayan bir ön ek seçin, ağı bilerek yeniden oluşturun, ardından tünel açıkken bir isteği test edin.

İlgili makaleler