Допустим, у вас есть два DHCP-сервера, A и B.
Сервер A имеет два IP-адреса: 10.0.0.1 и 10.0.0.2. Сервер B имеет один IP-адрес 10.0.0.3.
Сервер A имеет два запущенных экземпляра isc-dhcp, один из которых указывает локальный адрес 10.0.0.1, а другой - локальный адрес 10.0.0.2.
На сервере B работает один экземпляр isc-dhcp с локальным адресом 10.0.0.3.
Если у вас есть другая подсеть, отдельная от серверов DHCP, 192.168.0.0/24. Пул этой подсети размещен в экземпляре isc-dhcp на сервере A с IP-адресом 10.0.0.1. Эта подсеть находится за устройством cisco с заявлением "ip helper-address 10.0.0.1". Имеются маршруты для достижения этой подсети.
Если устройство подключено к коммутатору / маршрутизатору с помощью оператора ip helper и подсети 192.168.0.0/24, как оба экземпляра на сервере A получают обнаружение, а сервер B - нет? И 10.0.0.1, и 10.0.0.2 на сервере A находятся на одном интерфейсе.
Чего я не понимаю, так это того, почему интерфейс делится обнаружениями с обоими IP-адресами, если это действительно так. Если он разделяет его, почему isc-dhcp не видит, для какого IP-адреса предназначены пакеты, а не предполагает, потому что он попадает на IP-адрес, который он прослушивает, тогда он должен быть для него.
Мои догадки:
Переписал весь вопрос, чтобы, надеюсь, прояснить ситуацию. Надеюсь, я не сделал хуже ..
Типичная транзакция DHCP состоит из 4 шагов (википедия)
Маршрутизатор с оператором "ip helper-address 10.0.0.1" преобразует обнаружить трансляция dhcp-клиента в одноадресную рассылку по направлению к 10.0.0.1.
10.0.0.1 отправит предложение в качестве одноадресной передачи обратно на ip-helper-router, который преобразует его в широковещательную рассылку.
Клиент может получать dhcp-предложения от нескольких dhcp-серверов, но отправит только один запрос (в основном серверу с первым предложением). Если все идет хорошо, сервер завершает подтверждать.