NAT bir ağda bulunan bilgisayarın, kendi ağı dışında başka bir ağa veya İnternete çıkarken farklı bir IP adresi kullanabilmesi için geliştirilmiş bir İnternet protokolüdür. Yani NAT bilgisayarın sahip olduğu IP adresini istenilen başka bir adrese dönüştürür.
Bilindiği gibi Ipv4'te her IP adresi kullanılabilir durumda değildir. Ipv4'te kullanılabilir durumda olan IP'lere bakıldığında yaklaşık olarak 3,2 milyar kadar IP bulunmaktadır. Bu IP sürümünün yaratabileceği IP yetersizliği göz önüne alınarak NAT protokolü geliştirilmiştir. İnternette bazı adresler yerel ağlarda kullanılmak amacıyla özel adresler (private IP address) olarak ayrılmıştır. Bu özel adresler:
10.0.0.0/8 -> 10.0.0.0 - 10.255.255.255
172.16.0.0/12 -> 172.16.0.0. - 172.31.255.255
192.168.0.0/16 -> 192.168.0.0 - 192.168.255.255 arasındadır.
Dünya üzerinde birçok şirket ve kurum yerel ağlarında yukarıda verilen özel IP’leri kullanmakta, dış bağlantılarını ise NAT yapabilen uygun yönlendiriciler (router) kullanarak, IP adreslerini genel adreslere (public address) çevirerek sağlamaktadırlar.
Temel olarak bir NAT yönlendiricisi NAT tablosu adı verilen bir tablo yardımıyla IP çevirme işlemini gerçekleştirir. Kullanıcının bilgisayarında özel IP adresleri aralığından bir adres bulunur. Buradan yerel ağın içinde olmayan bir adrese gitmek için bir talep gelince, NAT yönlendiricisi daha önceden kullanıcının ayarladığı NAT tablosuna bakarak, özel IP adresini genel bir IP adresine çevirir ve bu şekilde dış ağlara ya da İnternete çıkılmış olur. Yönlendiricinin çeviri yaparak değiştirdiği bu IP, kullanıcının İnternetteki bilinen IP’sidir. Aynı şekilde dış ağlardan bu bilinen IP’ye doğru bir istek gelince, yönlendirici tablosuna bakarak bu IP’yi kullanıcın özel IP adresine yönlendirir ve paketi kullanıcının bilgisayarına gönderir.
İç Yerel Adres: NAT tarafından özel IP adresleri aralığı içerisinden kullanıcıya yerel ağda kullanması için atanmış şekildeki 192.168.2.1 gibi bir adrestir.
İç Global Adres: NAT'ın dış ağlara bakan yüzünde bulunan ve dış ağlara bağlanırken kullanılan genel IP adresleri aralığından şekildeki 160.75.67.67 gibi bir adrestir.
Dış Global Adres: İnternette bulunan herhangi bir kullanıcının veya sunucunun sahip olduğu genel IP adresleri aralığından herhangi bir adrestir.
NAT tablosunda yapılan eşleştirmeler ağ yöneticisinin veya kullanıcının tercihine göre 3 farklı şekilde ayarlanabilir:
Sabit NAT (Static NAT)
Yerel ağda kullanılmakta olan özel IP’yi dışarıda kullanılacak olan genel IP'ye birebir çevirmedir. Bu NAT türünde NAT tablosu doğrudan ağ yöneticisi tarafından doldurulur. Yani ağ yöneticisi kullanılacak olan özel IP'leri belirler ve bunları sahip olduğu genel IP adresleriyle kendisi eşleştirir. Bu şekilde belirlenmiş adresler dışında hiç bir IP adresi dış ağlara bağlanamaz. Örnek olarak aşağıda gösterilmiş adresler dış ağlara her zaman karşısında belirlenmiş olan genel IP adresleriyle bağlanırlar ve bu genel adreslere gelen istekler NAT yönlendiricisi tarafından doğruca eşleştirildiği özel IP adresine yönlendirilir.
192.168.105.5 -> 160.75.67.10
192.168.105.6 -> 160.75.67.11
192.168.105.7 -> 160.75.67.12
Dinamik NAT (Dynamic NAT)
Bu NAT türünde ise sahip olunan genel IP adresi bloğu dinamik olarak özel IP adresleriyle eşleştirilir. Ağ 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 İnternete o çıkar, eğer yeterli sayıda genel IP adresi varsa özel IP’lerin hepsi eşleştirilerek İnternete bağlanabilirler. Bağlantı kesildikten sonra ise NAT tablosundaki kayıtlar bir dahaki bağlantı kurulana kadar silinir.
192.168.110.2 -> 160.75.67.12
192.168.110.3 -> 160.75.67.10
192.168.110.5 -> 160.75.67.11
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 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 genel IP adresini yerel ağda bulunan kullanıcının özel IP adresi ve ona verdiği port numarası ile eşleştirerek İnternete erişmesini sağlar. Farklı bir özel IP’den aynı anda istek geldiği takdirde o IP’ye farklı bir port numarası verilir. PAT kullanılarak bütün yerel ağ daha az sayıda genel IP adresi kullanarak İnternete 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.
192.168.110.2 -> 160.75.67.10
192.168.110.3 -> 160.75.67.10
192.168.110.5 -> 160.75.67.10
Avantajları
- Az sayıda genel IP 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 İntranet adı verilen özel IP adreslerinden oluşmuş yerel ağlarını kullanarak, mümkün olduğunca az sayıda genel 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. Özel 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, genel 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 ağ 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.
Dezavantajları
- IP adresi ve port numaraları değiştirildiği için FTP ve bazı oyun protokolleri çalışmaz. Bazı İnternet protokolleri ve uygulamaları, çalışabilmesi için kaynak ve hedef IP adreslerine ihtiyaç duyar. Örneğin sayısal imza gibi bazı uygulamalar NAT tarafından kaynak IP adresi değiştirildiği için, NAT kullanılan yerel ağlarda çalışmazlar. Bazen bu sorun sabit (static) NAT kullanılarak ortadan kaldırılabilir.
- Belirli bir genel IP ile birçok kullanıcının İnternete 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.
- 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 kullanmak IPsec gibi tünel protokollerinin kullanımını karmaşıklaştırır.
- Bir ağı NAT kullanımına uygun hale getirmek için topolojide değişiklik yapmak gerekir.