Destek bileti geliyor: uygulama bir adres gösteriyor, sunucu ise başka bir adres kaydetmiş, sonra hangisinin yalan söylediği soruluyor. İkisi de yalan söylemiyor; bunlar iki farklı şeyin iki gözlemi. Bir arayüze bağlı adres, bir sokete bağlı adres ve uzak bir hizmetin gördüğü kaynak adres, üç ayrı soruyu yanıtlar. VPN telefona bir ağ bağlamı ekler ve bu üçünü tüm cihaz için tek bir sayıya indirgemez. Adresleri okumadan önce biletteki alan adlarını okuyun.

Bilet genellikle neyi anlatır

Wi-Fi üzerinde tüneli açık bir telefon düşünün. Wi-Fi arayüzü bir LAN adresi taşır, tünel arayüzü atanmış bir iç adres taşır ve tünelden çıkan bir istek, yoldaki herhangi bir çeviriden sağ çıkan kaynaktan bir genel hizmete ulaşır. İç adresi yazdıran uygulama ile çevrilmiş kaynağı kaydeden sunucu ikisi de doğru rapor verir ve bu iki değer hiçbir zaman eşleşmez.

Üç gözlem yalnızca neyi betimledikleriyle değil, neyi kanıtlayabildikleriyle de ayrılır.

ObservationWhat it describesWhat it cannot prove
An address on a local interfaceOne configured attachment: Wi-Fi, cellular or a tunnelThe source a remote site receives
A socket's local endpointThe binding used by that one connectionThe address after translation further along
The peer address at a serviceWhat arrived at that observation pointAny other interface on the phone

O tabloyu bu değerleri bilete dolduran kodun yanında tutun, çünkü buradaki karışıklığın çoğu ağ arızası değil sütun karışıklığıdır.

Bir soket çağrısı neyi yanıtlayabilir, neyi yanıtlayamaz

API düzeyinde getsockname, şu anda belirli bir sokete bağlı yerel uç noktayı bildirir. Bağlı bir soket için bu, çekirdeğin o bağlantı için seçtiği kaynaktır ve bu herhangi bir arayüz listesinden zaten daha belirgindir. Bu bir genel adres sorgusu değildir ve bağlı olmayan bir sokette çağırmak size neredeyse hiçbir şey söylemez. Ne döndürürse döndürsün, yolda daha sonra yeniden yazılabilir, bu yüzden hizmetin ne aldığı konusunda yalnızca hizmetin kendi gözlemi yetkilidir.

Apple platformlarında arayüz tarafının ayrı bir yüzeyi vardır: tünel ayarları tünel arayüzüne atanmış adresleri listeler. Bunları okumak tünelin nasıl yapılandırıldığını söyler ve belirli bir isteğin hangi yolu izlediğini söylemez, çünkü yönlendirme ve uygulama başına kurallar bunu her bağlantı için belirler.

Bölünmüş tünel bu açığı görünür kılar. Bir istek tünelden çıkabilirken bir sonraki, farklı bir hedefe veya adres ailesine yönelen istek çıkmayabilir, bu yüzden aynı uygulamanın saniyeler arayla verdiği iki sonuç dürüst ve farklı olabilir.

Soruna uyan gözlemi seçin

Her şeyi ölçmek yerine bilinçli seçin. Arka ucun gördüğü şey için kaynağı arka uçta günlüğe kaydedin ve önde bir ters vekil sunucu varsa istemci adresini istemcinin gönderdiği herhangi bir şeyden değil, dağıtımınızın gerçekten ayarladığı yönlendirme başlığından okuyun.

Tünelin yapılandırılıp yapılandırılmadığını öğrenmek için arayüzü okuyun. Bu uygulamanın trafiğinin onu kullanıp kullanmadığını öğrenmek için o uygulamadan denetlediğiniz bir hedefe trafik gönderin ve kaynağı iki uçta karşılaştırın.

Uygulama başına kurallar kendi cümlesini hak eder. Bir tarayıcı sonucu o tarayıcı hakkında kanıttır ve yönetilen uygulama başına tünel aynı telefonda iki uygulamayı aynı anda ayrı yollara koyabilir. Kapsamı doğrulamak, söz konusu uygulamadan söz konusu adres ailesinde trafik göndermek demektir.

Arayüz adları bir dedektör değildir

Arayüz adını VPN denetimi olarak da kullanmayın. Adlar kamuya açık bir sözleşme değildir ve telefonda birkaç bağlantı olabilirken bunlardan yalnızca biri isteğinizi taşır.

Alanı taşıdığı gözleme göre adlandırın. local_interface_address, socket_local_endpoint ve service_observed_source hantal ve belirsizlikten uzaktır ve değer bir hafta sonra bir destek biletine girdiğinde istediğiniz şey tam da bu belirsizlikten uzaklıktır. device IP adlı tek bir sütun üçünü birden toplar ve sonra tek bir şeymiş gibi güvenilir.

Kimliği adres sütununun dışında tutun

Paylaşılan bir VPN çıkışı kullanıcı kimliği değildir ve özel bir adres erişim kanıtı değildir. İkisi de kişiyi değil bir yolu betimler ve herhangi birini kimlik doğrulama olarak görmek bir yönlendirme kazasını yetkilendirme kararına dönüştürür.

Biri telefonun hangi adresi taşıdığını sorduğunda yararlı yanıt, hangi bağlantı ve hangi gözlemci sorusudur. getsockname tanımı orta durum için alıntılanmaya değer, çünkü soket sorusunu çözer ve diğer ikisini çözdüğünü iddia etmez.

Sonra ürününüzün üçünden hangisini gerçekten göstermesi gerektiğini yazın ve diğer ikisini arayüzden silin.

İlgili makaleler