Mengapa itu ide yang buruk untuk menggunakan beberapa layer NAT atau itu?

19

Jaringan komputer organisasi memiliki NAT dengan kisaran alamat IP 192.168 / 16. Ada departemen dengan server yang memiliki alamat IP 192.168.xy dan server ini menangani host departemen ini dengan NAT lain dengan kisaran alamat IP 172.16 / 16.

Jadi ada 2 lapisan NAT. Mengapa mereka tidak memiliki subnetting saja. Ini akan memungkinkan perutean yang mudah.

Saya merasa beberapa lapis NAT dapat menyebabkan kerugian kinerja. Bisakah Anda membantu saya membandingkan dua strategi desain.

Memperbarui:

@ Jon. Beberapa informasi lebih lanjut

Dalam diskusi dengan seorang teman, kami menyadari bahwa subnetting akan menyebabkan masalah berikut. Permintaan ARP komputer akan membanjiri jaringan seluruh organisasi. Jika router tidak meneruskan permintaan ini maka PC di satu departemen tidak akan dapat terhubung ke PC di departemen lain yang toh tidak dapat dilakukan jika mereka berada di belakang NAT yang berbeda. Dengan sniffer paket, kami melihat bahwa ada sejumlah besar permintaan ARP karena sebagian besar komputer di departemen mengaktifkan Berbagi File di Windows.

Bagaimana cara mengatasi masalah ini?

Juga jika dua komputer berada di belakang NAT yang berbeda maka apakah tidak ada cara bagi mereka untuk terhubung satu sama lain.

Rohit Banga
sumber
Harap ubah pertanyaan Anda menjadi: "Mengapa ide buruk untuk menggunakan banyak layer NAT?"
2
Tugas pekerjaan rumah lainnya ...
Jon Rhoades
1
TIDAK. ini adalah masalah praktis. Saya selalu menyebutkan pekerjaan rumah.
Rohit Banga
3
@ Jon (dan pendukungnya), tidak ada masalah dengan mengajukan pertanyaan pekerjaan rumah di sini. Ini adalah topik yang telah dibahas berulang kali di meta.stackoverflow.com - meskipun secara pribadi saya tidak melihat apa pun dalam pertanyaan yang mengarah ke HW.
Mark Henderson
@Farseeker - seluruh pertanyaannya abstrak. Dia tampaknya tidak dalam posisi untuk mengubah apa pun, dia ingin kita "membandingkan 2 strategi desain" dengan tidak ada tujuan yang jelas - itu hanya berbau seperti pekerjaan rumah bukan masalah dunia nyata. Tentu saja saya lebih dari senang menerima bahwa saya salah dan seseorang memang memiliki pengaturan gila ini - dalam hal ini tanyakan kepada mereka mengapa mereka harus memiliki alasan yang baik.
Jon Rhoades

Jawaban:

6

Satu-satunya masalah nyata dengan melakukan NATing berlapis-lapis adalah membuat topologi jaringan Anda membingungkan. Jika Anda menggunakan beberapa lapisan NAT maka Anda membuang perutean simetris antara semua host di organisasi dan Anda juga mengalami potensi tumpang tindih ruang alamat pribadi di dalam jaringan Anda. Bayangkan jika Anda menggunakan rentang alamat di layer NAT n + 1 Anda yang digunakan di layer NAT n. Jaringan-jaringan itu tidak akan pernah bisa saling rute, tetapi host di layer n +1 dapat memiliki alamat yang sama dengan layer n, membuat identitas server membingungkan.

Jika saya meletakkan topologi jaringan besar, saya hanya akan menggunakan 10. * atau 172.16-24. * Alamat untuk host di salah satu dari subnet kami. Kemudian jika beberapa departemen atau individu ingin menggandakan NAT, mereka dapat (menggunakan jaringan 192.168. *) Dengan pemahaman bahwa mereka bertanggung jawab atas jaringan di belakang host NAT mereka. Saya juga akan lebih cenderung untuk membuat lebih banyak subnet daripada membiarkan salah satu dari jaringan ganda NAT menjadi terlalu besar.

jizzle
sumber
9

