Her fener, fenerin kendisinin nerede olduğu dışında her diğer eş hakkında bir konağa bilgi verebilir. Overlay var olmadan önce bir şeyin bilinmesi gerekir ve Nebula o şeyi küçük bir haritaya koyar. Harita, bir overlay kimliğini sıradan ağda çalışan bir adresle eşler. Sonradan öğrenilen her şey bu eşlemenin doğru olmasına bağlıdır.

İki görevli iki adres

Her Nebula konağı, cihaz ağlar arasında gezinirken sabit kalan bir overlay adresine sahiptir. Bu adres, sertifikaların, güvenlik duvarı kurallarının ve eş ilişkilerinin kullandığı kimliktir ve tek başına hiçbir yere yönlendirme yapmaz. Erişilebilir uç nokta başka bir şeydir: alttaki ağda bir konak adı veya adres artı bir UDP portu ve makine konum değiştirdiğinde değişir. Statik harita ikisi arasındaki birleşimdir.

Haritaya yalnızca soğuk çevrilmesi gereken konaklar girer, bu da genellikle fenerler ve belki bir aktarıcı anlamına gelir. Bu listeyi kısa tutmak bir tasarım hedefidir, çünkü her el ile girilen kayıt birinin bakımını yapması gereken bir olguya dönüşür. İki adres türünü karıştırmak olağan yapılandırma hatasıdır: fener listesine konan genel bir adres keşfi başlatmaz.

Kimlik, kimliğin beklendiği yere gider. Erişilebilirlik haritaya gider.

static_host_map:
  "10.42.0.1": ["lighthouse-01.example.net:4242"]

lighthouse:
  am_lighthouse: false
  hosts:
    - "10.42.0.1"

Bir harita girdisinin anatomisi

Anahtar, tırnak içinde dize olarak yazılan overlay adresidir ve değer bir uç nokta listesidir, böylece bir kimliğin birden çok girişi olabilir. Her uç nokta bir konak ve bir port taşır ve port karşı tarafın gerçekte dinlediğiyle eşleşmelidir. Nebula'nın varsayılanı UDP 4242'dir; bu bir başlangıç noktasıdır, dağıtımınız hakkında bir söz değildir.

Bir fenerin içeri giren birden çok yolu olduğunda birden çok uç nokta yararlıdır; örneğin genel bir adres ve aynı segmentteki konaklar için özel bir adres. İstemci bunları sırayla dener, bu yüzden en güvenilir olanı başa koyun. IPv6 için portu eklemeden önce adresi köşeli parantez içine alın; bunu yanlış yapmak yanlış satırı gösteren bir ayrıştırma hatası üretir.

Yanlış port hata yerine sessizlik üretir, çünkü UDP'nin reddedecek bir el sıkışması yoktur. Bu yüzden girdi biçimini belleğe değil, Nebula static_host_map başvurusuna göre kontrol etmeye değer. Başvuru uç nokta listelerini ve DNS yenileme davranışını da kapsar.

Önyükleme overlay'den önce çalışmalı

Haritadaki bir DNS adı, herhangi bir tünel var olmadan önce konağın sahip olduğu çözümleyici üzerinden çözülmelidir, yani olağan sistem çözümleyicisi. Bunu aynı makineden, açılışta, overlay durdurulmuşken test edin. Yalnızca overlay'in kendi DNS'i üzerinden çözülen bir ad, overlay'i önyükleyemez. Aynı test yol için de geçerlidir: overlay'e izin verip ilk UDP alışverişine izin vermeyen bir güvenlik duvarı kuralı ilk paketi engeller.

Portu açık olduğunu varsaymak yerine bir UDP aracıyla denetleyin. Yoldaki herhangi bir port yönlendirmesinin doğru iç konağı hedeflediğini ve bir dönüş yolu bulunduğunu doğrulayın. Konak adı birden çok adrese çözülüyorsa her birini test edin, çünkü istemci hiç denetlemediğiniz bir adresi seçebilir.

Statik girdiler doğrudan çevrilir ve hiçbir zaman bir fenere danışmaz. Bu yüzden buradaki hata, hiçbir eşin karışmadığı sıradan bir zaman aşımı gibi görünür.

İlk el sıkışmadan sonra ne olur

Bir konak bir fenere ulaştığında, daha fazla el ile girdi olmadan eşleri ve onların erişilebilir adreslerini öğrenir. Son bağlantıdan bu yana yer değiştiren konaklar o kanal üzerinden keşfedilebilir hale gelir. Bu, el ile yazılan haritayı küçük tutmanın ödülüdür.

Konaklar kendi ek erişilebilir adreslerini de duyurabilir, ve böylece bilinen bir genel adresin arkasındaki eş başkalarının onu bulmasına yardım eder. Bu duyurular öğrenilir, statik haritaya yazılmaz.

Yenileme davranışı, DNS adı olarak yazılan uç noktalar için önemlidir, çünkü çözülen adres süreç çalışmaya devam ederken değişebilir. Nebula ayarları bu aramaların nasıl yapıldığını, hangi çözümleyicinin kullanıldığını da denetler, bu yüzden sistem varsayılanını varsaymak yerine onları okuyun. Tünel açıldığında çözümleyicisi değişen bir konakta yanlış ayar, çalışan bir önyüklemeyi oturumun ortasında çözülmeyi bırakan bir ada dönüştürebilir. Aramayı kararlı bir çözümleyiciye sabitlemek çoğu zaman güvenilir bir overlay ile kesintili olan arasındaki farktır.

Keşif çalışıp bir eş çalışmadığında

Fenerler erişilebilirse ve eşlerin çoğu bağlanıyorsa önyükleme sorun değildir. Kalan çift ya birbirine kullanılabilir bir yol bulamaz ya da erişilebilirliğin üzerinde başarısız olur. Fener adresinin bir başka yazımını eklemek iki durumdan hiçbirini onarmaz.

Diğer her şeyin zaten dayandığı haritayı düzenlemeden önce çifti denetleyin. Harita değişikliği her konağı rahatsız eder, bu yüzden en son dokunulacak şeydir, ilk değil.

Aynı otoritenin sertifikalarıyla başlayın, çünkü reddedilen bir el sıkışma uzaktan erişilemeyen bir eş gibi görünebilir. Ardından çiftin doğrudan bir yol kurup kuramadığını ve doğrudan trafiği reddeden ağlar için bir aktarıcı yapılandırılmış olup olmadığını denetleyin. Aktarıcı bir atlama ve bir bağımlılık ekler, ama desteklenen bir yanıttır ve çiftin yolunu onarmak keşfi onarmaktan farklı bir iştir.

İlgili makaleler