evde/işte ADSL yönlendiricilerimizde gördüğümüz NAT (Network Adress Translation - Ağ Adres Çevrimi) özelliğinin ne olduğunu, nasıl çalıştığını, ne tür NAT çeşitleri olduğunu göreceğiz. Tabi NAT sadece ADSL yönlendiricilerde vardır diyemeyiz. Sırf NAT yapan cihazlar olduğu gibi büyük yönlendiriciler hatta Windows'ta kullandığımız Internet Bağlantı Paylaşımı (Internet Connection Sharing - ICS) gibi yazılımlar da NAT yapabilir. Yazıda IP adreslerinden sıklıkla bahsedeceğiz ama IP adresinin özelliklerine girmeyeceğiz. Bunu TCP/IP başlığı altında başka bir makalemizde anlatmak daha doğru olacaktır. Tabi bunu bilmemek NAT'ın ne olduğunu anlamamıza engel olmayacaktır.
Nedir bu NAT sorusuna gelmeden önce NAT'ın nasıl çalıştığını anlamakta fayda var. Zaten ondan sonra ne olduğunu anlayacağız. İnternette TCP/IP iletişim kuralları topluluğunu kullanarak haberleşiriz. Topluluk diyorum çünkü içinde birçok iletişim kuralını barındırır (TCP, UDP, ICMP, IP vs). Bu kuralların da nereye gideceklerini bilmeleri için bir adrese ihtiyaçları olacaktır. Buna da IP adresi diyoruz. IP adresi diyince burada NAT'ı ilgilendiren bölüme geliyoruz.
NAT
İnternette kullandığımız IP adreslerini internet servis sağlayıcılar ICANN adlı firmadan satın alırlar. Tabi dünyada 6 milyara yakın insan olduğunu ve her geçen gün insanların ve internete girenlerin sayısını arttığını düşünürsek IP adresleri yetmeyecektir. 90'lı yıllarda bunu görenler zaten şuan IP sürüm 6'yı geliştirmekle uğraşıyorlar. IPv6 trilyonlara varan IP adresi kullanmamıza olanak sağlayacak. Bu biraz uzun sürecek çünkü tüm internet altyapısının değişmesi gerekecek. Biz hali hazırda IP sürüm 4 kullanıyoruz. IPv4 ile 4,294,967,296 IP adresiniz olabilir. Ama IP adreslerinin sınıflara (class) ayrılmış olması, bazı adreslerin çoklu gönderim (Multicasting) için, bazılarının da test amaçlı kullanılmasından dolayı bu sayı 3,2 milyara kadara düşmektedir. Sürüm 5 ise deneysel amaçlarla hazırlanmış fakat kullanılmamıştır. 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 yönlendirmede kullanılan bir teknolojidir - Classless Inter Domain Routing - Sınıfsız Alanlararası Yönlendirme). Peki, nasıl çalışıyor ve bu NAT bize nasıl bir kolaylık getirdi?
İnternette gideceğimiz yeri bulmak için IP adresleri kullanırız. Ama her IP adresini internet ortamında kullanamıyoruz. Bazı özel IP adresleri vardır. Bu adresler, daha doğrusu 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, kısaca Private Adresses (özel adresler) diyoruz. İnternette kullandıklarımıza da Public (Halka Açık) Addresses diyoruz (başka deyişlerde mevcuttur. Mesela Real - Gerçek- IP, Registered-Kayıtlı - IP gibi).
Özel IP adresleri:
10.0.0.0 ile 10.255.255.255
172.16.0.0. ile 172.31.255.255
192.168.0.0 ile 192.168.255.255 arasındadır. Bunlar dışında da başka amaçlar için özel adresler vardır. Ama bizi ilgilendirmiyor. Hiçbir şekilde internette 10.4.34.98 veya 192.168.40.50 gibi adresler göremezsiniz. NAT bu adreslerin internete çıkmasına olanak sağlayan teknolojidir. Peki, nasıl yapıyor bu işi?
Kafamızda NAT mantığı oluşması açısından evde kullandığımız ADSL yönlendiricilerimizi ele alalım. Öncelikle oyuncularımıza rollerini vermekte yarar var. Servis sağlayıcımıza (Türk Telekom) ait belli IP aralıkları var. Bunları ADSL kullanıcılarına sabit (statik) veya değişken (dinamik) olarak dağıtmakta. Buraya Dış taraf (Outside) diyoruz. Birde biz varız. Bizde kendi ADSL yönlendiricimize, bilgisayarımıza veya ağ üzerinden haberleşen başka bir cihazımıza özel IP veririz. Buraya da iç taraf (Inside) diyoruz. Kendi verdiğimiz adresler içeride kendileri ile haberleşirler. Ama iş internete çıkmaya gelince burada NAT devreye giriyor. NAT ne yapıyor? ADSL yönlendiricimizin 3 tane arayüzü (interface) var. Bunlar PPPoE veya PPPoA (internet), Ethernet (yerel) ve geridöngü (Loopback) arayüzleri. Her 3 arayüzüne de IP adresleri atanır. Internet tarafına siz bağlantı kurduğunuzda servis sağlayıcı tarafından, yerel tarafa ise biz IP atarız. Geridöngü (Loopback) varsayılan olarak 127.0.0.1 alır (burası ile pek işimiz yok). ADSL yönlendiricimiz bize ilk geldiğinde onun ethernet arayüzüne bağlanmak için 10.0.0.2 veya 192.168.1.1 gibi adresleri kullanırız. Bunu sonradan değiştirip başka bir özel IP vermek bizim elimizde. Örnek olarak aşağıda bir ADSL modemin arayüzlerini görebilirsiniz.
Siz bilgisayarınızdan bir istek gönderdiğinizde bu istek ADSL yönlendiricinizin Ethernet (eth0) arayüzüne gelir ve NAT bunu çevirip diğer arayüze yönlendirir ve o bağlantı için NAT tablosunda bir kayıt tutulur. Yerel ağ tarafında isterse yüz bilgisayar olsun internete çıktıklarında bir tane IP adresi ile kullanacaklardır (genelde ADSL yönlendiriciler böyle çalıştığı için bu örneği veriyorum, çeşitlerini biraz sonra göreceğiz). O adreste tabi ki servis sağlayıcının size verdiği adrestir. İşte burada NAT insanlara bir IP adresi kullanarak yüzlerce bilgisayarı internet ortamında haberleşmesini sağlıyor. Böylece IP adresi sıkıntısı bir nebze de olsa önlenmiş oluyor. Eğer NAT olmasaydı ne olurdu? Şirketimizde 100 tane bilgisayar var diyelim. Her birini internete çıkarmak için 100 tane IP ye ihtiyacımız olacaktı. Özel adresleri ve NAT ı kullanarak bunun önüne geçilmiş ve IP yetersizliği önlenmiş oldu. Tabi elbet bir gün yetmeyecek ama IPv6 ile bu sorun ortadan kalkacaktır.
NAT kısaca özel IP'lerin internetteki IP'lerle haberleşmesini sağlıyor. Tabi NAT'ın güvenlik tarafı da var. İçeriden bir istek olmadıkça veya siz izin vermedikten sonra dışarıdan hiç kimse içeriye erişemez. Yukarıda verdiğimiz örnekleri kafamızda biraz NAT mantığı otursun diye verdim. Farklı NAT yapılandırmaları mevcut. Yazımızın devamında bunlara da değineceğiz. Ayrıca gelişmiş yönlendiricilerde birçok arayüz vardır. Bunlar DSL teknolojisi yanında ISDN, Frame Relay, Ethernet, Metro Ethernet vs gibi teknolojilerdir. O yüzden bunlardan bir kaçının bulunduğu bir yönlendiricide farklı arayüzler arasında da NAT yapma şansımız olur.
Cisco firmasının devlerinden biri. Pek bizim evdeki ADSL yönlendiricilerimize (router) benzemese de kendisi çılgın bir yönlendiricidir.
NAT'ın faydalarını ve avantajlarını kısaca sıralamak gerekirse;
Az sayıda IP kullanarak birçok istemciyi internete çıkarabilirsiniz. Hem parasal olarak kazanç sağlar hem de IP adresi kıtlığı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 nevi ateş duvarı gibi durur. Dışarıdan gelenler siz izin vermediğiniz sürece içeriye erişemezler.
Tabi bunların yanında ufak dezavantajları da var. Bazı uygulamalar NAT kullanırken zorlukla yaşayabiliyor (FTP gibi). IPSEC kullanıyorsak yine sorunlar yaşayabiliriz. H.323 kullandığınızda sorunlar yaşayabilirisiniz vs... Şimdi biraz ayrıntıya girelim. NAT denen bu teknolojinin birden fazla çeşidi vardır. Burada bazı NAT terimlerini bilmek gerekir. Yerel ağımız için İç Taraf (Inside), Internet veya yönlendiricinin diğer tarafındaki farklı bir ağ için de Dış Taraf (Outside) diyeceğiz.