LINUX.ORG.RU

Заново отправить имя на сервер DHCP-DNS.

 


0

4

Домашнюю сеть содержит роутер с прошивкой dd-wrt. Демон DHCP - DNSMasq, время аренды - 24 часа. У роутера кратковременно упало питание, сервера не пострадали. Результат: я не могу полключиться к серверу по имени (по IP работает, но зачем тогда давать имена хостам?).

Ждать истечения срока аренды или перезагружать сервер / передёргивать eth[Х] желания нет. Можно-ли избежать этой проблемы? Интересует решение на стороне КЛИЕНТА (что-то вроде «вречную попросить DNS заново принять имя клиента»).

★★

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

Ответ на: комментарий от sin_a

ОП хочет именно хостнейм. IP наверняка не меняется, но удобнее напейсать ssh laptop чем ssh 192.168.1.83 нэ? У меня такая же проблема, подпишусть.

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

Если тому, кто раздаёт адреса (dhcp), сказать что бы этот mac всегда получал только этот ip, то проблема будет решена, не?

sin_a ★★★★★
()

Не знаю есть ли uci на dd-wrt, но на openwrt можно так /etc/config/dhcp:

config domain
	option name 'deviantart.com'
	option ip '192.168.1.11'

Или пропиши в /etc/hosts соответствия IP-DNS, dnsmasq подхватит.

Конечно нужно еще закрепить определенные IP за MAC'ами.

Black_Roland ★★★★
()
Последнее исправление: Black_Roland (всего исправлений: 4)
Ответ на: комментарий от sin_a

Если тому, кто раздаёт адреса (dhcp), сказать что бы этот mac всегда получал только этот ip, то проблема будет решена, не?

Сервер по DHCP получил IP, роутер прописал в dhcp.leases что этому имени сервера соответствует этот IP. Инфа из dhcp.leases используется для резолвинга DNS имен. Роутер перезагрузился, dhcp.leases потерялся, но сервер повторно не делал DHCP запроса и не знает что роутер перезагружался, а роутер ничего не знает про сервер, т.к. старый dhcp.leases утерян, а нового DHCP-запроса не было.

Black_Roland ★★★★
()
Последнее исправление: Black_Roland (всего исправлений: 2)
Ответ на: комментарий от sin_a

нет не будет. По IP можно заходить, он всегда одинаков. А хостнейм теряется. ОП, попробуй на роутере в /etc/hosts прописать хостнеймы. Костыль, но по идее dnsmasq оттуда тоже берет имена.

FFSinit ★★
()

В качестве обходного пути: клиентов настроить статически вне диапазона dhcp, на роутере их адреса вписать в /etc/hosts, чтобы dnsmasq раздавал эти имена как "настоящий" dns-сервер. То есть не использовать для них регистрацию в ddns.

А решение "на стороне КЛИЕНТА" ты как себе представляешь? Даже если найдётся способ перерегистрироваться в dnsmasq, то своё имя туда постоянно долбить придётся, каждую секунду, ужас же.

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

Про статику этот dns ничего не знает?

Если пропишешь IP по MAC'у и DNS по IP, то все будет работать. А так DNS имена выдаются автоматически по имени компа и теряются через какое-то время, либо после перезагрузки роутера.

Black_Roland ★★★★
()

Интересует решение на стороне КЛИЕНТА

systemctl restart NetworkManager

или

systemctl restart dhcpcd@eth0
или что-нибудь аналогичное, короче надо переподключиться.

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

Если dns сервер читает dhcp.leases то было бы разумно ему читать также dhcp.conf на предмет статики. Потому что иначе получается забавная ситуация: те, кто получили динамику — резолвятся, а те про кого уже заранее известно — неизвестны.

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

нет не будет.

В dd-wrt как раз и будет. DHCP reservation --> в DNS'e статическое имя.

Help dd-wrt

Static Leases – If you want to assign certain hosts a specific address
then you can define them here. This is also the way to add hosts with
a fixed address to the router's local DNS service (DNSmasq).

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

Топик не читай - сразу отвечай

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

