Arahkan Banyak Alamat IP ke Nama Host Tunggal


25

Di Sistem Windows, ada file ini di C:\WINDOWS\system32\drivers\etc\hosts. File ini memungkinkan kita untuk menetapkan alamat IP tertentu ke nama host.

Masalahnya sekarang adalah apakah saya bisa mengatur beberapa alamat IP menjadi nama host. Sebagai contoh, dapatkah saya melakukan sesuatu seperti ini:

192.168.244.128   gateway.net
192.168.226.129   gateway.net

Dan berharap browser dapat memutuskan untuk keduanya, lihat mana yang akan bekerja dan dengan demikian menunjuk pada yang itu?

Jika tidak, apakah ada cara lain untuk mendapatkan perilaku yang saya inginkan?

Catatan: Saya menggunakan aplikasi ini di jaringan area lokal saya sendiri, jadi tidak perlu internet.

Jawaban:


25

Biasanya Anda tidak akan menggunakan host untuk melakukan ini, tetapi DNS Anda. Sebagian besar DNS akan memberikan apa yang disebut "Round Robin" jika Anda menetapkan banyak catatan A ke satu nama di zona tersebut.

Apa yang akan dilakukannya kemudian, adalah permintaan pertama datang akan menerima 192.168.244.128, yang berikutnya akan menerima 192.168.226.129, seterusnya dan seterusnya. Namun, sesuai desain, mesin lokal Anda akan men-cache resolusi DNS-nya, dan biasanya akan menggunakan alamat IP yang sama berulang-ulang, sampai habis masa berlakunya (Time To Live, TTL).


1
EDIT: Nevermind, saya berdiri terkoreksi !! Diposting Di Bawah Ini
MagnaVis

17

Ya, Anda dapat melakukan ini, saya telah menggunakannya untuk menguji skenario DNS round-robin tanpa harus benar-benar memasukkan host dalam DNS.

Ketika sebuah aplikasi memanggil gethostbyname, ia akan mendapatkan kembali daftar lengkap alamat IP (mungkin secara acak - tergantung pada pustaka / OS).


2
+1 untuk menjawab pertanyaan
CLF

Anda bermaksud mengatakan itu akan memilih satu secara
acak..saya

12

Saya pikir Anda salah tentang hal ini. Beri tahu saya jika saya membuat asumsi yang salah di sini.

Skenario:

  • Anda memiliki dua server windows yang menjalankan aplikasi web yang sama, mungkin di IIS.
  • Anda ingin aplikasi Anda toleran terhadap kesalahan sehingga jika salah satu server gagal, aplikasi Anda masih tersedia.
  • Anda ingin toleransi kesalahan ini transparan untuk browser, sehingga pengguna dapat terus mengakses aplikasi dengan nama host yang sama yaitu gateway.net

Apa yang Anda coba lakukan disebut round-robin DNS (alias orang miskin load balancing), tetapi Anda mencoba melakukan ini dari sisi klien. Ini tampaknya tidak memiliki efek yang diinginkan (setidaknya pada kotak Windows XP saya) bahkan jika saya membersihkan cache DNS. Windows hanya akan menyelesaikan IP pertama dalam file. Meskipun demikian round-robin DNS tidak toleran terhadap kesalahan, jadi ini tidak akan membantu Anda mencapai apa yang Anda inginkan.

Solusi yang disarankan:

Penyeimbang beban perangkat keras: Beberapa nama merek adalah Alteon, Big-IP, Barracuda. Apa yang dilakukan pada dasarnya adalah menyajikan satu IP untuk pengguna Anda untuk terhubung ke & itu meneruskan permintaan ke server web. Jika salah satu server tidak tersedia, maka tidak akan meneruskan lalu lintas ke sana. Ini adalah opsi yang mahal.

Layanan Penyeimbangan Beban Jaringan: Ini adalah teknologi Microsoft yang tersedia di server windows, yang akan memberi Anda IP clustered tunggal. Ini mencapai hasil yang sama sebagai penyeimbang beban perangkat keras, tetapi dengan cara yang berbeda. Yang perlu Anda lakukan adalah mengkonfigurasinya .


1
ZEN-LB adalah penyeimbang beban yang sangat sederhana dan mudah. Kami sudah banyak sukses dengannya dan menyukainya karena open source (gratis.)
Derrick

2

