isc-dhcpd-server - правильная настройка подсети и маски сети, но назначенные IP и маска сети (ifconfig) различны

366
rbaleksandar

Мой коллега в настоящее время пытается решить проблему с машиной Raspberry Pi 3 (последняя версия Rasbian). В isc-dhcpd-serverпробегах без каких - либо проблем на другую подобную установку. Внутри /etc/dhcp/dhcpd.confобеих систем можно найти один и тот же контент, включая subnetконфигурацию, в которой четко указано, что netmaskследует использовать 192.168.100.x с 255.255.255.0:

# example.org domain and domain name servers configuration # ... ddns-update style none;  option subnet-mask 255.255.255.0; option broadcast-address 192.168.100.255; option domain-name "project.test";  subnet 192.168.100.0 netmask 255.255.255.0 { range 192.168.100.2 192.168.100.253; } 

По какой-то причине dhcp-сервер автоматически назначает IP-адрес из совершенно другой сети (обратите внимание, что Raspberry Pi не подключен ни к какому маршрутизатору и т. Д., А среда не имеет подключения к другим устройствам или Интернету:

root@rpi:~$ ifconfig eth0 169.254.221.127 netmask 255.255.0.0 broadcast 169.254.255.255 lo ... 

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

Рекурсивный поиск внутри /etc

grep -rnw * -e "169.254.*" 

вернул (на обеих машинах) два совпадения - одно в gai.conf и одно в сети . Gai.conf что - то я никогда не слышал. Что касается сетей - это link-localнастройка, и, как кажется, это значение по умолчанию во многих системах (включая мои собственные виртуальные машины, на которых работает Xubuntu 16.04).

0
адрес, который вы видите, не был предоставлен DHCP. это резерв, который хост назначает себе (хосты в той же локальной сети могут обмениваться данными через них, попробуйте выполнить команду ping с другого). если вы получили это, это означает, что ваша установка dhcp по какой-то причине не работает. проверьте логи и или используйте tcpdump, чтобы увидеть, что происходит) Raouf M. Bencheraiet 6 лет назад 0

1 ответ на вопрос

1
grawity

Этот адрес не назначен DHCP. 169.254.0.0/16Диапазон для «Zeroconf» адрес - ссылка локального адреса определен самой системой, наиболее часто используется в качестве запасного варианта, когда DHCP недоступен. Если вы видите этот адрес, но не обычный адрес, это может означать несколько вещей:

  • Ваш DHCP-клиент не смог получить аренду и сдался.

  • Или ваш сетевой профиль на самом деле настроен на «только локальный» (в NetworkManager или подобном).

Как всегда, если ваш клиент DHCP и сервер не делать то, что они должны выяснить, что они будут делать - проверить системные журналы, использовать инструмент захвата пакетов (Wireshark / TCPDUMP), и так далее.

  1. Работает ли демон dhcpd?
  2. Какой DHCP-клиент использует rpi? Это работает? Можете ли вы запустить его в режиме подробного или отладочного?
  3. Отправляет ли клиент DHCPDISCOVER и отвечает ли сервер DHCPOFFER?
  4. Отправляет ли клиент DHCPREQUEST и отвечает ли сервер DHCPACK?

/etc/networksФайл не имеет значения. Его единственное назначение (аналогично / etc / hosts) - назначить отображаемые имена префиксам сети, например, при запуске routeкоманды. Точно так же /etc/gai.confсодержит только приоритеты для сортировки результатов поиска DNS - ничего общего с DHCP.

@rbaleksandar: Хотя Гравити сказал, что это технически правильно («отступление»), позвольте мне объяснить, возможно, более четко. Обычный способ работы состоит в том, что, когда клиент DHCP пытается получить информацию от клиента DHCP и терпит неудачу, тогда он использует диапазон адресов «link local», который начинается с 169.254. Чрезвычайно распространенные причины могут быть связаны с проблемой с сервером DHCP (отметьте пункт 1 в ответе grawity) или просто с другой сетевой проблемой, которая препятствует тому, чтобы трафик DHCP происходил так, как вы, вероятно, думаете. TOOGAM 6 лет назад 0
Хорошо, немного перечитав материал, я понял, что «rpi» во втором пункте ответа @ grawity относится к «Raspberry Pi 3», упомянутому в вопросе. TOOGAM 6 лет назад 0
Обратите внимание, что адреса zeroconf идеально подходят для использования, особенно в изолированной сети, такой как сеть OP. Использование адресов zeroconf избавляет вас от необходимости настройки DHCP-сервера и настройки клиентов для его использования. Johan Myréen 6 лет назад 0