LINUX.ORG.RU
ФорумAdmin

А как ассоциировать hostname с получаемым через DHCP IP?

 ,


1

1

Собственно, сабж. Не важно v4 или v6.

Вопрос интересует в связи с заменой сабжем ассоциирования hostname'а с loopback'ом через /etc/hosts, поскольку в наши дни стало принято считать это моветоном.

Что для сабжа принято крутить в линуксах? DHCP-клиент? Systemd? Или что-то другое?

Гугл мне подсовывает ответы на совсем другие вопросы. В лучшем случае объясняет как добавить hostname в /etc/hosts.

Повторю другими словами. Меня сейчас не интересует производственная настройка рабочего сервера с реальным доменным именем наподобие myserver.yandex.ru.

Меня интересует другое. Когда IP адреса машина получает через DHCP от роутера. И они, соответственно, за пределами роутера в интернете всё равно не светятся.

Т.е. чтобы, например, «ping -c 3 myhostname» обращался к назначенным DHCP-сервером каким-нибудь 192.168.88.251 или fe80::27ef:2575:a107:5273.

★★★★★

На том же роутере где DHCP раздаётся обычно есть и DNS сервер, причём обычно ещё и кеширующий запросы наружу. Фиксируй lease, чтобы по MAC клиенту всегда один и тот же IP выдавался, создавай A записи и раздавай IP этого DNS сервера через DHCP. Возможно твой роутер умеет и динамический DNS в связке с DHCP, тогда и lease фиксировать не придётся. Мой микрот умеет только в статику, так что я выдачу фиксирую. То бишь кроме DHCP сервера твой роутер будет ещё и DNS сервером в твоей локалке.

Jameson ★★★★★
()
Ответ на: комментарий от Jameson

Знаю что вопрос может решаться без лишних сущностей наподобие DNS-серверов. Только, к сожалению, не знаю как именно. Потому и спрашиваю.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Хочешь странного, ясно. Ну, ОК. Я DNS сервер в домашней локалке считаю не лишней, а необходимой сущностью, тем более он в роутере обычно уже есть из коробки, нужно только его настроить. Да и кеширование запросов штука приятная. Но это сугубо моё личное мнение.

Да, я как то видимо сильно отстал, с каких времён резолвинг loopback через /etc/hosts стал моветоном? Опять Поттеринг что то на эту тему новое изобрёл?

Jameson ★★★★★
()
Последнее исправление: Jameson (всего исправлений: 1)

Вопрос интересует в связи с заменой сабжем ассоциирования hostname’а с loopback’ом через /etc/hosts, поскольку в наши дни стало принято считать это моветоном.

Не слышал ничего про моветон особенно для домашнего сервера.

Что для сабжа принято крутить в линуксах? DHCP-клиент? Systemd? Или что-то другое?

Systemd какое отношение?

Не понятно у тебя что используется роутер типа Tp-link? dlink? mikrotik? если да то смотри что они умеет и задавай вопрос конкретнее, гугл подозреваю подсовывает ответы из за неконкретных вопросов.

Если же стоит Линуксовая тачка поле для деятельности обширное, не знаю надо ли оно дома, скока там ip устройств чтоб городить все это. Если про DHCP и DNS ты в курсе и не хочегь настраивать, то есть еще DNSMASQ этот одновременно и dhcp и dns в одном флаконе и не надо прибивать статически IP. Зато можно забанить любой IP или имя доменное подменой 127.0.0.1

Хотя дома нафига этот огород… на работе не хватает?

alex_sim ★★★★
()
Ответ на: комментарий от Jameson

Да, я как то видимо сильно отстал, с каких времён резолвинг loopback через /etc/hosts стал моветоном?

Моветон не прописывать хостнейм в /etc/hosts, а прописывать его на loopback адрес (127.0.0.0/8). Прописывать его на реальный адрес интерфейса вполне нормальная, широко распространенная практика. Вот только с динамеческим обновлением и правда беда в этих ваших линуксах.

Khnazile ★★★★★
()
Ответ на: комментарий от saahriktu

Если есть простой и сложный способ решить проблему, выбирай сложный, потому что простой на самом деле сложный и неправильный.

Elyas ★★★★★
()
Ответ на: комментарий от Elyas

Я сомневаюсь в том, что он особо сложный. Маинтейнеры дистрибутива Mageia как-то так сделали, что после его установки всё работает именно так. Без записей в /etc/hosts. Значит, где-то в линуксах должны быть соответствующие настройки.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от alex_sim

Не слышал ничего про моветон особенно для домашнего сервера.