Dari http://www.unc.edu/atn/lsf/docs/7.0.5/lsf_config_ref/index.htm?hosts.5.html~main

Contoh IPv4

192.168.1.1 hostA hostB 192.168.2.2 hostA hostC host-C

Dalam contoh ini, hostA memiliki 2 alamat IP dan 3 alias. Alias ​​hostB menentukan alamat pertama, dan alias hostC dan host-C menentukan alamat kedua. LSF menggunakan nama host resmi, hostA, untuk mengidentifikasi bahwa kedua alamat IP milik host yang sama.


1
"Format LSF_CONFDIR / hosts mirip dengan format file / etc / hosts di mesin UNIX." Yaitu: sumbernya bukan tentang file host biasa.
gertvdijk

1

Saran saya adalah menggunakan server DNS internal dengan DNS round-robin dan TTL = 0. Jika Anda memperbarui catatan DNS (juga dengan sistem pemeriksaan ip otomatis) ketika IP / server sedang down, Anda dapat memiliki sistem ketersediaan tinggi.


Ini bukan solusi untuk ketersediaan tinggi. DNS tidak dirancang untuk ini dan hanya digunakan bersama dengan metode gagal lainnya. Banyak penyelesai mengabaikan cache TTL juga, membuat metode ini tidak dapat diandalkan.
Mark Henderson

1

Saya telah melakukan ini pada jaringan rumah di mana saya menetapkan IP statis untuk antarmuka jaringan kabel dan nirkabel laptop, dan dari file host mesin lain arahkan nama host tunggal ke kedua alamat ip tersebut. Tampaknya berfungsi dengan baik.


1

Dari http://www.unc.edu/atn/lsf/docs/7.0.5/lsf_config_ref/index.htm?hosts.5.html~main

Contoh IPv4

192.168.1.1 hostA hostB 192.168.2.2 hostA hostC host-C

Dalam contoh ini, hostA memiliki 2 alamat IP dan 3 alias. Alias ​​hostB menentukan alamat pertama, dan alias hostC dan host-C menentukan alamat kedua. LSF menggunakan nama host resmi, hostA, untuk mengidentifikasi bahwa kedua alamat IP milik host yang sama.

Berdasarkan contoh ini saya melakukan hostA 10.18.yx 192.168.zx berikut

Dimana hostA adalah nama host dari server yang ingin saya jangkau dari jaringan internal (192.168.yx) dan VPN (10.8.zx).

ping hostA
sending 'ping' on 192.168.y.x [10.8.z.x]
Answer from 10.8.z.x : bytes=32 time=98 ms TTL=64
Answer from 10.8.z.x : bytes=32 time=78 ms TTL=64
Answer from 10.8.z.x : bytes=32 time=111 ms TTL=64
Answer from 10.8.z.x : bytes=32 time=136 ms TTL=64

Jadi itu bekerja dengan baik dan saya bisa membuat samba bekerja melalui VNP menggunakan nama host jadi tidak masalah bagi saya untuk memiliki drive yang terhubung di windows dalam kedua kasus (LAN atau VPN terhubung).

Salam Hormat.


0

@ Plamen Dimitrov Anda akan memerlukan perangkat untuk menangani keseimbangan semacam itu, mungkin sebuah saklar yang dapat menangani BGP di depan FW- Anda atau menggunakan FW Anda jika mampu. Jika Ciscos Anda menangani BGP, perhatikan penerapannya. Dengan cara ini Anda dapat memiliki kedua IP ISP Anda yang masuk ke Cisco / atau switch dan server target akan memiliki IP valid dari IP publik 24-bit (BERBEDA DARI 2 IP ISP). Pada saat itu (Anda menggunakan 3 blok IP publik yang berbeda, satu untuk server Anda HARUS 24 BIT), Anda harus membuat masing-masing ISP Anda tahu tentang solusi ini dan mereka harus bersedia untuk mendukung Solusi BGP di antara mereka, yang sebagian besar akan dilakukan. Sekarang, ketika FQDN Anda beres, ia akan menyelesaikan blok IP 24 bit Anda, bahkan jika 1 saluran ISP turun. Tujuannya adalah, alamat 24-bit Anda akan selalu tersedia karena ISP Anda setuju untuk merutekan alamat 24bit tersebut melalui jalur mereka. Ini juga berfungsi untuk VPN karena semua yang Anda gunakan untuk VPN adalah alamat 24bit, bukan salah satu IP dari ISP yang Anda sambungkan ke cisco / atau switch Anda. Pada saat itu Anda harus waspada terhadap BGP FLAPPING di mana jika baris Anda naik turun, karena jalur mendapatkan DOS, alamat DNS akan berubah begitu banyak, di internet, sehingga server DNS akan secara otomatis MENGHAPUS IP. YANG MEMIMPIN 24 BIT BLOCK OF IP ANDA. Itu serangan DOS pada solusi BGP. Pada saat itu Anda harus waspada terhadap BGP FLAPPING di mana jika baris Anda naik turun, karena jalur mendapatkan DOS, alamat DNS akan berubah begitu banyak, di internet, sehingga server DNS akan secara otomatis MENGHAPUS IP. YANG MEMIMPIN 24 BIT BLOCK OF IP ANDA. Itu serangan DOS pada solusi BGP. Pada saat itu Anda harus waspada terhadap BGP FLAPPING di mana jika baris Anda naik turun, karena jalur mendapatkan DOS, alamat DNS akan berubah begitu banyak, di internet, sehingga server DNS akan secara otomatis MENGHAPUS IP. YANG MEMIMPIN 24 BIT BLOCK OF IP ANDA. Itu serangan DOS pada solusi BGP.


