CGNAT, internet servis sağlayıcılarının IPv4 adreslerini birden fazla aboneyle paylaşmasını sağlayan bir teknolojidir. Port yönlendirme, ev sunucuları ve bazı oyunlarda doğrudan bağlantı gerektiren servisler CGNAT nedeniyle çalışmaz. Bu yazıda CGNAT'ın ne olduğu, nasıl çalıştığı ve nasıl aşılabileceğine dair pratik çözümler detaylı şekilde açıklanıyor.
CGNAT (Carrier Grade NAT), internet servis sağlayıcılarının (İSS) birden fazla aboneye aynı genel IPv4 adresini kullanma olanağı tanıyan bir teknolojidir. Web sitelerine göz atarken, video izlerken ya da çoğu uygulamayı kullanırken kullanıcılar genellikle aradaki farkı hiç fark etmezler. Ancak, internetten gelen bağlantıları kabul etmek gerektiğinde - yani bir port açmak, ev sunucusu başlatmak, doğrudan NAS'a veya oyun sunucusuna bağlanmak istediğinizde - sorunlar başlar.
CGNAT'ın en önemli özelliği, adres çevirme işleminin sadece evdeki router'da değil, aynı zamanda sağlayıcının kendi ağında da gerçekleşmesidir. Bu nedenle kullanıcılar dış genel IP'yi doğrudan yönetemezler ve standart port yönlendirme kuralları artık işe yaramaz.
CGNAT'ın açılımı "Carrier Grade NAT" yani operatör seviyesinde NAT'tır. Mantık olarak evdeki klasik NAT ile benzer şekilde çalışır, ancak bir evdeki cihazlar yerine sağlayıcıya bağlı yüzlerce ya da binlerce abone için uygulanır.
Bu şekilde, dışarıdan bakıldığında tüm cihazlar tek bir katılımcı olarak görülür.
Klasik NAT'ta dış IPv4 adresi doğrudan kullanıcıya atanır ve router, bu adresi kullanarak gelen/giden trafiği yönetir. CGNAT ile ise bir seviye daha eklenir; evdeki router, sağlayıcıdan tam bir genel adres almaz, onun yerine operatörün ağı içinde bir iç adres alır. Sağlayıcının ekipmanları onlarca hatta yüzlerce abonenin trafiğini toplar ve internete tek bir genel IPv4 üzerinden çıkarır.
Bu iki katmanlı yapı sayesinde kullanıcı yalnızca ilk NAT'ı yönetebilir, ikinciye erişemez. Sonuç olarak, CGNAT çıkış yapan bağlantılarda neredeyse hiç hissedilmez; fakat internetten gelen giriş bağlantılarında işler değişir.
En önemli neden, IPv4 adreslerinin kıtlığıdır. IPv4'te 32 bitlik adres alanı vardır ve toplamda yaklaşık 4,3 milyar benzersiz adres olabilir. Bu adreslerin bir kısmı özel amaçlar için ayrılmıştır, kalanının da çoğu zaten dağıtılmıştır. Cihaz sayısı arttıkça, sağlayıcıların her aboneye tekil bir IPv4 vermesi teknik ve ekonomik olarak zorlaşır.
CGNAT, bir genel adresi aynı anda birçok bağlantı için kullanmaya imkân tanır. Sağlayıcı, aboneyi IP ve port (TCP/UDP) kombinasyonlarıyla ayırt eder ve her aktif bağlantı için ayrı çeviri kaydı tutar.
Uzun vadeli çözüm IPv6'dır; çok daha geniş adres alanı sunar. Ancak IPv4 halen yaygın kullanıldığından, CGNAT birçok İSS'nin altyapısında önemli bir yere sahiptir.
CGNAT'ın giriş bağlantılarına nasıl engel oluşturduğunu anlamak için, evdeki bir bilgisayardan internete yapılan tipik bir bağlantının yolunu inceleyelim.
Router, cihazdan gelen paketin lokal adresini kendi dış IP'siyle değiştirir ve geri dönüşte yanıtı ilgili cihaza iletir.
Ev router'ı kendi NAT işlemini yapar, ardından paket sağlayıcıya gider. Orada, aboneye ait iç adres ortak genel IPv4 ile değiştirilir ve trafik internete çıkar. Dışarıdan siteler, gerçek IP'niz yerine sağlayıcının ortak IP'sini görür.
Sağlayıcı cihazları her bağlantının iç IP ve portunu, karşılık geldiği dış IP ve port ile eşleştirir. Bu sayede dönüşte yanıt doğru aboneye ulaşır.
Bağlantı evden başlatıldığında bu mekanizma sorunsuz çalışır, ancak dışardan biri bağlantı kurmak isterse, sağlayıcı hangi aboneye yönlendireceğini bilemez ve bağlantı başarısız olur.
Beyaz (genel) IP adresi, doğrudan internetten erişilebilen ve bağlantınızı açıkça tanımlayan adrestir. Ev router'ınıza atanmışsa, giriş bağlantılarını kendiniz yönetebilirsiniz.
Gri IP adresi ise sadece yerel ağda veya sağlayıcı altyapısında kullanılır ve dışarıdan doğrudan erişilemez.
CGNAT için ayrılmış adres aralığı şudur:
Ev router'ınız bu aralıktan bir WAN IP aldıysa, bu adresle doğrudan internete bağlanamazsınız; dışarıya çıkarken sağlayıcının CGNAT geçidi kullanılır.
Sağlayıcılar bazen aşağıdaki özel aralıkları da kullanabilir:
WAN arayüzünde bu tür adreslerin olması, genellikle router'ın üzerinde ek bir NAT katmanı olduğu anlamına gelir.
CGNAT, klasik ev NAT'ı ile aynı temel prensiplerle çalışır, ancak operatör seviyesinde ve çok daha fazla kullanıcı için uygulanır. Daha fazla detay için NAT nedir ve neden oyunlar ile P2P sorun çıkarır? başlıklı makaleye göz atabilirsiniz.
CGNAT'ın en büyük sınırlaması, giriş bağlantılarında yaşanır. Kullanıcı kendisi web sitesi, sunucu veya servise erişmek istediğinde, bağlantı dışarıdan başlatıldığı için sorun çıkmaz. Ancak biri dışarıdan sizin cihazınıza erişmek isterse, CGNAT bu trafiği nereye göndereceğini bilemez.
Bu nedenle, port yönlendirme, P2P ağları, ev sunucuları ve bazı çok oyunculu oyunlarda doğrudan bağlantı ihtiyacı olduğunda sıkıntılar yaşanır.
Genel bir IPv4'ünüz varsa, router'da port açıp iç ağa istenen trafiği yönlendirebilirsiniz. Örneğin Minecraft sunucusu için 25565, web servisi için 443 portunu açabilirsiniz. Dışarıdan gelen istek router'a ulaşır ve port forwarding ile ilgili cihaza gider.
CGNAT'ta ise bu kural sadece ev ağınızda geçerlidir. Dışarıdan gelen istek ilk olarak sağlayıcının ortak IPv4'üne ulaşır. Bu adresin arkasında birçok abone olduğundan, kullanıcı CGNAT geçidinde port yönlendirme kuralı tanımlayamaz. Bu nedenle, router'da port yönlendirme yapsanız bile port dışarıdan açık görünmez ve bağlantı kurulamaz.
Pek çok modern oyun merkezi sunucular kullanır ve CGNAT genellikle bağlantıya engel olmaz. Ancak, cihazların doğrudan birbirine bağlanması gereken eski çok oyunculu oyunlarda, bazı P2P uygulamalarında, sesli sohbetlerde ve oyunculardan birinin oturum sahibi olduğu durumlarda sorun yaşanabilir.
Bu tür durumlarda, oyun veya uygulama Strict NAT, NAT Type 3 veya Kapalı NAT gibi uyarılar verebilir. Bu, doğrudan bağlantıların kısıtlandığını gösterir. Bazı servisler NAT traversal veya relay sunucular ile çözüm üretir, ancak iki taraf da CGNAT arkasındaysa doğrudan P2P bağlantı genellikle mümkün olmaz ve trafik relay sunucudan geçmek zorunda kalır.
Evde Minecraft sunucusu, web sitesi, NAS, kamera sistemi, FTP, uzaktan masaüstü gibi servisler barındırmak istediğinizde CGNAT'ın kısıtlamaları çok daha belirgin olur. Yerel ağda her şey çalışsa da, dışarıdan genel IP üzerinden bağlantı denemeleri başarısız olur; çünkü istek CGNAT altyapısında takılır.
Özellikle NAS sistemini evde kullanmak isteyenler için detaylı bilgiye Evde NAS sunucusu ile kişisel bulut depolama rehberi makalesinden ulaşabilirsiniz.
CGNAT ev sunucularını tamamen imkânsız hale getirmez, fakat genel IPv4 ve port yönlendirme ile doğrudan erişimi engeller. Dışarıdan bağlanmak için farklı yöntemler gerekir: sağlayıcıdan genel IP almak, IPv6 kullanmak ya da dış sunucu üzerinden tünel kurmak gibi.
Ev router'ınızın aldığı WAN IP ile internet servislerinde görünen dış IP adresinizi karşılaştırın:
İki adres tam olarak aynıysa, büyük olasılıkla CGNAT yoktur. Farklıysa, bağlantınız sağlayıcıda ek bir NAT'tan geçiyordur.
Örnek:
Bu durumda, router doğrudan genel IP'ye sahip değildir ve arada CGNAT veya başka bir NAT katmanı vardır.
WAN IP'niz bu aralıklardaysa, büyük ihtimalle CGNAT arkasındasınız. Ayrıca, port açmanıza rağmen dışarıdan erişilemiyorsa ve WAN IP ile dış IP farklıysa, bu da CGNAT'ın güçlü bir göstergesidir.
Kesin emin olmak için sağlayıcı desteğine başvurup, bağlantınızda genel IPv4 mü yoksa Carrier Grade NAT mı kullanıldığını sorabilirsiniz.
En kolay yol, İSS'nizden "genel IP" veya "statik IP" talep etmektir. Bu hizmet aktif olunca CGNAT uygulanmaz ve router'ınız doğrudan genel IPv4'ü alır. Böylece port yönlendirme tekrar çalışmaya başlar.
Statik adresler sunucular için daha uygundur, ancak dinamik genel IPv4 de çoğu durumda yeterli olur. Sık değişen dinamik IP'ler için DDNS kullanabilirsiniz. Ancak, "statik IP" ifadesi her zaman genel IPv4 anlamına gelmeyebilir; mutlaka doğrulayın.
IPv6 protokolü, adres kıtlığı sorununu ortadan kaldırır. Eğer sağlayıcınız IPv6 sunuyorsa, cihazınız küresel olarak yönlendirilebilen bir adres alabilir ve klasik port yönlendirmeye gerek kalmaz.
Ancak, güvenlik için router genellikle gelen IPv6 bağlantılarını varsayılan olarak kapatır; sunucular için ayrıca izin vermeniz gerekir. Ayrıca, bağlanacak istemcinin de IPv6 desteklemesi gerekir.
IPv4 ve IPv6 arasındaki farklar için IPv4 ve IPv6 farkları ve avantajları başlıklı makaleye göz atabilirsiniz.
Genel IP alamıyorsanız, dışarıdan erişim için ev ağınızdan çıkış yapan bir bağlantı kurarak (örneğin bir VPS ile), tünel oluşturabilirsiniz. Evdeki sunucu, VPS'ye sürekli bağlı kalır; dışarıdan gelen bağlantılar önce VPS'ye, oradan tünel ile ev ağına yönlendirilir.
Benzer şekilde çalışan reverse tunnel veya özel uzaktan erişim servisleri de mevcuttur. Bu yöntemler, dışarıya doğrudan port açma ihtiyacını ortadan kaldırır.
Bu yaklaşım, NAS, oyun sunucuları, akıllı ev sistemleri veya uzaktan masaüstü erişimi gibi senaryolar için uygundur. Ancak, CGNAT tamamen devre dışı kalmaz; sadece trafiğe alternatif bir yol sağlar.
Kısaca, sağlayıcıdan genel IPv4 almak en doğrudan çözümdür. IPv6 uygunsa modern servisler için o da kullanılabilir. Bunlar mümkün değilse, dış sunucu üzerinden tünel veya özel servis kullanmak gerekir.
CGNAT, internet servis sağlayıcılarının bir genel IPv4 adresini çok sayıda abone arasında paylaşmasını sağlar. Web'de gezinme, video izleme ve çoğu uygulama için bu fark edilmez, çünkü bağlantı evden başlatılır ve yanıt doğruya döner. Ancak, giriş bağlantıları gerektiğinde - örneğin NAS, oyun sunucusu veya evde bir hizmet yayınlamak istediğinizde - CGNAT'ın ek NAT katmanı nedeniyle port yönlendirme çalışmaz ve doğrudan bağlantı mümkün olmaz.
Evde bir hizmet kurmak istiyorsanız önce router'daki WAN IP ile dış IP'yi karşılaştırın. Eğer CGNAT arkasındaysanız, en pratik çözüm sağlayıcıdan genel IPv4 almak ya da IPv6 kullanmaktır. Bunlar mümkün değilse, dış sunucu üzerinden tünel kurmak alternatif bir yöntemdir.
CGNAT bir arıza değil, IPv4 kıtlığını aşmak için bir çözümdür. Ancak, tam anlamıyla kendi ağınıza dışarıdan erişim ihtiyacınız varsa, bazı kısıtlamalara hazır olmanız gerekir.