Благодарю Black_Roland за точное описание корня проблемы и FFSinit за моральную поддержку. Верно подмечено: проще набрать «ssh laptop». Благодарю всех за предложенные кастыли.

Теперь по делу...

1) Сейчас у меня роутер с детально настроенной DD-WRT на борту, а завтра он, например, сгорит, и я буду вынужден второпях заменить его на какую-то железяку, заранее не купленную, не подготовленную и требующую детальной настройки. Сколько из правил я не вспомню за давностью настройки работающего нынче маршрутизатора? Или правильным выходом для меня будет вести двевник с детально запианным алгоритмом настройки домашнего роутера?

2) Статика... Зачем она ДОМА, в сети из 5-7-ми машин и стопки виртуалок на сервере? Имена виртуалок могут менятьса как перчатки, ко мне могут приходить гости и структура сети, в принципе, вообще может меняться. А роутер должен ПРОСТО РАБОТАТЬ. Никаких привязок без КРАЙНЕЙ необходимости плодить не нужно.

3) Файлопомойка от Synology как-то реализует нужный мне функционал. Она явно не бомбит роутер запросами в процессе работы, но имя у неё прописано всегда - минуты не проходит с момента запуска роутера как она начинает откликаться на своё имя. Так что возможность настроить клиент должным образом СУЩЕСТВУЕТ, просто у меня не хватает мозгов найти ПРАВИЛЬНОЕ решение.

4) Вот один из моих терминалов: планшет gnusmas← на ведроиде. Из-за долбаного счётчика прошивок я не имею возможности править ему hosts, ставить root и прочие нямки. Этот терминал я всегда могу переподключить, а вот сервер переподключать или передёргивать виртуалки я не должен.

И как сухой остаток: делать надо не «и так сойдёт», а «ТАК ПРАВИЛЬНО». Зачем плодить кастыли перерождающиеся в грабли, на которых потом прийдётся танцевать?

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

Зачем?

За тем что я дома, за тем что у сервера есть ИМЯ, за тем что имя даётся для удобства.

zzdnx ★★
() автор топика
Последнее исправление: zzdnx (всего исправлений: 1)
Ответ на: Топик не читай - сразу отвечай от zzdnx

На клиенте это не удобно делать, тебе придется это проделать на ВСЕХ устройствах.

Нужно просто сделать так, чтобы dhcp.leases на роутере не удалялся при перезагрузке. Судя по манам за это отвечает параметр dhcp-leasefile в dnsmasq.conf или --dhcp-leasefile=<path> в параметрах запуска dnsmasq. Укажи путь куда-нибудь где он не будет стираться, /etc/dhcp.leases например.

Сам не проверял, но т.к. сам так же мучаюсь надо будет попробовать :)

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

systemctl restart

В паре виртуалок есть сервисы, требующие поддержания соединения. Если передёруть этим виртуалкам сеть - эти сервисы начинают сходить с ума. Я попробую найти способ применения этого решения если тест на «сумашествие» сервиса пройдёт успешно.

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

На клиенте это не удобно делать

Это нужно будет делать не на клиенте, а на сервере и сервисных виртуалках, при том ОДНОКРАТНО. В принципе - это и есть решение проблемы. Мне (как, думаю и другим), будет не в лом переподключить терминал, но нет смысла переподключать сервер или сервис.

Что касается места хранения leasefile, то проблема снова упирается в детальную настройку конкретного роутера и конкретной прошивки. Если железка внезапно издохнет после пары лет безупречной работы - будет ещё тот переполох в курятнике.

zzdnx ★★
() автор топика
Ответ на: На клиенте это не удобно делать от zzdnx

У меня не хватает знаний для самостоятельного штурма этой проблемы...

Я написал сюда именно потому что ВИЖУ как работает файлопомойка и как на половину работают сервисы: сами сервисы работают, а подключиться к ним нельзя, ибо имя хоста не найдено.

Я расчитываю что общими усилиями мы сможем найти ПРАВИЛЬНОЕ решение, которое облегчит жизнь не только нам.

