IP adresleri, benzersiz ve erişilebilir olacak şekilde tasarlanmış, internetin uçtan-uca desteklenmesinde temel yapıtaşı olarak kabul edilmiştir. 1990’lı yılların başlarında internet ağının hızla büyümesi, sadece IP adresi alanının tükenmesi tehlikesine işaret etmekle kalmadı, aynı zamanda IP adreslerinin kendileri için anlık bir talep oluşturdu.
Günümüzde bu ağın yaygınlığı oldukça hızlı artmaktadır. Bir IPv4 adresleme yapısında sadece 4 milyar adres vardır ve bu rakdamdan çok daha fazla (10 milyarlarca) internet ağını kullanan bilgisayarlar ve bundan çok daha fazla nufusa da sahibiz. NAT protokolü bu anlık yüksek talebi karşılamak için devreye girdi. Aniden bize dahili olarak kullanabileceğimiz milyarlarca IP adres verdi ve bu IPv4 kullanarak internette kullanabileceğimiz IP miktarını genişletti.
NAT’ı kısaca tamımlayacak olursak; bir ağdan diğerine geçerken kaynak veya hedef IP adresini değiştiren bir protokoldür. Başka bir deyişle, bu protokol, ağımızdaki dahili bir IP adresi gibi kaynak IP adresimizi değiştirecek ve internete çıkarken kendi genel IP adresiyle değiştirecektir. Aynı zamanda ters yönde de çalışır. Dış ağdan, kendi yerel ağımızda bulunan web sunucumuza erişilmesi durumunda, güvenlik duvarımızdaki public IP adresimize gidecek ve sonra web sunucumuzdaki yerel IP adresine çevrilecektir.
Ağınızda güvenlik duvarı (firewall) var ise önce bahsedildiği gibi ağ NAT çalışır ve veriler dışarıya çıktığında da gizli olanı herkese açık hale getirir. Ayrıca bir router ve bu cihazların tüm durumlarında, kaynak IP adresini çıkarırlar.
Ağda kullanılan switchlerin belirli bir gereksinimi vardır NAT’ı kullanmak için interVLAN özelliğine sahip olmaları gerekir ve bu özellik de temelde, switchlerin bir alt ağdan diğerine verileri yönlendirebileceği bir yönlendiriciye dönüştürüldüğü anlamına gelir. InterVLAN özelliğine sahip olmayan bir Layer-2 Switch kullanılması durumunda yapabileceği tek şey onu bir router’a yada Layer-3 cihaza iletmek ve ardından NAT hizmetini bu katman da sağlamak olacaktır.
En basit NAT türü IP adreslerinin bire bir çevirisini sağlamaktır. Temel NAT’lar, uyumsuz adreslemeye sahip iki IP ağını birbirine bağlamak için kullanılabilir. Örneğin, 192.168.100.200 özel IP’mizi, temel NAT kullanılarak 176.88.99.130’a çevrilecektir. Bu durum aynı zamanda Statik NAT olarak da adlandırılır.
Herkese açık bir bilgisayara bir mesaj gönderildiğinde ve IP adresi güvenlik duvarı (firewall) veya yönlendiriciden (router) sağlanan bir IP kullanılarak değiştirildiğinde dahili IP adreslerini gizlenmektedir. Kendi bilgisayarımızı kullanarak 192.168.100.200 özel IP’si ile başlarsak, ağ trafiği; switch’den yukarı ve güvenlik duvarından (firewall) dışarı akmaktadır. Bu kısım trafiğin bilgisayarımızdaki IP adresimizden harici IP’mize 176.88.99.130 çevrildiği yerdir. Bilgisayarımızdan çıkan bu ağ paketi, internet ağındaki bir web sunucusuna ulaştığında, web sunucusu yalnızca Public IP’yi görür (176.88.99.130) ve artık özel IP’nin farkında olamaz. LAN ağı üzerindeki bilgisayarların tüm dahili adresleri bir noktada web sitelerine bakmak veya diğer hizmetleri kullanmak için internete gider. Hepsi dahili adreslerini genel IP veya güvenlik duvarının (firewall) arkasına saklayacaktır. Böylece saldırganların mevcut IP’lerin kaynağını tahmin etmesini sağlamak için birkaç genel IP havuzu da oluşturabilirsiniz. Güvenlik duvarının (firewall) dışında tek bir IP adresi yerine bir IP adresi bloğuna atanmanız gerekir.
Güvenlik duvarınızın (firewall) genel tarafında yalnızca bir IP adresiniz olduğunda ve içeride farklı amaçlarla trafiğe yönlendirilmesi gereken birçok cihazınız olduğunda, NAPT adı verilen bir protokol de kullanırız. Bu yöntem ile genel IP adreslerini koruyabilir çünkü iki farklı hizmet sunan halka açık iki sunucu kullanıyoruz ve PAT kullandık, ancak tek bir genel adres kullandık. Günümüzde kullanılan en yaygın NAT türleri, IP koruma ve güvenliğinde çok kullanışlıdır. Mükemmel bir çözüm olmasa da NAT, mevcut IPv4’ün güvenlik ve mevcut genel IP’lerin eksikliği nedeniyle o olmadan kullanılmasını imkansız kılacak birçok işleve sahiptir.
NAT Lookback
RFC 1483’e dayalıdır ve public bir IP adresinde bulunan bir ana bilgisayar IP adresidir, ancak gerçek sunucu kendi yerel alan ağınızın içindedir. Bu yüzden, bu web sitesine gitmek istediğinizde, aslında güvenlik duvarından geçecek ve sonra tekrar içeri gireceksiniz gibi görünüyor. Tipik olarak, güvenlik duvarları bu RFC 1483 özelliği etkinleştirilmedikçe buna izin vermeyecektir.
Aşağıdaki ekranın sol tarafından başlıyoruz. PC istemcimizin IP adresi 192.168.100.200 de görüyoruz ve 172.217.17.174 de abc.com.tr olarak adlandırılan bu DNS ana bilgisayar adına gitmek istiyoruz, bu da public IP adresimizin takma adı olan başka bir IP adresi, yani açık public IP adresimizle aynı alt ağda.
Kullanıcı bilgisayarı bunu almak için internete çıkması gerektiğini düşünüyor çünkü ana bilgisayar adının işaret ettiği şey bu. Ancak bu geri döngü veya keskinleştirme özelliği etkinse, güvenlik duvarı onu içeriye yeniden yönlendirecektir. Onu tekrar web sunucumuza yönlendirecek. Web sunucusu daha sonra trafik talebine yanıt verir ve güvenlik duvarının dışına çıkmadan PC istemcimize geri döner.
Örneğin, bir Cisco ve PaloAlto gibi güvenlik duvarı kullanıyorsanız Destination-NAT kuralı veya DNAT kuralı yoksa, router paketi bırakır. Kural mevcutsa, adres çevirisi hala yürürlüktedir; router paketteki kaynak IP’yi yeniden yazacak.
Yerel ağdaki bilgisayar, paketi dahili IP adresinden geldiği gibi gönderir, ancak sunucu, genel IP adresinden geldiği için alır. Sunucu yanıt verdiğinde, süreç harici bir gönderene göndermeyle aynıdır. Daha sonra, genel IP adresi aracılığıyla LAN ağı içindeki ana bilgisayarlar arasında iki yönlü iletişim mümkündür. NAT geridöngü veya firkete atma, LAN’ınızın içinde aynı ağdaki diğer cihazlar tarafından erişilmesi gereken kaynaklara sahipseniz, çoğu güvenlik duvarı ve yönlendiriciyle açabileceğiniz bir NAT özelliğidir.
Statik NAT
Yerel ağda kullanılmakta olan private IP adresinin dışarıda kullanılacak olan public IP’ye birebir çevrilme işlemidir. Bu NAT türünde NAT tablosu doğrudan sistem yöneticisi tarafından bu bilgiler tanımlanır. Sistem yöneticisi kullanılacak olan Private IP’leri önceden belirler ve bunları sahip olduğu public IP adresleriyle eşleştirir. Bu yöntemle belirlenmiş adresler haricinde hiç bir IP adresi dış ağlara bağlanamaz.
Dinamik NAT
Bu NAT türünde public IP adresi bloğu dinamik olarak private IP adresleriyle eşleştirilir. Sistem yöneticisi bir IP adres havuzu belirler ve NAT yönlendiricisi otomatik olarak IP adreslerini eşleyerek dış ağlara bağlantıyı sağlar.
Sabit NAT’tan farkı yönlendiricinin kendisinin eşleştirmeyi yapmasıdır. Hangi IP ilk önce eşleşirse ilk önce internete o çıkar, eğer yeterli sayıda public IP adresi varsa private IP’lerin hepsi eşleştirilerek internete bağlanabilirler. Bağlantı kesildikten sonra ise NAT tablosundaki kayıtlar bir sonraki bağlantı kurulana kadar silinir.
Aşırı Yükleme NAT (Overloading NAT)
Bu NAT türüne aynı zamanda PAT (Port Address Translation – Port Adres Çevirimi) da denir. PAT’ta genel IP adresi olarak bir tane IP bulunur. Dinamik NAT’ta olduğu gibi sistem yönlendirici NAT tablosunu kendisi oluşturur. Yerel ağda bulunan bir kullanıcıdan dışarıdaki ağlara bağlanmak için bir istek geldiğinde, yönlendirici bu kullanıcının özel IP adresini ve ona verdiği port numarasını NAT tablosuna kaydeder.
Sahip olunan private IP adresini yerel ağda bulunan kullanıcının private IP adresi ve ona verdiği port numarası ile eşleştirerek internete erişmesini sağlar. Farklı bir private IP’den aynı anda istek geldiği takdirde o IP adresine farklı bir port numarası verilir.
PAT kullanılarak bütün yerel ağ daha az sayıda genel IP adresi kullanarak internete bağlanmış olur. NAT tablosuna kaydedilen bu IP adresleri ve port numaraları bağlantının sonuna kadar kayıtlı kalır, bağlantı kesilince silinir. Ağ yöneticisi isterse IP adreslerini kendi belirlediği port numaralarına kalıcı olarak atayabilir.
IPv6 ve NAT
IPv6’nın tasarım hedeflerinden biri uçtan-uca ağ bağlantısını geri yüklemek olduğu için NAT, IPv6’da kullanılmamaktadır. NAT başlatılırken uçtan-uca bağlantı kesilir çünkü NAT cihazı; uçtan-uca iletişimin düzgün çalışması için gerekli olan kaynak IP adresinden bilgileri ayıklar.
IPv6’dan IPv6’ya ağ çevirisi veya NPTv6, dahili bir IP adresini ağ adresi çevirisi için çalışan internete çıkmaktan, gizleme yeteneğini elde etmeye yönelik deneysel bir belirtimdir. Yani bağlantının her iki tarafı hakkında hiçbir bilgi saklamaz ve uçtan-uca ilkesine erişir. IPv4’te olduğu gibi, tüm adresi private’dan public’e çevirmek yerine, NPTv6 yalnızca bir IPv6 adresinin önek bitlerine kadar çeviri yapacaktır.
NAT’dan Etkilenen Uygulamalar
NAT’dan etkilenen birkaç farklı uygulama vardır. Bunlardan birincisi; aktif modda çalışan FTP protokolü olabilir ve trafiği kontrol etmek, dosya içeriklerini aktarmak için ayrı bağlantılar kullanır. Bir dosya aktarımı gerektirdiğinde, istekte bulunan ana bilgisayar, karşılık gelen veri bağlantısını TCP / IP adresi ile tanımlar. İsteği yapan ana bilgisayar basit bir NAT güvenlik duvarının arkasında bulunuyorsa, IP adresinin ve bağlantı noktası numarasının çevrilmesi, sunucu tarafından alınan bilgileri geçersiz kılar. Çok sık karşılaşılan bir diğeri de, oturum başlatma protokolü (session initiation protocol,) SIP’dir ve bu IP üzerinden birçok sesli aramayı kontrol eder ve FTP ile aynı soruna sahiptir. SIP protokolü bağlantı kurmak ve gerçek zamanlı aktarım veya RTP aracılığıyla ses akışını iletmek için birden çok bağlantı noktası kullanır.
IP adresleri ve bağlantı noktası (port) numaraları NAT geçişinden önce bilinmelidir. Bununla birlikte, sorunları çözmek için özel teknikler var ve bunu yapmak için yazılımlar kullanıyoruz. Bu sorunları azaltmanın yollarından biri, uygulama katmanı ağ geçididir (Application Gateway Firewall). Uygulama katmanı ağ geçidi yazılımı/donanımı bu sorunların çoğunu çözebilir. Bir Aplication Layer Gateway yazılım modülünün NAT güvenlik duvarı cihazında çalışması gerekir ve adres çevirisi ile geçersiz kılınan tüm yük verilerini günceller. Application Layer Gateway’lerin düzeltmeye ihtiyaç duydukları daha yüksek katman protokolünü anlamaları gerekir ve bu nedenle bu problemi olan her protokol ayrı bir Application Layer Gateway gerektirir. Bu sorunu çözmenin diğer yolları arasında STUN veya ICE bulunur. STUN, NAT için Oturum Geçiş Yardımcı Programları (Session Traversal Utilities NAT) anlamına gelir ve özellikle NAT’ın VoIP ve akış için neden olduğu gerçek zamanlı sorunları çözmek için çalışır. Ana bilgisayarların bir ağ adresi çeviricisinin varlığını keşfetmesi ve eşlenen IP adreslerini ve bağlantı noktası numaralarını keşfetmesi için bir araç sağlar. ICE) bilgisayarların eşler arası bir teknoloji türünde olabildiğince sorunsuz çalışmasını sağlamaya çalışır. ICE daha yeni bir teknoloji olmasına rağmen, yine de NAT ve diğer engeller tarafından zaman zaman yenilebilir. NAT’tan birkaç uygulama olumsuz etkilenebilir, ancak ALG, STUN ve ICE gibi yazılımlar bu sorunların çoğunun ortaya çıktıkça azaltılmasına yardımcı olabilir. Gerekirse bu protokollerin yerleşik olduğu bir NAT cihazı satın aldığınızdan emin olmak gerekir.
NAT Limitleri
- VMware’e göre NAT, bir sanal makineye gönderilen ve alınan her paketin NAT ağında olmasını gerektirdiğinden, bir miktar performans kaybına neden olur, bu da kaçınılmaz bir performans sorunudur.
- NAT tamamen şeffaf değildir. Genellikle bağlantıların ağ dışından başlatılmasına izin vermez; Bununla birlikte, sunucu bağlantılarını ayarlamak için NAT cihazını manuel olarak yapılandırabilirsiniz.
- Sunucu sistemler bir bağlantı başlatılmasını gerektiren bazı TCP ve UDP protokollerinin otomatik olarak çalışmaması ve bazılarının hiç çalışmayabilmesidir.
- NAT bir miktar güvenlik duvarı koruması sağlar. Standart bir NAT yapılandırması, temel düzeyde güvenlik duvarı koruması sağlar, çünkü NAT cihazı bağlantıları özel NAT ağından başlatabilir. Ancak harici ağdaki cihazlar, ek manuel yapılandırma olmadan özel NAT ağına bağlantı başlatamaz.
- NAT, IPv4 adreslerinin miktarını genişletmek ve dahili adreslerimizi gizlemek için kullanışlıdır, ancak görebileceğiniz gibi mükemmel değil. Ancak, IPv6 tam olarak uygulanana kadar bu iki sorunu çözmek en iyi ve tek çözümdür.
NAT’ın Kullanımının Avantajları
- Az sayıda public IP adresi kullanılarak çok sayıda kullanıcı internete bağlanabildiği için IPv4’te bulunan IP yetersizliği sorunu azaltılmış olur.
- Birçok kullanıcı ve şirket intranet adı verilen private IP adreslerinden oluşmuş yerel ağlarını kullanarak, mümkün olduğunca az sayıda public IP adresi üzerinden dış ağlara bağlanmaktadır.
- Yerel ağdaki kullanıcıların dış ağlara yönlendirici tarafından çevrilmiş IP’lerle bağlanması sonucunda etkili bir güvenlik sistemi sağlanmış olur. Private IP kullanarak yerel ağda bulunan IP adresleri ve ağın topolojisi dış ağlara karşı gizlenmiş olur.
- NAT genel ağa olan bağlantıların esneklik derecesini artırır. Çoklu IP havuzları, yedek IP havuzları ve yük dengeleme havuzları güvenilir bir ağ bağlantısı sağlamak için uygulanabilirler.
- NAT yapılmamış ve özel IP adresleri kullanılmamış bir ağda, public IP adreslerini değiştirmek için, mevcut ağ içerisindeki kullanıcılara yeniden bir adresleme yapmak gerekir. Bütün kullanıcıların IP adreslerini değiştirmek maliyet açısından da karlı bir durum değildir. NAT yapıldığında sisten yöneticisi yerel ağdaki kullanıcılar arasında kolaylıkla değişiklik yapılabilir, yeni kullanıcılar ekleyebilir ya da var olanları çıkarılabilir. NAT tablosu ayarları değiştirilerek, esnek bir şekilde hareket edilebilir.
NAT’ın Kullanımının Dezavantajları
- NAT, temel bir IPv4 bağlantısı sağlar, ancak geniş adres alanı, yerleşik güvenlik, ölçeklenebilirlik ve hizmet kalitesi için iyileştirilmiş destek gibi IPv6 ile mümkün olan daha gelişmiş özellikleri ele almaz. NAT ayrıca, mobil akıllı telefonlara ve çoğunlukla IPv6 kullanan diğer cihazlara hizmet vermede sınırlamalar getirir.
- NAT karmaşıklıklar ekler. Ağ adresi çevirisi, bir ağın yönetimini daha karmaşık hale getirir ve sorun gidermede daha fazla sorun yaratır. Nedeni, NAT cihazlarının ağdaki belirli bir konuma durum eklemesidir. Bu durumu ve bu zorluklara neden olan simetrik akışların gerekliliğini yönetmektir.
- Belirli bir public IP ile birçok kullanıcının internete bağlanmasından dolayı o IP’nin takip edilmesi mümkün değildir. NAT tarafından IP adreslerinin değiştirilmesi sonucunda IP paketlerinin izlenmesi ve kaynak IP adresinin bulunması zorlaşır.
- Bir ağı NAT kullanımına uygun hale getirmek için network topolojisinde değişiklik yapmak gerekebilir.
- Bazı uygulamalarda da sorunlar var. NAT, dosya aktarım protokolü, SIP kullanan IP telefonu ve SNMP veya Basit Ağ Yönetimi Protokolü gibi uygulamalarda sorunlara neden olan IP başlık alanlarıyla oynadığı için uygulama uyumluluğunu zorlaştırır. Bu, IP adreslerinin ve bağlantı noktası numaralarının özel olarak dikkate alınması gerektiği ve bazı NAT uygulamalarının düzgün çalışmayabileceği anlamına gelir. Ek olarak, bazı uygulamaların yeniden yazılması gerekebilir.
- Diğer sorunlar güvenlik protokollerini içerir. IPsec, IPv4 IPsec’ten önce kurulduğundan, protokolün IPv4’ü desteklemesi için isteğe bağlıdır. IPsec zorunludur ancak IPv6’da destek için bir gereklilik değildir ve başlık değişikliklerini tanımlamak için tasarlanmıştır. Bu, VPN için kullanılan IPsec’in NAT tarafından yapılan başlık değişikliklerini reddetmesinin nadir olmadığı anlamına gelir.
- Ayrıca adres sınırlamaları da var. NAT ile IP adreslerine adres eksikliği, belirli işlevlerin düzgün çalışmayabileceği ve uygulamaların yeniden yazılmasını gerektirebileceği anlamına gelir. IPv6, uygulamaları NAT ile çalıştırmaya çalışırken gerekli olan zaman yatırımını ortadan kaldıran daha büyük bir adres alanı sağlar.
- Fazladan bir yönlendirici daha kullanıldığı için paketlerde gecikme artabilir. Çünkü fazladan eklenen bir yönlendirici IP paket başlıklarının çevrilmesi ve etiketlenmesi sırasında oluşabilecek gecikmeleri artırır.
- NAT, IPv4 adres alanı eksikliğini gidermek için kısa vadeli bir çözümdü. IPv6 cevabı temsil ederken, NAT basitçe parça parça bir çözüm sunar. IPv6 tamamen dağıtıldığında, NAT artık gerekli olmayacaktır. NAT’ın daha önce tartışıldığı gibi büyük avantajları olsa da, NAT’ın ağınızda kullanılması gerekip gerekmediğine karar verirken NAT’ın dezavantajları da dikkate alınmalıdır.
NAT’ın Güvenlik Açıkları
Birçok kuruluş, güvenlik duvarı olmayan router ve switchlerdeki NAT fonksiyonunu kullanır ve bu birçok güvenlik açığı türünü gösterir. Bu kullanım türleri saldırılara karşı koruma sağlamaz sadece biraz daha zorlaştırıyor. Bağlantı noktası tarayıcıları (port scanner) ve diğer hacker araçlarını kullanarak dahili bilgiler çıkarılabilir. Güvenlik duvarlarımızda NAT’ı Hidden olarak etkinleştirmiş olsak da, varsayılan olarak virüslü veya hacker kontrollü bir bilgisayarın daha savunmasız, daha az korumalı ağlara zarar vermeye çalışmak için internete çıkmasına karşı bir koruma yoktur.