Birden fazla NAT katmanı kullanmak neden kötü bir fikir veya değil mi?


19

Bir kuruluşun bilgisayar ağında 192.168 / 16 IP adres aralığına sahip bir NAT bulunur. Sunucuda IP adresi 192.168.xy olan bir departman var ve bu sunucu bu departmanın ana bilgisayarlarını 172.16 / 16 IP adres aralığına sahip başka bir NAT ile yönetiyor.

Böylece 2 NAT tabakası vardır. Bunun yerine neden alt ağları yok? Bu kolay yönlendirme sağlar.

Birden fazla NAT katmanının performans kayıplarına neden olabileceğini hissediyorum. İki tasarım stratejisini karşılaştırmama yardım eder misiniz?

Güncelleme:

@Jon Daha fazla bilgi

Bir arkadaşımla tartışırken, alt ağ oluşturmanın aşağıdaki soruna neden olacağını fark ettik. Bir bilgisayarın ARP istekleri tüm kuruluşun ağını dolduracaktır. Yönlendirici bu istekleri iletmezse, bir departmandaki PC'ler, farklı NAT'ların arkasındaysa yine de yapılamayan diğer departmanlardaki PC'lere bağlanamaz. Bir paket dinleyicisi ile departmanda çoğu bilgisayarda Windows'ta Dosya Paylaşımı etkin olduğundan çok sayıda ARP isteği olduğunu gördük.

Bu problem nasıl çözülür?

Ayrıca, iki bilgisayar farklı NAT'ların arkasındaysa, birbirlerine bağlanmaları mümkün değildir.


Lütfen sorunuzu şu şekilde değiştirin: "Birden çok NAT katmanı kullanmak neden kötü bir fikir?"

2
Başka bir ödev ...
Jon Rhoades

1
HAYIR. pratik bir sorundur. Her zaman ödevlerden bahsederim.
Rohit Banga

3
@Jon (ve onun üst düzey yöneticileri), burada ödev soruları sormada sorun yok. Meta.stackoverflow.com adresinde onlarca kez tartışılan bir konu - kişisel olarak soruda HW'ye işaret eden hiçbir şey görmüyorum.
Mark Henderson

@ Farekeker - tüm soru soyut. Hiçbir şeyi değiştirecek bir konumda görünmüyor, "2 tasarım stratejisini" net bir amaç olmadan karşılaştırmamızı istiyor - sadece gerçek bir dünya sorunu değil ödev gibi kokuyor. Tabii ki yanlış olduğumu kabul etmekten çok mutluyum ve birileri bu çılgın düzene sahip - bu durumda onlara neden iyi bir nedenleri olması gerektiğini sorun.
Jon Rhoades

Yanıtlar:


6

Çok katmanlı NATing yapmanın tek gerçek sorunu, ağ topolojinizi kafa karıştırıcı hale getirmesidir. Birden fazla NAT katmanı kullanırsanız, kuruluştaki tüm ana bilgisayarlar arasında simetrik yönlendirmeyi atarsınız ve ayrıca ağınızdaki çakışan özel adres alanlarını da kullanma potansiyeli ile karşılaşırsınız. N + 1 NAT katmanınızda n NAT katmanında kullanılan bir adres aralığı kullandığınızı düşünün. Bu ağlar hiçbir zaman birbirine yönlendirilemez, ancak n + 1 katmanındaki ana bilgisayarlar n katmanıyla aynı adrese sahip olabilir ve sunucunun kimliğini karıştırır.

Büyük bir ağın topolojisini hazırlasaydım, alt ağlarımızdan herhangi birindeki ana bilgisayarlar için yalnızca 10. * veya 172.16-24. * Adresleri kullanırdım. Daha sonra bir bölüm veya birey NAT'ı ikiye katlamak isterse, (192.168. * Ağını kullanarak) NAT ana bilgisayarlarının arkasındaki ağ için sorumlu oldukları anlayışıyla yapabilirlerdi. Ayrıca, bu çift NAT'lı ağlardan herhangi birinin çok büyük olmasına izin vermekten daha fazla alt ağ oluşturmaya eğilimliydim.


9

