NAT

Vikipedi, özgür ansiklopedi
Atla: kullan, ara

Network Address Translation (NAT)[değiştir | kaynağı değiştir]

Network Address Translation (Ağ Adresi Dönüştürme), TCP/IP ağındaki bir bilgisayarın yönlendirme cihazı ile başka bir ağa çıkarken adres uzayındaki bir IP ile yeniden haritalandırma yaparak IP paket başlığındaki ağ adres bilgisini değiştirme sürecidir..

NAT ,Ağ maskelemeyle (ya da IP maskelemeyle) ile birlikte, bir adres uzayını gizlemek için kullanılan teknik bir terimdir.Çoğu kez private network adreslerinden ibarettir.(RFC 1918).Genellikle tek bir ip adresinin arkasında küçük bir adres uzayı bulunur.Bu mekanizma, yönlendirici cihazın kullandığı adreslerin haritalarını içeren, durum çeviri tabloları kullanır ve giden ip paketlerini haritalama yapar. Böylece yönlendirici kaynağı görüntülenir. İletişim tersten yapıldığında, geri haritalandırma yaparak IP adresleriyle karşılaştırma yapar ve sonuç durum çeviri tablolarında saklanır. Çevirici tablo içindeki bu yöntemde, kayıtlar trafikteki durumu yenilendikten sonra silinirler.

Bu çeviri tabloları kullanıldıktan sonra, ağ maskelemesi içinde iletişim oluştururken metoda, sadece yönlendirici aracılığıyla imkân verilir. Örneğin , maskelenmiş ağdaki bir web tarayıcısı ile dışarıdan bir web taraması yapılabilir, ama maskelenmiş ağ içerisindeki web sitesinde web tarayıcısı ile arama yapılamaz. Fakat, bugün çoğu NAT aygıtlarının ağ yöneticisi sürekli kullanım için çeviri tablosu girdilerini ayarlamanızı sağlar.

Bu tekniğin popularitesiyle, NAT terimi neredeyse IP maskelendirilme yöntemi ile eşanlamlı hale gelmiştir. NAT'ın ciddi sonuçları (Sakıncaları, Avantajları) vardır. Internet kalitesine bağlantısı ve uygulama detaylarına dikkat etmeyi gerektirir. Sonuç olarak, birçok yöntem gibi sorunlarla karşılaşılmış ve hafifletmek için icat edilmiştir.

Genel Açıklama[değiştir | kaynağı değiştir]

IP adres uzayı gün geçtikçe azalmaktadır. Bu azalmanın hızını yavaşlatmak için bazı yöntemler denenmiştir. IPv4′ün sayısının muhtemel yetersizliğini engellemek içinde kurumlar, ev kullanıcıları vs. için NAT, servis sağlayıcılar ve yönlendirmede kullananlar içinde CIDR gibi teknolojiler geliştirilmiştir (CIDR– Classless Inter Domain Routing – Sınıfsız Alanlar arası Yönlendirme).

İnterneti etkin kullanabilmek için IP adresleri kullanılır. Ama her IP adresini internet ortamında kullanamaz. Bazı özel IP adresleri vardır. Bu adresler(IP adres aralıkları), kendi yerel ağlarımızda kullanmamız için ayrılmıştır. Bunlar Address Allocation for Private Internets (özel internetler için adres payı) diye tanımlanır ve Private Adresses denir. İnternette kullandığımız IP adreslerine ise Public Adresses denir.

Özel (Private) IP adresleri:
10.0.0.0 ile 10.255.255.254
172.16.0.0. ile 172.31.255.254
192.168.0.0 ile 192.168.255.254 arasındadır.
NAT private adresslerin internete çıkmasına olanak sağlayan teknolojidir.

NAT mantığı oluşması için evde kullandığımız ADSL yönlendiricilerimizi düşünelim. Servis sağlayıcımıza (Türk Telekom) ait ADSL kullanıcılarına sabit (statik) veya değişken (dinamik) olarak dağıtılan belli IP aralıkları vardır. Buraya Dış taraf (Outside)denir. ADSL yönlendiricisine, bilgisayara veya ağ üzerinden haberleşen başka bir cihaza özel IP verilir. Buraya da iç taraf (Inside) denir.Yerel ağdaki adresler birbirleriyle haberleşir. İnternete çıkarken ise NAT devreye girer.

İstek gönderdiğimizde bu istek ADSL yönlendircisinin Ethernet (eth0) arayüzüne gelir ve NAT bunu çevirip diğer arayüze yönlendirir, o bağlantı için NAT tablosunda bir kayıt tutulur. Yerel ağ tarafında birden fazla cihaz internete çıktıklarında servis sağlayıcısının verdiği bir tane IP adresini kullanacaklardır.

NAT özel bir IP adresi kullanarak yüzlerce cihazın internet ortamında haberleşmesini sağlar. Böylece IP adresi sıkıntısı kısmen önlenmiş olur.

NAT Avantajları[değiştir | kaynağı değiştir]

