Чому я повинен використовувати FQDN замість IP-адреси сервера?


29

У роботі з серверами я натрапив на файли конфігурації, де слід ввести адресу зовнішнього сервера. Я бачив, як деякі користуються безпосередньо IP-адресою сервера, але я почув багато рекомендацій використовувати замість нього повністю доменне ім'я хоста (FQDN). Чому я повинен використовувати ім'я хоста замість прямої IP-адреси?

Тому що якщо ви використовуєте ім'я хоста, то вам знадобиться локальний DNS-сервер, який би пов'язував кожне ім'я хоста з IP-адресою. Який недолік між використанням імені хоста чи IP-адреси?


5
якщо у вас є динамічні IP-адреси, можливо, простіше просто змінити запис DNS. і чому локальний DNS-сервер? чому б просто не зробити так, щоб усі машини мали загальнодоступні IP-адреси? Ще одним недоліком ІР є те, що навіть якщо вони не динамічні, вони, ймовірно, все ще залежать від фізичного розташування, що ускладнює міграцію в інше місце. в основному, це здається, що ви запитуєте, чому DNS був винайдений. на це питання вже багато разів відповідали в інших місцях.
Янус Троельсен

1
Завжди було рекомендацією (наприклад, у RFC), що на рівні програми один стосується лише імен хостів. Однак деякі програми навіть не працюватимуть, якщо не використовується IP. Тим не менш, я сам винен, що часто звертаюся до своїх пристроїв по IP замість імені хоста - але ця шкідлива звичка закінчиться, як тільки ми повністю перейшли на IPv6 :)
Хаген фон Ейтцен

Звичайно, зовнішній сервер буде забезпечувати всі комунікації з SSL, і SSL-сертифікати будуть підписані для FQDN, і ваша програма не зможе перевірити правильний сервер, якщо ви використовуєте IP-адресу. Правильно? : |
TessellatingHeckler

1
@HagenvonEitzen Впевнений, що ніколи і ніколи не набиратимеш текст ::1? :-)
CVn

Відповіді:


54

Використання IP-адреси гарантує, що ви не покладаєтесь на DNS-сервер. Він також має перевагу запобігання атакам через підробку DNS.

Використання FQDN замість IP-адреси означає, що, якби ви перенесли свою послугу на сервер з іншою IP-адресою, ви зможете просто змінити запис у DNS, а не намагатися всюди знайти IP-адресу .

Це особливо корисно, коли у вас є багато серверів і служб, налаштованих кількома особами.


1
Особливо, якщо знання про цю IP-адресу є і зовнішньою, наприклад, якщо її використовують клієнти, партнери чи постачальники. Уявіть собі, якби замість stackoverflow.com, ми всі перейшли до IP-адреси, яку ми знали як stackoverflow.com, і тоді їм потрібно змінити IP-адресу? Як вони могли б сказати кожному можливому користувачеві сайту, що IP змінився? Звідси імена.
Брендон

@Brandon це було б так само, як якщо б вони зараз вирішили перейти з stackoverflow.com на heapunderflow.com Оригінальна користь доменних імен - це люди пам’ятати stackoverflow.comзамість цього 151.101.1.69. Звичайно, це також дозволяє віртуальний хостинг, субдомени, що стосуються їх батьків, та інші вигоди, що виникли у них.
Ángel

2
Я думаю, що суть цієї відповіді полягає в тому, що організація володіє своїм FQDN; але може не мати своєї IP-адреси.
Пітер Геркенс

1
Спробуйте запустити HTTPS / Kerberos через IP проти FQDN.
Арон

Це буквально мета DNS.
Гонки легкості з Монікою

40

DNS - це не лише FQDN = IP

