Вопрос или проблема
Я пытаюсь настроить небольшую сеть дома (пока только для обучения). DHVPv4 с KEA работает нормально, но я немного запутался с настройкой KEA-DHCPv6 (используя ULA для внутреннего тестирования DHCPv6 с состоянием и образовательных целей).
-
Виртуальная машина ‘VM HomeServer’ (Debian 12):
1.1 IP-адрес:enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel состояние UP группа default qlen 1000
link/ether 52:54:00:26:30:9f brd ff:ff:ff:ff:ff:ff
inet 192.168.1.3/24 brd 192.168.1.255 область глобальная enp7s0
срок действия valid_lft навсегда предпочтительный срок действия preferred_lft навсегда
inet 192.168.31.130/24 brd 192.168.31.255 область глобальная динамическая noprefixroute enp7s0
срок действия valid_lft 41268sec предпочтительный срок действия preferred_lft 35868sec
inet6 fd00:0:0:1::3/64 область глобальная
срок действия valid_lft навсегда предпочтительный срок действия preferred_lft навсегда
inet6 fe80::85f4:b665:fd85:3d1e/64 область ссылка
срок действия valid_lft навсегда предпочтительный срок действия preferred_lft навсегда
inet6 fe80::5054:ff:fe26:309f/64 область ссылка
срок действия valid_lft навсегда предпочтительный срок действия preferred_lft навсегда
- Эта ВМ должна действовать как DHCPv6 маршрутизатор с состоянием для частной сети (в частности, для ‘VM Sandbox’). Я использую KEA в качестве приложения DHCPv6.
1.2 Конфигурация KEA DHCPv6:
{
"Dhcp6": {
"interfaces-config": {
"interfaces": [
"enp7s0"
]
},
"lease-database": {
"type": "memfile",
"persist": true,
"name": "/var/lib/kea/kea-leases6.csv"
},
"valid-lifetime": 28800,
"option-data": [
{
"name": "dns-servers",
"data": "2001:4860:4860::8888, 2001:4860:4860::8844"
}
],
"subnet6": [
{
"subnet": "fd00:0000:0000:0001::/64",
"pools": [
{
"pool": "fd00:0000:0000:0001::a - fd00:0000:0000:0001::ffff"
}
]
}
],
"loggers": [
{
"name": "kea-dhcp6",
"severity": "DEBUG",
"output_options": [
{
"output": "/var/log/kea/kea-dhcp6.log",
"maxver": 10
}
]
},
{
"name": "kea-dhcp6.dhcpsrv",
"severity": "DEBUG",
"output_options": [
{
"output": "/var/log/kea/dhcp6-dhcpsrv.log",
"maxver": 10
}
]
},
{
"name": "kea-dhcp6.leases",
"severity": "DEBUG",
"output_options": [
{
"output": "/var/log/kea/dhcp4-leases.log",
"maxver": 10
}
]
}
]
}
}
1.3 RADVD:
interface enp7s0
{
MinRtrAdvInterval 3;
MaxRtrAdvInterval 4;
AdvSendAdvert on;
AdvManagedFlag on;
prefix fd00:0000:0000:0001::/64
{ AdvValidLifetime 14300; AdvPreferredLifetime 14200; AdvAutonomous off; }
;
};
1.4 UFW: активно
1.5 Сетевой адаптер ВМ настроен как мостовой на хосте.
1.6 Статус KEA DHCPv6
1.6.1 Из ‘/var/log/kea/kea-dhcp6.log’
2024-11-24 09:28:11.052 INFO [kea-dhcp6.hosts/946.139846052082176] HOSTS_BACKENDS_REGISTERED следующие типы хостов доступны: mysql postgresql
2024-11-24 09:28:11.054 INFO [kea-dhcp6.dhcp6/946.139846052082176] DHCP6_CONFIG_COMPLETE DHCPv6 сервер завершил настройку: добавлены IPv6 подсети: 1; DDNS: отключено
2024-11-24 09:28:11.057 INFO [kea-dhcp6.dhcp6/946.139846052082176] DHCP6_USING_SERVERID сервер использует server-id 00:01:00:01:2e:66:39:5e:52:54:00:41:2f:9d и хранит его в файле /var/lib/kea/kea-dhcp6-serverid
2024-11-24 09:28:11.058 WARN [kea-dhcp6.dhcp6/946.139846052082176] DHCP6_MULTI_THREADING_INFO включено: нет, количество потоков: 0, размер очереди: 0
2024-11-24 09:28:11.058 INFO [kea-dhcp6.dhcp6/946.139846052082176] DHCP6_STARTED Kea DHCPv6 сервер версии 2.2.0 запущен
1.6.2 Из ‘systemctl status kea-dhcp6-server’
kea-dhcp6-server.service - демон DHCP для IPv6 Kea
Загружен: загружен (/lib/systemd/system/kea-dhcp6-server.service; включено; предустановлено: включено)
Активный: активен (работает) с Вск 2024-11-24 09:28:10 AEDT; 35 мин. назад
Документы: man:kea-dhcp6(8)
Основной PID: 946 (kea-dhcp6)
Задачи: 5 (лимит: 9449)
Память: 11.6M
CPU: 344ms
CGroup: /system.slice/kea-dhcp6-server.service
1.7 Статус RADVD
1.7.1 Из ‘systemctl status radvd.service’:
radvd.service - демон рекламы маршрутизаторов для IPv6
Загружен: загружен (/lib/systemd/system/radvd.service; включено; предустановлено: включено)
Активный: активен (работает) с Вск 2024-11-24 09:45:22 AEDT; 19 мин. назад
Документы: man:radvd(8)
Процесс: 2069 ExecStartPre=/usr/sbin/radvd --logmethod stderr_clean --configtest (код=завершен, статус=0/УСПЕХ)
Процесс: 2070 ExecStart=/usr/sbin/radvd --logmethod stderr_clean (код=завершен, статус=0/УСПЕХ)
Основной PID: 2071 (radvd)
Задачи: 2 (лимит: 9449)
Память: 464.0K
CPU: 327ms
CGroup: /system.slice/radvd.service
1.7.2 Из ‘rdisc6 enp7s0’:
Запрос ff02::2 (ff02::2) на enp7s0...
Предел хопов : 64 ( 0x40)
Конфигурация адреса с состоянием: Да
Конфигурация других с состоянием: Нет
Мобильный домашний агент : Нет
Предпочтение маршрутизатора : среднее
Прокси обнаружения соседей : Нет
Срок службы маршрутизатора : 12 (0x0000000c) секунд
Время до достижения : не указано (0x00000000)
Время повторной передачи : не указано (0x00000000)
Префикс : fd00:0:0:1::/64
На линке : Да
Автономная конфигурация адреса: Нет
Время действия : 14300 (0x000037dc) секунд
Предпочтительное время : 14200 (0x00003778) секунд
Исходный адрес канального уровня: 52:54:00:26:30:9F
от fe80::85f4:b665:fd85:3d1e
Предел хопов : 64 ( 0x40)
Конфигурация адреса с состоянием: Да
Конфигурация других с состоянием: Нет
Мобильный домашний агент : Нет
Предпочтение маршрутизатора : среднее
Прокси обнаружения соседей : Нет
Срок службы маршрутизатора : 12 (0x0000000c) секунд
Время до достижения : не указано (0x00000000)
Время повторной передачи : не указано (0x00000000)
Префикс : fd00:0:0:1::/64
На линке : Да
Автономная конфигурация адреса: Нет
Время действия : 14300 (0x000037dc) секунд
Предпочтительное время : 14200 (0x00003778) секунд
Исходный адрес канального уровня: 52:54:00:26:30:9F
от fe80::85f4:b665:fd85:3d1e
-
Виртуальная машина ‘VM Sandbox’ (Debian 12)
2.1 IP-адрес:enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel состояние UP группа default qlen 1000
link/ether 52:54:00:9b:35:94 brd ff:ff:ff:ff:ff:ff
inet6 fe80::5054:ff:fe9b:3594/64 область ссылка
срок действия valid_lft навсегда предпочтительный срок действия preferred_lft навсегда
2.2 Netplan:
сеть:
етхернеты:
enp1s0:
dhcp4: да
dhcp6: да
необязательный: ложь
версия: 2
рендерер: networkd
2.3 UFW: активно
2.4 Сетевой адаптер ВМ настроен как мостовой на хосте.
2.5 Статус RADVD
2.5.1 Из ‘rdisc6 enp1s0’:
Запрос ff02::2 (ff02::2) на enp1s0...
Предел хопов : 64 ( 0x40)
Конфигурация адреса с состоянием: Да
Конфигурация других с состоянием: Нет
Мобильный домашний агент : Нет
Предпочтение маршрутизатора : среднее
Прокси обнаружения соседей : Нет
Срок службы маршрутизатора : 12 (0x0000000c) секунд
Время до достижения : не указано (0x00000000)
Время повторной передачи : не указано (0x00000000)
Префикс : fd00:0:0:1::/64
На линке : Да
Автономная конфигурация адреса: Нет
Время действия : 14300 (0x000037dc) секунд
Предпочтительное время : 14200 (0x00003778) секунд
Исходный адрес канального уровня: 52:54:00:26:30:9F
от fe80::85f4:b665:fd85:3d1e
Предел хопов : 64 ( 0x40)
Конфигурация адреса с состоянием: Да
Конфигурация других с состоянием: Нет
Мобильный домашний агент : Нет
Предпочтение маршрутизатора : среднее
Прокси обнаружения соседей : Нет
Срок службы маршрутизатора : 12 (0x0000000c) секунд
Время до достижения : не указано (0x00000000)
Время повторной передачи : не указано (0x00000000)
Префикс : fd00:0:0:1::/64
На линке : Да
Автономная конфигурация адреса: Нет
Время действия : 14300 (0x000037dc) секунд
Предпочтительное время : 14200 (0x00003778) секунд
Исходный адрес канального уровня: 52:54:00:26:30:9F
от fe80::85f4:b665:fd85:3d1e
-
Дополнительные наблюдения:
Если я изменяю конфигурацию RADVD на ‘VM HomeServer’, чтобы отключить AdvAutonomous (автономная конфигурация адреса), клиент ‘VM Sandbox’ устанавливает свой IPv6 IP на основе определенного префикса (но очевидно автономно, так что сервер DHCPv6 на ‘VM HomeServer’ не имеет записи в своей базе данных аренды в ‘/var/lib/kea/kea-leases6.csv’). -
Вопросы:
Какую конфигурацию я пропустил, чтобы включить DHCPv6 с состоянием?
Большое спасибо.
С наилучшими пожеланиями,
C.
Ответ или решение
Решение проблемы с получением IPv6-адреса от состояния KEA DHCPv6-сервера
Введение
Ваша проблема заключается в том, что виртуальная машина "VM Sandbox" не получает IPv6-адрес от состояния DHCPv6-сервера, настроенного на "VM HomeServer". Вы предоставили подробные сведения о настройках, конфигурации и состоянии вашего сетевого окружения. Давайте разберемся, что может быть не так и как это исправить.
Анализ текущей конфигурации
-
Проверка конфигурации KEA DHCPv6: Вы правильно указали интерфейс
enp7s0
, на котором работает ваш сервер, и настроили пул IPv6-адресов в диапазонеfd00:0:0:1::a - fd00:0:0:1::ffff
. Ваша конфигурация также включает в себя логирование, что позволяет отслеживать любые ошибки. -
Настройка RADVD: Вы настроили
radvd
, чтобы он рассылал информацию о маршрутизаторах и тот факт, что ваш маршрут объявляет префиксfd00:0:0:1::/64
. Ваши настройки также показывают, чтоAdvManagedFlag
установлен вon
, что правильно, поскольку это указывает на то, что сеть будет использовать состояние DHCPv6 для настройки адресов клиентов. -
Статус системных служб: Службы KEA DHCPv6 и RADVD работают корректно, что подтверждается выводом команд
systemctl status
. -
Проверка интерфейсов на клиенте: VM Sandbox видит ваш маршрутизатор, что подтверждается выводом
rdisc6
, но по какой-то причине не получает адрес от сервера.
Возможные причины проблемы
Судя по вашему описанию, проблема может быть связана с одним из следующих аспектов:
-
Конфигурация UFW (Uncomplicated Firewall): Поскольку UFW активен, возможно, он блокирует важные порты для работы DHCPv6. Убедитесь, что порты 547 (DHCPv6-сервер) и 546 (DHCPv6-клиент) открыты.
-
Конфликт конфигурации: Если
AdvAutonomous
установлен в значениеoff
, это указывает на то, что клиенты должны получать всю информацию из DHCPv6. Если эта настройка включена, клиенты могут в автоматическом режиме запрашивать адреса на основе информации о префиксах, что может обойти ваш DHCPv6-сервер. -
Истечение времени ожидания: Возможно, клиент
VM Sandbox
не успевает получить ответ до истечения времени. Убедитесь, что тайм-ауты и интервал ожидания настроены корректно.
Рекомендации по исправлению проблемы
-
Открытие необходимых портов в UFW:
Убедитесь, что ваш файрволл не блокирует DHCPv6-сообщения:sudo ufw allow in on enp1s0 proto udp to any port 547 sudo ufw allow out on enp1s0 proto udp to any port 546
-
Проверка логов KEA:
Рекомендуется просмотреть логи KEA DHCPv6 (/var/log/kea/kea-dhcp6.log
) на наличие ошибок, связанных с обработкой запросов клиентов. Обратите внимание на записи, указывающие на получение или недоступность запросов отVM Sandbox
. -
Проверка конфигурации RADVD и KEA:
Убедитесь, что RADVD правильно отправляет маршрутизаторские объявления. Вы можете провести дополнительное тестирование с клиентской стороны, используя командуdhclient -6 -d enp1s0
для получения подробной информации о текущем состоянии DHCP-запроса. -
Тестирование без UFW:
Для устранения возможных проблем с файрволом вы можете временно отключить его:sudo ufw disable
После этого попробуйте повторно запросить адрес на клиенте.
Заключение
Главная цель настроенного вами окружения — изучение принципов работы DHCPv6. Тщательный анализ конфигураций и системных логов поможет вам выявить источники проблемы. Проверьте указанные аспекты, и, скорее всего, у вас получится успешно подключить клиент VM Sandbox
к KEA DHCPv6 и получить от него IPv6-адрес. Удачи в вашей учебе и настройках!