WEB / WEB-02.02
IP, route ve NAT
Hedef IP ile ilk komşu aynı şey olmayabilir. Route table’dan next hop seç; NAT/PAT uygulanırsa hangi adres ve portun değiştiğini izle.
1. Core · Mekanizma
Hareket olmadan bütün senaryoları oku
Remote IPv4 · default + PAT
- Original TCP tuple hazır
Destination 198.51.100.200, port 443; host source 192.0.2.10:51000. Addresses ve ports sentetik; hiçbir gerçek connection başlatılmaz.
- Gönderen host
- 192.0.2.10:51000 → 198.51.100.200:443
- Gateway / router
- Henüz IP packet almadı
- Seçilmiş endpoint
- Henüz IP packet almadı
- Longest-prefix lookup local
Connected /24 ve more-specific 198.51.100.0/25 bu destination’a eşleşmez. Default /0 next-hop 192.0.2.1’i seçer; IP destination remote kalır.
- Gönderen host
- Route /0 · next hop 192.0.2.1 · dst 198.51.100.200
- Gateway / router
- Henüz IP packet almadı
- Seçilmiş endpoint
- Henüz IP packet almadı
- Gateway original packet’i aldı
İlk-hop delivery bitti. Link header komşuyu gösterir; gelen IP/TCP summary henüz source translation uygulanmamış tuple’dır.
- Gönderen host
- First-hop’a original tuple gönderildi
- Gateway / router
- Alındı: 192.0.2.10:51000 → 198.51.100.200:443
- Seçilmiş endpoint
- Henüz IP packet almadı
- Router lookup ve PAT local
Seçilmiş egress route ve binding ile source 203.0.113.5:45000 olur. Destination 198.51.100.200:443 korunur. Rewrite’ın kendisi network transfer değildir.
- Gönderen host
- Inside tuple 192.0.2.10:51000
- Gateway / router
- PAT: 192.0.2.10:51000 ↔ 203.0.113.5:45000
- Seçilmiş endpoint
- Henüz IP packet almadı
- Endpoint translated tuple’ı aldı
Örnekteki egress yolunda delivery tamamlandı. Aradaki bütün router’lar ve checksum byte’ları çizilmez; dış tuple yalnız bu noktadaki gözlemciye göre gösterilir.
- Gönderen host
- Inside tuple 192.0.2.10:51000
- Gateway / router
- Mapping hazır · outside 203.0.113.5:45000
- Seçilmiş endpoint
- Alındı: 203.0.113.5:45000 → 198.51.100.200:443
- Reply gateway’e ulaştı
Seçilmiş reply 198.51.100.200:443’ten 203.0.113.5:45000’e gelir. Reply varlığı fixture koşuludur; HTTP response bytes gösterilmez.
- Gönderen host
- Reply henüz host’a ulaşmadı
- Gateway / router
- Reply alındı: dst 203.0.113.5:45000
- Seçilmiş endpoint
- Seçilmiş reply summary gönderildi
- Reverse mapping local
Destination outside tuple aynı binding ile 192.0.2.10:51000 inside endpoint’ine döner. Remote source korunur; permission kararı gösterilmez.
- Gönderen host
- Reply henüz host’a ulaşmadı
- Gateway / router
- Reply dst yeniden yazıldı: 192.0.2.10:51000
- Seçilmiş endpoint
- Seçilmiş reply summary gönderildi
- Inside endpoint reply’ı aldı
Reverse delivery tamamlandı. NAT ve firewall policy ayrı işlerdir; bu sahne firewall rule verdict’i üretmez.
- Gönderen host
- Reply alındı: 198.51.100.200:443 → 192.0.2.10:51000
- Gateway / router
- Reverse mapping kullanıldı
- Seçilmiş endpoint
- Seçilmiş reply summary gönderildi
Local /24 · gateway gerekmiyor
- On-link destination seçildi
192.0.2.20 bu host’un configured /24 route’una eşleşir. Local/remote karar address’in görünüşü değil route context’idir.
- Gönderen host
- Dst 192.0.2.20 · route lookup bekliyor
- Gateway / router
- Transit packet almadı
- Seçilmiş endpoint
- Local peer · henüz packet almadı
- On-link lookup local
En uzun eşleşme 192.0.2.0/24; next-hop destination’ın kendisi 192.0.2.20. Bu branch neighbor mapping’ini kullanılabilir varsayar.
- Gönderen host
- Route /24 · next hop 192.0.2.20 · NAT yok
- Gateway / router
- Transit packet almadı
- Seçilmiş endpoint
- Local peer · henüz packet almadı
- Local peer packet’i aldı
Gateway’den geçmeden on-link delivery tamamlandı. IP source/destination 192.0.2.10 → 192.0.2.20 olarak kaldı.
- Gönderen host
- Local frame summary gönderildi
- Gateway / router
- Transit packet almadı
- Seçilmiş endpoint
- Alındı: IP 192.0.2.10 → 192.0.2.20
IPv6 · seçilen no-NAT
- IPv6 destination hazır
Source 2001:db8:1::10, destination 2001:db8:2::20. Bu fixture on-link context ve next hop’u belirlenmiş varsayar.
- Gönderen host
- IPv6 2001:db8:1::10 → 2001:db8:2::20
- Gateway / router
- IPv6 packet almadı
- Seçilmiş endpoint
- IPv6 packet almadı
- IPv6 next-hop lookup local
Seçilmiş next hop 2001:db8:1::1; ND mapping’i kullanılabilir. ARP kullanılmaz; complete IPv6 route discovery çizilmez.
- Gönderen host
- Next hop 2001:db8:1::1 · ND hazır
- Gateway / router
- IPv6 packet almadı
- Seçilmiş endpoint
- IPv6 packet almadı
- IPv6 gateway packet’i aldı
First-hop delivery tamam. Source/destination değiştirilmedi.
- Gönderen host
- IPv6 summary gönderildi
- Gateway / router
- Alındı: 2001:db8:1::10 → 2001:db8:2::20
- Seçilmiş endpoint
- IPv6 packet almadı
- Forwarding local · translation yok
Router seçilmiş egress path’ini kullanır; Hop Limit işlemi kavramsal, bytes verilmez. Bu seçilmiş path NAT uygulamaz; bütün IPv6 deployments için kural değildir.
- Gönderen host
- Source 2001:db8:1::10 korunur
- Gateway / router
- Egress hazır · translation false
- Seçilmiş endpoint
- IPv6 packet almadı
- IPv6 endpoint original adresleri gördü
Seçilmiş routed delivery tamamlandı. Filtering ve application authorization ayrıca değerlendirilir.
- Gönderen host
- Source 2001:db8:1::10 korunur
- Gateway / router
- No-NAT forward tamam
- Seçilmiş endpoint
- Alındı: 2001:db8:1::10 → 2001:db8:2::20
Default yok · route bulunamadı
- Bu case’te default route kaldırıldı
Destination yine 198.51.100.200’dür. Normal route table’dan farklı olarak bu senaryoda yalnız /24 ve /25 bulunur; default route yoktur.
- Gönderen host
- Dst 198.51.100.200 · default yok
- Gateway / router
- Packet almadı
- Seçilmiş endpoint
- Packet almadı
- Local lookup eşleşme bulmadı
Ne /24 ne /25 destination’a eşleşir. Next hop bulunmadığı için bu fixture’da network transfer yapılmaz; gerçek OS error code üretilmez.
- Gönderen host
- Route yok · delivery başlamadı
- Gateway / router
- Packet almadı
- Seçilmiş endpoint
- Packet almadı
ROLLER · STATE · VERİ AKIŞI
IP address neyi tanımlar?
IP network katmanında packet’in source ve destination adreslerini taşır. IPv4 adresi 32 bit, IPv6 adresi 128 bit kullanır. 192.0.2.10 veya 2001:db8:1::10 biçimleri bu bitlerin okunabilir gösterimidir. Bir interface birden fazla adres taşıyabilir; adres host’un, insanın veya account’un değişmez identity’si değildir.
Bu dersin tüm IPv4 adresleri TEST-NET bloklarından, IPv6 adresleri 2001:db8::/32 documentation prefix’inden alınmıştır. “Inside” ve “outside” çizimdeki rollerin adıdır; 192.0.2.0/24 RFC1918 private address block değildir ve örnekler public Internet’e gönderilecek gerçek adresler değildir. Adres seçimi sentetik modeli tanımlar, canlı routability kanıtlamaz.
Subnet ve on-link kararı
Host’un 192.0.2.10/24 yapılandırması bu basit IPv4 örneğinde connected route 192.0.2.0/24 oluşturur. /24 ilk 24 bitin network prefix’ini ifade eder; mask 255.255.255.0’dır. 192.0.2.20 bu route’a uyar ve doğrudan on-link next hop olur. 198.51.100.200 bu prefix’e uymaz; başka bir route gerekir.
Local/remote, coğrafi yakınlık değil routing açısından on-link olma kararıdır. VPN veya daha özel route bu kararı değiştirebilir. IPv6’da adresin prefix’ini görmek tek başına bütün aynı-prefix hedeflerin on-link olduğunu varsaymak için yeterli değildir; on-link prefix/route bilgisi ve Neighbor Discovery router bilgisi rol oynar. IPv4 mask alıştırmasını bütün IPv6 topolojilerine aynen taşıma.
Route table ve default gateway
Artifact üç route içerir: connected 192.0.2.0/24, 198.51.100.0/25 için 192.0.2.254 üzerinden özel route ve 0.0.0.0/0 için 192.0.2.1 default gateway. Bu basit tek-table modelinde eşleşen en uzun prefix seçilir. 198.51.100.20 /25’e uyar; 198.51.100.200 uymaz ve default route kullanır. Default, diğer eşleşmelerin önüne geçen evrensel yol değildir.
Route lookup local işlemdir; next-hop MAC daha sonra o interface ve link için çözülür. Remote hedefe ilk frame gateway MAC’iyle gider, destination IP ise remote hedefi göstermeye devam eder. Router sonraki hop için yeni link header’ı kurar ve IPv4 TTL’yi azaltır. Normal routing, hedef IP’yi gateway IP’sine çevirmek değildir. Route bulunamaması, neighbor’ın çözülememesi ve remote service’in cevap vermemesi farklı failure sınırlarıdır.
NAT adresi, PAT adres ve portu çevirir
Routing çıkış yolunu seçer; NAT bu yol üzerindeki address translation işlevidir. Basic NAT IP adreslerini çevirir. PAT adıyla da anılan NAPT, TCP/UDP örneklerinde address+port tuple’larını çevirerek bir outside IP üzerinden birden çok inside akışı ayırabilir. Port kavramını sonraki ders açacak; burada stream’in hangi local endpoint’e döneceğini ayırt eden sayısal alan olarak düşün.
Örnekte TCP inside 192.0.2.10:51000 → 198.51.100.200:443, outside 203.0.113.5:45000 → aynı remote endpoint olarak görünür. Reply outside tuple’a geldiğinde mevcut mapping doğru inside tuple’a döndürür. Bu seçilmiş NAT policy örneğidir; bütün ürünlerin mapping/filter behavior’ının aynı olduğu iddia edilmez. Mapping state kaybı veya path asymmetry dönüşü bozabilir; address değişimi payload’ın şifrelendiği anlamına gelmez.
IPv6, NAT ve permission ayrı tasarım kararları
IPv6 geniş address space sağlar; routable IPv6 bağlantısı için IPv4-style NAT zorunlu değildir. Bu derste IPv6 no-NAT branch’i source 2001:db8:1::10 ve destination 2001:db8:2::20 adreslerini korur. First-hop link address yine ND ile çözülebilir. Bu bütün IPv6 deployments’ta translation hiç bulunmaz demek değildir; burada seçilmiş normal yol translation kullanmaz.
NAT mapping’in bulunması veya olmaması firewall policy’sinin yerine geçmez. Firewall hangi trafiğe izin verileceğini belirler, application authorization resource action’a karar verir. Bir outside IP’yi gören HTTP logunu “tek kullanıcı” diye okumak da doğru değildir: PAT arkasında farklı endpoints olabilir. Identity için application’ın kendi doğrulanmış bağlamı gerekir.
2. Red · Güven ve etki
Hareket olmadan bütün senaryoları oku
PAT / authority
- Gözlenen peer katmana bağlı
TCP inside 192.0.2.10:51000, outside 203.0.113.5:45000 olarak çevrilir. HTTP peer gözlemi inside host’un account kimliği değildir.
- Peer observation
- Outside 203.0.113.5:45000
- Authority gate
- Identity karar yok
- Route / grant ayrımı
- Grant yok
- Mapping identity kurmaz
Address/port/protocol mapping iletişim ilişkisini kurar. Çok sayıda inside tuple aynı outside IP’yi paylaşabilir; bir IP etiketi verified account yerine geçirilemez.
- Peer observation
- Outside 203.0.113.5:45000
- Authority gate
- Peer address ≠ verified principal
- Route / grant ayrımı
- Grant yok
- Next hop resource değildir
DEFAULT case 198.51.100.200 için 192.0.2.1 gateway’ini seçer. Gateway’e forwarding, web resource’un gateway’de olması veya resource grant’i verilmesi değildir.
- Peer observation
- Outside 203.0.113.5:45000
- Authority gate
- Peer address ≠ verified principal
- Route / grant ayrımı
- nextHop=192.0.2.1 / target=remote
- Firewall ayrı control sahibidir
Tuple translation ile explicit traffic filtering farklı görevlerdir. Mapping’in varlığı tam isolation, yokluğu herkese erişim sonucu üretmez; gerçek policy ayrı değerlendirilir.
- Peer observation
- Outside 203.0.113.5:45000
- Authority gate
- Translation ≠ filter verdict
- Route / grant ayrımı
- nextHop=192.0.2.1 / target=remote
- Application otoritesi yerinde kaldı
Application verified principal ve resource policy kararını kendi güvenilir context’inden kurmalıdır. Network observation yardımcı context olabilir; account authority’ye kendiliğinden yükseltilmez.
- Peer observation
- Outside 203.0.113.5:45000
- Authority gate
- Verified context gerekli
- Route / grant ayrımı
- nextHop=192.0.2.1 / target=remote
- Etki claim’i kanıtla sınırlıdır
Bu tuple fixture’ı yalnız route/translation scope’u gösterir. Gerçek peer identity, service acceptance veya data exposure kanıtı sunmaz; bunlar için ayrı üst katman gözlemleri gerekir.
- Peer observation
- Outside 203.0.113.5:45000
- Authority gate
- Verified context gerekli
- Route / grant ayrımı
- UNKNOWN: application authority
IPv6 / authority
- Gözlenen peer katmana bağlı
IPv6 source=2001:db8:1::10 ve destination=2001:db8:2::20 translation=false yolundadır. NAT yokluğu application permission vermez.
- Peer observation
- IPv6 translation=false
- Authority gate
- Identity karar yok
- Route / grant ayrımı
- Grant yok
- Mapping identity kurmaz
Address/port/protocol mapping iletişim ilişkisini kurar. Çok sayıda inside tuple aynı outside IP’yi paylaşabilir; bir IP etiketi verified account yerine geçirilemez.
- Peer observation
- IPv6 translation=false
- Authority gate
- Peer address ≠ verified principal
- Route / grant ayrımı
- Grant yok
- Next hop resource değildir
IPv6 dalının next hop’u 2001:db8:1::1, uzak destination’ı 2001:db8:2::20’dir. Gateway’e forwarding, web resource’un gateway’de bulunduğunu veya application erişiminin verildiğini göstermez. Bu dal IPv4 DEFAULT route’unu kullanmaz.
- Peer observation
- IPv6 translation=false
- Authority gate
- Peer address ≠ verified principal
- Route / grant ayrımı
- nextHop=2001:db8:1::1 / hedef=2001:db8:2::20
- Firewall ayrı control sahibidir
Tuple translation ile explicit traffic filtering farklı görevlerdir. Mapping’in varlığı tam isolation, yokluğu herkese erişim sonucu üretmez; gerçek policy ayrı değerlendirilir.
- Peer observation
- IPv6 translation=false
- Authority gate
- Translation ≠ filter verdict
- Route / grant ayrımı
- nextHop=2001:db8:1::1 / hedef=2001:db8:2::20
- Application otoritesi yerinde kaldı
Application verified principal ve resource policy kararını kendi güvenilir context’inden kurmalıdır. Network observation yardımcı context olabilir; account authority’ye kendiliğinden yükseltilmez.
- Peer observation
- IPv6 translation=false
- Authority gate
- Verified context gerekli
- Route / grant ayrımı
- nextHop=2001:db8:1::1 / hedef=2001:db8:2::20
- Etki claim’i kanıtla sınırlıdır
Bu tuple fixture’ı yalnız route/translation scope’u gösterir. Gerçek peer identity, service acceptance veya data exposure kanıtı sunmaz; bunlar için ayrı üst katman gözlemleri gerekir.
- Peer observation
- IPv6 translation=false
- Authority gate
- Verified context gerekli
- Route / grant ayrımı
- UNKNOWN: application authority
VARSAYIM · SINIR · KONTROL
Next hop’u nihai hedef sanmak
Normal forwarding’de gateway paketi başka hop’a taşır. “Destination gateway’dir, demek web resource gateway’de” varsayımı link/IP/application katmanlarını karıştırır. Yanlış route seçimi beklenen hedefe ulaşımı bozabilir; confidentiality etkisi üst katman peer doğrulamasına ve gerçek path’e bağlıdır.
Kontrol, seçilen route’un intended prefix/next hop/interface ile tutarlı olması ve application’ın hedef identity’yi ayrıca doğrulamasıdır. Bir gateway MAC’ini görmek remote site’nin kimliğini kanıtlamaz. Aynı next hop üzerinden farklı hedeflere gitmek normaldir.
Address translation’ı güvenlik policy’si saymak
NAT’ın tuple çevirmesi communication mekanizmasıdır. Mapping’in dar görünmesi bütün permission sınırlarını kurduğu anlamına gelmez. Static inbound mapping veya farklı filtering davranışı dışarıdan erişim kapsamını değiştirebilir; izin kararı ayrıca tanımlanmalıdır.
Necessary condition ve impact, hangi endpoint’in hangi port/protocol üzerinden reachable olduğuna bağlıdır. NAT’ın varlığından “tam isolation”, yokluğundan “her şey açık” sonucu çıkmaz. Explicit firewall controls ve trusted application authorization ayrı korumalardır.
Observed outside IP’yi actor authority yapmak
PAT aynı outside IP’den birçok inside tuple taşıyabilir. HTTP logundaki source IP’yi tek account’un otoritesi gibi kullanmak yanlış attribution veya aşırı geniş allow/deny oluşturabilir. IP-temelli controls yardımcı context olabilir; doğrulanmış actor identity’sinin yerine geçmez.
Korelasyonda address/port/protocol/time ve gerekli NAT mapping birlikte düşünülür. Eksik mapping veya timestamp ile hangi inside host olduğu tahmin olarak kalır. Bu ders gerçek trafiği ilişkilendirme veya hedeflerde NAT davranışı deneme workflow’u içermez.
3. Blue · Güvenli geliştirme ve savunma
Hareket olmadan bütün senaryoları oku
Reverse tuple
- Prefix seçimi ayrıca hesaplandı
SPECIFIC destination=198.51.100.20 için /25 route default’tan uzundur; nextHop=192.0.2.254 olur. DEFAULT destination .200 ise /25 dışında kalır.
- Route evidence
- SPECIFIC → /25 via .254
- Mapping evidence
- PAT observation yok
- Correlation review
- Sonuç yok
- Tuple kanıtının scope’u okundu
PAT fixture TCP inside 192.0.2.10:51000 ↔ outside 203.0.113.5:45000 eşleşmesini sağlar. Bunlar gateway capture değil verilen ilişkilerdir.
- Route evidence
- SPECIFIC → /25 via .254
- Mapping evidence
- TCP inside/outside mapping
- Correlation review
- Sonuç yok
- Reply tuple bağı ayrıldı
Reply before translation hedefi 203.0.113.5:45000; reply after translation hedefi 192.0.2.10:51000’dır. Source 198.51.100.200:443 aynı kalır; port/protocol scope’u atlanmaz.
- Route evidence
- SPECIFIC → /25 via .254
- Mapping evidence
- TCP inside/outside mapping
- Correlation review
- Reverse tuple beklentisi
- On-link negative farkı korundu
LOCAL 192.0.2.20 için nextHop hedefin kendisidir. Her route’u default gateway üzerinden açıklamak benign local erişimi yanlış modellemiş olur.
- Route evidence
- LOCAL → 192.0.2.20
- Mapping evidence
- TCP inside/outside mapping
- Correlation review
- Reverse tuple beklentisi
- No-NAT yolu normal olabilir
ipv6NoNat.translation=false branch’ında mapping beklenmez. Eksik NAT event ancak NAT uygulanması gereken ve coverage bilinen scope içinde bir review boşluğudur.
- Route evidence
- LOCAL → 192.0.2.20
- Mapping evidence
- No-NAT IPv6 ayrı baseline
- Correlation review
- Reverse tuple beklentisi
- Correlation sonucu sınırlandı
Sunulan forward/reverse tuple beklentileri tutarlıdır. Bu, checksum, canlı routability veya authenticated account kanıtı değildir.
- Route evidence
- LOCAL → 192.0.2.20
- Mapping evidence
- No-NAT IPv6 ayrı baseline
- Correlation review
- Route/tuple beklentileri uyumlu
Mapping kanıtı yok
- Prefix seçimi ayrıca hesaplandı
SPECIFIC destination=198.51.100.20 için /25 route default’tan uzundur; nextHop=192.0.2.254 olur. DEFAULT destination .200 ise /25 dışında kalır.
- Route evidence
- SPECIFIC → /25 via .254
- Mapping evidence
- PAT observation yok
- Correlation review
- Sonuç yok
- Tuple kanıtının scope’u okundu
Bu branch PAT observation’ını çıkarır. Route table tek başına observed outside port=45000 değerini veya inside attribution’ı vermez.
- Route evidence
- SPECIFIC → /25 via .254
- Mapping evidence
- PAT scope eksik
- Correlation review
- Sonuç yok
- Reply tuple bağı ayrıldı
Reply before translation hedefi 203.0.113.5:45000; reply after translation hedefi 192.0.2.10:51000’dır. Source 198.51.100.200:443 aynı kalır; port/protocol scope’u atlanmaz.
- Route evidence
- SPECIFIC → /25 via .254
- Mapping evidence
- PAT scope eksik
- Correlation review
- Reverse tuple beklentisi
- On-link negative farkı korundu
LOCAL 192.0.2.20 için nextHop hedefin kendisidir. Her route’u default gateway üzerinden açıklamak benign local erişimi yanlış modellemiş olur.
- Route evidence
- LOCAL → 192.0.2.20
- Mapping evidence
- PAT scope eksik
- Correlation review
- Reverse tuple beklentisi
- No-NAT yolu normal olabilir
ipv6NoNat.translation=false branch’ında mapping beklenmez. Eksik NAT event ancak NAT uygulanması gereken ve coverage bilinen scope içinde bir review boşluğudur.
- Route evidence
- LOCAL → 192.0.2.20
- Mapping evidence
- No-NAT IPv6 ayrı baseline
- Correlation review
- Reverse tuple beklentisi
- Correlation sonucu sınırlandı
Route choice bilinir; PAT attribution UNKNOWN kalır. HTTP source IP’den inside actor tahmini yapılmaz; aynı observation point/time/protocol mapping’i istenir.
- Route evidence
- LOCAL → 192.0.2.20
- Mapping evidence
- No-NAT IPv6 ayrı baseline
- Correlation review
- UNKNOWN: inside attribution
UYGULAMA · GÜVENLİK KONTROLÜ · DOĞRULAMA
Route ve translation ayrı observation’lar
Route table intended next hop/interface’i gösterir; frame header o linkte kullanılan neighbor’ı gösterebilir. NAT table inside/outside tuple ilişkisini açıklar. HTTP access logu application’ın gördüğü peer’ı yazar. Biri diğerlerinin bütün alanlarını otomatik kanıtlamaz.
Örnekte TCP 51000→45000 port değişimi seçilmiş mapping’in alanıdır. Bu veri gerçek gateway logu değil. Production telemetry’sinde pre/post NAT adreslerin adı, hook konumu ve zamanın anlamı vendor şemasıyla açıklanmalıdır.
Local, default ve more-specific baseline
192.0.2.20 için on-link, 198.51.100.20 için /25 via .254, 198.51.100.200 için default via .1 beklenir. Positive örnek intended route/mapping sonucu; benign varyasyon daha özel route’un default’ı geçmesidir. Route yoksa no-route sonucu ayrı tutulur.
NAT mapping kaydının olmaması her zaman deny değildir: no-NAT IPv6 veya translation uygulanmayan yol normal olabilir. Mapping varken remote response olmaması da yalnız NAT kaynaklı failure kanıtı değildir; downstream/firewall/service gözlemleri gerekir.
Beklenen alanları karşılaştır
Bu fixture’da route matching’i IP prefix üzerinden hesapla; aynı endpoint için route ve next-hop açıklaması eşleşir. NAT forward mapping’den türetilen reverse tuple inside endpoint’e döner. Bu kontrol header checksum veya canlı routability testi değildir.
Dayanıklı değişiklik review’si yeni route’un scope’unu, NAT state’ini, return path’i ve firewall policy’sini birlikte ele alır. Default route’u daraltırken meşru more-specific/on-link erişimi bozmamayı doğrula. Eksik kanıtla tek bir timeout’u malicious activity diye etiketleme.
ŞİMDİ VAKAYA UYGULA
Address translation’ın verdiği bilgi nerede biter?
192.0.2.10 host’u, uzak hedef için seçilen route’u kullanır. PAT source port’u değiştirebilir; IPv6 örneğinde ise translation yoktur. Her iki durumda da network adresi, doğrulanmış kullanıcı kimliğinin veya application izninin yerini tutmaz.
Vakadaki response hangi network yolu üzerinden taşınır? Byte, IP route, socket ve firewall bilgisini application’ın doğru kitabı döndürdüğü sonucundan ayrı değerlendir.
Bağlı vaka dosyasını aç ↗ÖRNEĞİ BİRLİKTE OKUYALIM
Route table ve tek PAT mapping’i
Bir alan seç; hangi sonucu desteklediğini ve nerede yetersiz kaldığını incele.
Ham kaydı ve alan açıklamalarını oku
{
"host": {
"address": "192.0.2.10",
"prefixLength": 24,
"mask": "255.255.255.0",
"interface": "eth-demo"
},
"routeSelection": "single table; longest destination-prefix match; ties/policy routing omitted",
"routes": [
{
"prefix": "192.0.2.0/24",
"via": null,
"interface": "eth-demo"
},
{
"prefix": "198.51.100.0/25",
"via": "192.0.2.254",
"interface": "eth-demo"
},
{
"prefix": "0.0.0.0/0",
"via": "192.0.2.1",
"interface": "eth-demo"
}
],
"cases": [
{
"id": "LOCAL",
"destination": "192.0.2.20",
"expectedPrefix": "192.0.2.0/24",
"expectedNextHop": "192.0.2.20"
},
{
"id": "SPECIFIC",
"destination": "198.51.100.20",
"expectedPrefix": "198.51.100.0/25",
"expectedNextHop": "192.0.2.254"
},
{
"id": "DEFAULT",
"destination": "198.51.100.200",
"expectedPrefix": "0.0.0.0/0",
"expectedNextHop": "192.0.2.1"
}
],
"pat": {
"protocol": "TCP",
"inside": {
"ip": "192.0.2.10",
"port": 51000
},
"outside": {
"ip": "203.0.113.5",
"port": 45000
},
"remote": {
"ip": "198.51.100.200",
"port": 443
},
"replyBeforeTranslation": {
"sourceIp": "198.51.100.200",
"sourcePort": 443,
"destinationIp": "203.0.113.5",
"destinationPort": 45000
},
"replyAfterTranslation": {
"sourceIp": "198.51.100.200",
"sourcePort": 443,
"destinationIp": "192.0.2.10",
"destinationPort": 51000
}
},
"ipv6NoNat": {
"source": "2001:db8:1::10",
"destination": "2001:db8:2::20",
"nextHop": "2001:db8:1::1",
"translation": false
},
"addressPurpose": "Documentation-only; inside/outside roles do not reclassify TEST-NET as private/global-routable."
}- prefix / via / interface
- Eşleşme scope’u, next-hop gateway veya on-link route ve çıkış interface’i.
- expectedPrefix / expectedNextHop
- Deterministik longest-prefix-match sonucu; canlı route cache kaydı değil.
- inside / outside / remote
- Bu TCP mapping’inin üç tuple rolü; global NAT ürünü şeması değil.
- replyBeforeTranslation / replyAfterTranslation
- Reverse mapping’de yalnız ilgili destination tuple’ın inside endpoint’e dönüşü.
- ipv6NoNat.translation
- Seçilmiş IPv6 branch’i NAT uygulamaz; bütün IPv6 deployments hakkında kural değildir.
İnert sentetik route/NAT table; actual forwarding, checksum, TTL packet bytes veya firewall kararı değil. Tek-table LPM ve seçilmiş mapping; policy routing, ECMP, NAT filtering çeşitleri ve bütün IPv6 next-hop kuralları modellenmez.
İki yanlış kanı
Remote IP paketinin destination alanı ilk gateway’in IP’si olur.
Ordinary routing’de IP destination remote hedef olarak kalır; first-hop link address gateway’i gösterir. NAT gibi ayrı translation varsa ilgili alanlar değişebilir.
NAT varsa firewall ve authorization da otomatik vardır.
Translation, traffic filtering ve resource permission farklı görevlerdir; her birinin policy ve enforcement’ı ayrı doğrulanır.
SIRA SENDE
Bu hikâyeyi sen çöz.
Sonucu tahmin et, kanıtın sınırını bul ve nedenini kendi cümlenle anlat.
198.51.100.20 destination’ı için hangi route seçilir?
- 198.51.100.0/25; next hop 192.0.2.254.
- Remote destination için her zaman default gateway 192.0.2.1.
Gerekçeli cevabı oku
198.51.100.0/25; next hop 192.0.2.254. — Bu destination /25 içindedir. Daha az specific olan default /0 seçilmez.
Bu reply dönüşümünde hangi endpoint geri kurulur?
Dersten seçilen artifact alanları; öğretim örneği
- pat.replyBeforeTranslation
- {"sourceIp":"198.51.100.200","sourcePort":443,"destinationIp":"203.0.113.5","destinationPort":45000}
- pat.replyAfterTranslation
- {"sourceIp":"198.51.100.200","sourcePort":443,"destinationIp":"192.0.2.10","destinationPort":51000}
- 203.0.113.5:45000 yerine 192.0.2.10:51000.
- Remote server IP’si 192.0.2.10 yapılır.
Gerekçeli cevabı oku
203.0.113.5:45000 yerine 192.0.2.10:51000. — PAT mapping reply destination tuple’ını iç endpoint’e çevirir. Remote source aynı kalır.
IPv6 no-NAT profilinde translation=false. Route ve firewall neden hâlâ ayrı sorulardır?
Gerekçeli cevabı oku
Bu profil IPv6 source/destination değerlerini değiştirmez. Next hop seçimi yine gerekir; firewall forwarding iznini ayrıca belirler. NAT olmaması her trafiğin izinli olduğunu veya bütün IPv6 deployment’larının aynı davrandığını göstermez.
□ No-NAT sonucunu bu profille sınırladım.
□ Route, translation ve permission görevlerini ayırdım.
Uygulama konsolunu aç · request / response / browser
Request, URL, cookie ve DOM örneklerini ayrıca aç
Kaynaklar ve kapsam
- RFC 1122 — Internet Host Communication Layers2.3.2 ARP · 2.3.3 Ethernet and IEEE 802 Encapsulation · 3.3.1.1 Local/Remote Decision · 3.3.1.2 Gateway Selection
- RFC 1812 — IPv4 Routers5.2.1.2 Unicast · 5.2.4.2 Local/Remote Decision · 5.2.4.3 Next Hop Address · 5.3.1 Time to Live
- RFC 8200 — IPv6 Specification3 IPv6 Header Format
- RFC 4861 — IPv6 Neighbor Discovery3 Protocol Overview · 5.2 Conceptual Sending Algorithm · 7.2 Address Resolution · 11 Security Considerations
- RFC 3022 — Traditional NAT2.1 Basic NAT · 2.2 NAPT · 3.1 Address binding · 3.2 Address lookup and translation
- RFC 5737 — Documentation IPv43 Documentation Address Blocks
- RFC 3849 — Documentation IPv62 Documentation IPv6 Address Prefix
- Red Hat Enterprise Linux 9 — nftables2.7.2 Security requirements to the firewall script · 2.7.4 Writing and activating the nftables script: INPUT/OUTPUT/FORWARD and ct state