Çok seviyeli NAT ile ilgili problemler aslında tek katmanlı NAT ile aynıdır, ancak bileşiktir. Gibi:

  1. Paket ömründe fazladan iş yapılmasından kaynaklanan gecikme (bunun çoğu durumda önemli olması muhtemel değildir)

  2. Bir şeyin nereden geldiğini bilmek. Belirli isteklerin nereden geldiğini izlemeye çalışıyorsanız (belki de giden güvenlik duvarınız, spam ya da diğer bulaşma hedeflerini aramaya çalışan güvenliği aşılmış bir makineye benzeyen bir şey kaydetmiş olabilir), NAT bu tür tanılamaları çok daha zor hale getirir.

  3. Gelen bağlantı noktası yönlendirme, gelen bağlantılara ihtiyacınız varsa, kurulum ve bakım için daha faftır.

  4. Sınırlı sayıda bağlantı noktası. NAT, kaynak adreslerini farklı bağlantı noktalarında kendisine çevirerek çalışır, örneğin:

    • makine 1, kaynak NAT kutusu adresindeki bağlantı noktası 10000'e çevrildiği için 1024 numaralı bağlantı noktasını kullanarak harici bir web sunucusuyla konuşur.
    • aynı makine, kaynak bağlantı noktası 1025'i kullanarak aynı anda (olağandışı değil) web sunucusuna iki istekte bulunur (iki eşzamanlı bağlantının farklı kaynak bağlantı noktalarına sahip olması gerekir). NAT kutusu bunu "10001 kaynak bağlantı noktasında ben" e çevirir
    • başka bir makine görüşmesi harici sunuculara üç bağlantı yapar. İyi, NAT kutusu bunları "10002, 10003 ve 10004 bağlantı noktalarında bana" olarak çevirir
    • paketler harici makinelerden geri döndükçe NAT kutusu, 10000 bağlantı noktasında kendisi için hedeflenen şeylerin gerçekten 1024 numaralı bağlantı noktasında makine 1'e gitmesi gerektiğini bilir.

    Birçok giden bağlantınız olana kadar tüm bunlar iyi ve zahmetlidir - yani büyük bir ağ veya birçok bağlantı yapan makinelerle daha küçük bir ağ (bittorrent protokolünü uygulayanlar gibi P2P uygulamaları birçok eşzamanlı bağlantı oluşturabilir ). IP protokolünde yalnızca 65536 bağlantı noktası vardır, 1024'ten daha azı ayrılmıştır. 60.000 çok gibi görünse de hızlı bir şekilde tüketilebilir, sonra NAT kutusunun hangi eski eşlemelerin kaldırılabileceğine karar vermesi gerekir; bu genellikle "en eskisini düşürmek" kadar basit değildir. Bu, garip hatalara (teşhis edilmesi zor nedenlerden dolayı rastgele bağlantılar düşmesine) veya makinenin bir süre yeni bağlantı yapamamasına neden olabilir.

  5. NAT kutularına yükleyin. NAT'ınızı yapmak için çok düşük güç kutuları (örneğin, hazır CPU yerine rafa bağlı NAT destekleyici yönlendiriciler, daha sonra tam bir PC) kullanıyorsanız, ekstra çeviri çalışması (temel yönlendirme tablosuna göre paketleri iletmekle karşılaştırıldığında) ) transferleri yavaşlatabilir. İnternet erişimi için bunun bir sorun olması muhtemel değildir ('net bağlantınız darboğaz olacaktır), ancak yerel ağ bölümleri arasında NATing olduğunuz için oldukça fark edilebilir hale gelebilir.


nokta 4 Bu sorun NAT herhangi bir sayıda katman için aynı olmalı ya da olmamalıdır!
Rohit Banga

Doğru, nokta 4 hem tek seviyeli NAT hem de çok seviyeli NAT için aynı sorundur, ancak çok seviyeli NAT hangi bağlantıların öldüğünü (dış ana bilgisayar iç ile aynı bağlamı bilmiyor olabilir) çalışma problemini şiddetlendirir ve teşhis yapar bağlantı noktası eşleme sınırlamaları sorun haline gelirse daha zor olur. Aynı zamanda, adil bant genişliği tahsisi ve diğer trafik şekillendirmeyi uygulamak ve izlemek için daha karmaşık hale getirebilir (bunun etrafında yollar olsa da, ağ topolojinizi basitleştirmek genellikle daha iyi bir seçenektir).
David Spillett

6

Performans kaybı / hızı gerçekten kullandığınız yönlendiricinin kalitesine bağlıdır.

İyi / kötü fikre gelince, sadece yönlendirmeyi kullanmak mümkün olduğunda buna karşıyım, ancak gerçekten çevreye ve ne yapmaya çalıştığınıza bağlı.

Makinelerin standart bağlantı noktaları üzerinden paylaşılan birkaç şeyi çalıştırması gerekiyorsa, yönlendirici / nat veren cihaza gidebilir ve istediğiniz şeye izin vermek için bir kural ayarlayabilirsiniz (1). Bununla birlikte, cihaz görevlerine çok fazla cihaz yapacaksanız, her bir makinenin kendine özgü IP'si (2) olan uygun bir rotaya sahip olmak çok daha kolay olacaktır.

(1) Örneğin, bire çok - Bir makinenin bir web sunucusu vardır ve bunu başkalarıyla paylaşmak istersiniz - yönlendiricide makinenin 80 numaralı bağlantı noktasına, ardından dış ağdaki (veya içindeki herhangi bir makineye) bir kural belirlersiniz nat-loopback etkinse) http: //router.ip adresine gidip erişebilir.

