Назад | Перейти на главную страницу

Имена хостов - о чем они все?

Недавно меня «заставили» выполнить некоторую работу сисадмина, хотя мне это не очень нравится, я много читал, экспериментировал и учился.

Есть один фундаментальный аспект конфигурации сервера, который я не мог понять - имена хостов.

В Ubuntu, например, нужно установить такое имя хоста (согласно Библиотека Линоде):

echo "plato" > /etc/hostname
hostname -F /etc/hostname

Файл: / etc / hosts

127.0.0.1        localhost.localdomain        localhost
12.34.56.78      plato.example.com            plato

Я предполагаю что plato это произвольное имя и что plato.example.com это полное доменное имя.

Теперь мои вопросы:

Кроме того, есть ли какие-нибудь «лучшие практики» для выбора имен хостов? Я видел людей, использующих греческие буквы, названия планет и даже мифологические фигуры ... Что происходит, когда у нас заканчиваются буквы / планеты?

Прошу прощения, если это глупый вопрос, но я никогда не проявлял особого энтузиазма в отношении сетевых конфигураций.

В наши дни система может иметь несколько интерфейсов, каждый из которых имеет несколько адресов, и с каждым адресом может быть даже связано несколько записей DNS. Так что вообще означает «системное имя хоста»?

Многие приложения будут использовать системное имя хоста в качестве идентификатора по умолчанию, когда они общаются где-то еще. Например, если вы собираете сообщения системного журнала на центральном сервере, все сообщения будут помечены именем хоста исходной системы. В идеальном мире вы, вероятно, проигнорируете это (потому что вы не обязательно хотите доверять клиенту), но поведение по умолчанию - если вы назвали все свои системы «localhost» - приведет к появлению кучи сообщений журнала, которые вы не сможет подключиться к определенной системе.

Как отмечали другие люди, имя хоста системы также является полезным идентификатором, если вы обнаруживаете, что получаете удаленный доступ к нескольким системам. Если у вас есть пять окон, подключенных к системе с именем «localhost», вам будет сложно поддерживать их в рабочем состоянии.

Аналогичным образом мы пытаемся сделать так, чтобы имя хоста системы совпадало с именем хоста, которое мы используем для административного доступа к системе. Это помогает избежать путаницы при обращении к системе (в электронной почте, разговорах, документации и т. Д.).

Что касается DNS:

Вы хотите иметь правильные прямые и обратные записи DNS для своих приложений, чтобы избежать путаницы. Тебе нужно некоторые переадресация (имя -> IP-адрес), чтобы люди могли легко получить доступ к вашему приложению. Наличие обратного совпадения записи полезно по ряду причин - например, оно помогает правильно идентифицировать приложение, если вы найдете соответствующий IP-адрес в журнале.

Обратите внимание, что здесь я говорю о «приложениях», а не о «системах», потому что - особенно с веб-серверами - в системе часто бывает несколько IP-адресов, связанных с разными именами хостов и службами.

Попытка сохранить сопоставление имен и IP в вашем /etc/hosts файл быстро становится сложным, поскольку вы управляете все большим количеством систем. Файл локальных хостов может легко потерять синхронизацию с DNS, что может привести к путанице и, в некоторых случаях, неисправности (например, из-за того, что что-то пытается привязаться к IP-адресу, который больше не существует в системе).

Вы можете установить каждое имя хоста на "localhost", но очень удобно иметь alix@plato ~ $ в командной строке, когда вы управляете машинами через ssh. Если вы этого не сделаете, удаленное управление серверами может запутать вас.

Правильное полное доменное имя важно при размещении веб-сервера или почтового сервера. Такие серверные приложения хотят знать, «на ком они работают».

Чтобы выбрать хорошую схему именования, я отсылаю вас к этот очень популярный вопрос .

Полное доменное имя становится полезным только тогда, когда оно имеет значение для другого компьютера. Для этого есть три уровня:

  • Один компьютер в вашей локальной сети имеет запись в файле hosts, которая указывает на этот компьютер.
  • У вас есть DNS-сервер, работающий в вашей локальной сети, и каждый локальный компьютер, который использует его в качестве DNS-сервера, теперь знает plato по имени.
  • Вы регистрируете доменное имя, и теперь весь мир знает, на какую машину указывает имя plato.alixaxel.com.

Отправляя электронную почту или обслуживая веб-страницы во внешний мир, вы хотите иметь третий. В большинстве других случаев вы можете обойтись локальным DNS или даже редактированием файлов hosts.

В этом случае вы можете просто создать доменное имя (plato.alixnetwork может быть хорошим как полное доменное имя) для использования в вашей локальной сети. Единственная добавленная стоимость части "alixnetwork" (доменное имя) - это удобство, когда у вас есть другая локальная сеть, от которой вы хотите ее отличить.