Masalah dengan NAT multi-level pada dasarnya sama dengan NAT layer tunggal tetapi diperparah. Seperti:

  1. Latensi karena kerja ekstra yang dilakukan dalam paket seumur hidup (meskipun ini tidak mungkin signifikan dalam kebanyakan kasus)

  2. Mengetahui dari mana segala sesuatu berasal. Jika Anda mencoba melacak dari mana permintaan tertentu berasal (mungkin firewall keluar Anda telah mencatat apa yang tampak seperti mesin yang dikompromikan yang berusaha memuntahkan spam atau mencari target infeksi lainnya), NAT membuat diagnostik seperti itu jauh lebih sulit.

  3. Penerusan port koneksi masuk, jika Anda memerlukan koneksi masuk, lebih sulit untuk diatur dan dipelihara.

  4. Jumlah port yang terbatas. NAT bekerja dengan menerjemahkan alamat sumber ke dirinya sendiri pada port yang berbeda, jadi misalnya:

    • machine 1 berbicara ke server web eksternal menggunakan port 1024 karena sumbernya diterjemahkan ke alamat kotak NAT pada, katakanlah, port 10000.
    • mesin yang sama membuat dua permintaan untuk itu, atau yang lain, server web secara bersamaan (tidak biasa) menggunakan port sumber 1025 (dua koneksi bersamaan harus memiliki port sumber yang berbeda). Kotak NAT menerjemahkan ini menjadi "saya pada port sumber 10001"
    • pembicaraan mesin lain membuat tiga koneksi ke server eksternal. Baik, kotak NAT menerjemahkan ini menjadi "saya di port 10002, 10003 dan 10004"
    • sebagai paket kembali dalam bentuk mesin eksternal kotak NAT tahu bahwa hal-hal yang ditakdirkan untuk dirinya sendiri pada port 10000 benar-benar seharusnya pergi ke mesin 1 pada port 1024, dan seterusnya untuk koneksi aktif lainnya.

    Ini semua bagus dan bagus sampai Anda memiliki banyak koneksi keluar - yaitu jaringan besar atau jaringan yang lebih kecil dengan mesin yang membuat banyak koneksi (aplikasi P2P seperti yang menerapkan protokol bittorrent dapat membuat banyak koneksi bersamaan). Hanya ada 65536 port dalam protokol IP, kurang dari 1024 yang dicadangkan. Sementara 60.000 mungkin terdengar seperti banyak itu dapat dengan cepat dikonsumsi maka kotak NAT perlu memutuskan pemetaan mana yang dapat dihapus yang biasanya tidak sesederhana "jatuhkan yang tertua". Hal ini dapat mengakibatkan bug aneh (koneksi acak menurun karena alasan yang sulit didiagnosis) atau mesin tidak dapat membuat koneksi baru untuk sementara waktu.

  5. memuat di kotak NAT (es). Misalnya, jika Anda menggunakan kotak kecil berdaya rendah (router pendukung NAT di luar rak, daripada PC lengkap dengan CPU tebal) untuk mengerjakan tugas penerjemahan tambahan NAT Anda (dibandingkan dengan hanya meneruskan paket sesuai tabel routing dasar) ) dapat memperlambat transfer melalui mereka. Untuk akses Internet, ini tidak akan menjadi masalah (koneksi internet Anda akan menjadi hambatan) tetapi karena Anda menyatukan antar segmen jaringan lokal, itu bisa menjadi sangat mencolok.

David Spillett
sumber
poin 4 masalah ini harus sama untuk sejumlah lapisan NAT atau tidak!
Rohit Banga
Benar, poin 4 adalah masalah yang sama pada NAT level tunggal dan NAT multi-level, tetapi NAT multilevel memperburuk masalah untuk mencari tahu koneksi mana yang mati (host luar mungkin tidak tahu konteks sebanyak yang ada di dalam) dan membuat diagnosa lebih sulit jika batasan pemetaan pelabuhan memang menjadi masalah. Itu juga dapat membuat alokasi bandwidth yang adil dan lalu lintas lainnya membentuk lebih membingungkan untuk diimplementasikan dan dipantau (walaupun ada beberapa cara di sekitar itu, menyederhanakan topologi jaringan Anda biasanya merupakan pilihan yang lebih baik).
David Spillett
6

Kehilangan / kecepatan kinerja benar-benar turun ke kualitas router yang Anda gunakan.

Adapun ide baik / buruk, saya menentangnya ketika dimungkinkan untuk hanya menggunakan routing, namun, itu benar-benar tergantung pada lingkungan dan apa yang ingin Anda capai.

Jika mesin hanya perlu menjalankan beberapa hal yang dibagikan melalui port standar, Anda dapat masuk ke router / perangkat pemberi nat dan menetapkan aturan untuk mengizinkan apa yang Anda inginkan (1). Namun, jika Anda akan melakukan banyak tugas perangkat ke perangkat, akan jauh lebih mudah untuk memiliki rute yang tepat dengan setiap mesin memiliki IP uniknya sendiri (2).

(1) Misalnya, satu ke banyak - Satu mesin memiliki server web dan Anda ingin membagikannya kepada orang lain - Anda akan menetapkan aturan di router untuk mem-port 80 mesin, lalu mesin apa pun dari jaringan luar (atau di dalam jika nat-loopback diaktifkan) cukup buka http: //router.ip dan bisa mengakses.