(2) Bununla birlikte, her makinede bir web sunucusu varsa veya çok fazla hizmet kullanacaksanız, tüm kuralları ayarlayan bir kabusa sahip olursunuz (ancak bu imkansız değildir).

Senaryonuza gelince - Bir departman 192.168.xx ve diğer 192.168.yx kullanıyorsa, cihazlardan geçirdim ve çakışma yoksa, alt ağı / 24'ten / 16'ya (veya aksi takdirde), yönlendiricileri anahtarlarla / veya benzerleriyle değiştirin ve hizmet kaybı yaşamayın.

Ağınız hakkında daha fazla bilgi sahibi olmadan yardım etmek gerçekten zordur, doğru ayarlandığı sürece çift NAT ile "yanlış" hiçbir şey yoktur. Ancak, gerçekten ihtiyacınız yoksa veya bunun için çok iyi bir neden yoksa, mümkünse göç etmeye bakarım (kişisel görüş)


@iamrohitbanga - Sorularınıza yanıt olarak (yorumlar için çok şey).

Karşılaştırma zor - Yönlendirme, her makinenin her makineye erişebildiği özel ağlar için iyi çalışır. Nat iyi çalışır, ancak genellikle gelen kuralları / rotaları manuel olarak ayarlamanız gerektiğinden, yönlendirmeye ihtiyaç duymayan ağlar için kullanılır.

Örneğin, bir internet bağlantınız varsa ve NAT'ı devre dışı bırakıyorsanız, rotaları veya köprülü modu manuel olarak ayarlayın - makineniz doğrudan internette olacaktır - tüm bağlantı noktalarına erişilebilir ve herhangi bir makine istediği şeyi yapabilir.

Diğer yandan NAT ile bir yönlendiriciniz varsa, dış IP'yi alır ve "Nat-ed?" (terminolojiden emin değilim ...) İnternet - tüm dahili makinelerin İnternet'ten erişilemeyen bir IP'si vardır, ancak manuel kurallar ayarlayabilirsiniz - örneğin bağlantı noktası 80'den bir makineye ... Giden bağlantılar için çok iyi çalışır (güvenlik duvarı kurallar izin verir), ancak birçok hizmeti barındırırsanız gelen kuralları ayarlamak için bir kabus olabilir ... ve dinamik bağlantı noktaları (ftp, Windows AD vb.) gerektiren bir şey yaparsanız, bu bir kabus olabilir.

Umarım bu yardımcı olur, başka bir şey bilmek istiyorsanız, sormaya çekinmeyin.


iki stratejiyi karşılaştırabilir misiniz? ağ, ana bilgisayarlara İnternet erişimi sağlamak için kullanılır.
Rohit Banga

@iamrohitbanga - güncelleme güncelleniyor
William Hilsum

5

NAT ile ilgili temel sorun (genel olarak ve özellikle birden çok katmanla) sorun gidermenin aşırı derecede zor olabilmesidir.


4

NAT ile ilgili en büyük sorun, çeviri yapan birçok ağ yazılımının (FTP, VoIP vb.) Modern güvenlik duvarları / ağ geçitleri, çevirileri (Cisco terimlerindeki düzeltmeler) çok daha kolay hale getirir.

Şirketinizin neden özel alt ağlar arasında NAT kullandığını anlamıyorum. Neden sadece yönlendirmiyorsun?


2

Ağınızı ve istemcilerinizi IPV6'ya yükseltin, daha sonra NAT'ı tekrar kullanmaya gerek yok.


1

Sorunuzun yeni ikinci bölümünü yanıtlamak için ...

Yönlendiriciler yayın etki alanlarını bozar - yönlendiriciler arp paketlerini iletmez, bir alt ağda kalırlar *. Windows dosya paylaşımınız (gerçekten mi?) Netbios yayın trafiği alt ağdan ayrılmaz.

Alt Ağlarla:

Bir alt ağın dışından bir Windows paylaşımına erişmeniz gerekiyorsa, ona doğrudan IP adresini kullanarak veya ana bilgisayar adına göre bir DNS veya WINS sunucusu kurulumunuz varsa erişebilirsiniz.

NAT ile:

NAT'ınız PAT türündeyse ve bu nedenle bire bir eşleme değilse, bunun çalışması için bağlantı noktası iletmeyi yapılandırmanız gerekir - bu kötü olur.

Ad naseum'da tartışıldığı gibi, NAT genellikle ağ işlevselliğini bozduğu için kötü bir şeydir, sadece kullanmamız gerektiği için kullanıyoruz. IPv6 üzerinde döndürün.

* Tabii ki yayın ileticileri / röleleri / yardımcıları var

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.