Mengapa saya harus menggunakan FQDN dan bukan alamat IP server?

29

Dalam pekerjaan saya dengan server saya menemukan file konfigurasi di mana Anda harus memasukkan alamat ke server eksternal. Saya telah melihat beberapa menggunakan alamat IP server secara langsung, tetapi saya telah mendengar banyak rekomendasi untuk menggunakan nama domain yang sepenuhnya memenuhi syarat hostname (FQDN). Mengapa saya harus menggunakan nama host alih-alih alamat IP langsung?

Karena jika Anda menggunakan nama host maka Anda akan memerlukan server DNS lokal yang akan menautkan setiap nama host ke alamat IP. Apa kerugiannya antara menggunakan nama host atau alamat IP?

Emil Rowland
sumber
5
jika Anda memiliki IP dinamis, mungkin lebih mudah untuk hanya mengubah catatan DNS. dan mengapa server DNS lokal? mengapa tidak membuat semua mesin memiliki IP yang bisa diselesaikan secara publik? Kerugian lain dari IP adalah, bahwa bahkan jika mereka tidak dinamis, mereka mungkin masih bergantung pada lokasi fisik, membuatnya lebih sulit untuk bermigrasi ke lokasi yang berbeda. pada dasarnya, sepertinya Anda bertanya mengapa DNS diciptakan. pertanyaan ini telah dijawab berkali-kali di tempat lain.
Janus Troelsen
1
Itu selalu menjadi rekomendasi (dalam RFC, misalnya) bahwa pada level aplikasi hanya berurusan dengan nama host. Namun, beberapa aplikasi bahkan tidak akan berfungsi kecuali dengan IP. Meskipun demikian, saya sendiri bersalah karena sering menghubungi perangkat saya dengan IP alih-alih nama host - tetapi kebiasaan buruk itu pasti akan berakhir segera setelah kami sepenuhnya bermigrasi ke IPv6 :)
Hagen von Eitzen
Karena tentu saja server eksternal akan mengamankan semua komunikasi dengan SSL, dan sertifikat SSL akan ditandatangani untuk FQDN, dan aplikasi Anda tidak dapat memverifikasi server yang tepat jika Anda menggunakan alamat IP. Kanan? : |
TessellatingHeckler
1
@HagenvonEitzen Tentu Anda tidak akan pernah mengetik ::1? :-)
CVn

Jawaban:

54

Menggunakan alamat IP memastikan bahwa Anda tidak mengandalkan server DNS. Ini juga memiliki manfaat mencegah serangan melalui spoofing DNS.

Menggunakan FQDN alih-alih alamat IP berarti bahwa, jika Anda memigrasi layanan Anda ke server dengan alamat IP yang berbeda, Anda akan dapat dengan mudah mengubah catatan dalam DNS daripada mencoba dan menemukan di mana-mana bahwa alamat IP digunakan. .

Ini sangat berguna ketika Anda memiliki banyak server dan layanan yang dikonfigurasi oleh banyak individu.

Joshua Griffiths
sumber
1
Terutama jika pengetahuan tentang alamat IP itu bersifat eksternal juga, seperti jika pelanggan atau mitra atau vendor menggunakannya. Bayangkan jika alih-alih stackoverflow.com, kita semua pergi ke IP yang kita kenal sebagai stackoverflow.com, dan kemudian mereka perlu mengubah IP? Bagaimana mereka memberi tahu setiap pengguna yang mungkin dari situs bahwa IP telah berubah? Karena itu nama.
Brandon
@Brandon itu akan sama seperti jika mereka sekarang memutuskan untuk perubahan dari stackoverflow.com ke heapunderflow.com Manfaat asli nama domain adalah bagi manusia untuk mengingat stackoverflow.combukan 151.101.1.69. Tentu saja saat ini yang juga memungkinkan hosting virtual, subdomain yang berkaitan dengan orang tua mereka dan manfaat lain yang muncul dari mereka.
Ángel
2
Saya pikir inti dari jawaban ini adalah bahwa organisasi memiliki FQDN-nya; tetapi mungkin tidak memiliki alamat IP-nya.
Pieter Geerkens
1
Coba jalankan HTTPS / Kerberos melalui IP vs FQDN.
Aron
Ini secara harfiah adalah tujuan DNS.
Lightness Races dengan Monica
40

DNS bukan hanya FQDN = IP

Hal penting tentang DNS adalah bahwa ia menyediakan lebih dari sekadar catatan A (hostname = IP). DNS menyediakan berbagai jenis catatan seperti MX, CNAME, TXT, dll ... yang mungkin diperlukan oleh beberapa perangkat lunak, kadang-kadang. Ini memungkinkan beberapa catatan alamat, catatan IPv4 + IPv6, alamat dinamis, penyeimbangan beban, resolusi berbasis lokasi geografis, fail-over / redundancy, dll. DNS memberi tahu Anda hal-hal apa adanya (www.google.com adalah layanan web google, 172.217 .4.110? Apa itu?) Ini memungkinkan Anda untuk mengubah pengaturan / catatan ini dan membuatnya diambil oleh klien tanpa membuat perubahan pada semua klien. DNS dapat melakukan hal-hal kompleks.