0

Klarifikasi kecil di sini, setidaknya di dunia Windows: Anda BISA memiliki dua alamat IP untuk satu nama dalam file host. Ketika ditanya, semua alamat dikembalikan. Aplikasi (yaitu browser) akan mencoba untuk terhubung ke masing-masing pada gilirannya sampai koneksi dibuat. TKI, itu akan mencoba semua alamat sebelum waktu habis. (Ini adalah kesalahpahaman umum karena banyak orang percaya itu hanya akan mencoba alamat "pertama".)

Anda dapat memverifikasi ini dengan eksperimen berikut:

Tambahkan dua atau lebih alamat untuk host di file host, satu nyata dan yang lainnya palsu. (Buat alamat palsu lebih kecil sesuai abjad.) Buka browser dan coba sambungkan ke nama host. Jalankan netstat -tidak pada saat yang sama. Anda akan melihat upaya koneksi ke alamat palsu. (macet di SYN_SENT) Browser pada akhirnya akan sampai ke alamat yang baik dan akan terhubung. Ada penundaan dalam menghubungkan, tetapi AKAN bekerja.


Tidak mengatakan Anda salah, tetapi saya hanya mencobanya di Win 10 Pro saya menggunakan Chrome dan tidak berhasil. Saya men-tweak file host saya (dan menyimpannya), lalu berlari ipconfig /flushdnsuntuk memastikan resolusi sebelumnya dilupakan. Mencoba membuka situs (lokal ke mesin saya) di jendela penyamaran di Chrome untuk mencegah hasil cache. Itu hanya gagal (dan saya menunggu beberapa menit untuk melihat apakah itu akhirnya akan berhasil). Tekan refresh hanya untuk memastikan. Lalu saya berkomentar keluar IP palsu dari file host saya. Tanpa melakukan hal lain saya me-refresh halaman dan itu berhasil. Hal yang sama dengan Firefox.
Andrew Steitz

Jadi, ini MUNGKIN bekerja berdasarkan aplikasi tetapi pasti TIDAK bekerja di dua browser modern.
Andrew Steitz

-1

Anda tidak dapat melakukan ini dengan file host.

Anda juga tidak dapat melakukan ini dengan DNS: Anda dapat melayani beberapa IP untuk satu nama, tetapi browser akan memilih hanya satu dari beberapa IP tersebut, cobalah, dan jika host ini sedang down, browser akan menampilkan kesalahan koneksi .

Salah satu solusi yang mungkin adalah mengatur server proxy dan mengonfigurasi dua IP ini sebagai orang tua untuk domain yang mereka layani. Setidaknya dalam kasus Squid, proxy akan mencoba satu server dan, jika gagal, coba server kedua. Kemudian konfigurasikan browser Anda untuk menggunakan server proxy ini.


Tidak benar tentang round robin: www-archive.mozilla.org/docs/netlib/dns.html Perhatikan bahwa suka dari google mengembalikan beberapa catatan DNS. Meskipun RFC3484 menyusun ulang, itu jelas membantu mengembalikan beberapa IP sebagai strategi failover.
BrianEss

ya Anda dapat melakukannya dengan file hosts
warren
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.