Bu Yazıda Dinamik NAT / Dinamik PAT (Port Address Translation) ve Dinamik NAT / Dinamik PAT Yapılandırması Hakkında Bilgi Edineceğiz.
Bu Yazıdan Önce NAT Part 1 Yazısını okumanızı Tavsiye Ederim.
Dynamic NAT
Private IP Adresleri Public IP Adreslere Dinamik olarak Bire Bir Eşleştirir. Bu Nedenle Manuel olarak Eşleme Yapamazsınız. Router Eşlemeleri Otomatik olarak Yapar ve Artık Gerekmediğinde Eşlemeyi Temizler.
Topoloji
Dynamic NAT'ta Hangi Trafiğin NAT Çevirisine Tabi Tutulacağını Belirlemek için ACL Kullanılır.
Bu Kısım Önemlidir, Çünkü Bu ACL'nin Tamamen Farklı Bir Kullanımıdır. ACL, Hangi Trafiğin İletileceğini ve Engellenmesi Gerektiğini Belirtmek için Kullanılabilir (Permit/Deny). Bunu Zaten Biliyorsunuz. Ancak Belirli Bir Trafiği Tanımlamak için de Kullanılabilir.
Bir Paketin Source IP Adresine ACL Tarafından İzin Veriliyorsa (Permit) Source IP Adres, NAT Tarafından Çevrilecektir. Ancak Paketin Source IP Adresi ACL Tarafından Reddediliyorsa (Deny) Source IP Adres, NAT Tarafından Çevrilmeyecektir.
Not: ACL'nin Bu Kullanımı, Trafiğin İletilip İletilmeyeceğini Belirlemez. ACL'yi Yalnızca Hangi Trafiğin Çevrilmesi Gerektiğini Belirlemek için Kullanıyoruz. ACL'yi ip access-group Komutu ile Bir Porta Uygulamadık.
Dynamic NAT için Kullanılabilecek Inside Global Adresleri Tanımlamak için NAT Pool Kullanılır. Örneğin R1'de 192.168.0.0/24'e İzin Veren ve Diğer Tüm trafiği Engelleyen ACL 1 ve 100.0.0.1 - 100.0.0.10 Aralığındaki Inside Global Adreslerden oluşan NAT Pool POOL1'i Yapılandırdım.
NAT Pool POOL1: 100.0.0.1 - 100.0.0.10
ACL 1 Tarafından İzin Verilen Source IP Adrese Sahip Bir Paket Gelirse Source IP, POOL1'den Bir Adrese Çevrilir.
Static NAT'a Benziyor. Aradaki Fark: 192.168.0.167 - 100.0.0.1 Eşlemesini Manuel olarak Yapılandırmak Yerine R1'in Bunu PC1'den Paket Geldiğinde Otomatik / Dinamik olarak Yapmasıdır.
Inside Global IP Adres, Dinamik olarak Atanmış olmasına Rağmen Eşleme Yine de Bire Birdir (Inside Local <-> Inside Global).
Yeterli Miktarda Inside Global Adres Mevcut Değilse ve Bunların Tümü Hostlar Tarafından Kullanılıyorsa Buna NAT Pool Exhaustion Denir.
Bu Örnekte Toplam 254 adet Inside Local Adres Var. Ancak NAT Pool'da Yalnızca 10 adet Inside Global Adres Var. Bu Nedenle Aynı Anda Yalnızca 10 Çeviri Etkin olabilir.
İç Ağdaki Başka Bir Hosttan Paket Gelirse NAT'a İhtiyaç Duyar, Ancak Kullanılabilir Inside Global Adres Yoksa Router Paketi Çöpe Atar (Drop). Host, Inside Global Adreslerden Biri Kullanılabilir olana Kadar Dış Ağlara Erişemez.
NAT Translations Tablosundaki Dynamic NAT Girişleri Kullanılmazsa Otomatik olarak Zaman Aşımına Uğrar veya Bunları Manuel olarak Temizleyebilirsiniz.
Önceki Örneğimizde, PC1 Bir Süreliğine Dış Hostlar ile İletişim Kurmayı Keserse Inside Global Adres (100.0.0.1), Yeniden Farklı Bir Host Tarafından Kullanılabilir Hale Gelir.
Dinamik Çevirileri Manuel olarak Temizlemek için İstediğiniz Zaman clear ip nat translation * Komutunu Kullanabilirsiniz.
Örnek
100.0.0.1'den 100.0.0.10'a Kadar olan Tüm Inside Global Adresler İç Ağdaki Hostlar Tarafından Kullanılıyor.
192.168.0.98 IP Adresine Sahip Host, İnternet Üzerinden Trafik Göndermeye Çalışırsa Ne olur? Kullanılabilir Inside Global Adres Yok, Router Paketi Çöpe Atacaktır (Drop).
192.168.0.167 IP Adresine Sahip Host İnternet Üzerindeki İletişimini Durdurduğunda Bir Süre Sonra Dinamik Çevirisi Kaldırılır. 192.168.0.98 IP Adresine Sahip Host, Trafiği Yeniden Göndermeye Çalışırsa 100.0.0.1 Inside Global Adres Artık Çeviri için Kullanılabilir olduğundan Artık İnternete Erişebilir.
Static NAT ile Dynamic NAT Arasındaki Farkı Anlandığınızı Düşünüyorum. Her İkisinde de Bire Bir Eşleşmeler olsa da Static NAT Eşlemeleri Kalıcıdır. Ancak Dynamic NAT Eşlemeleri Geçicidir, Artık İhtiyaç Duyulmadığında Zaman Aşımına Uğrar ve Ardından Başka Bir Host Aynı Inside Global Adresi Kullanabilir. Ancak Hostlar Yine de Aynı Inside Global IP Adresi Aynı Anda Kullanamaz. Bunu Yapmak için PAT (Port Address Translation) Kullanmanız Gerekir.
Dynamic NAT Yapılandırması
- NAT Inside Interface Yapılandırma Komutu (config-if): ip nat inside
- NAT Outside Interface Yapılandırma Komutu (config-if): ip nat outside
- NAT Çevirisi Yapılacak Trafiği Yapılandırma Komutu (ACL): access-list acl-number permit source-ip-address wildcard-mask
- NAT Pool Yapılandırma Komutu: ip nat pool pool-name starting-ip-address ending-ip-address {prefix-length prefix-length | netmask subnet-mask}
- Dynamic NAT Yapılandırma Komutu: ip nat inside source list acl-number pool pool-name
PC1 ve PC2'den 8.8.8.8'e Ping Attım (Ping Gönderilirken DNS de Kullanıldı). R1'in NAT Translations Tablosuna Bakalım.
show ip nat translations
Her Eşleme (192.168.0.167 - 100.0.0.1 ve 192.168.0.168 - 100.0.0.2) için Üç Giriş olduğuna Dikkat Edin.
Router, Inside Local Adres - Inside Global Adres Eşlemelerini Dinamik olarak oluşturduğunda Yukarı Resimdeki Kırmızı Bölüm ile Belirtilen Girişleri oluşturur.
Daha Sonra Bu Eşlemeler Kullanıldığında Yukarı Resimdeki UDP veya ICMP Girişleri gibi Ayrı Girişler oluşturulur.
UDP ve ICMP Girişleri Yaklaşık Bir Dakika Sonra Silinecektir.
Ancak Orijinal Dinamik Eşlemelerin Kendi Varsayılan Zaman Aşım Değeri 24 Saattir ve Dinamik Eşleme Her Kullanıldığında Zamanlayıcı Sıfırlanır. Bu nedenle, Dynamic NAT Eşlemeleri Aslında oldukça Uzun Bir Süre Dayanır. İsterseniz Varsayılan Zamanlayıcıları Değiştirebilirsiniz.
Yukarı Resimdeki Girişler Static NAT Girişlerine Benzemesine Rağmen clear ip nat translation * Komutunu Kullanırsam Bu Girişler Dinamik olduğu için Silinecektir.
show ip nat statistics Komutunu 6 Çeviri Girişinin Tümü Etkinken Girdim.
Total active translations: 6 (0 static, 6 dynamic; 4 extended)
Bu Girişlerin Hepsi Dinamikti. Extended Girişler, Bir Dakika Sonra Temizlenen udp ve icmp Geçici Girişleridir.
PAT (NAT Overload)
Hem IP Adresi Hem de Port Numarasını (Gerekirse) Çevirmek için Kullanılır. Port Numarasını Çevirmenin Amacı Nedir?
Topoloji
İç Ağdaki Hostlar ile Dış Ağdaki Hostlar Arasındaki Her Bir Akış (Flow) için Benzersiz (Unique) Source Port Numarası Kullanılarak İç Ağdaki Hostlar Tarafından Tek Bir Public IP Adres Kullanılabilir.
Router, Inside Local Adresin Hangi Inside Global Adres ve Port Numarasını Kullandığını Takip Eder.
PC1, 8.8.8.8'e DNS Mesajı Göndermek İstiyor. Source IP: 192.168.0.167'dir ve Rastgele Bir Source Port Numarası seçilir, 54321.
Ayrıca PC2 Source IP: 192.168.0.168 ile 8.8.8.8'e DNS Mesajı Göndermek İstiyor. Rastgele Bir Source Port Numarası Seçer, Ancak Bu Durumda PC1 ile Aynı Source Port Numarasını Seçmiştir, 54321.
R1, PC1'in Mesajının Source IP Adresini 100.0.0.1'e Çevirir ve Source Port Numarasını Aynı Tutar, 54321.
R1, PC2'in Mesajının Source IP Adresini 100.0.0.1'e Çevirir, Ancak Source Port Numarasını 54322 olarak Değiştirir. Bunu Neden Yapıyor?
Her İki Akış (Flow) da Aynı Source IP ve Port Numarasını Kullansaydı Server'dan Yanıtlar Geldiğinde R1 Hangi Yanıtı Hangi PC'ye Göndereceğini Bilemezdi. Server Yanıtları R1'e Gönderiyor ve Her İki Yanıtın da Dst. IP Adresi 100.0.0.1, Ancak Birinin Dst. Port Numarası 54321 ve Diğeri 54322. Benzersiz (Unique) Port Numaraları Nedeniyle, R1 Bu Yanıtları Hangi PC'ye Göndereceğini Bilir.
Bu Örnekte Router'ın Source Port Numaralarını Çevirdiğini Göstermek İstediğim için Her İki PC de Aynı Rastgele Source Port Numarasını Seçti.
PC2, PC1'den Farklı Bir Rastgele Source Port Numarası Seçerse R1'in Source Port Numarasını Çevirmesine Gerek Kalmaz.
İç Ağdaki Hostlar Tek Bir Public IP Adresi Paylaşabildiğinden Public IP Adresleri Korumak için PAT Çok Kullanışlıdır ve Dünyadaki Tüm Ağlarda Kullanılır.
Ele aldığımız Üç NAT Türünden (Static NAT, Dynamic NAT ve PAT) PAT En Yaygın Kullanılanıdır, Çünkü Çok Sayıda İç Hostun Tek Bir Public IP Adresi Paylaşmasına İzin Verir.
PAT Yapılandırması
Topoloji
PAT Yapılandırması, Temelde Dynamic NAT Yapılandırması ile Aynıdır, Yalnızca Bir Anahtar Kelime Eklersiniz.
- NAT Inside Interface Yapılandırma Komutu (config-if): ip nat inside
- NAT Outside Interface Yapılandırma Komutu (config-if): ip nat outside
- NAT Çevirisi Yapılacak Trafiği Yapılandırma Komutu (ACL): access-list acl-number permit source-ip-address wildcard-mask
- NAT Pool Yapılandırma Komutu: ip nat pool pool-name starting-ip-address ending-ip-address {prefix-length prefix-length | netmask subnet-mask}
Genellikle, İç Ağ Çok Büyük olmadığı Sürece Tek Bir Public IP Adres Yeterli olur. Bu Örnek için Tanımladığım 100.0.0.0 - 100.0.0.3 Aralığı, Ölçeklenebilirlik (Scalability) Sağlar.
24 Bit Prefix Length Belirttiğime Dikkat Edin. Belirtilen Adres Aralığı Aynı Subnet'de olduğu Sürece Bu Belirtilen Prefix Length Önemli Değildir. 100.0.0.0 - 100.0.0.3 Aralığının Tümü 100.0.0.0/24 Subnet'indedir, Bu Nedenle Bu Komut Geçerlidir.
- PAT Yapılandırma Komutu: ip nat inside source list acl-number pool pool-name overload
PC1 ve PC2, DNS Mesajlarını 8.8.8.8'e Gönderiyor. R1 NAT Translations Tablosuna ve NAT İstatistik Bilgilerine Göz Atalım.
show ip nat translations
Dynamic NAT'tan Farklı olarak PAT, NAT Translations Tablosuna Bire Bir Dinamik Eşleme Girişlerini Eklemez. Bunun Nedeni PAT Kullanılırken Birebir Eşleme olmaması, Birden Çok Eşleme olmasıdır. Birden Çok Inside Local Adres, Tek Bir Inside Global Adres ile Eşlenir.
Gördüğünüz gibi Hem 192.168.0.167 Hem de 192.168.0.168, 100.0.0.1'i Kullanıyor. İkisi de Farklı Source Port Numaraları Seçti, Bu Nedenle R1'in Port Numaralarını Çevirmesine Gerek Yoktur. Router, PC1 ile 8.8.8.8 Arasındaki Akışı (Flow) İzlemek için 63925 Port Numarasını ve PC2 ile 8.8.8.8 Arasındaki Akışı (Flow) İzlemek için 59549 Port Numarasını Kullanır.
show ip nat statistics
PAT Yapılandırması (Interface)
Topoloji
- NAT Inside Interface Yapılandırma Komutu (config-if): ip nat inside
- NAT Outside Interface Yapılandırma Komutu (config-if): ip nat outside
- NAT Çevirisi Yapılacak Trafiği Yapılandırma Komutu (ACL): access-list acl-number permit source-ip-address wildcard-mask
- PAT (Interface) Yapılandırma Komutu: ip nat inside source list acl-number interface interface-id overload
R1, Paketlerin Source IP Adresini 192.168.0.0/24'den G0/0 Portunun IP Adresine, 203.0.113.1'e Çevirecektir.
Dynamic NAT / PAT Komutları Özet
Quizs
Cevaplar (Sırası ile):
- d
- b
- b
- a
- c
Yorum Gönder
Yorum Gönder