Dizüstü bilgisayarda çalışan bir profil telefonda başarısız olur. Akla yatkın adım, istemci yapılandırmasında tek bir sözcüğü değiştirmektir. O sözcük işe yaramaz, çünkü iki uç aynı tür trafikten söz etmiyor.

TAP Ethernet çerçevelerini taşır. TUN IP paketlerini taşır. Bir Android VPN uygulamasına IP arayüzü verilir ve bu, yapılandırma ne derse desin, iki düzenlemeden birini olası, diğerini olanaksız kılar.

Karşılaştırma kısa, ama bunu telefonda düzeltebileceğinize mi yoksa hizmeti değiştirmeniz mi gerektiğine karar verir.

Farklı yük taşıyan iki tünel türü

TAP arayüzü bir Ethernet bağdaştırıcısı gibi davranır. Çerçeveleri taşır, yani ARP, yayın ve bir LAN'ın IP altında taşıdığı her şeyi. Köprülemeyi olanaklı kılan budur: tünel bir yayın alanını genişletir ve istemciler bir anahtara bağlanmış gibi davranır.

TUN arayüzü kendisine adreslenmiş IP paketlerini taşır. Müzakere edilecek bir bağlantı katmanı, ARP ve yayın yoktur. Tünele neyin gireceğine yönlendirme karar verir ve sunucu tarafındaki yapılandırma köprü yerine bir alt ağ kullanır.

İki uç, bu ikisinden hangisini yaptıkları konusunda anlaşmalıdır. Bir tarafta dev tap yerine dev tun koymak hizmeti dönüştürmez; yönlendirilmiş bir tünel bekleyen istemci ve hâlâ çerçeve gönderen sunucu oluşur, el sıkışma başarılı olabilir ama kullanılabilir hiçbir şey geçmez.

Android uygulamaya gerçekte ne verir

Platformun VpnService API'si bir uygulamaya IP paketleri için sanal bir arayüz verir; adresler, rotalar ve MTU ile yapılandırılır. O API'de Ethernet bağdaştırıcısı yoktur ve uygulama bir tane uyduramaz.

Bu yüzden OpenVPN Connect, Android'de TAP köprüleme yerine yönlendirilmiş TUN bağlantıları için destek belgeler. Android SSS bu sınırın istemci tarafındaki ifadesidir ve platform API'siyle uyuşur.

Root yetkili ağ araçları, özel bellenim veya açık bir çeviri katmanı uygulayan bir ürün başka düzenlemelerdir. Olağan durum planlanması gereken durumdur: dosyanızı içe aktarabilen ve normal bir kullanıcı olarak çalışabilen bir uygulama, bir IP arayüzüyle ve altında hiçbir şey olmadan.

Yine de denediğinizde nasıl görünür

Bağlantı genellikle kurulur. Hatayı kafa karıştırıcı yapan budur: istemci bağlı olduğunu bildirir, sunucu günlüğü bir eş gösterir ve hiçbir uygulama çalışmaz.

Telefona atanan adrese gönderilen trafik ulaşmaz, çünkü sunucu çerçeveleri telefonun hiç sahip olmadığı bir MAC adresine köprüler. Yayına bağlı keşif boş kalır. LAN köprü üzerinden DHCP'ye güveniyorsa telefon bu yolla kira alamaz ve köprülü alt ağda elle atanan adres de eksik arayüzü yine oluşturmaz.

Bazı istemciler daha erken, profil içe aktarımında başarısız olur; uygulayamadıkları bir aygıt türü gördüklerinde. İki davranış da aynı anlama gelir ve hiçbiri rota eklemek, DNS değiştirmek veya tünelin adres aralığını genişletmekle düzelmez.

Sunucu tarafı neyi değiştirmeli

Düzeltme VPN hizmetini işletenindir ve genellikle göç değil eklemedir. Yönlendirilmiş bir aygıt, kendi istemci alt ağı ve adres atayıp telefonların gereksindiği rotaları iten sunucu tarafı yapılandırmayla ikinci bir OpenVPN örneği çalıştırın. Var olan köprülü örnek, Ethernet'e gerçekten gereksinim duyan aygıtlara hizmet etmeyi sürdürür.

İki ayrıntı bunu pratikte çalışır kılar. LAN'ın yeni istemci alt ağı için VPN makinesine bakan bir dönüş rotasına gereksinimi vardır, yoksa yanıtlar hiç geri dönmez. Ve tünel makinesindeki güvenlik duvarı tünel arayüzü ile LAN arasında iletmelidir; makinenin kendisinden yapılan bir test başarılı olduğunda en çok atlanan adım budur.

İşletmeci bir hizmet ekleyemiyorsa alternatif, köprüye katılabilecek bir aygıttır, yani telefon adına çalışan bir dizüstü bilgisayar veya yönlendirici. Bu, kendi yönetim maliyeti olan bir geçici çözümdür, Android yapılandırması değil.

Tünele değil, uygulamaya göre karar verin

Telefonun gerçekte neye ulaşması gerektiğini sorun ve sonra bunu haritalayın. Ad veya adresle ulaşılan bir dosya paylaşımı ya da intranet sitesi bir IP gereksinimidir ve DNS adı çözüp rota var olduğunda yönlendirilmiş tünel bunu karşılar. Yerel yayın alanını tarayan bir keşif aracı IP gereksinimi değildir ve hiçbir yönlendirme miktarı onu doldurmaz.

RequirementTunnel that satisfies it
File server or intranet by hostnameRouted TUN, with working DNS
Broadcast or ARP-based discoveryEthernet bridging, so not an ordinary Android client
Multicast deliveryBridging or an explicit multicast relay
One application to one addressRouted TUN, narrowest possible route

O tablo aynı zamanda gönderilecek istektir. Uygulamayı, kullandığı adresi veya adı ve keşfe bağlı olup olmadığını belirtin. İşletmeci o tanıma göre hareket edebilir; bağlanmayan bir telefon için bunu kimse yapamaz.

Son olarak, her istemciyi LAN bağdaştırıcısını taklit etmeye zorlamak yerine gereksinim duyan aygıtlar için TAP hizmetini koruyun. Amaçları belirgin iki hizmeti desteklemek, herkes için yarım çalışan bir hizmetten kolaydır.

İlgili makaleler