Apakah mungkin dua nama host berbagi alamat IP yang sama?

35

Adakah yang bisa menjelaskan apakah mungkin dua nama host berbagi alamat IP yang sama?

Dan bagaimana jika satu nama host mewakili lebih dari satu alamat IP, apakah itu mungkin juga? Mengapa?

jean
sumber
18
Ingin contoh dunia nyata di mana itu terjadi? Ping serverfault.comdan superuser.comdan lihat alamat IP yang dikembalikan untuk keduanya.
Scott Chamberlain
1
Semua nama host sudah berbagi alamat 127.0.0.1, semacam ...
jlliagre

Jawaban:

45

Menetapkan lebih dari satu alamat IP ke satu nama host juga dimungkinkan:

rr.example.com.        A      192.0.2.12
rr.example.com.        A      192.0.2.23
rr.example.com.        A      192.0.2.34
rr.example.com.        A      192.0.2.45

Ketika Anda meminta server DNS untuk rr.example.comAnda akan mendapatkan kembali daftar alamat IP kembali. Anda kemudian dapat memilih untuk terhubung ke salah satunya. Jika upaya pertama untuk terhubung ditolak secara aktif, coba saja yang berikutnya.

Sebagian besar browser akan mengikuti alur ini, selama titik akhir secara aktif menolak konektivitas TCP. Jika batas waktu titik akhir, sumber daya akan diperlakukan sebagai tidak dapat dijangkau meskipun tidak semua IP telah dicoba

Karena sebagian besar aplikasi (termasuk browser) seringkali hanya tertarik pada 1 titik akhir IP pada satu waktu dan hanya memilih jawaban pertama yang tersedia, Anda berisiko memiringkan beban di antara server target sehingga server pertama mendapatkan semua lalu lintas sementara yang lain mungkin menganggur .

Untuk menghindari hal ini, sebagian besar server DNS menawarkan apa yang dikenal sebagai konfigurasi Round Robin, membuat server mengganti urutan pengembalian catatan yang cocok. Sebelum load balancers adalah hal biasa, ini adalah cara yang efisien untuk memuat keseimbangan dan agak menerapkan toleransi kesalahan pada sistem jaringan.

Mathias R. Jessen
sumber
7
Bukankah pertanyaannya menanyakan kebalikan dari ini?
mowwwalker
2
Ada dua pertanyaan. @ Sirch sudah membahas bagian pertama dengan cukup baik
Mathias R. Jessen
Oh, begitu, saya melewatkan deskripsi. Terima kasih atas jawabannya btw!
mowwwalker
1
Apakah browser / tumpukan jaringan biasanya mencoba alamat pertama yang diterima? Atau akankah mereka mencoba yang acak? Apakah masuk akal untuk mengacak IP pesanan dikembalikan oleh server DNS Anda untuk mencoba menyeimbangkan beban?
Tom Marthenal
Tergantung pada implementasi klien tertentu. Sebagian besar server akan mengacak urutan alamat IP yang dikembalikan (ini adalah perilaku yang disebut sebagai "round-robin"). Sebenarnya pertanyaan yang menarik, saya pikir saya akan sedikit memperluas jawabannya
Mathias R. Jessen
35

Ya, ada kemungkinan beberapa nama host untuk menggunakan alamat ip yang sama, praktik terbaik adalah dengan menggunakan catatan CNAME untuk menunjuk ke catatan A

bar.example.com.        CNAME  foo.example.com.
foo.example.com.        A      192.0.2.23

Perhatikan semua perhentian penuh.

Memiliki satu nama host untuk mewakili beberapa alamat ip sedikit lebih rumit. Jika kita berbicara tentang catatan MX, solusi ini sudah ada di DNS menggunakan nomor prioritas, jika Anda ingin itu mewakili beberapa catatan A, Anda sebaiknya menggunakan penyeimbang beban, HAProxy misalnya.