Хранить leasefile в энергонезависимой памяти - хорошее решение, но оно пригодно только для тех, кто её настраивает и использует. Я не использую её потомучто она может быть случайно изъята, повреждена, или, в случае использования flash самого роутера, может привести к смерти сам роутер.

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

Бэкапы

Бэкапы хороши когда упавшую систему заново разворачиваешь именно ТЫ. Бэкапы нужно УМЕТЬ разворачивать. А если это делаешь не ты, а, например, жена/сын/дочь/тёща/друг? Согласен, это похоже на паранойю и вероятность такого стечения обстоятельств черезвычайно мала, но мне кажется, проблема не в роутере.

К роутеру после загрузки обращаются клиенты с уже настроенной правильной конфигурацией. Роутер что, не правильно поступает когда не перезаращивает у них имена?

zzdnx ★★
() автор топика
Последнее исправление: zzdnx (всего исправлений: 2)
Ответ на: Бэкапы от zzdnx

DHCP роутера выдал IP и его миссия на этом закончена. У серверов уже есть IP, им не надо его запрашивать снова. Роутер помимо DHCP занимается еще DNS и эти DNS имена он теряет после перезагрузки. DNS и DHCP это разная фигня, просто в dnsmasq они вместе.

А если сервак упадет? Тёща же не будет его поднимать :) Так же и с роутером. Купи еще один роутер и настрой его, чтобы можно было быстро подменить, если боишься поломки старого. Но не думаю что стоит преждевременно так морочиться. Сдохнет роутер, еще раз напишешь на ЛОРе, еще раз настроишь :) Не каждый день роутеры дохнут.

Black_Roland ★★★★
()
Ответ на: Топик не читай - сразу отвечай от zzdnx

Файлопомойка от Synology как-то реализует нужный мне функционал.

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

Другой вариант, настроить multicast dns(ака zeroconf) как на клиенте, так и на роутере. Ага, именно тот самый надоедливый Avahi-daemon.

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

Прошу прощения, я плохо сформулировал фразу и вы могли меня понять не правильно.

Файлопомойка от Synology хоть и может выступать в роли местного маршрутизатора/сервера имён, но в моём случае она работает исключительно как клиент по отношению к роутру. При перезагрузке роутера/падении питания или другой трабле она словно заново прописывает своё имя в DNSе роутрета, чего не делают другие клиенты. Что касается энергонезависимой памяти - да, она может хранить leases-файл в постоянной памяти.

zzdnx ★★
() автор топика
Ответ на: Топик не читай - сразу отвечай от zzdnx

2) Статика... Зачем она ДОМА,

Затем, что это решение твоей проблемы. Но ты конечно можешь продолжать героически преодолевать дальше.

Конечно речь не о том, что бы отказаться от dhcp, а только о том, что бы зафиксировать требуемые мак адреса в конфиге.

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

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

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

Наверное, у меня слишком мало проблем, чтобы забивать голову ещё и этой... Печально.

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

Можно поступить ещё более радикально. Убрать с роутера dhcp и dns вообще, и запустить их на сервере. Пусть роутер только роутит и натит.

виртуалку с тестовым сервисом и привязывать её мак к адресу, а потом адрес к имени.

Такие вещи обычно делаются клацаньем галочки напротив текущего значения в веб интерфейсе. Ну, можно ещё в текущем адресе одну цифру исправить, что бы выйти за пределы динамики.

sin_a ★★★★★
()
Ответ на: Топик не читай - сразу отвечай от zzdnx

А зачем ты вообще роутер перезагружаешь?

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

Залить прошивку и восстановить конфиг очень долго?

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

Ничего я не перезагружал. У меня пробки выбило. Прикинь, такое бывает, даже в мегаполисе. Перезагрузку я использовал потом, при попытке смоделировать последствия падения электричества.

Залить прошивку и восстановить конфиг не долго. Но у меня нет гарантий, что после смерти этого роутера я на прилавке найду уже снятую с производства модель. А ещё не факт, что бэкап параметров для прошвки 3-4-х летней давности в точности подойдёт для последней ночной сборки FW - такое уже было.

