NAT

Değerli arkadaşlar, merhaba! Bu yazımızda sizlere, Network camiasında önemli bir konumu olan 'NAT' kavramından bahsedeceğiz. Fakat, yazıya geçmeden önce aşağıda linkleri bulunan blogları okumanız, bu blogu anlamanızı kolaylaştıracaktır (üzerine tıklayarak erişebilirsiniz).

IP (Internet Protocol)

Ağ Cihazları

Ağ Çeşitleri

ICMP

Firewall

Açılımı, 'Network Address Translation' ve Türkçe karşılığı 'Ağ Adresi Çevirisi' şeklindedir.

Normal şartlarda biz, internete çıkabilmek için bir Public (Genel) IP adresi kullanırız ama özel ağda Private (Özel) IP adresi kullanırız. NAT ise bu noktada, birden fazla cihazın tek bir Public adresi üzerinden internete erişmesine izin verir; adresleri çevirir, dönüştürür. Bu dönüşümü elbette, kafasına göre yapmaz; bu dönüşümü, bir Private IP adresini, Public IP adresine çevirerek sağlar. Daha genel bir tabirle NAT'ın amacı, yerel ana bilgisayarların internete erişimini sağlamak için bir veya daha fazla yerel IP adresini, bir veya daha fazla Global IP adresine çevirmek veya tam tersini yapmaktır.

Bir ağ içerisinde birden fazla ana bilgisayar olduğunu varsayalım. Bu ana bilgisayarlar, bir istekte (request) bulunduklarında NAT, ana bilgisayarların IP adresleri, ağın Public IP'si ile maskelenecek ve paket, hedefe bu şekilde gidecektir. Her isteğin (request) bir yanıtı (response) olduğunu düşünürsek hedef, Router'ın Public IP adresine yanıt gönderecektir. İşte, tam bu noktada ufak ama etkili bir sıkıntı vardır; port numaraları. Ana bilgisayarlar bir hedefe aynı anda ve aynı port üzerinden istekte (request) bulunduğunda NAT, IP adreslerini çevirir, evet ancak iş yanıt verme kısmına geldiğinde hangi paketin hangi ana bilgisayara ait olduğunu seçemez; çünkü portlar aynıdır. Dolaysıyla burada, portların da maskelenmesi gerekir.

Buradan şu sonucu çıkarabiliriz: "NAT, IP adresleri ile beraber port numaralarının da çevirisini yapar". Yani hedefe yönlendirilecek pakette ana bilgisayarın port numarasını başka bir port numarasıyla maskeler. Bunları yaptıktan sonra 'NAT Tablosu' dediğimiz bir yapıda ilgili IP adresi ve port numarası girişlerin yapar. Peki, NAT'ın IP adresleri biterse ne olur? Elbette, paketler düşürülür (drop) ve hedefe 'Unreachable Packet' yani 'Erişilemeyen Paket' adı altında bir ICMP paketi yollanır. Bütün bunlardan da anlayacağınız üzere NAT, genelde bir Router veya Firewall üzerinde çalışır.

Hemen yukarıdaki paragrafta 'NAT'ın IP adresleri' şeklinde bir ifade kullandık. Peki, bu ne anlama gelir? Bildiğiniz üzere IP adreslerinin aralıkları ve bu aralıklara bağlı olarak sınıfları vardır. Buradaki her sınıfın aralığı aslında bir IP havuzudur. Daha önce hiç Kali Linux kullandınız mı bilmiyorum ancak 'Hacking' kategorisi altında 'Kurulum' blogunda Kali'nin ağ seçenekleri için 'NAT Network' seçmiştik. Aşağı, hatırlatıcı bir görsel bırakıyorum.

Daha sonra 'Kali'yi Tanıyalım' isimli blogumuzda 'ifconfig' komutunu verdiğimizde 10.0.2.15 tarzında bir IP adresi gördük. Hatırlatıcı:

Peki, daha önce bir IP adresinin 10 ile başladığını gördünüz mü? İşte, bunu sağlayan şey NAT'ın maskeleme sistemidir. NAT'ın IP adreslerinin de bir aralığı vardır. Bu aralık, yukarıda gördüğünüz IP adresini de kapsar. Şimdi, aralıklara bakalım:

  • 10.0.0.0 - 10.255.255.255
  • 172.16.0.0 - 172.31.255.255
  • 192.168.0.0 - 192.168.255.255

İşte bütün bunları, NAT'ın nasıl bir maskeleme yaptığını ve verdiği IP adreslerinin nasıl gözüktüğünü göstermek için anlattım.

Özel adresleme düzeni, yalnızca ağ içerisindeki kaynaklara ulaşması gereken bilgisayarlar için iyi çalışır. Bununla beraber özel ağ içerisindeki Router'lar, ağ trafiğini özel adresler arasında oldukça iyi ve sorunsuz yönlendirir. Fakat bahsettiğimiz bu bilgisayarların dış ağlara açılması, dışarıdaki kaynaklara erişmesi gerekebilir. Dolayısıyla bu bilgisayarların, request - response işini yapabilmesi için bir Public IP adrese ihtiyacı vardır. İşte NAT, burada devreye girer. Eğer her cihaz kendi Public IP adresi ile internete çıkarsa bu inanılmaz bir güvenlik sorunu ve ekonomik sorunlar yaratacaktır. Bu yüzden NAT, blogun başında da bahsettiğimiz gibi dönüşümleri sağlar. Blogun başından bir hatırlatıcı:

'Güvenlik sorunu ve ekonomik sorunlar' ifadesini biraz daha açmamız gerektiğini düşünüyorum ki NAT'ın önemini daha iyi anlayabilelim. Normal şartlarda bir LAN içerisindeki bir bilgisayar, ağ dışına yani internetteki başka bir bilgisayara bir istekte bulunmak istediğinde Router, bu isteği alıp Firewall'a iletir. Daha sonra Firewall, bunun maskelenmiş bir IP olduğunu görüp ağ içerisindeki bir adresten geldiğini anlar. Son olarak kendi Genel IP adresini kullanarak bunu, internette gönderilmesi gereken yere ulaştırır. 'Firewall' isimli blogda bulunan görseli hatırlatıcı olarak ekliyorum:

Bu istek Firewall tarafından gönderildiğinde isteği alan yer yani kaynak, bu yanıtı Firewall'a yollar ve son olarak Firewall bunu ağ içerisine yollar. Bu kısım, arka tarafta gelişen olaylardır ancak bu işlem, isteği yollayan bilgisayar açısından değerlendirildiğinde; normal bir şekilde isteğini yapmış, internete çıkmış ve yanıtını almıştır. NAT, bu şekilde kullanıldığında internete erişim sağlayan ve özel ağ içerisindeki tüm kullanıcılar, interneti kullandıklarında aynı Genel IP adresine sahip olurlar. İşte bu olay, aslında bir LAN içerisinde kaç kullanıcı olursa olsun hepsi için tek bir Genel IP adresinin yeterli olduğunu gösterir. Güvenlik boyutunda ise Firewall'un ne işe yaradığını biliyorsunuz; trafik, kendisinin üzerinden geçtiği için NAT'ın bu kullanımı, güvenlik duvarının da güvenliğini sağlamış olur.

NAT'ın üç çeşidi vardır; kısaca bakalım.

1. Static NAT

Statik NAT'ta; tek bir Private IP adresi, tek bir Public IP adresiyle eşleşir. Bu, daha çok web barındırmada (web hosting) kullanılır.

2. Dynamic NAT

Bu türde; birden fazla Private IP adresi, bir Public IP adresine çevirilir. Yani biraz önce anlattığımız neredeyse her şey buna örnektir. Fakat bu, kullanıcı sayısını bildiğimiz zaman kullanılır.

3. Port Address Translation (PAT)

Biraz önce bahsettiğim 'port maskelemesi' işi, PAT sayesinde yapılır ve PAT, NAT ile birlikte kullanılır.


Yayınlanma Tarihi: 2022-09-09 16:12:22

Son Düzenleme Tarihi: 2022-09-13 13:11:47