Я работаю в системе Linux с "классической" настройкой сети, то есть нет полнофункционального демона конфигурации, работающего как NetworkManager. Большая часть настроек выполняется dhclient.
Мне нужно обнаружить ситуации, когда мне нужно повторно запустить dhclient. (другая подсеть из-за изменений конфигурации кабеля или сети). Я хочу запускать проверку каждые 10 минут, не прерывая существующие соединения.
Что мне в основном нужно, так это ответ на такие вопросы, как мой IP-адрес и шлюз действительны для сети, к которой я подключен? или если я продлю аренду DHCP, получу ли я тот же IP снова? , Чтобы ответить на первый вопрос, можно просто пропинговать какой-нибудь общедоступный IP-адрес, такой как 8.8.8.8, но мне нужно решение, которое также работает в больших частных сетях, о которых я не знаю. Даже шлюз по умолчанию не всегда может быть проверен.
Один, я знал, что мой IP-адрес недействителен, я бы сделал "dhclient -r eth0; dhclient eth0", чтобы продлить аренду. Тем не менее, это отключает меня от Интернета на короткое время, если я уже подключен правильно.
Я обнаружил, что dhcping - это хороший инструмент для запроса DHCP-сервера без фактического использования результата. Тем не менее, я получаю странные результаты, которые могут даже претендовать на другой вопрос. Кажется, что dhcping работает хорошо, только если я знаю ip серверов заранее, поэтому для DHCP DISCOVER отсутствует инструмент. (а использование адресов вещательного сервера ненадежно)
Я знаю, что могу сделать hdcp обнаружить с помощью nmap, однако установка nmap не является хорошей идеей по соображениям безопасности.
Вопросы, которые я хотел бы задать:
- Есть ли способ проверить мой настроенный IP-адрес в контексте подключенной сети?
- Есть ли шанс возобновить аренду клиента по требованию?
- Существуют ли инструменты, позволяющие dhcp обнаружить трансляцию и распечатать результат?
Приложение:
В отличие от результатов моего первого теста, просто вызов dhclient -v не решает мою проблему. Чтобы прояснить это, моей первоначальной проблемой является запуск dhclient в фоновом режиме (без фактического продления аренды постоянно). Вызов dhclient приводит к:
dhclient(30887) уже запущен - завершается.
Это не полностью воспроизводимо, хотя. Иногда это удается. (Вот почему я сначала подумал, что опция -v будет иметь значение, это не так)
Итак, мой вопрос: если я получаю эту уже запущенную проблему, хотя dclient в настоящее время ничего не делает, как запустить обновление для фонового процесса?
(Обоснование этого заключается в том, что клиент DHCP должен привязаться к порту 68. Когда этот порт связан с фоновым демоном dhclient, другой экземпляр не может быть выполнен на переднем плане)