Salih Öztürk tarafından yazılmıştır.
IP adresi hepimizin bildiği gibi uç cihazların birbirleriyle konuşmasını sağlayan bir protokoldür. 32 bitlik bir adrestir. Yani 0 ve 1 birlerin yan yana kombinasyonuyla oluşturulur. 32 tane 0-1 in yan yana kombinasyonu yaklaşık 4 milyar farklı IP adresi demektir. Yerelde ve geniş ağ bağlantılarını hesaba kattığımızda bu IPv4 adreslerinin yetmeyeceği aşikardır. Bu durumu önlemek için bazı ip aralıkları iç network‘te kullanılmak üzere ayrılmıştır. Herhangi bir şekilde dış networkte (internette) kullanılamaz hale getirilmiştir. Bu noktada hayatımıza önce public ve private adres sonra NAT girmiştir.
İnternette bazı adresler yerel ağlarda kullanılmak amacıyla özel (private IP address) olarak ayrılmıştır. Bu özel IP aralıkları şunlardır:
10.0.0.0 – 10.255.255.255
172.16.0.0 -172.31.255.255
192.168.0.0 – 192.168.255.255
Birde lokal ağda localhost adresi diye geçen 127.0.0.1 ip adresi var.
Internet ortamında bu ip adresleri kesinlikle kullanılmaz, iç network kullanıcıları internete çıkarken, ISP (Internet Servis Sağlayıcısı) tarafından sağlanan statik veya dinamik bir IP adresine dönüşürler. İşte bu IP adresi tüm dünya da tek olacaktır. Dünya üzerinde birçok şirket ve kurum yerel ağlarında yukarıda verilen özel IP’leri kullanmaktadır. Dış bağlantılarını ise NAT yapabilen uygun yönlendiriciler kullanarak, IP adreslerini genel adreslere çevirerek sağlamaktadırlar. Yani, lokal ağda private adrese atanan cihazlar internete çıkarken routerda public bir IP’ye dönüşür. Bu dönüşme işlemine verilen isme NAT (Network Address Translation) diyoruz.
Uygulayacağımız NAT Örneği
Temel olarak 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 gelir. NAT yönlendiricisi daha önceden kullanıcının ayarladığı NAT tablosuna bakar. Özel IP adresini genel bir IP adresine çevirir. 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 bilinen IP’ye doğru bir istek geldiğinde; 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.
NAT tablosunda yapılan eşleştirmeler ağ yöneticisinin veya kullanıcının tercihine göre 3 farklı şekilde ayarlanabilir bunlar
•Statik NAT
•Dinamik NAT
•PAT
şeklindedir.
Öncelikle oluşturmuş olduğum networkün kongifürasyon işlemlerini yaptıktan sonra statik NAT konfigürasyon işlemini göstereceğim.
Yerel ağda kullanılmakta olan özel IP’yi dışarıda kullanılacak olan genel IP’ye birebir çevirmedir. Yani ağ yöneticisi kullanılacak olan özel IP’leri belirlemektedir.. Ve bunları sahip olduğu genel IP adresleriyle kendisi eşleştirir.
Statik NAT konfigürasyonunda ICMP Paketi Switchden Cikarken
Konfigürasyon işlemleri yapıldıktan sonra Ankara’da bulunan bilgisayardan İstanbul’da bulunan servera ping attığımızda ICMP paketinin switchden çıkarken SRC(Kaynak) IP ‘sini ve DST(hedef ) IP‘si resimde görüldüğü gibidir.
Statik NAT konfigürasyonunda ICMP Paketi Routerdan Cikarken
ICMP paketi Ankara routerına geldiğinde SRC yani kaynak IP. Localde bulunan Private IP yerine dönüştürülerek statik olarak belirlediğimiz Global IP’yi almıştır. Ve 192’li IP yerine 200’lü IP SRC olmuştur. Böylece NAT işlemi başarılı bir şekilde gerçekleşmiştir.
Statik NAT konfigürasyonu IP NAT TRANSLATIONS Komutu ile Gösterimi
show ip nat translations komutu ile Ankara’da bulunan bilgisayarlardan gönderilen ICMP paketi; İstanbul’da ki servera başarılı bir şekilde ulaşmış olduğunu görebiliyoruz. ICMP paketi her gönderildiğinde ise statik olarak belirlediğimiz 200.200.200.6 IP’sini SRC olarak almış. Her çıkışta aynı IP ve farklı portlardan çıktığı ise resimde görüldüğü gibidir. Mavi renk ile gösterilen alan portları gösterir.
Dinamik NAT’ta, statik NAT gibi tek tek IP adresi girmek yerine; Kullanılabilecek IP adresleri için havuz oluşturuluyor. Böylece, router havuzdan otomatik olarak kullanılacak IP’yi seçiyor. Ayrıca hangi network’teki hangi IP adreslerinin çıkışına da izin verileceğini belirtmek için access-list oluşturulması gerekiyor.
Uygulayacağımız Örneğe 2 Bilgisayar Daha Eklenmiş Hali
Aynı örneğe 2 bilgisayar ekleyerek devam edecek olursak. En başta yaptığımız ANKARA ve ISTANBUL routerlerının konfigürasyon işlemi yapıldıktan sonra Dinamik NAT işlem adımlarını aşağıda yapacağız. Yeni eklenen bilgisayarlara ip adresleri ve gateway adresi verildikten sonra dinamik NAT işlemine geçebiliriz.
Dinamik NAT konfigürasyonu IP NAT TRANSLATIONS Komutu ile Gösterimi
ping –t 172.16.1.34 komutu ile İstanbul’da bulunan servera ICMP paketi gönderdim. 5 paket gönderildikten sonra CTRL+C komutu ile paket gönderimini durdurmuş oldum. ANKARA routerinda show ip nat translations komutu ile Ankara’da bulunan bilgisayarların; ANKARA routerindan çıktığında havuzdan almış oldukları IP adresini ve her çıkışta farklı portları kullandığını görmüş olduk. IP aralığını 200.200.200.6 ile 200.200.200.16 arasında belirlediğim için 6 ile 16 arasındaki IP ataması routerdan çıkışta sağlanmış oldu.
İçerde birden fazla ip var ancak dışarıya tek ip ile çıkılmasını istiyoruz. Burda port adres translations yapılıyor. İçerdeki dört host dışarıya aynı IP adresiyle çıkar ancak burda belirleyici olan port numarasıdır.
Dinamik NAT yapılandırılmasındaki aynı örneğe devam edecek olursak; En başta yaptığımız ANKARA ve ISTANBUL routerlerının konfigürasyon işlemi yapıldıktan sonra PAT işlem adımlarını yapacağız.
PAT konfigürasyonu IP NAT TRANSLATIONS Komutu ile Gösterimi
Resimde görüldüğü üzere show ip nat translations komutu ile 4 adet hostdan çıkan ICMP paketleri ANKARA routerindan çıktığında hepsi aynı IP’ye sahip oluyor. Burada belirleyici olan port numaralarının farklı olmasıdır.
PAT konfigürasyonu HTTP İSTEĞİ IP NAT TRANSLATIONS Komutu ile Gösterimi
Burada ise Ankara’da bulunan her bilgisayardan tarayıcı açıp; İstanbul’da ki servera HTTP isteği yaptığımızda yani hedef serverin 80 portuna istek yaptığımızda. TCP paketleri ANKARA routerından çıkarken, farklı portlardan çıktığını resimde görebilirsiniz.
https://bidb.itu.edu.tr/seyir-defteri
https://salihaltuntas.com/
[TR] NAT Nedir Türleri Nelerdir ve Konfigürasyonları Nasıl Yapılır?
NAT (Network Address Translation)
IP adresi hepimizin bildiği gibi uç cihazların birbirleriyle konuşmasını sağlayan bir protokoldür. 32 bitlik bir adrestir. Yani 0 ve 1 birlerin yan yana kombinasyonuyla oluşturulur. 32 tane 0-1 in yan yana kombinasyonu yaklaşık 4 milyar farklı IP adresi demektir. Yerelde ve geniş ağ bağlantılarını hesaba kattığımızda bu IPv4 adreslerinin yetmeyeceği aşikardır. Bu durumu önlemek için bazı ip aralıkları iç network‘te kullanılmak üzere ayrılmıştır. Herhangi bir şekilde dış networkte (internette) kullanılamaz hale getirilmiştir. Bu noktada hayatımıza önce public ve private adres sonra NAT girmiştir.
İnternette bazı adresler yerel ağlarda kullanılmak amacıyla özel (private IP address) olarak ayrılmıştır. Bu özel IP aralıkları şunlardır:
10.0.0.0 – 10.255.255.255
172.16.0.0 -172.31.255.255
192.168.0.0 – 192.168.255.255
Birde lokal ağda localhost adresi diye geçen 127.0.0.1 ip adresi var.
Internet ortamında bu ip adresleri kesinlikle kullanılmaz, iç network kullanıcıları internete çıkarken, ISP (Internet Servis Sağlayıcısı) tarafından sağlanan statik veya dinamik bir IP adresine dönüşürler. İşte bu IP adresi tüm dünya da tek olacaktır. Dünya üzerinde birçok şirket ve kurum yerel ağlarında yukarıda verilen özel IP’leri kullanmaktadır. Dış bağlantılarını ise NAT yapabilen uygun yönlendiriciler kullanarak, IP adreslerini genel adreslere çevirerek sağlamaktadırlar. Yani, lokal ağda private adrese atanan cihazlar internete çıkarken routerda public bir IP’ye dönüşür. Bu dönüşme işlemine verilen isme NAT (Network Address Translation) diyoruz.
NAT Terimleri
- Inside local adresi bizim lokalde kullanmış olduğumuz private IP adresimizdir.
- Inside global ise internete çıkarken dönüştürülen public IP adresimizdir.
- Outside global adresi internette erişmeye çalıştığımız karşı tarafın public IP adresidir.
- Outside local ise erişmeye çalıştığımız karşı tarafın private IP adresidir. Biz karşı tarafa erişmeye çalışırken karşı tarafın outside global adresine erişiriz. Karşı tarafın router’ı bizi outside local adresine yönlendirir.
Uygulayacağımız NAT Örneği
Temel olarak 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 gelir. NAT yönlendiricisi daha önceden kullanıcının ayarladığı NAT tablosuna bakar. Özel IP adresini genel bir IP adresine çevirir. 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 bilinen IP’ye doğru bir istek geldiğinde; 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.
NAT tablosunda yapılan eşleştirmeler ağ yöneticisinin veya kullanıcının tercihine göre 3 farklı şekilde ayarlanabilir bunlar
•Statik NAT
•Dinamik NAT
•PAT
şeklindedir.
Öncelikle oluşturmuş olduğum networkün kongifürasyon işlemlerini yaptıktan sonra statik NAT konfigürasyon işlemini göstereceğim.
ANKARA Router’ının konfigürasyonu
Kod:
Router>en
Router#conf terminal
Router(config)#hostname ANKARA
ANKARA(config)#interface gigabitEthernet 0/0
ANKARA(config-if)#ip address 192.168.1.254 255.255.255.0
ANKARA(config-if)#no shutdown
ANKARA(config-if)#ex
ANKARA(config)#interface serial 0/3/0
ANKARA(config-if)#ip address 200.200.200.6 255.255.255.0
ANKARA(config-if)#no shutdown
ISTANBUL Router’ının konfigürasyonu
Kod:
Router>enable
Router#conf terminal
Router(config)#hostname ISTANBUL
ISTANBUL(config)#interface gigabitEthernet 0/0
ISTANBUL(config-if)#ip address 172.16.1.254 255.255.255.0
ISTANBUL(config-if)#no shutdown
ISTANBUL(config-if)#ex
ISTANBUL(config)#interface serial 0/3/0
ISTANBUL(config-if)#ip address 200.200.200.34 255.255.255.0
ISTANBUL(config-if)#no shutdown
ISTANBUL(config-if)#ex
ISTANBUL (config)#ip route 0.0.0.0 0.0.0.0 serial 0/3/0 (Gönderilen ICMP paketi İstanbul routerinden geri dönebilsin diye statik yönlendirme işlemi yapılmıştır.)
Statik NAT Konfigürasyonu
Yerel ağda kullanılmakta olan özel IP’yi dışarıda kullanılacak olan genel IP’ye birebir çevirmedir. Yani ağ yöneticisi kullanılacak olan özel IP’leri belirlemektedir.. Ve bunları sahip olduğu genel IP adresleriyle kendisi eşleştirir.
Kod:
ANKARA(config)#interface gigabitEthernet 0/0
ANKARA(config-if)#ip nat inside
ANKARA(config-if)#ex
ANKARA(config)#interface serial 0/3/0
ANKARA(config-if)#ip nat outside
ANKARA(config)#ip nat inside source static 192.168.1.10 200.200.200.6
ANKARA(config)#ip nat inside source static 192.168.1.11 200.200.200.6(Statik olarak özel IP’lerimi routerdan çıkarken alacağı Global IP’ye eşleştirdim.)
ANKARA (config)#ip route 0.0.0.0 0.0.0.0 serial 0/3/0 (Statik yönlendirme ile karşı routera erişmeyi sağlıyoruz.)
Statik NAT konfigürasyonunda ICMP Paketi Switchden Cikarken
Konfigürasyon işlemleri yapıldıktan sonra Ankara’da bulunan bilgisayardan İstanbul’da bulunan servera ping attığımızda ICMP paketinin switchden çıkarken SRC(Kaynak) IP ‘sini ve DST(hedef ) IP‘si resimde görüldüğü gibidir.
Statik NAT konfigürasyonunda ICMP Paketi Routerdan Cikarken
ICMP paketi Ankara routerına geldiğinde SRC yani kaynak IP. Localde bulunan Private IP yerine dönüştürülerek statik olarak belirlediğimiz Global IP’yi almıştır. Ve 192’li IP yerine 200’lü IP SRC olmuştur. Böylece NAT işlemi başarılı bir şekilde gerçekleşmiştir.
Statik NAT konfigürasyonu IP NAT TRANSLATIONS Komutu ile Gösterimi
show ip nat translations komutu ile Ankara’da bulunan bilgisayarlardan gönderilen ICMP paketi; İstanbul’da ki servera başarılı bir şekilde ulaşmış olduğunu görebiliyoruz. ICMP paketi her gönderildiğinde ise statik olarak belirlediğimiz 200.200.200.6 IP’sini SRC olarak almış. Her çıkışta aynı IP ve farklı portlardan çıktığı ise resimde görüldüğü gibidir. Mavi renk ile gösterilen alan portları gösterir.
Dinamik NAT Konfigürasyonu
Dinamik NAT’ta, statik NAT gibi tek tek IP adresi girmek yerine; Kullanılabilecek IP adresleri için havuz oluşturuluyor. Böylece, router havuzdan otomatik olarak kullanılacak IP’yi seçiyor. Ayrıca hangi network’teki hangi IP adreslerinin çıkışına da izin verileceğini belirtmek için access-list oluşturulması gerekiyor.
Uygulayacağımız Örneğe 2 Bilgisayar Daha Eklenmiş Hali
Aynı örneğe 2 bilgisayar ekleyerek devam edecek olursak. En başta yaptığımız ANKARA ve ISTANBUL routerlerının konfigürasyon işlemi yapıldıktan sonra Dinamik NAT işlem adımlarını aşağıda yapacağız. Yeni eklenen bilgisayarlara ip adresleri ve gateway adresi verildikten sonra dinamik NAT işlemine geçebiliriz.
Kod:
ANKARA(config)#interface gigabitEthernet 0/0
ANKARA(config-if)#ip nat inside
ANKARA(config-if)#ex
ANKARA(config)#interface serial 0/3/0
ANKARA(config-if)#ip nat outside
ANKARA(config-if)#exit
ANKARA(config)#access-list 10 permit 192.168.1.0 0.0.0.255 (10 numarasını verdiğim ve ACL oluşturduğum 192.168.1.0 networkündeki tüm IP’lerin geçmesine izin verdim.)
ANKARA(config)#ip nat pool PwnLab_Havuzu 200.200.200.6 200.200.200.16 netmask 255.255.255.0 (Ağ dışına çıktığında kullanabilecekleri IP aralığı için 200.200.200.6-16 arasında PwnLab_Havuzu isminde bir havuz oluşturdum. )
ANKARA(config)#ip nat inside source list 10 pool PwnLab_Havuzu (Oluşturmuş olduğum ACL ve IP havuzunu router giriş yönünde uygulanması için bu komutu ekledim.)
ANKARA(config)#ip route 0.0.0.0 0.0.0.0 200.200.200.34 (Statik yönlendirme ile de karşı routera erişebilmesini sağladım.)
Dinamik NAT konfigürasyonu IP NAT TRANSLATIONS Komutu ile Gösterimi
ping –t 172.16.1.34 komutu ile İstanbul’da bulunan servera ICMP paketi gönderdim. 5 paket gönderildikten sonra CTRL+C komutu ile paket gönderimini durdurmuş oldum. ANKARA routerinda show ip nat translations komutu ile Ankara’da bulunan bilgisayarların; ANKARA routerindan çıktığında havuzdan almış oldukları IP adresini ve her çıkışta farklı portları kullandığını görmüş olduk. IP aralığını 200.200.200.6 ile 200.200.200.16 arasında belirlediğim için 6 ile 16 arasındaki IP ataması routerdan çıkışta sağlanmış oldu.
PAT (Port Address Translation) Konfigürasyonu
İçerde birden fazla ip var ancak dışarıya tek ip ile çıkılmasını istiyoruz. Burda port adres translations yapılıyor. İçerdeki dört host dışarıya aynı IP adresiyle çıkar ancak burda belirleyici olan port numarasıdır.
Dinamik NAT yapılandırılmasındaki aynı örneğe devam edecek olursak; En başta yaptığımız ANKARA ve ISTANBUL routerlerının konfigürasyon işlemi yapıldıktan sonra PAT işlem adımlarını yapacağız.
Kod:
ANKARA(config)#interface gigabitEthernet 0/0
ANKARA(config-if)#ip nat inside
ANKARA(config-if)#ex
ANKARA(config)#interface serial 0/3/0
ANKARA(config-if)#ip nat outside
ANKARA(config-if)#ex
ANKARA(config)#access-list 10 permit 192.168.1.0 0.0.0.255
ANKARA(config)#ip nat inside source list 10 interface serial 0/3/0 overload (Ankara networkünden çıkacak olan IP’ler tek bir IP’ye dönüştürülerek gitmesini istediğimiz için burada overload işlemi uyguluyoruz ve PAT işlemi gerçekleşmiş oluyor. Overload yapmasaydık sadece 1 IP’yi çevirecekti.)
ANKARA(config)#ip route 0.0.0.0 0.0.0.0 200.200.200.34
PAT konfigürasyonu IP NAT TRANSLATIONS Komutu ile Gösterimi
Resimde görüldüğü üzere show ip nat translations komutu ile 4 adet hostdan çıkan ICMP paketleri ANKARA routerindan çıktığında hepsi aynı IP’ye sahip oluyor. Burada belirleyici olan port numaralarının farklı olmasıdır.
PAT konfigürasyonu HTTP İSTEĞİ IP NAT TRANSLATIONS Komutu ile Gösterimi
Burada ise Ankara’da bulunan her bilgisayardan tarayıcı açıp; İstanbul’da ki servera HTTP isteği yaptığımızda yani hedef serverin 80 portuna istek yaptığımızda. TCP paketleri ANKARA routerından çıkarken, farklı portlardan çıktığını resimde görebilirsiniz.
NAT 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 lokalde 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 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.
KAYNAKLAR
https://bidb.itu.edu.tr/seyir-defteri
https://salihaltuntas.com/
Moderatör tarafında düzenlendi: