NAT Geçişi Nasıl Çalışır (2020)
(tailscale.com)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.