Назад | Перейти на главную страницу

Настройка DHCPv6 с отслеживанием состояния в Linux

Я хочу настроить DHCP-сервер в моей локальной сети для IPv6, который выдает адреса и дополнительную информацию, такую ​​как DNS / NTP и так далее. От своего интернет-провайдера я получил префикс IPv6, который я буду называть <префикс> в следующих фрагментах.

Использую isc-dhcp-server. В /etc/dhcpd.conf у меня есть

option dhcp6.name-servers <prefix>::2;
option dhcp6.info-refresh-time 21600;

subnet6 <prefix>::/64 {
    range6 <prefix>::1 2<prefix>::ffff:ffff;
}

Интерфейс eth0 (который подключен к маршрутизатору) настраивается статически в файле / etc / network / interfaces:

iface eth0 inet6 static
address <prefix>::2
netmask 64

Клиент имеет Ubuntu 14.04 LTS с сетевым менеджером и привязан к маршрутизатору через интерфейс wlan0 (маршрутизатор действует как точка доступа). В конфигурации графического интерфейса сетевого менеджера Ubuntu на вкладке IPv6 я выбираю «Метод: автоматически, только DHCP» (поэтому я ожидаю, что DHCPv6-конфигурация клиента с сохранением состояния - он должен получить IPv6-адрес из указанного выше диапазона).

Однако этого не происходит. ifconfig подразумевает, что клиент был настроен с использованием метода без сохранения состояния (настроенный адрес ipv6 имеет закодированный HW-адрес клиента wlan0)

Я подозреваю, что на маршрутизаторах установлены неправильные рекламные флаги. Но я не могу настроить роутер, так как он предоставляется провайдером. Что я могу сделать? Есть предложения?

Вкратце: я думаю, что DHCP-сервер прослушивает неправильный интерфейс.

Длинный ответ: Предположим, вы получили префикс 2001: DB8: 1234 :: / 48 от своего интернет-провайдера. Кроме того, мы предполагаем, что ваш маршрутизатор имеет два сетевых интерфейса: eth0 (восходящее соединение с провайдером) и wlan0 (для клиентов). Если вы сейчас настроите свой DHCPv6-сервер, выполните следующие действия:

subnet6 2001:DB8:1234::/64 {
    range6 2001:DB8:1234::10 2001:DB8:1234::ffff:ffff;
}

затем после запуска DHCP-сервера он будет искать интерфейсы на сервере, который настроен в диапазоне 2001: DB8: 1234 :: / 64, и прослушивает эти интерфейсы на предмет запросов DHCP.

Это означает, что необходимо настроить серверные интерфейсы.

  • eth0 с IP не в 2001: диапазон DB8: 1234 :: / 64 (например, 2001: DB8: 1234: 1 :: 2/64)
  • wlan0 с IP в 2001: диапазон DB8: 1234 :: / 64 (например, 2001: DB8: 1234 :: 2/64)

Кроме того, вы должны запустить сервер с некоторыми результатами отладки, чтобы проверить, поступают ли запросы от клиента. Для ISC dhcpd вы можете использовать параметры "-d -f", например

/usr/sbin/dhcpd -6 -cf /etc/dhcp/dhcpd.conf -pf /var/run/dhcpd.pid -f -d