Проблема маршрутизации IPv6 dhcpd+radvd

Вопрос или проблема

У меня есть /56 от моего провайдера, который хорошо работает при статической настройке и маршрутизируется через MikroTik, однако я не хочу, чтобы некоторые устройства, такие как телевизоры и Chromecast, получали IPv6-адреса, и, к сожалению, нет возможности отключить это. Я подумал, что решение может быть в виде виртуальной машины, на которой работает dhcpdv6 с radvd, где я мог бы блокировать выбранные MAC-адреса и настраивать маршрутизацию только в radvd. Однако я не могу заставить это работать должным образом.
С следующим конфигом radvd:

interface vlan.30 {
    AdvManagedFlag on;
    AdvSendAdvert on;
    AdvLinkMTU 1480;
    AdvOtherConfigFlag on;
    MinRtrAdvInterval 3;
    MaxRtrAdvInterval 60;

    prefix 2a00:1234:100:b02::/64 {
        AdvOnLink on;
        AdvRouterAddr on;
        AdvAutonomous on;
    };
};

Любое устройство в сети vlan30 получает ipv6-адреса так же, как при включенном ND на Mikrotik. Когда я установил AdvAutonomous в off, я обнаружил, что dhcpdv6 сталкивается с проблемами:

Jan 22 22:03:29 ipv6-dhcpd dhcpd[4848]: Sending Advertise to fe80::f2ef:86ff:fe8b:24ec port 546
Jan 22 22:06:15 ipv6-dhcpd dhcpd[4848]: Solicit message from fe80::22df:b9ff:fe3a:f152 port 546, transaction ID 0xC9B5AA00
Jan 22 22:06:15 ipv6-dhcpd dhcpd[4848]: data: hardware: invalid hlen (181)
Jan 22 22:06:15 ipv6-dhcpd dhcpd[4848]: Picking pool address 2a00:1234:100:b02:e28f:b023:3ea6:751a
Jan 22 22:06:15 ipv6-dhcpd dhcpd[4848]: Advertise NA: address 2a00:1234:100:b02:e28f:b023:3ea6:751a to client with duid 00:03:00:01:20:df:b9:3a:f1:52 iaid = -1187319470 valid for 86400 seconds
Jan 22 22:06:15 ipv6-dhcpd dhcpd[4848]: Sending Advertise to fe80::22df:b9ff:fe3a:f152 port 546
Jan 22 22:06:27 ipv6-dhcpd dhcpd[4848]: Solicit message from fe80::3c6e:d7ff:fefe:8267 port 546, transaction ID 0xE7AF0300
Jan 22 22:06:27 ipv6-dhcpd dhcpd[4848]: data: hardware: invalid hlen (175)
Jan 22 22:06:27 ipv6-dhcpd dhcpd[4848]: Unable to pick client prefix: no IPv6 pools on this shared network
Jan 22 22:06:27 ipv6-dhcpd dhcpd[4848]: Sending Advertise to fe80::3c6e:d7ff:fefe:8267 port 546

и ни одно устройство не может его получить.

Моя текущая dhcpd6.conf:

class "black-hole" {
    match substring (hardware, 1, 6);
    # deny booting;
    ignore booting;
}
subclass "black-hole" 14:AE:85:71:04:66;
subclass "black-hole" 00:11:22:33:44:55;
subclass "black-hole" 14:AE:85:71:05:5D;

allow client-updates;
update-conflict-detection false;
update-optimization false;
authoritative;
default-lease-time 86400;
preferred-lifetime 80000;
allow leasequery;
option dhcp6.name-servers 2a00:1234:100:b01::5;
option dhcp6.preference 255;
option dhcp6.info-refresh-time 21600;

subnet6 2a00:1234:100:b02::/64 {
        range6 2a00:1234:0100:0b02:0000:0000:0000:0010 2a00:1234:0100:0b02:ffff:ffff:ffff:ffff;
}

В идеале я бы хотел, чтобы все клиенты получали IP от dhcpd, и маршрутизировали 2a00:1940:800:b02::1 (Mikrotik) из radvd.

.

Ответ или решение

Заголовок: Проблемы маршрутизации DHCPv6 и RADVD с IPv6: Решение и настройка

