Bir kullanıcı internete çıkamıyor.
Bir sunucu dışarıdan erişilemiyor.
Public IP doğru.
NAT kuralı da ekranda doğru görünüyor.
İlk şüpheli çoğu zaman:
“NAT çalışmıyor.”
oluyor.
Ancak Palo Alto Networks firewall’larda NAT problemi gibi görünen birçok olayın gerçek nedeni NAT olmayabilir.
Sorun;
routing,
Security Policy,
zone seçimi,
return path,
yanlış NAT rule sıralaması
veya doğrudan session davranışı olabilir.
Bu nedenle NAT troubleshooting yaparken yalnızca Policies > NAT ekranına bakmak yerine paketin firewall içerisindeki yolculuğunu anlamak gerekir.
Palo Alto NAT nedir?
Network Address Translation — NAT, firewall üzerinden geçen paketlerin source veya destination IP adreslerini ve gerektiğinde portlarını değiştirmek için kullanılır.
Palo Alto Networks NGFW üzerinde başlıca iki temel NAT senaryosu vardır:
Source NAT — SNAT
ve
Destination NAT — DNAT
Bunların yanında U-Turn NAT, port translation, bi-directional NAT ve farklı gelişmiş kullanım senaryoları da bulunur.
NAT Policy ile Security Policy’nin aynı şey olmadığını özellikle vurgulamak gerekir.
NAT Policy adresi çevirir.
Security Policy trafiğe izin verir veya engeller.
Dolayısıyla doğru NAT rule’un eşleşmesi, trafiğin otomatik olarak izinli olduğu anlamına gelmez. Palo Alto Networks de NAT trafiğinin ayrıca uygun bir Security Policy ile izin verilmesi gerektiğini belirtiyor. Palo Alto Networks TechDocs
Source NAT nedir?
Source NAT, paketin kaynak IP adresini değiştirmek için kullanılır.
En yaygın kullanım senaryosu iç ağdaki private IP adreslerinin internete çıkarken public IP adresine çevrilmesidir.
Örneğin:
Internal Client
10.10.10.25
↓
Palo Alto Firewall
↓
Source NAT
↓
203.0.113.100
↓
Internet
Dış dünyadaki sunucu artık:
10.10.10.25
adresini değil:
203.0.113.100
adresini görür.
PAN-OS üç temel Source NAT tipini destekler:
Static IP
Dynamic IP
Dynamic IP and Port — DIPP Palo Alto Networks TechDocs
Static IP Source NAT
Static IP NAT, bir source IP’nin belirli bir translated IP’ye 1:1 eşlenmesini sağlar.
Source port değiştirilmez.
Örneğin:
10.10.10.25 → 203.0.113.25
şeklinde sabit bir mapping oluşturulabilir.
Belirli bir internal host’un her zaman aynı translated IP ile görünmesinin gerekli olduğu senaryolarda kullanılabilir. Palo Alto Networks TechDocs
Dynamic IP Source NAT
Dynamic IP NAT, kaynak IP’yi NAT pool içerisindeki kullanılabilir bir adrese dinamik olarak çevirir.
Ancak source port değiştirilmez.
Burada önemli nokta NAT pool kapasitesidir.
Çünkü Dynamic IP modelinde adresler 1:1 mantığına yakın şekilde kullanıldığından yeterli translated IP bulunması gerekir. Palo Alto Networks, NAT pool’daki kullanılabilir adresler tükendiğinde yeni translation gerektiren bağlantıların düşebileceğini belirtiyor. Palo Alto Networks TechDocs
Dynamic IP and Port — DIPP nedir?
Kurumsal ortamlarda internet çıkışı için en sık karşılaşılan yöntemlerden biri:
Dynamic IP and Port — DIPP
kullanımıdır.
DIPP hem source IP’yi hem de source port’u değiştirebilir.
Böylece çok sayıda internal host tek bir public IP veya küçük bir public NAT pool üzerinden internete çıkabilir.
Örneğin:
10.10.10.25:50432
10.10.10.26:49120
10.10.10.27:55001
↓
DIPP
↓
203.0.113.100:farklı-portlar
Firewall session’ları translated source port’lar sayesinde birbirinden ayırabilir.
Palo Alto Networks DIPP’yi çok sayıda internal host’un ortak public address pool kullanmasını sağlayan Source NAT yöntemi olarak tanımlar. Palo Alto Networks TechDocs
Persistent DIPP nedir?
Bazı uygulamalar klasik DIPP davranışına karşı daha hassas olabilir.
Özellikle STUN kullanan:
VoIP,
video conferencing,
gerçek zamanlı iletişim
uygulamalarında aynı internal IP/port çiftinin farklı session’larda farklı public IP/port kombinasyonlarına çevrilmesi sorun yaratabilir.
Persistent DIPP belirli private source IP/port çiftinin translated IP/port mapping’ini sonraki session’larda koruyabilir.
PAN-OS 11.1.1 ve sonraki sürümlerde Persistent DIPP NAT policy seviyesinde yapılandırılabiliyor. Palo Alto Networks TechDocs
Destination NAT nedir?
Destination NAT gelen paketin destination IP adresini değiştirmek için kullanılır.
En yaygın örnek dışarıdaki kullanıcıların public IP üzerinden iç network veya DMZ’deki sunucuya erişmesidir.
Örneğin:
Internet Client
↓
203.0.113.10:443
↓
Palo Alto Firewall
↓
Destination NAT
↓
10.20.30.10:443
↓
Web Server
Burada kullanıcı:
203.0.113.10
adresine bağlanır.
Firewall destination address’i:
10.20.30.10
olarak çevirir.
PAN-OS Destination NAT tarafında static translation ve dynamic IP/session distribution gibi modelleri destekler; port forwarding/port translation da uygulanabilir. Palo Alto Networks TechDocs
Palo Alto DNAT’ta en sık yapılan hata
Palo Alto NAT troubleshooting konusunda en kritik bilgilerden biri Security Policy içerisindeki pre-NAT / post-NAT mantığıdır.
Şöyle bir senaryo düşünelim:
Internet
↓
203.0.113.10:443
↓
Firewall
↓
DNAT
↓
10.20.30.10:443
Public IP:
203.0.113.10
Server IP:
10.20.30.10
Public taraf:
Untrust
Server taraf:
DMZ
Security Policy oluştururken Palo Alto’nun beklediği mantık şöyledir:
Source Zone:
Untrust
Destination Zone:
DMZ
Destination Address:
203.0.113.10
İlk bakışta bu yapı garip görünebilir.
Çünkü:
Destination Zone = Post-NAT zone
ama:
Destination Address = Pre-NAT address
kullanılır.
Palo Alto Networks dokümantasyonu Security Policy adreslerinin original/pre-NAT paket adreslerine, destination zone’un ise trafiğin translation sonrasında ulaşacağı zone’a göre belirlenmesi gerektiğini açıkça belirtir. Palo Alto Networks TechDocs
Bu Palo Alto NAT troubleshooting sırasında bilinmesi gereken en önemli kurallardan biridir.
NAT Policy içerisindeki Destination Zone hangisi olmalı?
İşin daha ilginç kısmı burada başlar.
Aynı DNAT örneğinde NAT rule’un Destination Zone’u ile Security Policy Destination Zone’u aynı olmak zorunda değildir.
NAT Policy:
Source Zone : Untrust
Destination Zone : Untrust
Destination IP : 203.0.113.10
olabilir.
Security Policy ise:
Source Zone : Untrust
Destination Zone : DMZ
Destination IP : 203.0.113.10
olabilir.
Neden?
Çünkü Palo Alto NAT rule eşleşmesini değerlendirirken önce original destination IP için route lookup gerçekleştirir.
Public IP’nin normal routing sonucu Untrust tarafına işaret ediyorsa NAT rule’un destination zone’u:
Untrust
olur.
DNAT belirlendikten sonra gerçek sunucunun:
10.20.30.10
adresine göre destination zone:
DMZ
olarak belirlenir ve Security Policy bu post-NAT zone’u kullanır. Palo Alto Networks TechDocs
Kısaca:
| Alan | Kullanılan değer |
|---|---|
| NAT Rule Destination Address | Pre-NAT IP |
| NAT Rule Destination Zone | Original destination route lookup sonucu |
| Security Policy Destination Address | Pre-NAT IP |
| Security Policy Destination Zone | Post-NAT gerçek destination zone |
Bu tablo tek başına birçok Palo Alto NAT problemini çözebilir.
PAN-OS NAT işlem sırası nasıl çalışır?
Burada sık yapılan başka bir hata var.
Paket akışını:
Packet → NAT → Routing → Security Policy
şeklinde düşünmek tam olarak doğru değildir.
PAN-OS davranışını troubleshooting açısından daha doğru şekilde şöyle düşünebiliriz:
Incoming Packet
↓
Original Packet Information
↓
Route Lookup
(original destination üzerinden)
↓
NAT Rule Match
↓
Post-NAT Destination belirlenir
↓
Security Policy Match
Pre-NAT addresses
+
Post-NAT destination zone
↓
Session oluşturulur
↓
Address/Port Translation
↓
Egress
Palo Alto’nun resmi dokümantasyonuna göre firewall ingress sırasında önce route lookup yaparak egress interface ve zone’u belirler, ardından NAT rule eşleşmesini değerlendirir. Security Policy original source/destination address’leri fakat post-NAT zone’ları kullanır. Gerçek IP/port translation paket firewall’dan çıkarken uygulanır. Palo Alto Networks TechDocs
Bu ayrıntı özellikle packet-flow troubleshooting sırasında çok değerlidir.
NAT kuralları hangi sırayla değerlendirilir?
Palo Alto NAT rulebase yukarıdan aşağıya değerlendirilir.
İlk eşleşen NAT rule uygulanır.
Aynı paket üzerinde sonraki NAT rule’lar değerlendirilmez. Palo Alto Networks TechDocs
Bu nedenle genel prensip:
Specific NAT Rules → üstte
General NAT Rules → altta
olmalıdır.
Örneğin:
Rule 1
10.10.10.25 → özel public IP
Rule 2
10.10.10.0/24 → genel internet DIPP
mantıklı bir sıralamadır.
Tersine:
Rule 1
10.10.10.0/24 → genel DIPP
Rule 2
10.10.10.25 → özel public IP
yazılırsa 10.10.10.25 ilk rule tarafından yakalanabilir ve ikinci NAT rule’a hiç ulaşmayabilir.
Palo Alto Networks bu nedenle NAT rule’ların most specific → least specific sırasıyla konumlandırılmasını önerir. Palo Alto Networks TechDocs
U-Turn NAT nedir?
U-Turn NAT, içerideki bir kullanıcının yine kurum içerisindeki ancak public IP/FQDN üzerinden yayınlanan bir servise erişmek istediği senaryolarda kullanılır.
Örneğin:
www.company.com
DNS tarafından:
203.0.113.10
olarak çözülüyor.
Ancak gerçek sunucu:
10.20.30.10
adresinde ve DMZ’de bulunuyor.
Internal kullanıcı:
10.10.10.25
tarayıcıya:
https://www.company.com
yazıyor.
DNS cevabı:
203.0.113.10
oluyor.
Trafik:
Internal Client
10.10.10.25
↓
203.0.113.10
↓
Firewall
↓
U-Turn DNAT
↓
10.20.30.10
↓
DMZ Server
şeklinde tekrar kurum içerisine yönlendirilir.
Palo Alto Networks resmi dokümantasyonunda bu yapıyı Destination U-Turn NAT olarak tanımlar. Palo Alto Networks TechDocs
U-Turn NAT’ta Source NAT her zaman gerekir mi?
Hayır.
Bu tamamen topolojiye ve return path’e bağlıdır.
Sunucunun dönüş trafiği aynı firewall üzerinden dönüyorsa yalnızca destination translation yeterli olabilir.
Fakat server’ın dönüş yolunun client’a doğrudan gidebildiği veya asymmetric routing oluşabilecek topolojilerde Source NAT kullanmak gerekebilir.
Dolayısıyla U-Turn NAT için:
“Mutlaka SNAT gerekir.”
veya
“SNAT hiçbir zaman gerekmez.”
gibi genel bir kural doğru değildir.
Asıl soru:
Return traffic aynı stateful firewall üzerinden geri gelecek mi?
olmalıdır.
NAT troubleshooting’e nereden başlanmalı?
Ben NAT problemi gördüğümde yapılandırmayı rastgele değiştirmek yerine trafik akışını belirli bir sıra ile kontrol etmeyi tercih ederim.
1. Routing doğru mu?
İlk soru:
Firewall destination’a nasıl ulaşacak?
PAN-OS üzerinde routing table kontrol edilebilir:
show routing route
Belirli bir route’u incelemek için:
show routing fib virtual-router <VR-NAME>
kullanılabilir.
Palo Alto’nun networking CLI cheat sheet’i bu komutları routing troubleshooting için önerir. Palo Alto Networks TechDocs
DNAT’ta route lookup mantığının özellikle önemli olduğunu unutmayın.
Çünkü NAT rule’un destination zone seçimi original destination üzerinden yapılan route lookup’a bağlıdır.
2. Doğru NAT rule gerçekten eşleşiyor mu?
Konfigürasyona bakarak:
“Bu rule kesin match olur.”
demek yerine test etmek daha doğrudur.
PAN-OS CLI üzerinde:
test nat-policy-match
kullanılabilir. Palo Alto Networks TechDocs
Örneğin güncel CLI hiyerarşisinde şu parametreler desteklenmektedir:
test nat-policy-match
from <zone>
to <zone>
source <ip>
destination <ip>
source-port <port>
destination-port <port>
protocol <protocol-number>
``` :chatgpt-content-reference{index="16"}
Web arayüzünde de:
**Device → Troubleshooting → NAT Policy Match**
üzerinden aynı kontrol yapılabilir. :chatgpt-content-reference{index="17"}
Bu araç NAT troubleshooting sırasında son derece değerlidir.
## 3. Üstte başka NAT rule var mı?
NAT rulebase'i sadece gözle kontrol etmeyin.
Çünkü rule:
**doğru olabilir**
ama hiçbir zaman kullanılmıyor olabilir.
Özellikle geniş:
```text
Source: any
Destination: any
veya büyük subnet’leri kapsayan kurallar, altındaki daha spesifik NAT rule’ları gölgeleyebilir.
Hatırlanması gereken kural:
First match wins. Palo Alto Networks TechDocs
4. NAT Rule zone’ları doğru mu?
Source Zone gelen paketin zone’udur.
Destination Zone ise NAT rule eşleşmesinde original destination’a yapılan route lookup ile belirlenir.
DNAT senaryolarında bunun post-NAT server zone’uyla karıştırılması çok yaygın bir hatadır.
Örneğin:
Internet → Public IP → DMZ Server
NAT rule:
Untrust → Untrust
olabilir.
Security Policy ise:
Untrust → DMZ
olabilir.
İki rule’da destination zone’un farklı olması yanlışlık değildir.
PAN-OS’un NAT çalışma mantığının sonucudur. Palo Alto Networks TechDocs
5. Pre-NAT ve Post-NAT IP’leri doğru mu?
Troubleshooting sırasında dört değeri birbirinden ayırın:
Original Source IP
Original Destination IP
Translated Source IP
Translated Destination IP
Örneğin:
Original Source:
198.51.100.50
Original Destination:
203.0.113.10
Translated Source:
198.51.100.50
Translated Destination:
10.20.30.10
Bu dört değeri net yazmadan DNAT troubleshooting yapmak gereksiz yere karmaşıklaşır.
Özellikle Security Policy’de destination address:
203.0.113.10
yani pre-NAT destination olmalıdır. Palo Alto Networks TechDocs
6. Security Policy izin veriyor mu?
NAT rule doğru eşleşse bile Security Policy trafiğe izin vermiyorsa bağlantı kurulmaz.
DNAT örneğinde Security Policy mantığı:
From:
Untrust
To:
DMZ
Destination:
203.0.113.10
şeklindedir.
Burada yine:
Zone → post-NAT
Address → pre-NAT
mantığı kullanılır. Palo Alto Networks TechDocs
Security rule oluştururken yalnızca service/port yaklaşımı yerine mümkün olduğunda App-ID ve application-default gibi Palo Alto’nun policy best practice’lerini de dikkate almak gerekir. Palo Alto Networks TechDocs
7. Return traffic aynı firewall üzerinden dönüyor mu?
Stateful firewall troubleshooting’in vazgeçilmez sorusudur:
Cevap paketi nereden dönüyor?
Client:
10.10.10.25
üzerinden firewall’a geliyor.
Firewall DNAT yapıyor:
203.0.113.10
↓
10.20.30.10
Server ise response paketini başka gateway üzerinden gönderiyorsa:
asymmetric routing
oluşabilir.
İleri trafik firewall üzerinden geçerken dönüş trafiği başka yerden gider.
Böyle bir durumda NAT rule tamamen doğru olsa bile session beklediğiniz şekilde çalışmayabilir.
Bu nedenle:
Forward Path + Return Path
birlikte incelenmelidir.
8. Session üzerinde NAT gerçekten uygulanmış mı?
Firewall’ın ne yapmasını beklediğinize değil, gerçekte ne yaptığına bakın.
Palo Alto Networks NAT örneklerinde session çıktısını translation doğrulamak için kullanıyor.
Örneğin:
show session all filter destination 203.0.113.10
ile ilgili session bulunabilir.
Palo Alto’nun resmi Source + Destination NAT örneğinde de show session all filter destination ... komutu translated source ve destination bilgilerini doğrulamak için kullanılıyor. Palo Alto Networks TechDocs
Session detayında:
original source,
original destination,
translated source,
translated destination,
source/destination zone,
NAT rule,
Security Policy
gibi bilgileri birlikte değerlendirmeniz gerekir.
Çoğu NAT problemi burada oldukça hızlı şekilde görünür hale gelir.
9. NAT pool kapasitesini kontrol edin
Özellikle yoğun Source NAT ortamlarında konfigürasyon doğru olsa bile translation kaynakları tükenebilir.
Palo Alto CLI’da NAT pool kullanımını kontrol etmek için:
show running ippool
ve:
show running global-ippool
komutları kullanılabilir. Palo Alto Networks TechDocs
Bu nokta binlerce veya yüz binlerce concurrent session bulunan internet edge tasarımlarında önemlidir.
Sorun:
“NAT kuralı eşleşmiyor.”
değil,
“NAT resource kalmadı.”
olabilir.
Destination NAT ve port translation
DNAT yalnızca IP adresini değiştirmek zorunda değildir.
Örneğin kullanıcı:
203.0.113.10:443
adresine bağlanırken internal uygulama:
10.20.30.10:8443
portunda çalışıyor olabilir.
Firewall:
203.0.113.10:443
↓
10.20.30.10:8443
şeklinde destination address ve destination port translation gerçekleştirebilir.
PAN-OS bu tür port translation senaryolarını Destination NAT içerisinde destekler. Palo Alto Networks TechDocs
Troubleshooting sırasında bu nedenle yalnızca IP adreslerini değil:
source port
ve
destination port
bilgilerini de kontrol etmek gerekir.
NAT problemi için pratik kontrol listesi
Bir Palo Alto NAT sorunu geldiğinde benim önerdiğim sıra şöyledir:
- Original packet nedir? Source IP, destination IP, source port ve destination port’u yaz.
- Route lookup ne söylüyor? Original destination hangi zone/interface’e gidiyor?
- Hangi NAT rule eşleşiyor?
test nat-policy-matchile doğrula. - Üstte daha genel bir NAT rule var mı? Rule order’ı kontrol et.
- Translation doğru mu? Pre-NAT / post-NAT değerlerini karşılaştır.
- Security Policy doğru mu? Pre-NAT addresses + post-NAT destination zone mantığını kontrol et.
- Session oluşuyor mu? Session table’da NAT ve policy sonucunu gör.
- Return path aynı firewall’a geliyor mu? Asymmetric routing ihtimalini ele.
- NAT pool kapasitesi yeterli mi? Özellikle DIPP ortamlarında kontrol et.
- Uçtan uca gerçek servis çalışıyor mu? Yalnızca ping yerine ilgili TCP/UDP/application akışını test et.
Bu yaklaşım rastgele policy değiştirmekten çok daha hızlı sonuç verir.
Palo Alto NAT troubleshooting için temel CLI komutları
Sık kullandığım temel set şöyle özetlenebilir:
show routing route
Routing table’ı kontrol eder.
show running nat-policy
Çalışan NAT policy table’ını gösterir.
test nat-policy-match
Belirli bir trafik için hangi NAT rule’un eşleşeceğini test eder.
show session all filter destination <IP>
İlgili session’ları bulmaya yardımcı olur.
show running ippool
NAT pool kullanımını gösterir. Palo Alto Networks TechDocs
Bunları rastgele değil belirli bir packet flow üzerinden kullanmak gerekir.
NAT troubleshooting’in asıl mantığı
NAT troubleshoot ederken:
“NAT rule doğru mu?”
sorusu tek başına yeterli değildir.
Daha doğru sorular şunlardır:
Paket hangi zone’dan geliyor?
Original destination için route ne söylüyor?
Hangi NAT rule ilk eşleşiyor?
Translation sonrasında trafik hangi zone’a gidiyor?
Security Policy hangi original address ve post-NAT zone kombinasyonunu görüyor?
Session gerçekten oluşuyor mu?
Dönüş paketi aynı firewall üzerinden geliyor mu?
Bu soruların tamamına cevap verdiğinizde NAT problemi genellikle çok daha görünür hale gelir.
Kısa özet
Palo Alto NAT troubleshooting için akılda tutulması gereken üç temel unsur:
Routing + NAT + Security Policy
Ancak bunların birbirinden bağımsız olmadığını bilmek gerekir.
Özellikle DNAT tarafında şu kural kritik:
Security Policy Address = Pre-NAT
Security Policy Destination Zone = Post-NAT
ve NAT rulebase için:
First match wins.
Bu nedenle:
Specific NAT rules üstte, general NAT rules altta tutulmalıdır. Palo Alto Networks de NAT rulebase’in yukarıdan aşağı değerlendirildiğini ve daha spesifik kuralların daha yukarıda bulunmasını öneriyor. Palo Alto Networks TechDocs
Firewall çoğu zaman cevabı zaten verir.
Önemli olan yalnızca konfigürasyona değil:
paketin gerçek yolculuğuna bakmaktır.
Sık Sorulan Sorular
Palo Alto Source NAT nedir?
Source NAT, paketin kaynak IP adresini değiştirir. PAN-OS Static IP, Dynamic IP ve Dynamic IP and Port (DIPP) Source NAT tiplerini destekler. Palo Alto Networks TechDocs
Palo Alto DIPP nedir?
Dynamic IP and Port, çok sayıda internal host’un bir veya daha fazla public IP üzerinden farklı translated source port’larla internete çıkabilmesini sağlayan Source NAT yöntemidir. Palo Alto Networks TechDocs
Palo Alto Destination NAT Security Policy’de hangi IP kullanılmalıdır?
Security Policy source ve destination address alanlarında original/pre-NAT adresler kullanılmalıdır. Destination zone ise post-NAT gerçek destination zone olmalıdır. Palo Alto Networks TechDocs
NAT rule’da destination zone pre-NAT mı post-NAT mı?
NAT rule’un destination zone’u original destination IP için yapılan route lookup sonucuna göre belirlenir. DNAT sonrası gerçek server zone’u ise Security Policy’nin destination zone’unda kullanılır. Palo Alto Networks TechDocs
Palo Alto NAT kurallarını hangi sırayla işler?
NAT rules yukarıdan aşağı değerlendirilir ve ilk eşleşen rule uygulanır. Bu nedenle daha spesifik NAT kuralları daha genel kuralların üzerinde tutulmalıdır. Palo Alto Networks TechDocs
Palo Alto’da NAT rule nasıl test edilir?
CLI üzerinden test nat-policy-match, web arayüzünde ise Device → Troubleshooting → NAT Policy Match kullanılabilir. Palo Alto Networks TechDocs
U-Turn NAT nedir?
Internal kullanıcıların public IP/FQDN kullanarak yine kurum içerisindeki bir sunucuya erişmesini sağlayan Destination NAT senaryosudur.
Cem Kemal Erbaş sitesinden daha fazla şey keşfedin
Subscribe to get the latest posts sent to your email.
Cem Kemal Erbaş Network, Siber Güvenlik ve Teknik Rehberler