Sirch
sumber
6
Perlu dicatat, dan saya telah melihat di Internet nyata, rantai CNAME yang memecahkan penentu nama. Karena CNAME dapat mengarah ke CNAME lain. Bahkan loop CNAME dimungkinkan.
PP.
2
RFC 1912 2.4 ietf.org/rfc/rfc1912.txt
dmourati
Perlu juga Adicatat bahwa catatan yang berisi IP yang sama dapat muncul di zona yang berbeda, misalnya, x.foo.com. A 1.2.3.4dan y.bar.com. A 1.2.3.4.
Blrfl
Jawaban ini lupa memberi tahu tentang Acatatan wildcard , yang juga mengarah ke beberapa nama host pada IP yang sama.
Izzy
Hei Sirch, Apa urusannya dengan fullstops?
JonoRR
6

Selain perubahan CNAME seperti jawaban lain yang disarankan, Anda juga harus menangani logika di server hosting Anda. Saya menggunakan Apache dan mengkonfigurasinya sebagai:

<VirtualHost 1.2.3.4:80>
    ServerName  www.abc.com
    ServerAlias abc.com
    ...
</VirtualHost>

<VirtualHost 1.2.3.4:80>
    ServerName  www.xyz.com
    ServerAlias xyz.com
    ...
</VirtualHost>

Saya yakin perangkat lunak server http lainnya memiliki hal serupa.

Yandong Liu
sumber
2

Anda harus jelas tentang apa yang Anda maksud dengan dua nama host. Jika Anda bermaksud dua kotak fisik dengan alamat IP yang sama jawabannya biasanya tidak. Sebuah kasus di mana Anda melakukannya adalah jika serverA dan serverB bekerja sebagai cluster aktif-pasif maka Anda akan meminta setiap server memiliki dua alamat. Satu akan menjadi alamat ip yang didedikasikan untuk server itu dan alamat ip kedua akan menjadi salah satu yang dibagikan antara server tetapi hanya server yang aktif akan mendengarkan alamat bersama itu. Server pasif hanya mulai mendengarkan di alamat bersama ketika server aktif turun.

Keith Wolters
sumber
2

Perlu juga dicatat bahwa dalam IPv6 Anda dapat menetapkan IP yang sama untuk dua atau lebih host dan jaringan akan melakukan load balancing dan failover untuk Anda (jika satu tidak dapat dijangkau, coba yang lain). Keduanya dianggap sebagai satu titik akhir logis dan tidak ada DNS yang terlibat sama sekali.

Fitur ini dikenal sebagai Anycast .

scravy
sumber
1

Beberapa IP untuk Domain yang sama:

  • Ya, itu mungkin dan sangat umum: Jika server (dengan ip A) jatuh, Anda dapat terhubung ke IP berikutnya dari register DNS dan mengakses server lain (dengan ip B) untuk mendapatkan layanan.

Beberapa Domain untuk IP yang sama:

Anda perlu menjawab pertanyaan berikutnya: Apakah semua Domain menyediakan layanan yang sama?

  • Jika ya: itu adalah konfigurasi yang sangat umum juga: banyak perusahaan membeli banyak domain dengan domain top negara berbeda: xxx.com, xxx.net, xxx.org, dll. Dan semuanya menunjuk ke layanan yang sama, yaitu , ke daftar IP yang sama.
  • Jika tidak: Itu mungkin tetapi tidak umum dan tidak direkomendasikan. Beberapa perusahaan hosting yang hanya mengizinkan layanan HTTP menggunakan NAT / Proxy untuk menyimpan IP. Tapi tentu saja, itu berarti Proksi yang "memahami" HTTP untuk mengidentifikasi layanan tujuan.
Adrian Maire
sumber
0

Banyak server di telekomunikasi (seperti HSS dan PCRF) menggunakan transportasi SCTP sehingga server ini memiliki beberapa alamat IP. Alamat-alamat ini digunakan untuk multi-homing (yang didukung SCTP) memberikan koneksi dengan redundansi dan failover.

Nissar Ali
sumber