ТЕОРИЯ:
IPv6 представляет собой следующий шаг в эволюции интернет-протоколов, обеспечивая гораздо больший адресный диапазон по сравнению с IPv4. Одной из ключевых возможностей IPv6 является автоконфигурация адресов с помощью Neighbor Discovery Protocol (NDP) и DHCPv6. Однако конфигурация и управление адресным пространством IPv6 могут стать проблемой, особенно в средах, где требуется определённая степень контроля над выдачей адресов, как в вашем случае. Вашей задачей является обеспечить, чтобы некоторые устройства не получали IPv6-адреса, используя DHCPv6 и RADVD.

ПРИМЕР:
Рассмотрим ваш текущий сценарий. Вы получили /56 префикс от вашего интернет-провайдера, который правильно настроен и маршрутизируется через MikroTik. Однако, есть устройства (такие как телевизоры и Chromecast), для которых вы хотите предотвратить получение IPv6-адресов. Для этого вы хотите использовать виртуальную машину с работающими на ней DHCPv6 и RADVD. Тем не менее, вы сталкиваетесь с проблемами в настройке, которые препятствуют нормальной работе этих служб.

Ваш RADVD файл конфигурации:

interface vlan.30 {
    AdvManagedFlag on;
    AdvSendAdvert on;
    AdvLinkMTU 1480;
    AdvOtherConfigFlag on;
    MinRtrAdvInterval 3;
    MaxRtrAdvInterval 60;

    prefix 2a00:1234:100:b02::/64 {
        AdvOnLink on;
        AdvRouterAddr on;
        AdvAutonomous on;
    };
};

При включении AdvAutonomous, устройства продолжают получать адреса IPv6 с помощью ND. Отключение AdvAutonomous приводит к проблемам с получением адресов через DHCPv6.

Текущие сообщения об ошибках DHCPv6 демонстрируют проблемы с неполными транзакциями и конфликтами, связанными с аппаратными адресами:

data: hardware: invalid hlen (181)
Unable to pick client prefix: no IPv6 pools on this shared network

Получается, DHCPv6 сервер открывает транзакции, но не может успешно завершить процесс назначения адресов клиентам.

ПРИМЕНЕНИЕ:
Рассмотрим, как можно устранить эти проблемы и эффективнее настроить ваш DHCPv6 сервер и RADVD.

  1. Проблемы с DHCPv6:

    • Убедитесь, что длина аппаратного адреса (hlen) корректно интерпретируется вашим DHCPv6 сервером. Это может потребовать коррекции в конфигурации или обновления программного обеспечения.
    • Убедитесь, что указанные диапазоны IPv6-адресов (range6) в конфиге DHCPd располагаются внутри допустимого для вашего префикса пространства. Потенциально проблема в том, что параметр subnet6 и range6 конфликуют с доступными пул-параметрами.
    • Параметры data: hardware: invalid hlen могут указывать на неправильно сформированные запросы от клиентов. Проверьте настройки ваших сетевых интерфейсов и убедитесь, что все сообщения корректно обрабатываются.
  2. Настройка RADVD:

    • Если вы используете AdvManagedFlag, это указывает устройствам использовать существенно больше информации от DHCP-сервера, и вы можете все же захотеть, чтобы AdvAutonomous остался включённым для устройств, где это необходимо.
    • Исправьте трассировку маршрутов таким образом, чтобы при необходимости маршрутизация основалась на маршрутах, отсылаемых RADVD (например, маршрут по-умолчанию к MikroTik).
  3. Фильтрация по MAC-адресам:

    • Продолжайте использовать класс "black-hole" в DHCPd конфигурации для игнорирования запросов от нежелательных устройств.
    • Проверьте, действуют ли настройки, как задумано (ignore booting), и удостоверьтесь, что этот метод блокирует назначение DHCPv6 адресов для перечисленных MAC-адресов.
  4. Тестирование и диагностика:

    • Используйте инструменты отслеживания сети (например, tcpdump) для мониторинга трафика NDP и DHCPv6, что будет полезно для обнаружения возможных конфликтов адресов и ошибок в общении протоколов.
    • Проверьте логи и внимательно следите за ошибками DHCPv6 и возможными двойными назначениями.

Ваша задача — найти оптимальные настройки, которые локально подойдут для вашего сетевого окружения. Учитывайте специфику каждого устройства, назначение каждой подсети, а также требования безопасности и управления сетью. Эксперименты с параметрами RADVD и DHCPv6 помогут вам в поиске оптимальной конфигурации для надежной сети IPv6.

Оцените материал
Добавить комментарий

Капча загружается...