Настройка IP с помощью dhcpcd

Вопрос или проблема

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

Я хотел бы использовать один и тот же IP каждый раз для моего устройства. Либо установить его как статический, либо как предпочитаемый.
Это полностью контролируемая среда, так что не должно быть проблем с получением предпочитаемого IP от DHCP.

Обновление: Я не могу ничего изменить на стороне DHCP-сервера, мне нужно найти решение на стороне клиента. Сервер — это ICS и не может быть настроен.

Вопросы

Мой вопрос: возможно ли это с помощью dhcpcd? Могу ли я вообще использовать статический IP с dhcpcd? Или даже предпочитаемый?
Я не могу избежать использования dhcpcd из-за некоторых не связанных требований.

Сделано на данный момент

Что я пробовал до сих пор, это добавить следующие строки в файл /etc/dhcpcd.conf:

interface eth0
        static ip_address=192.168.1.135/24
        static routers=192.168.1.1
        static domain_name_servers=8.8.8.8

Вот что говорят manpages для dhcpcd.conf:

static значение

         Настраивает статическое значение. Если вы установите ip_address, dhcpcd
         не будет пытаться получить аренду и просто использовать значение для
         адреса с бесконечным временем аренды.

         Вот пример, который настраивает статический адрес, маршруты и
         dns.
               interface eth0
               static ip_address=192.168.0.10/24
               static routers=192.168.0.1
               static domain_name_servers=192.168.0.1

Но проблема в том, что даже когда я делаю это таким образом, я вижу свое устройство с этим IP только в течение короткого времени,
после чего он, кажется, теряется и заменяется другим IP, скорее всего назначенным через DHCP (наверное, следующим в пуле).

Вот полное содержание моего файла dhcpcd.conf:

# Информирует DHCP-сервер о нашем имени хоста для DDNS.
hostname

# Используйте тот же DUID + IAID, что и в DHCPv6 для DHCPv4 ClientID согласно RFC4361.
duid

# Сохранять конфигурацию интерфейса при выходе из dhcpcd.
persistent

# Поддержка быстрого ответа.
# Безопасно включать по умолчанию, так как требует настройки эквивалентного выбора
# на сервере, чтобы действительно работать.
option rapid_commit

# Список опций для запроса на DHCP-сервер.
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
# Большинство дистрибутивов имеют поддержку NTP.
option ntp_servers

# ServerID требуется по RFC2131.
require dhcp_server_identifier

# Предоставлен скрипт-запуск, который ищет имя хоста, если не установлено DHCP
# сервером, но по умолчанию он не должен быть запущен.
nohook lookup-hostname
noipv4ll

interface eth0
        static ip_address=192.168.1.135/24
        static routers=192.168.1.1
        static domain_name_servers=8.8.8.8

Мне нужно добавить больше опций, чтобы сообщить DHCP, что мне не нужен новый IP-адрес или что-то еще?
Или я полностью неправильно понял тему?

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

Любая помощь приветствуется!

вам нужно сделать резервирование по MAC-адресу, вот так:

host vnbandk3920.dsdk12.schoollocal {
   hardware ethernet 00:c0:ee:7d:bc:80;
   fixed-address 172.30.176.243;
}

Если вы используете dhcpcd (демон клиента, большинство людей здесь путают его с DHCP и DHCPd, которые отличаются), то добавьте следующий текст в конец /etc/dhcpcd.conf

static
interface eth0
static ip_address=192.168.1.135/24
static routers=192.168.1.1
static domain_name_servers=8.8.8.8

Конечно, не забудьте заменить информацию об IP на данные вашей сети.

Вопрос был:

Могу ли я вообще использовать статический IP с dhcpcd? Или даже предпочитаемый? Я не могу избежать использования dhcpcd из-за некоторых не связанных требований.

Да, вы можете. Вы выразили желание в своём вопросе: “Я хотел бы использовать один и тот же IP каждый раз для моего устройства. Либо установить его как статический, либо как предпочитаемый.”

Установка предпочитаемого IP адреса в dhcpcd очень проста: в /etc/dhcpcd.conf добавьте эту единственную строку:

# вместо статического IP:
interface wlan0
request 192.168.1.135/24

