Bagaimana cara mengarahkan lalu lintas jaringan masuk ke IP internal tertentu berdasarkan nama host yang diminta? (Menang 2012)

1

Ini mungkin cukup mendasar, jadi jika memang demikian, jangan berpikir berlebihan!

Pengaturan Saya

  • Server rumah menjalankan Hyper-V dengan VM untuk IIS, MSSQL, dan lainnya
  • Koneksi perumahan dengan IP berpotensi berubah, yang telah saya petakan ke domain DynDNS (sehingga DNS memperbarui secara otomatis)
  • Server dan semua VM (kecuali satu) menjalankan Windows Server 2012
  • Server hosting VM dikonfigurasikan sebagai server DNS, dan semua VMs memiliki IP internal statis untuk jaringan (serta nama host - IIS VM saya, misalnya, adalah iis.mydomain.com)
  • Server berada di belakang router, tetapi dapat mengkonfigurasi yang biasa (DMZ, port forwarding, dll)

Skenario

Saya ingin dapat meneruskan lalu lintas di semua port untuk ** .domainku.com:PORT* untuk pergi ke VM yang dipetakan dengan tepat (yaitu iis.mydomain.com:PORT -> IIS_VM: PORT), yang memetakan ke IP statis spesifik di jaringan saya.

Sebagai contoh, saya menekan iis.mydomain.com dengan RDP dan itu menghubungkan saya ke IIS VM melalui Remote Desktop dari eksternal ke jaringan. Saya menekan iis.mydomain.com di browser web dan memuat situs yang sesuai yang terikat dengan nama host itu di IIS VM.

Atau, dengan semua di atas menjadi benar, saya bisa menciptakan mssql.mydoman.com dan memukul itu melalui Remote Desktop, di mana menghubungkan saya untuk itu VM. Saya juga bisa menekannya melalui Management Studio dan menghubungkannya.

Percobaan saat ini

  • Menyiapkan server nama yang mengarah ke IP tempat tinggal saya (dan diperbarui secara dinamis melalui DynDNS)
  • Menunjuk mydomain.com ke server nama di atas
  • Menggunakan server pusat yang menjalankan DNS untuk menyelesaikan nama host di jaringan

Masalah

Saya dapat menekan iis.mydomain.com dari luar jaringan saya dan tidak menyelesaikan IP - sayangnya ia menyelesaikan 192.168.0.105, yang merupakan IP internal mesin IIS. Ini masuk akal karena dalam manajer DNS itulah yang saya tetapkan untuk nama host.

Jadi, pertanyaannya:

Bagaimana cara mengkonfigurasi server DNS saya (atau mengkonfigurasi ulang pengaturan saya saat ini) sedemikian rupa sehingga internal ke jaringan lalu lintas diteruskan dengan benar ke 192.168.0.105 - tetapi di luar jaringan itu hanya mengenai IP perumahan?

Tebak

Saya mengerti bahwa hal-hal di sini "berfungsi sebagaimana dimaksud" dalam arti bahwa server DNS saya dengan benar menyelesaikan nama host ke IP yang ditentukan - jadi jika saya mencoba semua ini di jaringan lokal saya itu akan berfungsi sepenuhnya. Masalahnya, saya merasa, adalah menutupi IP internal dengan memiliki mesin eksternal yang terhubung hanya dengan IP perumahan saya dan kemudian ada beberapa lapisan di balik layar yang menerjemahkan nama host yang diminta ke IP internal.

Berdasarkan bacaan saya, saya curiga NAT mungkin yang saya cari, tetapi saya benar-benar tidak memiliki konteks yang baik.

ShaneC
sumber

Jawaban:

3

Untuk perutean, nama host bukan bagian dari persamaan - permintaan DNS telah menyelesaikan alamat IP, dan itu akan digunakan untuk koneksi TCP / IP. Ketika sampai di sana (di mana pun 'ada' ada) maka protokol berjalan melalui koneksi dapat ikut bermain, seperti dengan HTTP / 1.1 yang menentukan nama host, untuk memungkinkan hosting virtual massal.

Jadi, Anda dapat mengirim semua lalu lintas HTTP yang tiba di port 80 ke VM Anda untuk penyajian web (dengan asumsi ISP Anda tidak memblokirnya dalam perjalanan); sama halnya, Anda dapat mengirim koneksi VNC ke server yang berbeda, koneksi RDP untuk pergi ke yang lain; tetapi Anda tidak dapat mencoba RDP ke iis.example.com dan mengharapkannya pergi ke tempat lain ke koneksi RDP ke MySQL.example.com jika kedua nama host menyelesaikan ke alamat IP yang sama dari perspektif klien.

Rowland Shaw
sumber
Jadi saya membawa Anda pada konsep portforwarding di sini - tapi saya pikir pertanyaan inti saya adalah bagaimana saya bisa menyelesaikan IP internal dari nama host, bukan IP eksternal. Dengan kata lain, lalu lintas dimulai pada komputer klien dan klik iis.mydomain.com. Itu kemudian hits server DNS saya yang melakukan pencarian dan menemukan bahwa iis.mydomain.com memiliki IP internal 192.168.0.105. Bagaimana saya melakukan proxy yang diperlukan sehingga lalu lintas eksternal menyelesaikan IP eksternal tetapi kemudian internal ke jaringan diteruskan dengan benar?
ShaneC
1
@ShaneC, itulah masalahnya. Di luar jaringan semua orang perlu mendapatkan alamat IP yang sama, yang eksternal. Protokol tidak memungkinkan Anda untuk mengembalikan dua alamat IP, hanya satu. Anda kemudian harus bergantung pada informasi lain, yaitu nomor port, untuk mendapatkannya ke mesin yang tepat.
Mark Ransom
@ Markarkom Oke - dan tidak ada teknologi yang dapat mem-proxy IP eksternal ke IP internal berdasarkan hostname?
ShaneC
Intinya adalah bahwa hal seperti itu perlu diketahui protokol - tidak bisa dilakukan secara sewenang-wenang.
Rowland Shaw