-Az sayıda IP kullanarak birçok istemciyi internete çıkarabilirsiniz. Hem parasal olarak kazanç sağlar hem de IP adresi azalmasını yavaşlatmış olur.
-Yerel ağımızı istediğimiz gibi tasarlamanıza da olanak sağlar. Yeni istemciler ekleyebilir. Adreslerini değiştirebiliriz veya yeni yerel ağlar ekleyebiliriz. Tek değiştirmeniz gereken NAT ayarlarıdır.
-Güvenlik sağlar. Yerel ağınızla internet arasında bir çeşit firewall gibi durur. Dışarıdan gelenler siz izin vermediğiniz sürece içeriye erişemezler.
-Bunların yanında dezavantajları da var. Bazı uygulamalar NAT kullanırken zorluklar yaşayabilir (FTP- Dosya aktarım iletişim kuralı gibi). IPsec kullanıyorsak yine sorunlar yaşayabiliriz. Vs.

NAT Türleri[değiştir | kaynağı değiştir]

Basit NAT(Basic NAT)[değiştir | kaynağı değiştir]

Bu sadece IP adres çevirimini sağlar,port haritalamayı sağlamaz.Sabit NAT da denir.

Değişken NAT (Dynamic NAT)[değiştir | kaynağı değiştir]

Basit NAT’a benzer. Bu tip NAT ayarında bir IP adres havuzumu bulunur. Örneğin, ISP'den gidip 85.99.230.10 ile 85.99.230.20 aralığını aldığımızı düşünelim. İçeride de 50 tane kullanıcı olduğunu varsayarsak internete çıkmak isteyenler boşta olan herhangi bir IP adresinden dışarı çıkacaklardır. Kullanıcılar hangi IP adresinden çıkacaklarına karar verme yetkisine sahip değildirler. Yoğunluğa göre NAT ayarı yapılan cihaz buna karar verir.

Sabit ve Değişken NAT işlemi şu sıra ile gerçekleşir;

1- İç taraftan bir istemci dış taraftan bir web sunucusuna bağlanmak ister.
2- İlk paket yönlendiriciye geldiğinde, yönlendirici NAT tablosuna bakar.
3-Statik olarak eşleme yapılırsa, yönlendirici ilgili IP adresi ile çevirme işlemini yapar ve gerekli yere yönlendirir. Statik eşleme yapılmazsa, IP adresi havuzumuzdan boşta duran bir IP adresi ile eşleştirir. Bu durumda sadece geçerli olan bağlantı için tabloya bir eşleme kaydı girilir.
4- Web sunucu paketi alır ve dış taraftaki ilgili IP adresine cevap gönderir çünkü çevirim olmuştur ve web sunucusunun bizim iç taraftaki ağımızdan haberi yoktur.
5- Yönlendirici, tablosundaki iç taraf – dış taraf eşlemelerine bakar ve bu paketi iç taraftaki gerekli yere yönlendirir.
6- Bundan sonra bağlantı bitene kadar bu şekilde devam edecektir. Bittiğinde değişken (dynamic) NAT yapılmışsa bu kayıt bir dahaki bağlantıya kadar tablodan silinir.

Port Adres Çevirimi (Port Address Translation)[değiştir | kaynağı değiştir]

Diğer bir ismi de Overloading’ dir (Aşırı yükleme). Bir tane public IP adresi vardır ve içeride bulunan istemciler dışarı bu IP adresini kullanarak çıkarlar. Burada tek fark iç tarafın kullandığı port ile NAT işleminden sonra dış tarafın kullandığı port (kapı) numarasının birbirlerinden farklı olmasıdır.

Normalde istemciler bir yer ile bağlantı kurduğunda (HTTP sunucusu) onun 80 numaralı portuna (kapı) gider. Buna hedef port (destination port) denir. Buraya giderken kendilerinden de bir port açarlar. Buna da kaynak port (source port) denir. Kaynak port 1024 ile 65535 arasında herhangi bir port olabilir. Bu TCP oturumu (TCP Session) kurulması için bu gereklidir.

PAT işlemi şu sıra ile gerçekleşir;

1- İç taraftan bir istemci dış taraftan bir HTTP sunucusuna bağlanmak ister.
2- İlk paket yönlendiriciye geldiğinde, yönlendirici NAT tablosuna bakar.
3- Yönlendirici (router) iç tarafın IP adresini ve port numarasını NAT tablosuna yazar. Sonra yönlendirici iç taraftaki IP adresi ile port numarasını dış taraftaki ile çevirime sokar. Bu işlemden sonra artık HTTP sunucuna giden IP adresi ve kaynak port farklı olacaktır.
4- HTTP sunucu paketi alır ve dış taraftaki ilgili IP adresine cevap gönderir çünkü çevirim (translation) olmuştur ve HTTP sunucusunun bizim iç taraftaki ağımızdan haberi yoktur.
5- Yönlendirici, tablosundaki iç taraf - dış taraf eşlemelerine bakar ve bu paketi iç taraftaki gerekli yere yönlendirir.
6- Bundan sonra bağlantı bitene kadar bu şekilde devam edecektir. Bittiğinde bu kayıt bir dahaki bağlantıya kadar veya farklı bir bağlantı isteği gelene kadar tablodan silinir.