Важливим у DNS є те, що він забезпечує більше, ніж просто записи A (ім'я хоста = IP). DNS надає різні типи записів, такі як MX, CNAME, TXT тощо ..., які іноді можуть знадобитися деяким програмним забезпеченням. Це дозволяє декілька записів адрес, записів IPv4 + IPv6, динамічних адрес, балансування навантаження, роздільної здатності на основі геоданих, відмови / надмірності тощо. DNS повідомляє, що це таке (www.google.com - веб-сервіс google, 172.217 .4.110? Що це?) Це дозволяє вам змінити ці налаштування / записи та підбирати їх клієнтами, не вносячи змін до всіх клієнтів. DNS може робити складні речі.

Часто існує явна перевага використання DNS над прямою IP-адресою.

FQDN можуть бути вимогою

Деякі речі, такі як веб-сервери, які використовують віртуальний хостинг на основі імен або завантажують балансири тощо ..., абсолютно вимагають, щоб ви зверталися до них за допомогою FQDN або імені хоста. Вони визначають, як відповісти на ваш запит на основі FQDN, до якого ви підключаєтесь. Підключення через IP може взагалі не працювати.

Сертифікати SSL видаються на основі доменних імен, тому ви не зможете користуватися деякими послугами з підтримкою SSL (належним чином) без DNS.

Це запит на розкопок для домену google.com, щоб зрозуміти складність DNS

google.com. 299 В А 172.217.0.174
google.com. 299 В AAAA 2607: f8b0: 400b: 807 :: 200e
google.com. 599 IN MX 10 aspmx.l.google.com.
google.com. 599 IN MX 40 alt3.aspmx.l.google.com.
google.com. 59 В SOA ns2.google.com. dns-admin.google.com. 126990955 900 900 1800 60
google.com. 599 IN MX 30 alt2.aspmx.l.google.com.
google.com. 21599 В НС ns2.google.com.
google.com. 599 IN MX 20 alt1.aspmx.l.google.com.
google.com. 599 IN MX 50 alt4.aspmx.l.google.com.
google.com. 21599 В НС ns1.google.com.
google.com. 3599 В TXT "v = spf1 включають: _spf.google.com ~ all"
google.com. 21599 В CAA 0 випуск "symantec.com"
google.com. 21599 В НС ns3.google.com.
google.com. 21599 В НС ns4.google.com.

Yahoo відповідає 3 IP-адреси

$ host -ta yahoo.ca
yahoo.ca має адресу 77.238.184.24
yahoo.ca має адресу 74.6.50.24
yahoo.ca має адресу 98.137.236.24

Перевага використання IP-адреси

Для мене, як правило, коли DNS може якось заважати або недоступний. Як правило, я б використовував DNS для більшості речей.

Одним із прикладів того, де IP-адреса може бути кращою, є, коли у вас є дві машини з прямим зв’язком між ними (без комутатора) з приватними мережевими адресами (скажімо, 192.168.1.1 та 192.168.1.2), і вони використовують її для зв'язку високої доступності або DRBD або інша дуже конкретна послуга. У цьому випадку налаштування речей у DNS, ймовірно, не має жодного сенсу. Це не обов'язково, це додасть складності, продуктивності та може ввести крапку.

Інший приклад - маршрутизація. Таблиці маршрутизації записують IP-адреси з різних причин.

Інша - посилання на сервери імен (наприклад, у /etc/resolv.conf). Оскільки без сервера імен ви нічого не можете вирішити.


Це чудова відповідь, але він, мабуть, також повинен щось сказати і про занесені послуги; IP⟷FQDN - це множинне відображення, не багато-до-одного.
пухнастий

Дякую, і домовились. DNS дуже корисний для віртуального хостингу на основі імен, якщо саме це ви маєте на увазі.
Райан Бабчишин

Так, саме про це я мав на увазі.
пухнастий

Чудова відповідь, що насправді отримує правильний DNS - закладка для подальшого використання. Одним із незначних міркувань є ваш коментар "Таблиці маршрутизації записують IP-адреси з різних причин". Які різні причини, на які ви звертаєтесь? Таблиці маршрутизації не мають іншого вибору, крім використання IP-адрес, оскільки маршрутизація відбувається на рівні Інтернет, тоді як DNS використовує прикладний рівень і тому обов'язково залежить від маршрутизації.
садок

@gardenhead Дякую Це правильно щодо маршрутизації, я просто не хотів вступати в неї. Пробачте мій вибір слів.
Райан Бабчишин
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.