Запрос лучше чем назначение статического IP, поскольку ваш DHCP-сервер остаётся вовлечённым и выполняет работу, на которую был “нанят”. Обратите внимание, что это не гарантирует, что вы получите запрошенный IP-адрес, но вы получите его, если он доступен.

Поскольку у вас нет доступа администратора к DHCP-серверу/маршрутизатору, вы можете использовать адрес, который DHCP назначает вашей системе изначально; например, допустим, что 192.168.1.178 был назначен изначально. Это вероятно означает, что администратор сервера настроил DHCP-сервер так, чтобы 192.168.1.178 был в “пуле” динамических адресов хостов. Но если вы “примете” этот IP-адрес, вы можете добавить строку request 192.168.1.178/24 в свой файл dhcpcd.conf и, возможно, иметь его столько, сколько вам нужно. DHCP-серверы всегда предпочитают назначать тот же IP-адрес хосту, но запрос позволяет выразить предпочтение к этому адресу серверу.

Вы пытаетесь использовать статический адрес, который попадает в пул адресов маршрутизатора? Если да, нет уверенности, что маршрутизатор будет делать. Проверьте пулы адресов маршрутизатора в интерфейсе, и выберите адрес вне пула.

Вы можете проверить, сталкиваетесь ли вы всё ещё с такими явлениями, просто остановив сетевой менеджер (я предполагаю, что вы его используете), задавая себе адрес,

  ip link set dev eth0 down
  ip addr flush dev eth0
  ip addr add 192.168.1.whatever/24 dev eth0
  ip link set dev eth0 up
  ip route add default via 192.168.1.1

без использования dhcpcd. Это имеет преимущество изолирования проблемы: если она возникает снова, то это вина вашего маршрутизатора, в противном случае это был некорректный выбор статического IP-адреса.

Ответ или решение

Для того чтобы ответить на ваш вопрос о возможности использования статического IP с помощью dhcpcd и выбрать предпочитаемый IP-адрес для устройства в домашней сети, необходимо понять некоторые теоретические и практические аспекты работы DHCP и конфигурации клиента dhcpcd.

Теория

dhcpcd — это демон клиента DHCP, который, как правило, используется для автоматического получения IP-адресов от DHCP-сервера. Однако, он также поддерживает возможность установки статических настроек IP на уровне клиента. Это полезно в контексте вашей задачи, когда доступ к настройкам DHCP-сервера отсутствует. При статической настройке IP-адреса с помощью dhcpcd, клиент предоставляет эти настройки из файла конфигурации dhcpcd.conf, вместо того чтобы получать их от сервера.

Пример

Предположим, что вы хотите, чтобы ваше устройство всегда имело IP-адрес 192.168.1.135. Для этого можно использовать static или, как более гибкий вариант, request, чтобы сохранить участие DHCP-сервера в управлении сетью. В конфигурационном файле /etc/dhcpcd.conf вы можете указать:

interface eth0
static ip_address=192.168.1.135/24
static routers=192.168.1.1
static domain_name_servers=8.8.8.8

# Или, предпочтительно:
interface eth0
request 192.168.1.135/24

Команда request позволяет запросить предпочтительный IP-адрес. Хотя она не гарантирует его назначение, это увеличивает вероятность сохранения вашего выбора.

Применение

  1. Убедитесь в корректности сети: Прежде чем использовать статический адрес, проверьте, что адрес 192.168.1.135 находится вне пула динамических адресов вашего маршрутизатора, чтобы избежать конфликтов. Зачастую статические IP должны назначаться за пределами динамического пула, выделенного DHCP-сервером.

  2. Проверьте конфигурацию вручную: Вы можете временно настраивать интерфейс вручную, чтобы исключить влияние dhcpcd и убедиться, что проблема не в маршрутизаторе. Используйте такие команды:

    ip link set dev eth0 down
    ip addr flush dev eth0
    ip addr add 192.168.1.135/24 dev eth0
    ip link set dev eth0 up
    ip route add default via 192.168.1.1

Если это работает, причина проблемы может заключаться в подаче неверной конфигурации dhcpcd или в конфликте IP-адресов в сети.

В общем, с учетом вышеизложенных рекомендаций и подходов, вы сможете добиться стабильной настройки IP на вашем устройстве с помощью dhcpcd.

Оцените материал
Добавить комментарий

Капча загружается...