CGNAT (Carrier-Grade NAT, taşıyıcı sınıfı adres çevirisi), bir internet servis sağlayıcısının genel IPv4 adreslerini abonelerine tek tek dağıtmak yerine her genel adresi port numaralarına bölerek aynı anda birden fazla aboneye kullandırdığı sistemdir. Evdeki modemin yaptığı adres çevirisinin (NAT) operatör ölçeğindeki karşılığıdır. Ev bağlantısı CGNAT arkasındaysa çeviri iki kez yapılır: önce modemde, sonra operatörün CGN cihazında (NAT444).
Bu yazı mekanizmayı ve operatör kayıtlarını anlatıyor. Bir IP kaydının dosyada bir kişiye ne ölçüde bağlanabileceğini IP adresi tek başına delil mi yazısında ayrıca ele aldık.
CGNAT neden kullanılıyor?
Çünkü dağıtılacak IPv4 adresi kalmadı. Avrupa, Orta Doğu ve Orta Asya'da adres tahsis eden RIPE NCC, 25 Kasım 2019'da IPv4 havuzunun tükendiğini duyurdu. IPv4'te toplam 2³², yani yaklaşık 4,3 milyar adres var. Yeni aboneye adres bulamayan operatörün önünde iki yol kalıyor: IPv6'ya geçmek ya da mevcut IPv4 adreslerini paylaştırmak. Hangi hatların CGNAT arkasında olduğu operatöre, hizmet türüne ve tarifeye göre değişir; olay tarihindeki durumu operatörün kendi kaydı gösterir.
Bir bağlantı CGNAT'tan geçerken adres nasıl değişir?
Bir bağlantının yolunda birbirini izleyen üç adres–port çifti oluşur ve her biri başka birinin kaydında durur. Örnek (kurgusal adresler):
- Evdeki dizüstü bilgisayar modemden
192.168.1.23adresini almıştır. Bir web sitesine bağlanırken kaynak port olarak51544seçer. - Modem bağlantıyı kendi WAN adresine çevirir. Modem CGNAT arkasındaysa bu adres genel değil, operatörün iç ağındaki
100.72.14.9gibi bir adrestir; port da değişebilir, örneğin40211. - Operatörün CGN cihazı bağlantıyı genel adrese ve abonenin port aralığından bir porta çevirir:
198.51.100.40:30517. Web sitesinin sunucusu bağlantıyı bu adresten gelmiş görür.
| Kayıt | Kimin elinde | Görünen |
|---|---|---|
| Cihazın ağ ayarları, tarayıcı ve uygulama izleri | Kullanıcı | 192.168.1.23:51544 |
| Modemin NAT ve DHCP tablosu | Abone (modem) | İç adres ↔ 100.72.14.9:40211, cihazın MAC adresi |
| CGN kaydı | Operatör | 100.72.14.9 ↔ 198.51.100.40, port aralığı, başlangıç ve bitiş zamanı, abonelik |
| Web sunucusu erişim logu | Sitenin işletmecisi | 198.51.100.40, loglanıyorsa port 30517, zaman |
Geriye doğru eşleştirme bu tabloyu aşağıdan yukarı okumaktır. Her satır bir üstündekinin anahtarını taşır; bir satırda port ya da doğru zaman eksikse zincir orada dağılır.
100.64.0.0/10 adresi ne demek, özel IP'den farkı ne?
100.64.0.0/10, IETF'in CGNAT için ayırdığı paylaşılan adres alanıdır (Shared Address Space, RFC 6598, Nisan 2012). 100.64.0.0 ile 100.127.255.255 arasındaki 4.194.304 adresi kapsar, internette yönlendirilmez ve operatörün CGN cihazı ile abonenin modemi ya da telefonu arasındaki bağlantı için ayrılmıştır.
Ev ve ofis ağlarındaki 10/8, 172.16/12 ve 192.168/16 özel aralıklarından (RFC 1918) farkı kullanım yeridir. Ayrı bir aralığa gerek duyulmasının sebebi çakışmadır: abonenin modemi içeride 192.168.1.0/24 kullanırken operatör aynı aralığı modemin dış tarafında da kullanırsa adresler karışır. RFC 6598, operatörün abone ağında hangi RFC 1918 bloğunun kullanıldığını bilemediği durumlarda paylaşılan adres alanına başvurması gerektiğini söyler.
Modeminizin arayüzünde 100.64 ile 100.127 arasında başlayan bir WAN adresi görüyorsanız bağlantınız büyük olasılıkla CGNAT arkasındadır. Tersi her zaman doğru değildir; koşulları sağlayan bir operatör bu bağlantıda RFC 1918 adresleri de kullanabilir. Ters yönde bir tuzak da var: Tailscale gibi bazı VPN ağları cihazlara bu aralıktan adres verir. Bir adresin hangi aralığa düştüğünü IP adresi kontrol aracında görebilirsiniz.
Operatör portları abonelere nasıl paylaştırır?
Bir IPv4 adresinde 65.536 port vardır ve CGN bu portları aboneler arasında bölüştürür. Yöntem, operatörün neyi kaydettiğini ve bir bağlantıyı sonradan aboneye ne kadar güvenle bağlayabileceğini belirler.
| Yöntem | Nasıl çalışır | Ne kaydedilir | Eşleştirmede dikkat |
|---|---|---|---|
| Bağlantı başına dinamik port | Her yeni bağlantıya o anda boştaki bir port verilir. | Her bağlantı için ayrı satır: iç adres, genel adres, port, zaman. | Log hacmi çok büyüktür. Port kısa sürede başka aboneye geçebildiği için saniye belirleyicidir. |
| Port bloğu | Aboneye bir port aralığı, örneğin 1.000 port, tahsis edilir; aralık bırakılana kadar abonede kalır. | Bloğun tahsisi ve bırakılması: iç adres, genel adres, blok başlangıç ve bitiş portu, zaman. | Port bloğa düşüyorsa tek abone çıkar. Blok el değiştirdiği anlara yakın sorgularda zaman sonucu değiştirir. |
| Deterministik eşleme (RFC 7422) | İç adres ile genel adres ve port aralığı arasındaki ilişki bir formülle önceden sabitlenir. | Algoritmanın parametreleri ve değiştikleri zamanlar; aralık taşarsa taşma tahsisleri. | Eşleme hesaplanabilir, ama parametrelerin olay tarihindeki değerleri bilinmelidir. |
Blok ve deterministik yöntemin neden tercih edildiği sayılarda görülür. RFC 7422, ABD'li operatörlerin raporlarına dayanarak hane başına günde ortalama 33.000 civarında bağlantı olduğunu ve bağlantı başına loglamanın bir milyon aboneli bir operatörde yılda yaklaşık 1,8 petabayt log üreteceğini hesaplar.
CGN cihazları için IETF'in ortak gereksinimleri (RFC 6888, Nisan 2013) de eşleştirmeyi etkiler:
- Bir abonenin bağlantıları varsayılan olarak aynı genel adresten çıkmalıdır ("paired" havuz davranışı, REQ-2).
- Abone başına port sayısı sınırlanabilmelidir (REQ-4).
- Serbest kalan bir port, istisnalar dışında, en az 120 saniye geçmeden yeni bir eşlemeye verilmemelidir (REQ-8).
BTK'nın 2020 tarihli İSS trafik logu teknik dokümanı daha temkinlidir: her kullanıcıya bölünmemiş sabit bir port aralığı atanmasını (dokümandaki örnek 10001:11000) ve boşalan aralığın başka kullanıcıya verilmeden önce en az bir saat bekletilmesini tavsiye eder.
Kullanıcı tespiti için neden port ve saniye hassasiyetinde zaman gerekir?
Çünkü CGNAT'ta genel IP adresi tek bir aboneyi değil, o anda o adresi paylaşan abone grubunu gösterir. Gruptan aboneye inmenin anahtarı kaynak porttur; portun hangi abonede olduğu ise zamana göre değişir. RFC 6302 (Haziran 2011, BCP 162) bu yüzden internete açık sunucuların kaynak portu ve UTC'ye göre, saniye hassasiyetinde, NTP gibi izlenebilir bir kaynaktan alınmış zamanı kaydetmesini önerir; bu iki bilgi olmadan adres paylaşan operatörün müşteriyi tek başına belirleyemeyeceğini de yazar.
Örnek (kurgusal): Bir e-ticaret sitesinin logunda sahte bir siparişin 03.11.2025 tarihinde 198.51.100.40 adresinden verildiği görülüyor. Operatör o gün bu adresi 1.000 portluk bloklarla paylaştırıyor ve abonelerden birinin bloğu 30001–31000. Logda ne bulunduğuna göre sonuç değişir:
| Sitenin logunda olan | Operatör kaydından çıkabilecek sonuç |
|---|---|
IP ve dakika: 18:42 | O dakikada adresi kullanan bütün aboneler. Aralarından biri seçilemez. |
IP, port 30517, saniye ve saat dilimi: 18:42:17 UTC | 30001–31000 bloğunun o saniyedeki sahibi: tek abonelik. |
| IP, port ve saniye var, ama UTC değer Türkiye saati sanılarak sorulmuş | Sorgu üç saat öncesine yapılır. Blok o arada el değiştirmişse başka bir abone döner; cevapta tek abone olduğu için hata göze de çarpmaz. |
Üçüncü satırda kayıt eksiksizdir, sonuç yine yanlıştır. BTK dokümanına göre İSS trafik loglarındaki tarihler Türkiye yerel saatiyle yazılır; platform ve sunucu kayıtları ise sıklıkla UTC ile gelir. Bu tür hataların diğer biçimlerini zaman damgaları ve saat dilimi yazısında örnekledik.
Port sunucu tarafında kendiliğinden loglanmaz. Apache ve Nginx'in varsayılan combined biçimi istemci portunu yazmaz; Apache'de %{remote}p, Nginx'te $remote_port alanı ayrıca eklenmelidir. Site bir CDN ya da ters vekil sunucunun (reverse proxy) arkasındaysa logdaki adres ve port o sunucuya aittir.
Operatörün CGNAT kaydında hangi alanlar bulunur?
Kaydın biçimi operatörden operatöre değişir. Kamuya açık en ayrıntılı tarif, BTK'nın İSS'lerden aldığı trafik logunu anlatan 2020 tarihli dokümandır (belge BTK sitesinde değil, basında yayımlanan kopyasıyla erişilebilir). Eşleştirme açısından önemli alanlar:
OZEL_IP,OZEL_PORT- Abonenin operatör ağındaki iç adresi ve portu.
GERCEK_IP,GERCEK_PORT_BASLANGIC,GERCEK_PORT_BITIS- İnternette görünen genel adres ve aboneye verilen port aralığı.
TRAFIK_BASLAMA_TARIH,TRAFIK_SURE- Başlangıç
YYYYMMDDHH24MISSbiçiminde ve Türkiye yerel saatiyle; süre saniye cinsinden, küsuratı yukarı yuvarlanarak. HEDEF_IP,HEDEF_PORT- Bağlanılan sunucunun adresi ve portu. RFC 6888 gizlilik gerekçesiyle hedefin gerekmedikçe loglanmamasını önerir (REQ-12), BTK dokümanı ise bu alanları ister. Hedef adres varsa sorgu tek bir siteye yapılan bağlantıya daraltılabilir; Yargıtay 11. Ceza Dairesi'nin incelediği bir dosyadaki operatör yazısında da NAT'lı IP'lerde hat tespiti için kaynak IP ve port, zaman aralığı ve erişilen sitenin IP adresi istenmiştir (E.2021/31653, K.2024/2780).
KULLANICI_ADI@DOMAIN,OTURUM_ID- Kaydı abonelik ve oturum dosyalarıyla birleştiren anahtarlar. Mobil hatlara ait kayıtlarda uygulamada hat numarası ve cihaz kimliği (IMEI) de görülebilir.
PACKET_TYPE- Aynı oturumun başlangıç, ara güncelleme ve bitiş satırları ayrı gelir. Satır saymak bağlantı saymak değildir; tekilleştirme oturum kimliğiyle yapılır.
CGNAT kayıtlarını kim tutar, ne kadar süre saklanır?
Kayıtları operatör tutar; taraflar bunları doğrudan operatörden alamaz, çünkü trafik verisinin gizliliği esastır (5809 m.51/2). Kayıtlar mahkeme ya da savcılık yazısıyla istenir. Yargıtay kararlarında CGNAT verilerinin BTK'dan getirtilmesinden söz edilir (ör. 17. CD, E.2018/5732, K.2019/7785); 5651 sayılı Kanun'daki "Kurum" atıfları ise 7590 sayılı Kanunla büyük ölçüde Siber Güvenlik Başkanlığı olarak değiştirildi (yürürlük 31.07.2026).
Kanundaki tanım port ve zamanı açıkça sayar: trafik bilgisi "taraflara ilişkin IP adresi, kaynak ve hedef port bilgisi, verilen hizmetin başlama ve bitiş zamanı, yararlanılan hizmetin türü, aktarılan veri miktarı ve varsa abone kimlik bilgileri"dir (5651 m.2/1-j). Port bilgisi tanıma 2020'de 7253 sayılı Kanunla, "kaynak ve hedef" ibaresi 2026'da 7590 sayılı Kanunla eklendi. Saklama süresi ise tek bir sayıya bağlanmış değil:
- Erişim sağlayıcılar trafik bilgisini altı ay ile iki yıl arasında, yönetmelikte belirlenecek süre kadar saklar (5651 m.6/1-b). Uygulama yönetmeliğindeki bir yıllık süre Danıştay 13. Dairesi'nin kararıyla iptal edildi (E.2013/239, K.2019/4266; İDDK, E.2020/1851, K.2022/649 ile kesinleşti); bugün uygulanan somut süre bu yüzden tartışmalıdır.
- Elektronik haberleşme mevzuatı trafik verisinin saklama süresini bir ile iki yıl arasında olmak üzere yönetmeliğe bırakır (5809 m.51/10).
- İnternet toplu kullanım sağlayıcıları (kafe, otel, kurum ağı) erişim kayıtlarını iki yıl saklar; NAT'lı erişimde kullanıcıya tahsis edilen gerçek IP ve port da bu kayda dahildir (Toplu Kullanım Yönetmeliği m.3/1-e, m.4/1-b).
Eski olaylarda bir soru daha var: port o tarihte kaydediliyor muydu? Yargıtay 8. Ceza Dairesi 2014'te port bilgisinin önemini vurgularken bunun tutulmasının o tarihte yasal zorunluluk olmadığını da not etmişti (E.2013/4668, K.2014/9860). Hangi IP'nin, hangi port, zaman aralığı ve saat dilimiyle sorulacağı olayın hemen ardından netleştirilmelidir.
IPv6'da CGNAT var mı?
IPv6'da adres sıkıntısı olmadığı için paylaştırmaya gerek yoktur. Operatör aboneye bir önek (prefix) verir; ev bağlantılarında bu önek genellikle DHCPv6 önek delegasyonuyla (RFC 8415) atanır ve modemin arkasındaki her cihaz adresini bu önekten üretir. Eşleştirme bu yüzden önek düzeyinde yapılır. Cihaz tarafındaki son 64 bit ise gizlilik için çoğu zaman sık değişir; RFC 8981'e göre geçici adresler varsayılan olarak bir gün tercih edilir, iki gün geçerli kalır.
Yine de IPv6 kullanmak IPv4 paylaşımını ortadan kaldırmaz. IPv6 desteği olmayan bir sunucuya bağlanmak için IPv4 gerekir ve yalnızca IPv6 ile çalışan şebekeler bu trafiği operatör tarafında çevirir:
- 464XLAT (RFC 6877): yalnızca IPv6 kullanan 3GPP mobil şebekeleri için tanımlanmıştır. Operatör tarafındaki çevirici (PLAT), durum tutan NAT64 (RFC 6146) ile çok sayıda aboneyi az sayıda genel IPv4 adresinde toplar. IPv4 sunucusunun logunda görünen yine paylaşılan bir adrestir.
- DS-Lite (RFC 6333): abonenin IPv4 trafiği IPv6 tüneliyle operatörün AFTR cihazına taşınır ve orada çevrilir. AFTR aboneleri tünelin IPv6 kaynak adresiyle ayırır; abonenin kayıttaki anahtarı bu IPv6 adresidir.
Çift yığınlı (dual-stack) bir cihaz aynı dakikada bir hizmete IPv6, diğerine IPv4 ile bağlanabilir. İki platformun aynı hesap için farklı türde adres bildirmesi kendi başına çelişki sayılmaz.
Bağlantınızın CGNAT arkasında olup olmadığını nasıl anlarsınız?
- Modemin yönetim arayüzünde WAN ya da "İnternet" adresine bakın.
- Aynı anda bir "IP adresim ne" sayfasında görünen genel adresle karşılaştırın. İkisi farklıysa modem ile internet arasında bir çeviri daha vardır.
- WAN adresi 100.64 ile 100.127 arasındaysa bu çeviri büyük olasılıkla operatörün CGNAT'ıdır. Aralığı IP adresi kontrol aracında doğrulayabilirsiniz; araç hiçbir sorguyu dışarı göndermez.
- Sonuç bir dosyada kullanılacaksa tarih ve saatiyle kaydedin. Modem yeniden başlayınca WAN adresi değişebilir; bugünkü kontrol olay tarihindeki durumu göstermez.
CGNAT kaydı bağlantıyı kimin kurduğunu gösterir mi?
Hayır, en iyi hâlde hangi aboneliğin kurduğunu gösterir. O aboneliğin ağını kimlerin kullandığı ve bağlantının hangi cihazdan kurulduğu ayrı kayıtlar ister. Kanun da bu ayrımı tanır: iletişimin tespiti talebine hattın ya da iletişim aracının sahibini "ve biliniyorsa kullanıcısını" gösteren belge eklenir (CMK m.135/2). Yargıtay 17. Ceza Dairesi, IP adreslerinin hangi cihazlardan kullanıldığı araştırılmadan ve suç tarihine ait CGNAT verileri getirtilmeden kurulan mahkûmiyeti bozmuştur (E.2018/5732, K.2019/7785).
Bu eşleştirmeyi bir dosya üzerinde nasıl incelediğimizi IP ve CGNAT analizi sayfasında anlattık; bulguların hukuki değerlendirmesi avukata ve mahkemeye aittir.