Как я понимаю, новое предложение в мой адрес - хранить FW и бэкап её настроек? Это не серьёзно. Менять роутер только потому что конкретная модель снята с производства? - это больше похоже на «иди ты в магазин со своими проблемами».

Куда делся тот старый LOR, на котором умные юзеры давали ТОЛКОВЫЕ советы менее опытным или менее знающим?

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

Можно поступить ещё более радикально.

А почему тогда вообще не пустить домашнюю сеть в интернет через сервер? Пусть сервер и занимается маршрутами, натированием... Он у меня всё равно на бесперебойнике держится.

Такие вещи обычно делаются клацаньем галочки, но когда роутер сдохнет и потребуется восстановить прежнюю конфигурацию сети внезапно выясняется что на дорогую железку нет денег, а то, на что есть, не поддерживает dd-wrt/openwrt и её штатная fw бут-скриптов не знает вообще.

Мне нужны НАДЁЖНОСТЬ и ПРОСТОТА ВОССТАНОВЛЕНИЯ. Мне нужно, тобы при сбое всю сеть не я поднимал (мне для этого в другой город ехать), а тот, кто ничего в этом не понимает. Мне нужно не забор из кастылей городить, и не закупать дублирующее оборудование, а решить простую и весьма КОНКРЕТНУЮ проблему. Мне нужно прописывать имена клиентов на роутере так, как это уже делает один из клиентов.

zzdnx ★★
() автор топика
Ответ на: Можно поступить ещё более радикально. от zzdnx

Мне нужно прописывать имена клиентов на роутере так, как это уже делает один из клиентов.

И всё, чего я прошу - это вашей посильной помощи. Мне нужно разобраться КАК ЭТО ДЕЛАЕТ один из клиентов и КАК ЭТО ПЕРЕНЕСТИ на всех остальных.

Почти всё, что мне пока было предложено - кастыли. При том предложены они мне в тоне «А зачем тебе оно надо? Делай как проще. О неудобствах забудь, тебе просто придётся помнить то, то, это, вот это, а ещё вот это и иногда делать вот так».

ЭТО НЕ РЕШЕНИЕ.

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

попробуй wireshark'ом перехватить пакеты что файлоопомойка посылает. Может быть что ей вовсе похуй на роутер, и она с помошью mdns сама сообщает свой IP всем заинтересованым клиентам.

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

Можно проще:

 avahi-browse --all | grep ds
+  wlan0 IPv4 ds [00:11:22:33:44:55]                        Workstation          local
+  wlan0 IPv4 ds                                            Web Site             local
+  wlan0 IPv4 ds(WebDAV)                                    Web Site             local
^C
DS - имя файлопомойки. Atlant был прав, дело в avahi. Осталось выяснить только одно: можно-ли заставить avahi просто светить имя машины. То есть не поднимая никаких лишних сервисов просто уведомлять соседей о своём присутствии. В принципе, можно даже обойтись без Avahi (каким-нибудь скриптом, который будет вещать в сеть имя хоста ака Avahi).

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

ЭТО НЕ РЕШЕНИЕ.

Способ решения я описал (через multicast dns), в современных роутерах это как правило включено ( описывается в рекламках, как совместимость с Apple )

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

Если на клиенте нет смысла ставить avahi/zeroconf, то можно-ли обойтись простым скриптом? Пущай вещает в сеть что хост стаким именем существует, но какие на нём сервисы - не сообщет. Так же тоже можно?

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

ну теоретически, можешь вызывать для windows
«ipconfig /registerdns» регулярно. А ещё проще поставь время выдачи ip адреса поменьше(час к примеру), и клиент регулярно сам будет перезапрашивать/переобновлять (раз в половину отведенного срока).

Atlant ★★★★★
()
Последнее исправление: Atlant (всего исправлений: 1)
Ответ на: Можно поступить ещё более радикально. от zzdnx

А почему тогда вообще не пустить домашнюю сеть в интернет через сервер? Пусть сервер и занимается маршрутами, натированием... Он у меня всё равно на бесперебойнике держится.