Базовый обзор. Имя хоста - это просто указатели; вы можете назначить одно конкретное имя хоста, на которое ссылается машина, но их может быть несколько. Некоторые службы, известная почта и HTTP полагаются на доменные имена, чтобы знать, где должны быть расположены службы и как к ним добраться.

Давным-давно все эти имена (которые, опять же, являются просто указателями на IP-адреса) отслеживались в файле с именем hosts. По мере роста системы они не могли поддерживать синхронизацию файла на всех соответствующих компьютерах, участвующих в различных взаимосвязанных сетях. Так была изобретена система DNS. Когда вы выполняете поиск по имени, он все равно сначала проверяет файл hosts, а затем систему DNS. Windows также может проверять другие системы, такие как WINS или NetBIOS.

Когда вы помещаете запись в hosts файл, вы не назначаете его компьютеру. Назначение имени хоста в качестве имени, используемого компьютером, выполняется в файлах конфигурации (в системах * nix) и свойствах системы в системах Windows (система Windows также может иметь суффиксы NIC).

Записи в hosts файл, как и система DNS, представляют собой просто отображение имени хоста на IP-адрес. Чтобы использовать имя хоста localhost (в нем нет ничего особенного, это имя хоста, как и все остальное), оно должно быть сопоставлено с интерфейсом обратной связи (чтобы оно всегда указывало на локальный компьютер). Чтобы это работало, все компьютеры поставляются с этим сопоставлением по умолчанию в своих hosts файл, но он потенциально может быть удален, если вы не хотите использовать это имя хоста.

Кроме того, как отмечали другие, очень полезно назначить имя хоста компьютеру. При подключении к компьютеру вы можете настроить отображение имени хоста при входе в систему, в качестве приглашения или в любом другом месте. Это упрощает идентификацию компьютера, к которому вы подключены. Если вы установите это имя хоста в DNS или поместите его во все hosts файлов, вы сможете подключиться к компьютеру, ссылаясь на его имя хоста, вместо того, чтобы постоянно знать его IP-адрес. (Еще более полезно, если компьютер использует DHCP, поскольку адрес может измениться. Если компьютер обновит DNS, тогда запись DNS будет указывать на новый IP-адрес; вы все равно можете подключиться, не зная новый IP-адрес, потому что вы знаете имя DNS. ).

Есть много других применений обоих hosts и DNS, но я подозреваю, что у вас будет больше вопросов, чем ответов, если вы все это прочитаете.

Каждому хозяину нужно дать многозначительное имя. Имя хоста может использоваться для нескольких целей:

1- Это помогает вам распознать, над чем вы сейчас работаете.

2- Использование имен, настроенных в /etc/hosts и / или записи DNS проще, чем запоминание множества IP-адресов.

3- Localhost - это зарезервированное имя для ссылки на текущий компьютер (адрес 127.0.0.1).

4- Записи DNS полезны, чтобы сделать ваши серверы общедоступными.

Выбор подходящего имени для каждого сервера очень поможет вам в администрировании. Кроме того, это помогает вашим клиентам получить доступ к вашим серверам.

В качестве примечания: правильная работа прямого и обратного разрешения DNS - это краеугольный камень каждой ИТ-установки на этой планете. Никогда не недооценивайте необходимость хорошо поддерживаемого DNS и правильного разрешения имен хостов!

Отказ от ответственности: основной вопрос касается систем Linux, поэтому не стесняйтесь игнорировать этот ответ, если вас не интересует сторона проблемы, связанная с Windows.

В любом случае, в системах Windows, помимо всех пунктов, упомянутых в других ответах, имя хоста фактически используется O.S. сам по себе для работы в сети и аутентификации; в частности:

  • Каждая система, будь она членом домена или нет, должна иметь уникальное имя. в той же сети (т.е. в той же IP-подсети), в противном случае возникнет конфликт имен, и различные сетевые службы (в основном, общий доступ к файлам и принтерам) не будут работать.
  • Все системы, входящие в один домен Active Directory, должны иметь уникальное имя, независимо от границ сети.
  • В среде домена имя хоста системы действует как участник безопасности и может использоваться для удаленной аутентификации (просто подумайте об этом как об учетной записи пользователя для машины); ему могут быть назначены разрешения и права доступа, и его можно помещать в группы в целях безопасности. Это влияет на все процессы, запущенные в системе с использованием встроенного LocalSystem и NetworkService учетные записи пользователей, которые могут аутентифицироваться в других системах, используя учетные данные системы, в которой они работают; это позволяет, например, процесс, работающий как NetworkService на SystemA, чтобы получить доступ к общей папке на SystemB, предоставив права доступа к папке учетной записи пользователя SystemA.

Многие сайты и / или предполагаемые «администраторы» теперь заявляют, что атрибут «hostname» содержит полное доменное имя экземпляра ОС, что «нарушает» любое разрешение, которое добавляет к нему «имя домена»:

имя хоста
system1.domain1.org

пинг hostname
- не удается разрешить system1.domain1.org.domain1.org