Недавно меня «заставили» выполнить некоторую работу сисадмина, хотя мне это не очень нравится, я много читал, экспериментировал и учился.
Есть один фундаментальный аспект конфигурации сервера, который я не мог понять - имена хостов.
В 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
это полное доменное имя.
Теперь мои вопросы:
plato.example.com
FQDN?plato.example.com
использоваться как обратная запись DNS для моего IP?Кроме того, есть ли какие-нибудь «лучшие практики» для выбора имен хостов? Я видел людей, использующих греческие буквы, названия планет и даже мифологические фигуры ... Что происходит, когда у нас заканчиваются буквы / планеты?
Прошу прощения, если это глупый вопрос, но я никогда не проявлял особого энтузиазма в отношении сетевых конфигураций.
В наши дни система может иметь несколько интерфейсов, каждый из которых имеет несколько адресов, и с каждым адресом может быть даже связано несколько записей DNS. Так что вообще означает «системное имя хоста»?
Многие приложения будут использовать системное имя хоста в качестве идентификатора по умолчанию, когда они общаются где-то еще. Например, если вы собираете сообщения системного журнала на центральном сервере, все сообщения будут помечены именем хоста исходной системы. В идеальном мире вы, вероятно, проигнорируете это (потому что вы не обязательно хотите доверять клиенту), но поведение по умолчанию - если вы назвали все свои системы «localhost» - приведет к появлению кучи сообщений журнала, которые вы не сможет подключиться к определенной системе.
Как отмечали другие люди, имя хоста системы также является полезным идентификатором, если вы обнаруживаете, что получаете удаленный доступ к нескольким системам. Если у вас есть пять окон, подключенных к системе с именем «localhost», вам будет сложно поддерживать их в рабочем состоянии.
Аналогичным образом мы пытаемся сделать так, чтобы имя хоста системы совпадало с именем хоста, которое мы используем для административного доступа к системе. Это помогает избежать путаницы при обращении к системе (в электронной почте, разговорах, документации и т. Д.).
Что касается DNS:
Вы хотите иметь правильные прямые и обратные записи DNS для своих приложений, чтобы избежать путаницы. Тебе нужно некоторые переадресация (имя -> IP-адрес), чтобы люди могли легко получить доступ к вашему приложению. Наличие обратного совпадения записи полезно по ряду причин - например, оно помогает правильно идентифицировать приложение, если вы найдете соответствующий IP-адрес в журнале.
Обратите внимание, что здесь я говорю о «приложениях», а не о «системах», потому что - особенно с веб-серверами - в системе часто бывает несколько IP-адресов, связанных с разными именами хостов и службами.
Попытка сохранить сопоставление имен и IP в вашем /etc/hosts
файл быстро становится сложным, поскольку вы управляете все большим количеством систем. Файл локальных хостов может легко потерять синхронизацию с DNS, что может привести к путанице и, в некоторых случаях, неисправности (например, из-за того, что что-то пытается привязаться к IP-адресу, который больше не существует в системе).
Вы можете установить каждое имя хоста на "localhost", но очень удобно иметь alix@plato ~ $
в командной строке, когда вы управляете машинами через ssh. Если вы этого не сделаете, удаленное управление серверами может запутать вас.
Правильное полное доменное имя важно при размещении веб-сервера или почтового сервера. Такие серверные приложения хотят знать, «на ком они работают».
Чтобы выбрать хорошую схему именования, я отсылаю вас к этот очень популярный вопрос .
Полное доменное имя становится полезным только тогда, когда оно имеет значение для другого компьютера. Для этого есть три уровня:
Отправляя электронную почту или обслуживая веб-страницы во внешний мир, вы хотите иметь третий. В большинстве других случаев вы можете обойтись локальным 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. сам по себе для работы в сети и аутентификации; в частности:
LocalSystem
и NetworkService
учетные записи пользователей, которые могут аутентифицироваться в других системах, используя учетные данные системы, в которой они работают; это позволяет, например, процесс, работающий как NetworkService
на SystemA, чтобы получить доступ к общей папке на SystemB, предоставив права доступа к папке учетной записи пользователя SystemA.Многие сайты и / или предполагаемые «администраторы» теперь заявляют, что атрибут «hostname» содержит полное доменное имя экземпляра ОС, что «нарушает» любое разрешение, которое добавляет к нему «имя домена»:
имя хоста
system1.domain1.orgпинг
hostname
- не удается разрешить system1.domain1.org.domain1.org