Настройка DHCPv6 с контролем состояния в Linux
Я хочу настроить DHCP-сервер в своей локальной сети для IPv6, который выдает адреса и дополнительную информацию, такую как DNS/NTP и так далее. От моего провайдера я получил префикс IPv6, который я буду называть <префиксом> в следующих фрагментах.
Я использую isc-dhcp-сервер. В /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/networking/interfaces:
iface eth0 inet6 static
address <prefix>::2
netmask 64
Клиент имеет Ubuntu 14.04 LTS с сетевым менеджером и связан с маршрутизатором через интерфейс wlan0 (маршрутизатор действует как точка доступа). В конфигурации GUI сетевого менеджера Ubuntu на вкладке IPv6 я выбираю "Метод: автоматически, только DHCP" (поэтому я ожидаю конфигурации клиента DHCPv6 с сохранением состояния - он должен получить ipv6-адрес из указанного выше диапазона).
Однако этого не происходит. ifconfig подразумевает, что клиент был сконфигурирован с использованием метода без сохранения состояния (настроенный адрес ipv6 имеет кодированный клиент Wlan0 HW-Address)
Я подозреваю, что на маршрутизаторах установлены неправильные рекламные флаги. Но я не могу настроить маршрутизатор, так как он предоставляется провайдером. Что я могу сделать? Есть какие-нибудь предложения?
1 ответ
Короче говоря: я думаю, что сервер DHCP слушает не на тот интерфейс.
Длинный ответ: Предположим, вы получили префикс 2001:DB8:1234::/48 от вашего провайдера. Кроме того, мы предполагаем, что ваш маршрутизатор имеет два сетевых интерфейса: eth0 (восходящая связь с ISP) и 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