Есть куча разных причин по которым теперь это считается моветоном.

  • Есть софт, документация которого прямо требует, чтобы hostname не был прописан в /etc/hosts.
  • От этой практики отказываются в сторону более универсальных настроек по той причине, что удалённый софт может запросить у локальной машины IP по её hostname'у. И если она вернёт IP loopback'а, то соединение установить не получится. Понятное дело, что такое же будет и при сабжевой настройке, но это уже другой вопрос. Главное здесь, что это один из аргументов по которым теперь принято косо смотреть на добавление hostname'а в /etc/hosts.
  • Теперь считается, что добавление hostname'а в /etc/hosts только запутывает конфигурацию сети.
  • ...

Ну и т.д.

По всем этим и многим другим причинам теперь добавление hostname'а в /etc/hosts классифицируется примерно также, как пользование кодировкой DEC RADIX 50.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от Elyas

Гм...

# ls -l /etc/nssswitch.conf
ls: невозможно получить доступ к '/etc/nssswitch.conf': Нет такого файла или каталога
#

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от Elyas

Там, по ходу, перечисляются методы:

# grep ^hosts /etc/nsswitch.conf
hosts:          files mdns_minimal [NOTFOUND=return] dns
#
# Legal entries are:
#
#       compat                  Use compatibility setup
#       nisplus                 Use NIS+ (NIS version 3)
#       nis                     Use NIS (NIS version 2), also called YP
#       dns                     Use DNS (Domain Name Service)
#       files                   Use the local files
#       [NOTFOUND=return]       Stop searching if not found so far

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от Harald

Такие подробности мне пока что неизвестны.

saahriktu ★★★★★
() автор топика

dnsmasq , но при установке в убунте полной версии и отключении systemd.resolved всё встало раком.

С другой стороны snap требует каких-то ошметков dnsmasq, для контейнеров. Я пока подзабил на всё это. Но реально выбесило. За что не возьмешься, всё итмеет по 100-500 версий и смешивается в кучу.

Если у ШвинЧервера есть только прямой путь решения поставленной задачи, то тут имеем несколько вариантов, которые противоречат друг дружке. ЗАДОЛБАЛО!!!

anonymous
()
Ответ на: комментарий от anonymous

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

anonymous
()
Ответ на: комментарий от saahriktu

Знаю что вопрос может решаться без лишних сущностей наподобие DNS-серверов.

Либо по-вендовому(Netbios в безсерверном варианте или с WINS), либо через Avahi. По другому в линуксах никак.

Я ради интереса тестил ping через wins, работало оно нормально(нужна установленная samba и соответствующим образом настроенный nsswitch.conf).

Но это всё костыли. Если сеть тобой контролируема, самый правильный ответ - DNS

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от iliyap

По идее хороший роутер должен по dhcp выдавать свой адрес в качестве адреса dns сервера. И добавлять в свой dns сервер dns записи для выданных по dhcp адресах. Вроде dnsmasq в openwrt это умеет.

iliyap ★★★★★
()
Ответ на: комментарий от iliyap

/etc/systemd/resolved.conf

/etc/systemd/resolved.conf.d/*.conf

/run/systemd/resolved.conf.d/*.conf

/usr/lib/systemd/resolved.conf.d/*.conf

Это расположение конфигов. По-народному - идиотия :-((

anonymous
()
Ответ на: комментарий от Pinkbyte

через Avahi

О. Спасибо. Похоже на правильное направление поисков.

 1038 ?        Ss     0:00 avahi-daemon: running [maganux.local]
 1075 ?        S      0:00  \_ avahi-daemon: chroot helper

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

# grep ^hosts /etc/nsswitch.conf
hosts: files mdns_minimal [NOTFOUND=return] dns

У тебя такая цепочка: /etc/hosts > avahi > DNS-сервер
В системах где есть systemd-resolved, на первом месте стоит он, но насколько я знаю, в opensuse он не используется, там до сих пор nscd. Можно доустановить nss-myhostname и прописать его после files.
Зачем сделано так странно я не знаю.

Khnazile ★★★★★
()
Ответ на: комментарий от Khnazile

О. Спасибо. Заработало.

В системах где есть systemd-resolved, на первом месте стоит он, но насколько я знаю, в opensuse он не используется

А в какой версии systemd systemd-resolved вообще появился? Раньше, ЕМНИМС, если он и был, то отключался по дефолту. Включать его стали в последних версиях systemd. Поэтому, видимо, от systemd-234 2017-го года и не приходится ждать systemd-resolved.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Исходя из вот этой информации: https://github.com/systemd/systemd/blob/master/NEWS
systemd-resolved впервые появился в systemd 213. Так что в 2017 году он уже точно был. Думаю, дело в том, что в opensuse есть свои собственные костыли для обновления resolv.conf, и они не хотят от них отказываться.

Khnazile ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.