Здравствуйте!
Помогите мне, пожалуйста, разобраться в возможных вариантах имени компьютера.
Я не могу сориентироваться даже, где получить информацию на этот счёт.Читал ханбук, маны hosts, lmhosts, hostname, gethostname, mamed.conf.
Пока я понял, что может быть netbios-имя (для windows-сетей) и dns-имя (для "вообще").
Что тогда задается директивой "hostname" в rc.conf? Просто имя? :-)
С dns всё более-менее понятно, но вот как всё происходит, когда службы dns в сети нет?
Может ли машина иметь два имени? Три? (Не dns-имена, их-то, понятно, может)
Есть ли в unix-сети (без dns) служба распределения имен, или только локальные копии hosts?
Можно ли по ip-адресу узнать имя машины (win, unix), (опросив её) в случае если dns сервер недоступен?Так-то бы чёрт бы с ним, но mount_smbfs требует имя, чтобы настроить apache для локалки машине тоже нужно присвоить имя и т.д.
Порекомендуйте, пожалуйста, источник информации на этот счёт.
>Пока я понял, что может быть netbios-имя (для windows-сетей) и dns-имя (для
>"вообще").Правильно.
Нетбиос - имя для виндового сетевого окружения, оперируют им сервера WINS и мастер браузеры.
ДНС-имя это просто записи в прямой и обратной зоне соответствующих ДНС серверов.
>Что тогда задается директивой "hostname" в rc.conf? Просто имя? :-)
Я там обычно FQDN для основного ай-пи с основного сетевого интерфейса пишу.
Типа: hostname="server.domain.ru"
>С dns всё более-менее понятно, но вот как всё происходит, когда службы
>dns в сети нет?Тогда вообще до лампочки чего там писать.
>Может ли машина иметь два имени? Три? (Не dns-имена, их-то, понятно, может)
Может.
>Есть ли в unix-сети (без dns) служба распределения имен, или только локальные
>копии hosts?Есть еще NIS/NIS+, например. Но проще все же ДНС поднять. Если у вас есть виндовая сеть с актив директори, то ДНС у вас уже есть.
>Можно ли по ip-адресу узнать имя машины (win, unix), (опросив её) в
>случае если dns сервер недоступен?При наличии в сети WINS сервера можно. Через броадкасты наверное тоже можно, но не уверен.
>Так-то бы чёрт бы с ним, но mount_smbfs требует имя, чтобы настроить
>apache для локалки машине тоже нужно присвоить имя и т.д.mount_smbfs -I 192.168.1.1 //user@server/sharename /mnt
>[оверквотинг удален]
>
>Есть ли в unix-сети (без dns) служба распределения имен, или только локальные
>копии hosts?
>Можно ли по ip-адресу узнать имя машины (win, unix), (опросив её) в
>случае если dns сервер недоступен?
>
>Так-то бы чёрт бы с ним, но mount_smbfs требует имя, чтобы настроить
>apache для локалки машине тоже нужно присвоить имя и т.д.
>
>Порекомендуйте, пожалуйста, источник информации на этот счёт.Чтобы разобраться в верхнем, следует читать НЕ man'ы и handbook'и, а книги или
лекции, например:
http://www.intuit.ru/department/network/baslocnet/
http://www.citforum.ru/nets/semenov/
сам, признаюсь, не до конца разобрался, но пару замечаний скажу - по крайней мере я так поступаю :)
Параметр hostname очень важен, можно сказать жизненно необходим. Мы задаём его в файле /etc/rc.conf в виде имени:например:
hostname="gw.lan"
но имя нужно преобразовать в ip. Каким образом? -
1) Через систему доменных имён - но DNS-сервер может быть не доступен во время загрузки компьютера (и сразу вопрос: на каком этапе происходит преобразование hostname? - когда сетевые интерфейсы уже подняты? ...);
поэтому лучше 2) воспользоваться файлом /etc/hosts :127.0.0.1 localhost localhost.lan. gw.lan.
Для перестраховки так сказать :)
Всё-равно для конкретных служб мы (ну или я) задаём ip-адрес, на котором служба будет работать:
типа
Listen 12.34.56.78:80
и ещё одно замечание - не меняйте hostname "на лету" !!!
если нужно сменить hostname - тогда внесите изменения в /etc/rc.conf:hostname="new-name.lan"
и после этого перегрузите все службы - просто многие службы создают файл, в котором хранится pid-процесса, в виде `hostname -s`.pid и, следовательно, после смены hostname "на лету" через:
# hostname "new-name.lan"
не смогут найти файл `hostname -s`.pid (new-name.pid)
Но это не все программки - с грамотно написанными проблем не будет.