Örtüşüm (Overlapping)[değiştir | kaynağı değiştir]

Bulunduğumuz yerdeki bir IP adresinin internette veya başka bir ağda da kullanılmasından kaynaklanan karışıklığı önlemek için kullanıyoruz. Bunun için bir DNS sunucusu ile veya sabit/değişken NAT ile beraber kullanmak gerekir.

NAT Tipleri[değiştir | kaynağı değiştir]

Ağ adresi çevirimi farklı protokollerin etkileşimi, port numaraları,dönüşüm adresi ve şemasının yapısına göre çeşitlidir.

Full cone NAT (bire-bir NAT)

-Tek bir iç adres (iAddr: iPort)bir dış adres (eAddr: ePort) için haritalanır, iAddr herhangi bir paket: iPort eAddr yoluyla gönderilecektir: ePort.
-Herhangi bir dış sunucu iAddr paketleri gönderebilir: iPort eAddr tarafından paketleri göndererek: ePort

Full Cone NAT.svg
(Address) Restricted cone NAT (Kısıtlı koni NAT)

-Tek bir iç adres (iAddr: iPort) dış bir adres (eAddr: ePort) için haritalanır, iAddr herhangi bir paket: iPort eAddr yoluyla gönderilecektir: ePort. -Harici bir sunucu (hAddr: Herhangi) iAddr ile paketler gönderebilir: iPort: ePort yalnızca iAddr: iPort sadece bir paket hAddr gönderibilir: Herhangi bir eAddr paketleri göndererek.

Restricted Cone NAT.svg
Port-Restricted cone NAT(Port-Sınırlı koni NAT)

-Restricted cone NAT gibidir.Ama sınırlı olarak port numaralarını içerir.


Port Restricted Cone NAT.svg
Symmetric NAT (Simetrik NAT)

-Her bir kullanıcı için aynı IP ve port ,farklı bir hedef ip adresi ve haritalanmış port , eşsiz bir kaynak dış IP Adresi ve port bulundurur. -Aynı iç sunucudan gönderilen bir paket farklı haritalama ve farklı hedef kullanması, aynı kaynak adresi ve port kullanmasına eşittir.

Symmetric NAT.svg


NAT ve TCP/UDP[değiştir | kaynağı değiştir]

Çevrimin içindeki veya dışındaki bir sunucu tarafından veri taşıyan kısmın yorumlanmış olup olmadığına bağlı olarak "Pure NAT", IPyi tek başına yönetir.IP bilgisi ile ilgili protokoller doğru bir şekilde ayırabilir veya ayıramaz(ICMP gibi).NAT ağ katmanı ötesinde kullanılmıyorsa protokol yığını hatta TCP ve UDP gibi temel protokoller bile bozulur.

Her IP başlığında o başlığın hatalı olup olmadığını algılamayı sağlayan bir checksum vardır. IP datagramları parçalanmış olabilir ve daha yüksek seviye checksumların doğru hesaplanması ve hangi paketlerin hangi bağlantıya ait olduğunun doğru izlenmesini sağlamak için NAT'ın bunları tekrar birleştirmesi gereklidir.

Ana taşıma katmanı protokollerinden TCP ve UDP taşıdıkları veriyi koruyan bir checksuma sahiptir. Bununla birlikte TCP/UDP başlığını taşıyan paketin kaynak ve hedef ip adreslerinin olduğu bir “psuedo header ” vardır. TCP/UDP başlığı checksumı, çevrilen ip adreslerine göre tekrar hesaplamalıdır ve bu checksumın parçalanmış paketlern içindeki ilk paketin TCP/UDP başlığına koymalıdır. Alıcı NAT mutlaka hedef sunucuya geçen tüm paketlerin ip checksumlarını tekrar hesaplamalıdır ve ayrıca tekrar çevrilmiş adresleri ve psuedo başlıkları kullanan TCP/UDP başlıklarını tanımalı ve tekrar hesaplamalıdır .Bu tamamen çözülmüş bir problem değildir. Tüm segmentin tekrar birleştirmesi ve sonra tüm paketler üzerinden hesaplanmış bir checksumın tekrar hesaplanması alıcı NAT için bir çözümdür.

Hedef Ağ Adresi Çevirisi (DNAT)[değiştir | kaynağı değiştir]

Bir En-route paketinin hedef ip adresini şeffaf bir şekilde değiştirmek için bir tekniktir ve herhangi bir cevap üzerinden tersden de çalışabilir.2 uç arasındaki her router bu çevrimi yapabilir.

SNAT[değiştir | kaynağı değiştir]

Snat'ın terim olarak kullanımı satıcıya göre değişir. Birçok satıcı SNAT için özel tanımları vardır.

Dış bağlantılar[değiştir | kaynağı değiştir]