Simetrik NAT ve VPN: etiketi değil, eşlemeyi ölçün
Uç noktaya bağlı eşleme, eşler arası keşfi etkiler, normal bir istemciden sunucuya tüneli değil. Bağlantı noktasını ölçün ve doğrudan yol başarısız olursa bir aktarıcı kullanın.
Bir destek başlığı “simetrik NAT, VPN burada çalışmayacak” hükmüyle biter ve ardından istemci sebepsiz yere üç kez yeniden kurulur. Etiket zarar verir çünkü kimsenin sormadığı bir soruyu yanıtlar. Sabit bir sunucuya dışa doğru bağlanan istemci, ilk paketi gönderdiği anda bir eşleme oluşturur ve yanıtın geri dönmesine neredeyse her ağın uyguladığı kurallar çerçevesinde izin verilir. Uç noktaya bağlı eşlemenin gerçekten zorlaştırdığı şey, iki eşin aynı anda birbirine ulaşmaya çalışmasıdır ve bu başka bir testtir.
Tek bir etiketin arkasında iki soru saklıdır
İlk soru, bu ağın arkasındaki bir ana bilgisayarın bilinen bir genel adres ve bağlantı noktasına oturum açıp açamayacağıdır. Bir tünel istemcisi için bu olağan durumdur ve yanıt neredeyse her zaman evettir. Yönlendirici iç kaynağı kaydeder, bir dış bağlantı noktası tahsis eder ve yanıtı geçirir çünkü yanıt içeriden başlayan bir oturuma aittir.
İkinci soru, farklı ağların arkasındaki iki ana bilgisayarın ortada bir sunucu olmadan ortak bir yol bulup birbirine gönderip gönderemeyeceğidir. Bu, her ağın o dış bağlantı noktalarını nasıl tahsis ettiğine bağlıdır ve eşleme davranışının önemli olduğu tek yer burasıdır.
İkisini karıştırmak klasik yanlış tanıyı üretir: eşler arası bir özellik başarısız olur, biri bir NAT türü testi çalıştırır, en kötü kategoriyi görür ve sıradan tünelin de çalışamayacağı sonucuna varır. Başarısız olan hiçbir zaman tünel değildi.
Eşleme ve filtreleme ayrı özelliklerdir
RFC terminolojisi satıcıların kullandığı adlardan daha kesindir ve tartışmaları bitirdiği için bilete taşımaya değer. Eşleme, dış bağlantı noktasının nasıl tahsis edildiğidir. Filtreleme, hangi gelen paketlerin geçmesine izin verildiğidir. Bir ağ birinde katı, diğerinde serbest olabilir ve eşler arası bir protokolün atlatması gereken tam olarak bu birleşimdir.
| Behaviour | What it means | Effect on a direct peer path |
|---|---|---|
| Endpoint-independent mapping | One external port for every destination | Discovery works if the port is advertised |
| Address-dependent mapping | New port per remote address | Works only if both sides probe the same pair |
| Address-and-port-dependent | New port per remote address and port | Usually needs a relay |
Üçüncü satır, çoğu tüketici yönlendiricisinin ve mobil operatörün simetrik derken kastettiği şeydir. Etiketin yalnızca tahsisi tanımladığına dikkat edin. Böyle bir eşleme ve serbest filtrelemeye sahip bir ağ, az önce tahsis ettiği bağlantı noktasına gelen paketleri yine de kabul edebilir, bu yüzden delik delme bazılarında başarılı olur, bazılarında olmaz.
Filtrelemenin kendi üç durumu ve her biri için kendi adı vardır. “Adres ve bağlantı noktasına bağlı filtreleme” kastedilirken bilete “simetrik NAT” yazmak, bir sonraki kişiyi kılavuzun yanlış bölümüne gönderir. İkisi testte farklı davranır, bu yüzden hata akademik değildir.
Ad vermek yerine eşlemeyi ölçün
Tahsis edilen bağlantı noktasını, denetlediğiniz herhangi bir UDP hizmetinin sunucu tarafından doğrudan gözlemleyebilirsiniz. Genel ana bilgisayarda bir yakalama başlatın, istemciden gönderin ve paketin geldiği kaynak bağlantı noktasını okuyun:
sudo tcpdump -ni eth0 -c 10 'udp port 51820'
sudo wg show wg0 endpoints
sudo conntrack -L -p udp --dport 51820
Uç nokta satırı üçü arasında en yararlı olanıdır, çünkü WireGuard her eşten aldığı son adresi ve bağlantı noktasını kaydeder. O bağlantı noktasını istemcinin kullandığını düşündüğü bağlantı noktasıyla karşılaştırın. Herhangi bir çeviri olduğunda farklı olacaklar ve önemli soru değerin kararlı kalıp kalmadığıdır.
Gözlemi ikinci bir hedef bağlantı noktasına veya ikinci bir sunucuya karşı yineleyin ve tekrar karşılaştırın. Dış bağlantı noktası hedefe göre değişiyorsa eşleme adrese ve bağlantı noktasına bağlıdır. Aynı kalıyorsa ağ size tek bir eşleme verir ve keşfin bir şansı vardır.
STUN tabanlı araçlar aynı sınıflandırmayı tek adımda bildirir ve ağ genel bir STUN sunucusuna giden UDP’ye izin verdiğinde kullanılabilirler. İzin vermediğinde, yukarıdaki yakalama yöntemi hâlâ çalışır ve hâlihazırda denetlediğiniz bir ana bilgisayardan başka bir şey gerektirmez.
Arızaya uyan bir düzeltme seçin
Başarısız özellik eşler arası ise desteklenen yanıtlar bir aktarıcı, iki eşin de ulaşabildiği bir buluşma hizmeti veya farklı bir topolojidir. TURN tam bunun için vardır ve kendi aktarıcısını getiren bir ürün size bazı ağların düşmanca olmasını beklediğini söyler.
Başarısız özellik sıradan bir tünel ise eşleme davranışı sizin sorununuz değildir ve yukarıdakilerin hiçbiri geçerli değildir. İstemcinin gerçekten gönderdiğini, sunucunun paketi gördüğünü ve yanıtın geri geldiğini doğrulayın. Bu sıra üç gözlemdir ve yönlendiricinin NAT kategorisi hakkında hiçbir şey bilmeyi gerektirmez.
İşe yaramayan şey, bir şey bağlanana kadar yerel bağlantı noktası değişikliklerini dağıtmaktır. İstemcinin kaynak bağlantı noktasını değiştirmek, ağın eşlemeleri nasıl tahsis ettiğini değiştirmez. Beşinci denemede rastlantısal başarı yanlış bir pozitiftir ve aylarca çözüm olarak alıntılanır.
Yargıyı değil mimariyi kaydedin
Yararlı bir not hangi protokolün, oturumun hangi yönde başladığını, yolda bir aktarıcı olup olmadığını ve tel üzerinde ne gözlemlendiğini söyler. “simetrik NAT, çalışmıyor” kullanılamaz, çünkü aynı anda tünel hakkında yanlıştır ve eşin yolu hakkında bilgi vermez.
Test ettiyseniz ölçülen bağlantı noktası kararlılığını ve filtreleme davranışını ekleyin. Bu iki olgu başkasının tüm soruşturmayı yinelemeden yeni bir özelliğin o ağda çalışıp çalışmayacağını öngörmesini sağlar. Her yardım sayfasında biraz farklı anlama gelen bir satıcı kategorisinden daha iyi yaşlanırlar.
Son olarak, bunu yazarken RFC 4787 terminolojisini elinizin altında bulundurun. Kesin terimleri kullanmak tek bir cümleye mal olur ve bir sonraki okuyucunun aynı yanlış tanıyı yinelemesini önler, notu yazmanın bütün amacı da budur.