Seringkali ada keuntungan yang jelas untuk menggunakan DNS melalui alamat IP langsung.

FQDN dapat menjadi persyaratan

Beberapa hal seperti server web yang menggunakan hosting virtual berbasis nama atau load balancers, dll ... benar-benar mengharuskan Anda mengatasinya melalui FQDN atau nama host. Mereka menentukan bagaimana menanggapi permintaan Anda berdasarkan FQDN yang Anda sambungkan. Menghubungkan melalui IP mungkin tidak berfungsi sama sekali.

Sertifikat SSL dikeluarkan berdasarkan nama domain, sehingga Anda mungkin tidak dapat menggunakan beberapa layanan yang diaktifkan SSL (dengan benar) tanpa DNS.

Ini adalah kueri penggalian untuk domain google.com untuk memberi Anda gambaran tentang kompleksitas DNS

google.com. 299 IN A 172.217.0.174
google.com. 299 DALAM AAAA 2607: f8b0: 400b: 807 :: 200e
google.com. 599 DALAM MX 10 aspmx.l.google.com.
google.com. 599 DALAM MX 40 alt3.aspmx.l.google.com.
google.com. 59 DALAM SOA ns2.google.com. dns-admin.google.com. 126990955 900 900 1800 60
google.com. 599 DALAM MX 30 alt2.aspmx.l.google.com.
google.com. 21599 IN NS ns2.google.com.
google.com. 599 DALAM MX 20 alt1.aspmx.l.google.com.
google.com. 599 DALAM MX 50 alt4.aspmx.l.google.com.
google.com. 21599 IN NS ns1.google.com.
google.com. 3599 IN TXT "v = spf1 termasuk: _spf.google.com ~ semua"
google.com. 21599 IN CAA 0 issue "symantec.com"
google.com. 21599 IN NS ns3.google.com.
google.com. 21599 IN NS ns4.google.com.

Yahoo merespons dengan 3 alamat IP

$ host -ta yahoo.ca
yahoo.ca memiliki alamat 77.238.184.24
yahoo.ca memiliki alamat 74.6.50.24
yahoo.ca memiliki alamat 98.137.236.24

Keuntungan menggunakan alamat IP

Bagi saya biasanya ketika DNS bisa menghalangi atau tidak tersedia. Secara umum, saya akan menggunakan DNS untuk sebagian besar hal.

Salah satu contoh di mana alamat IP mungkin lebih baik adalah ketika Anda memiliki dua mesin dengan tautan langsung di antara mereka (tanpa sakelar) dengan alamat jaringan pribadi (katakanlah 192.168.1.1 dan 192.168.1.2) dan mereka menggunakannya untuk komunikasi ketersediaan tinggi atau DRBD atau layanan lain yang sangat spesifik. Dalam hal ini, pengaturan hal-hal dalam DNS mungkin tidak masuk akal. Itu tidak perlu, akan menambah kompleksitas, masalah kinerja dan bisa memperkenalkan titik kegagalan.

Contoh lain adalah routing. Tabel routing mencatat alamat IP karena berbagai alasan.

Lainnya adalah mereferensikan server nama (seperti di /etc/resolv.conf). Karena tanpa server nama, Anda tidak dapat menyelesaikan apa pun.

Ryan Babchishin
sumber
Ini adalah jawaban yang bagus, tetapi mungkin juga harus mengatakan sesuatu tentang layanan vhosted juga; IP⟷FQDN adalah pemetaan banyak ke banyak, bukan banyak-ke-satu.
halus
Terima kasih, dan setuju. DNS sangat membantu untuk hosting virtual berbasis nama jika itu yang Anda maksud.
Ryan Babchishin
Ya, itulah yang saya maksudkan.
lembut
Jawaban bagus yang benar-benar mendapatkan DNS - bookmark untuk referensi di masa mendatang. Satu keluhan kecil yang saya miliki adalah komentar Anda "Tabel perutean mencatat alamat IP karena berbagai alasan." Apa berbagai alasan yang Anda rujuk? Tabel perutean tidak memiliki pilihan selain menggunakan IP karena perutean terjadi pada lapisan internet, sedangkan DNS menggunakan lapisan aplikasi dan karenanya tergantung pada perutean.
gardenhead
@ardenhead Terima kasih. Itu benar tentang perutean, saya hanya tidak ingin masuk ke dalamnya. Maafkan pilihan kata-kata saya.
Ryan Babchishin