Если хочешь независимости от роутера то вполне разумно так и сделать.

выясняется что на дорогую железку нет денег, а то, на что есть, не поддерживает dd-wrt/openwrt и её штатная fw бут-скриптов не знает вообще

Мне приходилось иметь дело с каким то дешёвым dlink, он как раз от рождения умел статические адреса.

Мне нужно, тобы при сбое всю сеть не я поднимал (мне для этого в другой город ехать), а тот, кто ничего в этом не понимает

Если у тебя там всё равно сервер, то подумай действительно о том что бы его использовать.

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

У меня нет ни одной Win-машины. Интересует решение именно для *nix-систем.

Снижать время аренды у DHCP особого смысла нет, если найти способ светить имя хоста по zeroconf. Тут интересно другое - на ряд систем нет смысла ставить avahi, а поскольку mDNS общается через бродкаст - можно обойтись без демона avahi периодически посылая широковещательное сообщение перлом. Все, кому надо, закэшируют его (включая роутер).

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

Куда делся тот старый LOR, на котором умные юзеры давали ТОЛКОВЫЕ советы менее опытным или менее знающим?

Закончились толковые вопросы и толковые, пусть и менее опытные или менее знающие, пользователи.

sdio ★★★★★
()
Ответ на: Я отказываюсь в это верить. от zzdnx

Я не удивлен — ты даже не понял что это о тебе.

В DNS пишет dhcp, значит нужно передернуть (release/renew) dhcp-client. Это решение твоего вопроса со стороны клиента. Остальные (более правильные для dd-wrt) ты проигнорировал.

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

А разве renew не аналог следующего диалога с DHCP-сервером:

«я ухожу, Сними аренду с моего IP, я пришёл, выдай мне новый IP»?

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

В DNS пишет dhcp, значит нужно передернуть (release/renew) dhcp-client

Но ведь хочется еще решить вопрос с назначением имени нового хоста, конфигурируя только клиент. Если я правильно понял ТС. Я сам хочу такую фичу: один раз настраивается dhcp-сервер (с еще каким-нужно-сервисами), потом появляются клиенты, которые получают ip по dhcp, но имя свое задают сами в /etc/hostname, а «dhcp»-сервер подхватывал бы и запоминал соответствие ip-mac-hostname, без ручного в него вмешательства.

Как правильно назвать такой «dhcp» сервер я не знаю; mdns кажется решает такую задачу.

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

Прошу прочитать внимательно вот это сообщение. Тест пройден неудачно. Если клиент с таким сервисом получает новый IP - он начинает пожирать всю RAM и заваливает в 100% CPU. DHCP renew - означает «получить новый адрес» (как при первом подключении к сети).

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

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

mdns решает эту задачу.

Просто для получения mdns нужно ставить avahi, а это не всегда целесообразно. Сейчас я ищу способ сделать нужный бродкаст без демона avahi. Все клиенты (а роутер для mDNS выступает как ещё один клиент) сами закэшируют новый хостнейм.

zzdnx ★★
() автор топика
Ответ на: mdns решает эту задачу. от zzdnx

Все клиенты (а роутер для mDNS выступает как ещё один клиент) сами закэшируют новый хостнейм.

а вот на этот самый роутер требуется ставить avahi, правильно?

Клиенты, на которых не будет стоять ни авахи, ни другой mdns клиент, но в которых прописан роутер в качестве DNS-serveра будут разрешать имена других клиентов?

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

Ты знаешь что такое dhcp reservation? Это в dd-wrt не только выдаст заранее назначенный IP, но и сделает статическую привязку имени в dns. Делается это без напряга и только один раз.

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

Это странно, но файлопомойка прописывается на всех роутрах. Возможно, mDNS стоит на большинстве современных роутреров. Не обязательно avahi, но так или иначе - они всегда видят имя файлопомойки.

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

Он якобы свои тестовые серверы каждые 15 минут создаёт и удаляет, и все разные. Вот и не хочет туда постоянно лазить.

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