1 puan yazan GN⁺ 2025-01-06 | Henüz yorum yok. | WhatsApp'ta paylaş

NAT Geçişinin Çalışma Prensibi

  • Temel problem: İki cihaz arasında bir eşler arası (peer-to-peer) bağlantı kurma sorununu ele alır. Tailscale için hedef, WireGuard® tüneli kurmaktır. Bu teknoloji WebRTC, VoIP aramaları ve video oyunları gibi birçok alanda kullanılır.

  • UDP tabanlı protokol: NAT geçişi için UDP tabanlı bir protokol gerekir. TCP de kullanılabilir, ancak bu karmaşıklığı artırır ve çekirdeği özelleştirmeyi gerektirebilir.

  • Ağ soketine doğrudan erişim: Ağ paketlerini gönderip alan soketlerin doğrudan kontrolü gerekir. Mevcut ağ kütüphaneleriyle NAT geçişi yapılamaz.

  • Yerel proxy kullanımı: Doğrudan soket erişiminin zor olduğu durumlarda, NAT geçişi ve paket rölesi için yerel bir proxy kullanılabilir.

Güvenlik Duvarını Anlamak

  • Durum bilgisi tutan firewall: Çoğu NAT cihazında durum bilgisi tutan bir firewall bulunur ve bu geçmişte gördüğü paketleri hatırlayıp yeni paketleri işlerken kullanır.

  • UDP trafik kuralı: Firewall, daha önce gördüğü bir outbound UDP paketiyle eşleşen inbound UDP paketlerine izin verir.

  • Firewall'a karşı yaklaşım: Tüm firewall'lar aynı yönde konumlanmışsa, istemci-sunucu haberleşmesini yeniden icat etmekle aynı şeydir. Ancak iki istemcinin doğrudan iletişim kurmaya çalıştığı durumda sorun çıkar.

Firewall'ı Aşmak

  • Yeniden yapılandırmadan çözüm: Firewall'ı değiştirmeden sorunu çözebilecek bir yönteme ihtiyaç vardır. UDP paketi doğru kaynak ve hedefe sahipse, yanıt gibi görünen paketler kabul edilir.

  • Bilgi paylaşımı: Eşlerin karşı tarafın ip:port bilgisini önceden bilmesi gerekir. Bunu sağlamak için bir koordine sunucusu kullanılarak ip:port bilgileri senkronize edilir.

NAT'ın özü

  • NAT cihazı: NAT cihazları, özellikle Source NAT (SNAT) olmak üzere paketleri değiştiren bir yapıya sahiptir; birden fazla cihazın internete bağlanmasını sağlamak için kullanılır.

  • NAT keşfi: NAT cihazı paketleri değiştirdiğinden, iki eş de karşı tarafın ip:port bilgisini bilmez. NAT keşfi STUN protokolü ile desteklenir.

STUN ve NAT keşfi

  • STUN protokolü: NAT arkasındaki bir istemci, internetteki bir sunucuyla iletişim kurduğunda, sunucu NAT cihazının oluşturduğu genel ip:port bilgisine bakabilir. STUN sunucusu bu bilgiyi istemciye sağlar.

  • Sınırlamalar: STUN sadece bazı durumlarda çalışır ve özellikle NAT gateway'in bir güvenlik cihazı olarak davranması durumunda başarısız olma ihtimali yüksektir.

Ek çözümler

  • Relay kullanımı: Doğrudan bağlantı başarısız olduğunda, her iki tarafın da kesintisiz iletişim kurabilmesi için bir relay ile paketler iletilir.

  • DERP protokolü: Tailscale, verileri röle etmek ve NAT keşfini desteklemek için DERP (Detoured Encrypted Routing Protocol) kullanır.

  • Port eşleme protokolleri: UPnP IGD, NAT-PMP ve PCP gibi port eşleme protokolleri kullanılarak NAT cihazının daha uyumlu çalışması istenebilir.

Henüz yorum yok.

Henüz yorum yok.