(2) Jika bagaimanapun setiap mesin akan memiliki server web pada, atau Anda akan menggunakan banyak layanan, Anda akan memiliki mimpi buruk mengatur semua aturan (tetapi itu bukan tidak mungkin).

Adapun skenario Anda - Jika satu departemen menggunakan 192.168.xx dan yang lain 192.168.yx, saya akan pergi melalui perangkat dan jika tidak ada tumpang tindih, mungkin saja mungkin untuk mengubah subnet dari / 24 ke / 16 (atau sebaliknya), lalu ganti router dengan switch / atau yang serupa dan tidak ada kehilangan layanan.

Sangat sulit untuk membantu tanpa mengetahui lebih banyak tentang jaringan Anda, tidak ada yang "salah" dengan NAT ganda, selama sudah diatur dengan benar. Namun, kecuali Anda benar-benar membutuhkannya, atau ada alasan yang sangat bagus untuk itu, saya akan mencari migrasi jika Anda bisa (pendapat pribadi)


@iamrohitbanga - Menanggapi pertanyaan Anda (banyak komentar).

Membandingkan sulit - Routing berfungsi dengan baik untuk jaringan pribadi di mana setiap mesin memiliki kemampuan untuk mengakses setiap mesin. Nat berfungsi dengan baik, tetapi digunakan terutama untuk jaringan yang tidak memerlukan perutean karena Anda biasanya harus secara manual mengatur aturan / rute yang masuk.

Misalnya, jika Anda memiliki koneksi internet dan menonaktifkan NAT, maka secara manual mengatur rute atau mode bridged - mesin Anda akan langsung di internet - semua port dapat diakses dan mesin apa pun dapat melakukan apa yang diinginkannya.

Jika Anda memiliki router di sisi lain dengan NAT, itu akan mengambil IP luar dan memberikan "Nat-ed?" (tidak yakin tentang terminologi ...) internet - semua mesin internal memiliki IP yang tidak dapat diakses dari internet, tetapi, Anda dapat mengatur aturan manual - mis. port 80 ke satu mesin ... Ini bekerja dengan sangat baik untuk koneksi keluar (firewall) aturan mengizinkan), tetapi bisa menjadi mimpi buruk untuk mengatur aturan yang masuk jika Anda meng-host banyak layanan ... dan jika Anda melakukan sesuatu yang membutuhkan port dinamis (ftp, Windows AD dll) itu bisa menjadi mimpi buruk.

Semoga ini bisa membantu, jika Anda ingin tahu hal lain, jangan ragu untuk bertanya.

William Hilsum
sumber
Bisakah Anda membandingkan dua strategi. jaringan digunakan untuk menyediakan akses Internet ke host.
Rohit Banga
@iamrohitbanga - memperbarui jawaban
William Hilsum
5

Masalah utama dengan NAT (secara umum dan dengan beberapa lapisan khusus) adalah bahwa itu bisa sangat sulit untuk dipecahkan.

Vatine
sumber
4

Masalah terbesar dengan NAT adalah ketika ada perangkat lunak jaringan yang ketinggalan zaman melakukan terjemahan, yang membuat banyak aplikasi terluka (FTP, VoIP dll). Firewall modern / gateway memiliki terjemahan (perbaikan dalam istilah-istilah Cisco) yang membuatnya lebih mudah.

Saya tidak mengerti mengapa perusahaan Anda menggunakan NAT di antara subnet pribadi. Kenapa tidak langsung rute saja?

pauska
sumber
2

Cukup tingkatkan jaringan dan klien Anda ke IPV6, maka tidak perlu lagi menggunakan NAT.

Unix Janitor
sumber
1

Untuk menjawab bagian kedua baru dari pertanyaan Anda ...

Router memecah domain broadcast - router tidak meneruskan paket arp, mereka tetap berada dalam subnet *. Berbagi file Windows Anda (serius?) Lalu lintas siaran Netbios tidak akan meninggalkan subnet.

Dengan Subnet:

Jika Anda perlu mengakses share Windows dari luar subnet maka Anda dapat mengaksesnya baik secara langsung menggunakan alamat IP-nya atau jika Anda memiliki pengaturan server DNS atau WINS dengan nama host.

Dengan NAT:

Jika NAT Anda dari jenis PAT dan karenanya bukan pemetaan satu lawan satu, Anda perlu mengonfigurasi port forwarding agar ini berfungsi - ini akan menjadi buruk.

Seperti yang telah dibahas tentang ad naseum, NAT pada umumnya adalah hal yang buruk karena merusak fungsi jaringan, kami hanya menggunakan karena kami harus melakukannya. Gulung di IPv6.

* Tentu saja forwarder siaran / relay / pembantu memang ada

Jon Rhoades
sumber