Radvd что это в роутере

17.02.2023

Что такое RADVD? Это программный продукт с открытым исходным кодом, который реализует рассылку объявлений адресов маршрутизатора IPv6 и префиксов маршрутизации IPv6 с использованием протокола Neighbor Discovery Protocol (NDP) в соответствии с RFC-2461. Эта работающая на маршрутизаторах программа обеспечивает конфигурирование адресов IPv6 на хостах без проверки состояния (stateless). Этот демон периодически рассылает сообщения типа Router Advertisement (RA), а также слушает запросы маршрутизаторов от других узлов типа Router Solicitations (RS), на которые отвечает сообщениями Router Advertisement.

Говоря простым языком, именно RADVD отвечает за всю магию IPv6. Именно благодаря этой программе вы сможете превратить свой компьютер или другое устройство в маршрутизатор для сети IPv6. При этом все устройства из этой сети смогут автоматически настроить сетевые адаптеры и получить полноценный доступ в другие сети, в том числе интернет, по протоколу IPv6.

Текст заметки основан man radvd.conf. По большей части — это перевод.

Основным файлом конфигурации является radvd.conf, который обычно расположен в папке /etc. Он должен содержать секции interface с указанием имени интерфейса:

interface name {
    список опций, специфичных для interface
    список анонсируемых префиксов - prefix
    список клиентов (IPv6 адресов) на которые распространяются анонсы - clients
    список анонсируемых маршрутов - route
    список анонсируемых адресов рекурсивных DNS - RDNSS
    список анонсируемых DNS суффиксов - DNSSL
    список анонсируемых пограничных маршрутизаторов - abro
    список IP адресов, от имени которых могут рассылаться анонсы - AdvRASrcAddress
};

Все элементы конфигурации должны завершаться символом точка с запятой.

Анонсируемый префикс задаётся в виде:

prefix префикс/длина {
    список опций
};

Префикс может быть префиксом сети или адресом интерфейса. Адрес интерфейса следует использовать при использовании Mobile IPv6 extensions.

Префикс ::/64 поддерживается в системах, которые имеют системный вызов getifaddrs(). На других системах использование этого префикса вызовет сбой или выход из RADVD. В случае указания этого значения RADVD выбирает все не link-local префиксы, назначенные интерфейсу, и начинает их анонсировать. Это может применяться в сценариях, не являющимися 6to4, где префикс может измениться выше по пути.

Эта опция несовместима с опцией Base6to4Interface. Опция AdvRouterAddr будет всегда включена при использовании этого префикса.

Описание опций этого раздела описаны ниже по тексту. Все опции должны заканчиваться символом точка с запятой.

Десятичные значения разрешены для MinDelayBetweenRAs, MaxRtrAdvInterval и MinRtrAdvInterval. Эти параметры должны использоваться только при использовании Mobile IPv6 extensions.

Анонсируемые маршруты задаются в виде:

route prefix/length {
    список опций
};

Префикс должен указывать на сетевой префикс. Он будет использован для анонса маршрутов, которые будут использовать узлы.

Анонсируемые адреса рекурсивных DSN (Recursive DNS server) задаются в виде:

RDNSS ip [ip] [ip] {
    список опций
};

Список анонсируемых DNS суффиксов (DNS Search List) задаётся в виде:

DNSSL суффикс [суффикс] [суффикс] […] {
список опций
};

По умолчанию, RADVD рассылает анонсы с помощью группового адреса. При этом каждый узел на канале может их использовать. Вместо этого, можно использовать список клиентов, т.е. адресов IPv6. При этом RADVD начинает рассылать анонсы не на групповые адреса, а только на те, что указаны. Кроме этого, запросы маршрутизаторов также будут отклоняться от адресов, не указанных в списке. Это очень похоже на одноадресную передачу, но при этом производится периодическая рассылка анонсов клиентам по этому списку. Пример использования этой опции приведён ниже.

Список адресов клиентов имеет вид:

clients {
    список IPv6 адресов
};

По умолчанию RADVD использует первый доступный адрес link-local для интерфейса в качестве адреса источника для анонсов. Это можно изменить путём установки списка разрешённых адресов источника, т.е. RADVD будет использовать первый адрес, доступный на интерфейсе, который присутствует в списке разрешённых. Эта опция не может быть использована для подделки адреса источника, но может быть полезна в сочетании, например, с VRRP или другими функциями. Формат списка имеет вид:

AdvRASrcAddress {
    список IPv6 адресов
};

Анонсировать адрес маршрутизатора можно с помощью опции ABRO (Authoritative Border Router Option), которая имеет вид:

abro IPv6-адрес {
список опций
};

Опции interface

Флаг, указывающий, игнорируется ли интерфейс, если он не существует при запуске.

Этот флаг полезен для интерфейсов, которые не являются активными, когда RADVD запускается или которые могут быть отключен или включены во время работы RADVD.

Текущие версии RADVD автоматически пытаются повторно использовать интерфейсы.

Включение этой опции также отключает предупреждения в журнале событий, которые связанны с отсутствующим интерфейсом.

Значение по умолчанию: on

Флаг указывает необходимо ли периодически отправлять анонсы маршрутизатора и отвечает на запросы поиска маршрутизатора.

Эта опция больше не должна быть указана первой, но её необходимо установить в on, чтобы включить рассылку анонсов через этот интерфейс.

Значение по умолчанию: off

Указывает, что интерфейс поддерживает только одноадресную рассылку. Эта опция предотвратит отправку анонсов всем узлам на канале и приведёт к тому, что будут использована одноадресная передача. Этот вариант необходим для не broadcast и сетей с множественным доступом, таких как ISATAP.

Значение по умолчанию: off

AdvRASolicitedUnicast on|off

Указывает на то, что маршрутизаторы будут отвечать на запросы маршрутизатора одноадресной рассылкой в соответствии с рекомендациями RFC 7772. Крупные сети с большим количеством мобильных устройств могут вызывать повышенный заряд батареи, если ответы на запросы маршрутизатора передаются групповой рассылкой.

Опция аналогична опции Cisco IOS ipv6 nd ra solicited unicast

Значение по умолчанию: on

MaxRtrAdvInterval seconds

Максимальное время между не запрошенными групповыми рассылками объявлений маршрутизатора, задаётся в секундах.

Должно быть не менее 4 и не больше 1800 секунд.

Минимум при использовании Mobile IPv6 extensions: 0,07.

Для значений менее 0,2 секунды добавляется 0,02 секунды, как указано в RFC 3775.

Значение по умолчанию: 600 seconds

MinRtrAdvInterval seconds

Минимальное время между не запрошенными групповыми рассылками объявлений маршрутизатора, задаётся в секундах.

Должно быть не менее 3 секунд и не больше 0,75 * MaxRtrAdvInterval.

Минимум при использовании Mobile IPv6 extensions: 0.03.

Значение по умолчанию: 0.33 * MaxRtrAdvInterval

MinDelayBetweenRAs seconds

Минимальное время между запрошенными групповыми рассылками объявлений маршрутизатора, задаётся в секундах.

Это относится к запрошенной групповой рассылке RA. Определяется как постоянная протокола MIN_DELAY_BETWEEN_RAS в RFC 4861. MIPV6 переопределяет этот параметр, чтобы он был минимум 0,03 секунды.

Минимум при использовании Mobile IPv6 extensions: 0.03.

Значение по умолчанию: 3

Если установлен в on, то хосты будут использовать протокол администрированного (Stateful) получения адреса в дополнение к любым адресам полученным с использованием автоконфигурации адреса методом Stateless. Использование этого флага описано в RFC 4862.

Значение по умолчанию: off

AdvOtherConfigFlag on|off

Если установлен в on, то хосты будут использовать протокол административного назначения (Stateful) для получения другой (неадресной) информации. Использование этого флага описано в RFC 4862.

Значение по умолчанию: off

Значение параметра MTU, которое передаётся в анонсах маршрутизатора. Гарантирует, что все узлы на канале используют одно и то же значение MTU в тех случаях, когда MTU канала неизвестен.

Если указано, то есть не равно 0, значение должно быть не меньше 1280 и не больше максимального MTU, разрешенного для этого канала (например, для Ethernet максимальное значение MTU равно 1500. См. RFC 894).

Значение по умолчанию: 0

AdvReachableTime milliseconds

Время в миллисекундах, в течение которого узел предполагает, что соседний узел достижим после получения подтверждения о достижимости. Используется алгоритмом обнаружения недоступности соседей (см. раздел 7.3 RFC 4861). 0 означает, что значение не указано (данным маршрутизатором).

Не должно быть больше чем 3 600 000 миллисекунд (1 час).

Значение по умолчанию: 0

AdvRetransTimer milliseconds

Время в миллисекундах между повторно переданными сообщениями Neighbor Solicitation. Используется при разрешении адресов и алгоритме обнаружения недоступности соседей (см. разделы 7.2 и 7.3 RFC 4861). 0 означает, что значение не указано (данным маршрутизатором).

Значение по умолчанию: 0

Значение по умолчанию, которое должно быть помещено в поле Hop Count IP-заголовка для исходящих (одноадресных) IP-пакетов. Значение должно быть установлено в соответствии с текущим размером путей в Интернете. 0 означает, что значение не указано (данным маршрутизатором).

Значение по умолчанию: 64

AdvDefaultLifetime seconds

Время жизни, в течении которого маршрутизатор является маршрутизатором по умолчанию, в секундах. Максимальное значение — 18,2 часа. При указании значения 0 маршрутизатор сообщает, что не является маршрутизатором по умолчанию и не должен отображаться в списке маршрутизаторов по умолчанию. Время жизни относится только к возможности маршрутизатора работать в качестве маршрутизатора по умолчанию; это не относится к информации, содержащейся в других полях или параметрах сообщения. Опции, для которых требуются временные ограничения для их информации, включают свои собственные поля времени жизни.

Должно быть либо 0, либо между MaxRtrAdvInterval и 9000 секунд.

Значение по умолчанию: 3 * MaxRtrAdvInterval (минимально 1 секунда).

AdvDefaultPreference low|medium|high

Уровень предпочтения данного маршрутизатора в качестве маршрутизатора по умолчанию: «низкий» (low), «средний» (medium) или «высокий» (high).

Значение по умолчанию: medium

AdvSourceLLAddress on|off

Если установлено, адрес канального уровня исходящего интерфейса включается в RA.

Значение по умолчанию: on

Если установлено, указывает, что отправляющий маршрутизатор может работать в качестве домашнего агента Mobile IPv6. Если установлено, минимальные ограничения, указанные Mobile IPv6, используются для MinRtrAdvInterval и MaxRtrAdvInterval.

Значение по умолчанию: off

Если установлено, параметр информации о домашнем агенте (указанный Mobile IPv6) включается в объявления маршрутизатора. AdvHomeAgentFlag также должен быть установлен при использовании этой опции.

Значение по умолчанию: off

HomeAgentLifetime seconds

Время в секундах (относительно времени отправки пакета), в течение которого маршрутизатор предлагает услуги домашнего агента Mobile IPv6. Значение 0 использовать нельзя. Максимальный срок службы составляет 65520 секунд (18,2 часа). Этот параметр игнорируется, если не установлен AdvHomeAgentInfo.

Если для параметров HomeAgentLifetime и HomeAgentPreference заданы значения по умолчанию, опция информации о домашнем агенте не будет отправлена.

Значение по умолчанию: AdvDefaultLifetime

HomeAgentPreference integer

Предпочтение домашнего агента, отправляющего это объявление маршрутизатора. Значения больше 0 указывают на более предпочтительный домашний агент, значения меньше 0 указывают на менее предпочтительный домашний агент. Этот параметр игнорируется, если не установлен AdvHomeAgentInfo.

Если для параметров HomeAgentLifetime и HomeAgentPreference заданы значения по умолчанию, опция информации о домашнем агенте не будет отправлена.

Значение по умолчанию: 0

AdvMobRtrSupportFlag on|off

Если установлено, домашний агент сообщает, что он поддерживает регистрацию мобильного маршрутизатора (указывается NEMO Basic). AdvHomeAgentInfo также должен быть установлен при использовании этой опции.

Значение по умолчанию: off

Если установлено, параметр интервала объявления (определяемый Mobile IPv6) включается в объявления маршрутизатора. Если установлено, минимальные ограничения, указанные Mobile IPv6, используются для MinRtrAdvInterval и MaxRtrAdvInterval.

Интервал объявления основан на настроенном параметре MaxRtrAdvInterval, за исключением случаев, когда он меньше 200 мс. В этом случае объявленный интервал равен (MaxRtrAdvInterval + 20 мс).

Значение по умолчанию: off

Опции prefix

Значение on указывает, что этот префикс может быть маршрутизирован. Если указано off, то адреса из этого диапазона могут быть недоступны с этого интерфейса.

Значение по умолчанию: on

Когда установлено, указывает, что этот префикс можно использовать для автоматической настройки адреса (SLAAC), в соответствии с RFC 4862.

Значение по умолчанию: on

Если установлено, указывает, что вместо префикса сети отправляется адрес интерфейса, как того требует Mobile IPv6. Если установлено, минимальные ограничения, указанные Mobile IPv6, используются для MinRtrAdvInterval и MaxRtrAdvInterval.

Значение по умолчанию: off

AdvValidLifetime seconds|infinity

Продолжительность времени в секундах (относительно времени отправки пакета), в течение которого префикс действителен для целей определения по ссылке. Значение 0xffffffff означает бесконечность (т.е. все биты установлены в 1). Допустимое время жизни также используется в RFC 4862.

Обратите внимание, что клиенты будут игнорировать AdvValidLifetime существующего префикса, если время жизни меньше двух часов, как требуется в RFC 4862, раздел 5.5.3, пункт e).

Примечание: рекомендуемое значение по умолчанию согласно RFC 4861 значительно больше: 30 дней.

Значение по умолчанию: 86400 секунд (1 день)

AdvPreferredLifetime seconds|infinity

Продолжительность времени в секундах (относительно времени отправки пакета), в течение которого адреса, сгенерированные из префикса с помощью автоматической настройки адресов без сохранения состояния, остаются предпочтительными. Значение 0xffffffff означает бесконечность (т.е. все биты установлены в 1). Подробности в RFC 4862.

Примечание: рекомендуемое значение по умолчанию согласно RFC 4861 значительно больше: 7 дней.

Значение по умолчанию: 14400 секунд (4 часа)

После завершения работы эта опция заставит radvd отказаться от префикса, объявив о нем в RA отключения radvd с нулевым предпочтительным временем жизни и допустимым временем жизни чуть больше 2 часов. Это побудит конечные узлы, использующие этот префикс, немедленно отказаться от любых связанных адресов. Обратите внимание, что эту опцию следует использовать только тогда, когда только один маршрутизатор объявляет префикс, в противном случае конечные узлы будут объявлять устаревшими связанные адреса, несмотря на то, что префикс все еще действителен для предпочтительного использования.

См. RFC 4862, раздел 5.5.3., «Router Advertisement Processing», часть (e).

Значение по умолчанию: off

DecrementLifetimes on|off

Этот параметр заставляет radvd постепенно уменьшать значения предпочтительного и действительного времени жизни префикса. Время жизни уменьшается на количество секунд, прошедших с момента последнего RA. Если radvd получает сигнал SIGUSR1, он сбрасывает значения предпочтительного и допустимого времени жизни обратно к начальным значениям, использованным radvd при его запуске. Если radvd никогда не получит сигнал SIGUSR1, он будет продолжать уменьшать время жизни до тех пор, пока предпочтительное время жизни не достигнет нуля. После окончательного RA с нулевым предпочтительным временем жизни radvd перестанет объявлять префикс. Если затем сигнал SIGUSR1 приводит к сбросу времени жизни, префикс снова появляется в RA.

Этот параметр предназначен для использования в сочетании с клиентом DHCPv6, который использует параметр Identity Association for Prefix Delegation (IA_PD) для получения префикса от делегирующего маршрутизатора для использования запрашивающим маршрутизатором. В этом сценарии префикс(ы) внутри делегированного префикса, объявленные radvd, устаревают параллельно и с той же скоростью, что и делегированный префикс, и истекают примерно в то же время, если срок действия делегированного префикса не истек. расширенный.

См. RFC 3633, «IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP) version 6».

Значение по умолчанию: off

Если эта опция указана, этот префикс будет объединен с IPv6-адресом интерфейса, указанного по имени. Результирующая длина префикса будет 64.

Если указан этот параметр, этот префикс будет объединен с IPv4-адресом имени интерфейса для получения допустимого префикса 6to4. Первые 16 бит этого префикса будут заменены на 2002, а следующие 32 бита этого префикса будут заменены адресом IPv4, назначенным имени интерфейса во время настройки. Остальные 80 бит префикса (включая идентификатор SLA) будут объявлены, как указано в файле конфигурации. См. пример в следующем разделе.

Если имя интерфейса недоступно во время настройки, в журнал будет записано предупреждение, и этот префикс будет отключен до тех пор, пока radvd не будет переконфигурирован.

Этот параметр позволяет системам с динамическими IPv4-адресами обновлять объявленные ими префиксы 6to4, просто перезапуская radvd или отправляя сигнал SIGHUP, чтобы заставить radvd перенастроить себя.

Обратите внимание, что префиксы 6to4, полученные из динамически назначаемых IPv4-адресов, должны объявляться со значительно более коротким временем жизни (см. параметры AdvValidLifetime и AdvPreferredLifetime).

Дополнительные сведения о 6to4 указаны в RFC 3056.

Значение по умолчанию: 6to4 не используется

Опции route

AdvRouteLifetime seconds|infinity

Время жизни, связанное с маршрутом, в секундах. Значение 0xffffffff означает бесконечность (т.е. все биты установлены в 1).

Значение по умолчанию: 3 * MaxRtrAdvInterval

AdvRoutePreference low|medium|high

Уровень предпочтения маршрута: «низкий» (low), «средний» (medium) или «высокий» (high).

Значение по умолчанию: medium

После завершения работы объявит этот маршрут с нулевым временем жизни. Это приведёт к немедленному удалению маршрута из таблицы маршрутизации конечных узлов.

Значение по умолчанию: on

Опции RDNSS

AdvRDNSSLifetime seconds|infinity
```conf

Максимальная продолжительность использования записей RDNSS для разрешения имен. Значение 0 означает, что сервер имен больше не должен использоваться. Значение, если не 0, должно быть не меньше MaxRtrAdvInterval. Чтобы обеспечить своевременное удаление устаревшей информации RDNSS, это значение не должно превышать 2*MaxRtrAdvInterval.

Значение по умолчанию: 2*MaxRtrAdvInterval

```conf
FlushRDNSS on|off

После остановки сервиса объявит записи RDNSS с нулевым сроком действия. Это приведёт к немедленному удалению адресов RDNSS из списка рекурсивных DNS-серверов конечных узлов.

Значение по умолчанию: on

Опции DNSSL

AdvDNSSLLifetime seconds|infinity;

Максимальная продолжительность использования записей DNSSL для разрешения имен. Значение 0 означает, что суффикс больше не должен использоваться. Значение, если не 0, должно быть не меньше MaxRtrAdvInterval. Чтобы обеспечить своевременное удаление устаревшей информации DNSSL, это значение не должно превышать 2*MaxRtrAdvInterval.

Значение по умолчанию: 2*MaxRtrAdvInterval

После остановки сервиса объявит записи DNSSL с нулевым сроком действия. Это приведёт к немедленному удалению записей DNSSL из списка поиска DNS конечных узлов.

Значение по умолчанию: on

Опции abro

Время в секундах, в течение которого действителен набор информации о пограничном маршрутизаторе. Значение всех нулевых битов принимает значение по умолчанию 10 000 (примерно одна неделя).

AdvVersionLow, AdvVersionHigh unsignedinteger

Формируют 32-битный беззнаковый номер версии, соответствующий набору информации, содержащейся в сообщении RA.

Примеры

interface eth0
{
    AdvSendAdvert on;
    prefix 2001:db8:0:1::/64
    {
        AdvOnLink on;
        AdvAutonomous on;
    };
};

Сообщает, что демон анонсов маршрутизатора должен анонсировать (AdvSendAdvert on;) префикс 2001:db8:0:1::, который имеет длину 64 на интерфейсе eth0. Также префикс должен быть использован для получения адресов через SLAAC (AdvAutonomous on;) и доступен для маршрутизации (AdvOnLink on;). Все остальные параметры оставлены со значениями по умолчанию.

Для поддержки обнаружения перемещения мобильных узлов Mobile IPv6 вместо префикса сети следует использовать адрес интерфейса:

interface eth0
{
    AdvSendAdvert on;
    prefix 2001:db8:0:1::4/64
    {
        AdvOnLink on;
        AdvAutonomous on;
        AdvRouterAddr on;
    };
};

Для поддержки 6to4 включите параметр Base6to4Interface в каждый раздел префикса. При использовании динамического IPv4-адреса установите небольшое время жизни префикса, чтобы хосты не сохраняли недостижимые префиксы после назначения нового IPv4-адреса. При анонсе на динамическом интерфейсе (например, Bluetooth) укажите возможность игнорирования отсутствия интерфейса.

interface bnep0
{
    IgnoreIfMissing on;
    AdvSendAdvert on;

    # Анонсы рассылаются не реже чем каждые 30 секунд
    MaxRtrAdvInterval 30;

    prefix 0:0:0:5678::/64
    {
        AdvOnLink on;
        AdvAutonomous on;
        Base6to4Interface ppp0;

        # Очень короткое время жизни для динамических адресов
        AdvValidLifetime 300;
        AdvPreferredLifetime 120;
    };
};

При использовании 6to4 будет использован префикс 2002:WWXX:YYZZ:5678::/64, где WW.XX.YY.ZZ — это IPv4-адрес ppp0. (Адреса IPv6 записываются в шестнадцатеричном формате, тогда как адреса IPv4 записываются в десятичном формате, поэтому адрес IPv4 WW.XX.YY.ZZ в префиксе 6to4 будет представлен в шестнадцатеричном формате.)

В этом конкретном случае сценарии конфигурации могут отправлять сигнал HUP на radvd при включении или выключении bnep0 для уведомления о состоянии; в текущих версиях radvd отправка HUP больше не является обязательной при восстановлении связи.

interface eth0
{
    AdvSendAdvert on;
    prefix 2001:db8:0:1::/64
    {
        AdvOnLink on;
        AdvAutonomous on;
    };
    clients
    {
        fe80::21f:16ff:fe06:3aab;
        fe80::21d:72ff:fe96:aaff;
    };
};

Следующая конфигурация будет объявлять префикс только для клиентов с адресами fe80::21f:16ff:fe06:3aab и fe80::21d:72ff:fe96:aaff. Все запросы RA от других клиентов будут отклонены.

Это может пригодиться, если вы желаете развернуть IPv6 только у части клиентов, например, потому что некоторые клиенты не работают или не тестировались.

Поддержка ABRO

interface lowpan0
{
    AdvSendAdvert on;
    UnicastOnly on;
    AdvCurHopLimit 255;
    prefix 2001:0db8:0100:f101::/64 {
        AdvOnLink on;
        AdvAutonomous on;
        AdvRouterAddr on;
    };
    abro fe80::a200:0:0:1/64 {
        AdvVersionLow 10;
        AdvVersionHigh 2;
        AdvValidLifeTime 2;
    };
};

Обратите внимание, что заметки могут обновляться со временем. Это может быть как исправление найденных ошибок, так и доработка содержания с целью более полного раскрытия темы. Информация об изменениях доступна в репозитории на github. Там же вы можете оставить в Issue ваши замечания по данной заметке.


Если данная заметка оказалась вам полезной, можете поблагодарить автора финансово на сервисе Boosty или любой суммой через сервис QIWI.


Время на прочтение
4 мин

Количество просмотров 40K

image

Давно хотел пощупать что это такое. Много новостей связанных с ipv6 мелькает в интернете. Близится всемирный день запуска, прошлогодний день тестирования я как-то пропустил. Да и вообще за ним будущее и я считаю лучше быть впереди чем потом догонять.
А недавняя статья на хабре окончательно сподвигла меня изучить этот вопрос на собственном опыте.

Дано: домашний сервер-роутер на Ubuntu Server 11.10, стационарный компьютер и нетбук на Kubuntu 11.10 и мобильный телефон на Android. Теоретически всё это умеет ipv6, посмотрим что будет на практике.

Установку и настройку тоннеля через Hurricane Electric можно сделать по множеству инструкций в интернете, например по упомянутой выше статье. В итоге имеем: полностью настроенный сервер имеющий связь как с ipv4 так и ipv6. Устройства в сети получают префикс от radvd и сами настраивают себе адрес, но адрес DNS сервера приходится прописывать ручками и самое главное «но» — все устройства в сети переподключаются раз в 1-2 минуты, что на web-серфинге не сказывается, а вот аську тут же банят за слишком частые попытки подключения. Будем искать решение, а так же разбираться как это всё работает.

Попытаюсь пересказать принцип работы назначения адресов ipv6 человеческим языком:

Адреса link-local, которые хосты ipv6 сети сами себе назначают используя свой MAC адрес и стандартный префикс fe80::, это понятно и нам в данный момент не интересно.

Далее хост используя этот link-local адрес отправляет в сеть запрос в поисках роутера (Router Solicitation) и если роутер там есть то он отвечает (Router Advertisement), а вот тут есть два пути:
1. Если роутер просто роутер, то он присылает в ответ префикс сети. Далее хост сам себе назначает адрес используя этот префикс и свой MAC адрес и добавляет маршрут по умолчанию на этот роутер.
2. А если роутер еще и DHCPv6 то запускается другой процесс назначения адреса, аналогичный DHCPv4.

На это влияет бит Managed Address Configuration Flag (M) в ответе Router Advertisement.
Так же там есть бит Other Stateful Configuration Flag (O) который говорит нужно ли еще другие параметры получать, например маршруты, адрес DNS сервера, адрес NTP и т.д.

Radvd умеет только первый вариант, для всего остального нужен полноценный DHCPv6 сервер. В моей сети уже есть dnsmasq который занимается раздачей адресов и пересылкой dns запросов. Но к сожалению он не умеет ipv6. Или умеет? Самая свежая версия dnsmasq 2.60 умеет и Router Advertisement и DHCPv6. Отлично!
В репозиториях Ubuntu свежей версии нет, только 2.59, качаем из репозитория Debian Unstable. Там добавляется одна новая зависимость, её можно поставить из родного репозитория.

sudo apt-get install libnetfilter-conntrack3
sudo dpkg -i dnsmasq-base_2.60-2_i386.deb

Отключаем radvd, а лучше совсем удаляем.
Читаем man и добавляем в конфиг /etc/dnsmasq.conf следующее:

enable-ra
dhcp-range=2001:470:aaab:aaaa::2, 2001:470:aaab:aaaa:ffff:ffff:ffff:ffff, 64, 12h

Можно конечно не всю /64 подсеть использовать, а поменьше, но пусть резвится, тем более алгоритм генерации адресов другой, более хитрый, а не подряд как в DHCPv4.

Перезапускаем dnsmasq, перезапускаем сеть на клиенте и вуаля, всё получили и адрес и маршрут и адрес DNS равный адресу роутера.
Проверяем, всё работает, aaaa.test-ipv6.com открывается. DNS на роутере доступен по обоим v4 и v6 адресам. Отлично!

Берем в руки телефон с Android. Печаль. IPv6 он не получает. Выясняем что Android не умеет получать адрес от DHCPv6,

совсем

, никакой версии. Читаем man дальше и в конфиг dnsmasq.conf добавляем следующее:

dhcp-range=2001:470:aaab:aaaa::, ra-only, 64, 12h

Теперь наш dnsmasq отвечает двумя Router Advertisement один с установленными флагами M и O, а другой со сброшенными. Android телефон воспринимает только второй, а вот linux клиенты воспринимают оба, и по этому получают по два адреса. Но это не страшно, я считаю. Один из них dnsmasq запоминает (выданный DHCPv6) и можно получать доступ к клиентам по имени. А вот телефон, увы, получит только адрес, DNS он будет знать только с ipv4 именем (192.168.1.1).
Кстати, теоретически существует конфигурация M=0, O=1, так называемая DHCPv6 stateless, когда адреса назначаются автоматически, а другие параметры получаются от DHCPv6, но я не уверен, что dnsmasq так умеет, Android такое примет, да и имена внутри сети не помешают. Есть ещё «костыль» RDNSS (Router Advertisement Options for DNS Configuration). Его умеет radvd на стороне сервера, а на клиентов нужно устанавливать rdnssd, в том числе и на Windows. Для Android всё равно не поможет, он его тоже не умеет.

Отключаем ipv4 и ищем где у нас проблемы с конфигами сервисов. Либо адреса заменяем на имена, либо к ipv4 адресам добавляем ipv6. Со стационарного компьютера все сервисы доступны по ipv6, а вот на нетбуке возникли проблемы. NFS шара монтируется с помощью autofs, а видимо в нем баг и он не разрешает имя сервера по ipv6. Если просто mount делать, то успешно монтируется.
Возвращаем обычный интернет, ибо ipv6 пока скуден, google только поиск, википедия только через sixxs.net, несколько радиостанций, несколько трекеров. Ждем 6 июня.

Настройка фаервола ip6tables ничем не отличается от iptables, только отсутствует -t nat POSTROUTING. Ну и я себе добавил пропуск некоторых ICMPv6 пакетов внутрь, чтоб можно было пинговать снаружи.

Что мы получили? Готовность №1 к World IPv6 Launch домашней сети и бесценный опыт.

From Wikipedia, the free encyclopedia

radvd

Developer(s) Reuben Hawkins, Robin Johnson
Initial release 1996; 27 years ago
Stable release

2.19
/ September 23, 2020; 3 years ago

Preview release

2.18-rc1
/ February 16, 2019; 4 years ago

Repository
  • github.com/radvd-project/radvd Edit this at Wikidata
Written in C
Platform Linux and BSD
Available in English
License BSD-style vanity[1]
Website radvd

The Router Advertisement Daemon (radvd) is an open-source software product that implements link-local advertisements of IPv6 router addresses and IPv6 routing prefixes using the Neighbor Discovery Protocol (NDP) as specified in RFC 2461.[2]

Daemon[edit]

The Router Advertisement Daemon is used by system administrators in stateless autoconfiguration(RFC 4862.[3]) methods of network hosts on Internet Protocol version 6 networks.

When IPv6 hosts configure their network interface controllers, they multicast router solicitation (RS) requests onto the network to discover available routers. Radvd answers requests with router advertisement (RA) messages. In addition, radvd periodically multicasts RA packets to the attached link to update network hosts. The router advertisement messages contain the routing prefix used on the link, the link maximum transmission unit (MTU), and the address of the responsible default router.

Radvd also supports the recursive DNS server (RDNSS) and DNS search list (DNSSL) options for NDP published in RFC 6106.[4]

See also[edit]

  • Dynamic Host Configuration Protocol (DHCP)
  • Domain Name System (DNS)
  • Neighbor Discovery Protocol
  • Netsh on Microsoft Windows covers similar functionality

References[edit]

  1. ^ Pekka Savola on radvd-devel-l mailing list
  2. ^ RFC 2461, Neighbor Discovery for IP Version 6 (IPv6), T. Narten, E. Nordmark, W. Simpson (December 1998)
  3. ^ RFC 4862, IPv6 Stateless Address Autoconfiguration, S, Thomson, T. Narten, T. Jinmei (September 2007)
  4. ^ RFC 6106, IPv6 Router Advertisement Options for DNS Configuration, J. Jeong (Ed.), S. Park, L. Beloeil, S. Madanapalli (November 2010)

External links[edit]

  • Radvd web site
  • Source code

Summary

Standards: RFC 2462, RFC 2461, RFC 4861

RouterOS has IPv6 Neighbor Discovery and stateless address autoconfiguration support using Router Advertisement Daemon (RADVD).

Node description

Node is a device that implements IPv6. In IPv6 networks nodes are divided into two types:

  • Routers — a node that forwards IPv6 packets not explicitly addressed to itself.
  • Hosts — any node that is not a router.

Routers and hosts are strictly separated, meaning that routers cannot be hosts and hosts cannot be routers at the same time.

Stateless address autoconfiguration

There are several types of autoconfiguration:

  • stateless — address configuration is done by receiving Router Advertisement messages. These messages include stateless address prefixes and require that host is not using stateful address configuration protocol.
  • stateful — address configuration is done by using the stateful address configuration protocol (DHCPv6). The stateful protocol is used if RA messages do not include address prefixes.
  • both — RA messages include stateless address prefixes and require that hosts use a stateful address configuration protocol.

A highly useful feature of IPv6 is the ability to automatically configure itself without the use of a stateful configuration protocol like DHCP ( See example).

Note: Address autoconfiguration can only be performed on multicast-capable interfaces.

It is called stateless address autoconfiguration since there is no need to manage the state on the router side. It is a very simple, robust, and effective autoconfiguration mechanism.

RouterOS uses RADVD to periodically advertise information about the link to all nodes on the same link. The information is carried by ICMPv6 «router advertisement» packet, and includes the following fields:

  • IPv6 subnet prefix
  • Default router link-local address
  • Other parameters that may be optional: are link MTU, default hop limit, and router lifetime.

Then host catches the advertisement, and configures the global IPv6 address and the default router. Global IPv6 address is generated from the advertised subnet prefix and EUI-64 interface identifier.

Optionally, the host can ask for an advertisement from the router by sending an ICMPv6 «router solicitation» packet. On Linux rtsol utility transmits the router solicitation packet. If you are running a mobile node, you may want to transmit router solicitations periodically.

Address states

When an auto-configuration address is assigned it can be in one of the following states:

  • tentative — in this state host verifies that the address is unique. Verification occurs through duplicate address detection.
  • preferred — at this state address is verified as unique and the node can send and receive unicast traffic to and from a preferred address. The period of time of the preferred state is included in the RA message.
  • deprecated — the address is still valid, but is not used for new connections.
  • invalid — node can no longer send or receive unicast traffic. An address enters the invalid state after the valid lifetime expires.

The image above illustrates the relation between states and lifetimes. 

Sub-menu: /ipv6 nd

In this submenu, IPv6 Neighbor Discovery (ND) protocol is configured.

Neighbor Discovery (ND) is a set of messages and processes that determine relationships between neighboring nodes. ND, compared to IPv4, replaces Address Resolution Protocol (ARP), Internet Control Message Protocol (ICMP) Router Discovery, and ICMP Redirect and provides additional functionality.

ND is used by hosts to:

  • Discover neighboring routers.
  • Discover addresses, address prefixes, and other configuration parameters.

ND is used by routers to:

  • Advertise their presence, host configuration parameters, and on-link prefixes.
  • Inform hosts of a better next-hop address to forward packets to a specific destination.

ND is used by nodes to:

  • Both resolve the link-layer address of a neighboring node to which an IPv6 packet is being forwarded and determine when the link-layer address of a neighboring node has changed.
  • Determine whether IPv6 packets can be sent to and received from a neighbor.

Properties

Property Description
advertise-dns (yes | no; Default: no) Option to redistribute DNS server information using RADVD. You will need a running client-side software with Router Advertisement DNS support to take advantage of the advertised DNS information. Read more >>
advertise-mac-address (yes | no; Default: yes) When set, the link-layer address of the outgoing interface is included in the RA.
comment (string; Default: ) Descriptive name of an item
dns-servers (unspecified | ipv6 addresses; Default: unspecified) Specify a single IPv6 address or list of addresses that will be provided to hosts for DNS server configuration.
disabled (yes | no; Default: no) Whether an item is disabled or not. By default, entry is enabled.
hop-limit (unspecified | integer[0..255]; Default: unspecified) The default value that should be placed in the Hop Count field of the IP header for outgoing (unicast) IP packets.
interface (all | string; Default: ) The interface on which to run neighbor discovery.

  • all — run ND on all running interfaces.
managed-address-configuration (yes | no; Default: no) The flag indicates whether hosts should use stateful autoconfiguration (DHCPv6) to obtain addresses.
mtu (unspecified | integer[0..4294967295]; Default: unspecified) The MTU option is used in router advertisement messages to insure that all nodes on a link use the same MTU value in those cases where the link MTU is not well known.

  • unspecified — do not send the MTU option.
other-configuration (yes | no; Default: no) The flag indicates whether hosts should use stateful autoconfiguration to obtain additional information (excluding addresses).
pref64-prefixes (unspecified | ipv6 prefixes; Default: unspecified) Specify IPv6 prefix or list of prefixes within /32, /40. /48, /56, /64, or /96 subnet that will be provided to hosts as NAT64 prefixes.
ra-delay (time; Default: 3s) The minimum time allowed between sending multicast router advertisements from the interface.
ra-interval (time[3s..20m50s]-time[4s..30m]; Default: 3m20s-10m) The min-max interval allowed between sending unsolicited multicast router advertisements from the interface.
ra-preference (low | medium | high; Default: medium) Specify the router preference that is communicated to IPv6 hosts through router advertisements. The preference value in the router advertisements enables IPv6 hosts to select a default router to reach a remote destination
ra-lifetime (none | time; Default: 30m)
reachable-time (unspecified | time[0..1h]; Default: unspecified) The time that a node assumes a neighbor is reachable after having received a reachability confirmation. Used by the Neighbor Unreachability Detection algorithm (see Section 7.3 of RFC 2461)
retransmit-interval (unspecified | time; Default: unspecified) The time between retransmitted Neighbor Solicitation messages. Used by address resolution and the Neighbor Unreachability Detection algorithm (see Sections 7.2 and 7.3 of RFC 2461)

If ND is automatically generated by LTE configuration, then the maximum lifetime for RA will be capped at 1 hour.

Prefix

Sub-menu: /ipv6 nd prefix

Prefix information sent in RA messages used by stateless address auto-configuration.

Note: The autoconfiguration process applies only to hosts and not routers.

Properties

Property Description
6to4-interface (none | string; Default: ) If this option is specified, this prefix will be combined with the IPv4 address of the interface name to produce a valid 6to4 prefix. The first 16 bits of this prefix will be replaced by 2002 and the next 32 bits of this prefix will be replaced by the IPv4 address assigned to the interface name at configuration time. The remaining 80 bits of the prefix (including the SLA ID) will be advertised as specified in the configuration file.
autonomous (yes | no; Default: yes) When set, indicates that this prefix can be used for autonomous address configuration. Otherwise, prefix information is silently ignored.
comment (string; Default: ) Descriptive name of an item
disabled (yes | no; Default: no) Whether an item is disabled or not. By default, entry is enabled.
on-link (yes | no; Default: yes) When set, indicates that this prefix can be used for on-link determination. When not set the advertisement makes no statement about the on-link or off-link properties of the prefix. For instance, the prefix might be used for address configuration with some of the addresses belonging to the prefix being on-link and others being off-link.
preferred-lifetime (infinity | time; Default: 1w) Timeframe (relative to the time the packet is sent) after which generated address becomes «deprecated». Deprecated is used only for already existing connections and is usable until valid lifetime expires. Read more >>
prefix (ipv6 prefix; Default: ::/64) A prefix from which stateless address autoconfiguration generates the valid address.
valid-lifetime (infinity | time; Default: 4w2d) The length of time (relative to the time the packet is sent) an address remains in the valid state. The valid lifetime must be greater than or equal to the preferred lifetime. Read more >>
interface (string; Default: ) Interface name on which stateless auto-configuration will be running.

Neighbors List

Sub-menu: /ipv6 neighbor

List of all discovered nodes by IPv6 neighbor discovery protocol (neighbor cache).

Read-only Properties

Property Description
address (ipv6 address) link-local address of the node.
comment (string)
interface (string) The interface on which the node was detected.
mac-address (string) Mac address of the discovered node.
router (yes | no) Whether the discovered node is a router
status (noarp | incomplete | stale | reachable | delay | probe) Status of the cached entry:

  • noarp — the neighbor entry is valid. No attempts to validate this entry will be made but it can be removed when its lifetime expires
  • incomplete — address resolution is in progress and the link-layer address of the neighbor has not yet been determined;
  • reachable — the neighbor is known to have been reachable recently (within tens of seconds ago);
  • stale — the neighbor is no longer known to be reachable but until traffic is sent to the neighbor, no attempt should be made to verify its reachability;
  • delay — the neighbor is no longer known to be reachable, and traffic has recently been sent to the neighbor, probes are delayed for a short period in order to give upper layer protocol a chance to provide reachability confirmation;
  • probe — the neighbor is no longer known to be reachable, and unicast Neighbor Solicitation probes are being sent to verify reachability.

Examples

Stateless autoconfiguration example

[admin@MikroTik] > ipv6 address print
Flags: X - disabled, I - invalid, D - dynamic, G - global, L - link-local
# ADDRESS INTERFACE ADVERTISE
0 G 2001:db8::1/64 ether1 yes

As an example, the advertise flag is enabled which indicates that dynamic/ipv6 nd prefixentry is added.

[admin@MikroTik] > ipv6 nd prefix print 
Flags: X - disabled, I - invalid, D - dynamic 
0 D prefix=2001:db8::/64 interface=ether1 on-link=yes autonomous=yes
 valid-lifetime=4w2d preferred-lifetime=1w

On a host that is directly attached to the router, we see that an address was added. The address consists of the prefix part (first 64 bits) that takes the prefix from the prefix advertisement, and the host part (last 64 bits) that is automatically generated from the local MAC address:

atis@atis-desktop:~$ ip -6 addr
 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 
inet6 ::1/128 scope host 
valid_lft forever preferred_lft forever 
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000 
inet6 2001:db8::21a:4dff:fe56:1f4d/64 scope global dynamic
 valid_lft 2588363sec preferred_lft 601163sec 
inet6 fe80::21a:4dff:fe56:1f4d/64 scope link 
valid_lft forever preferred_lft forever

The host has received the 2001:db8::/64 prefix from the router and configured an address with it.

There is also an option to redistribute DNS server information using RADVD:

[admin@MikroTik] > ip dns set server=2001:db8::2 
[admin@MikroTik] > ip dns print servers: 2001:db8::2
 ... 
[admin@MikroTik] > ipv6 nd set [f] advertise-dns=yes

You will need a running client-side software with Router Advertisement DNS support to take advantage of the advertised DNS information.

On Ubuntu/Debian Linux distributions you can install rdnssd package which is capable of receiving the advertised DNS addresses.

mrz@bumba:/$ sudo apt-get install rdnssd
mrz@bumba:/$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
 # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
 nameserver 2001:db8::2 

mrz@bumba:/$ ping6 www.mikrotik.com 
PING www.mikrotik.com(2a02:610:7501:1000::2) 56 data bytes
 64 bytes from 2a02:610:7501:1000::2: icmp_seq=1 ttl=61 time=2.11 ms
 64 bytes from 2a02:610:7501:1000::2: icmp_seq=2 ttl=61 time=1.33 ms 
^C
 --- www.mikrotik.com ping statistics --- 
2 packets transmitted, 2 received, 0% packet loss, time 1001ms 
rtt min/avg/max/mdev = 1.334/1.725/2.117/0.393 ms 
mrz@bumba:/$

нужно как минимум radvd. Объявления маршрутизатора сообщают устройствам в сети, что такое шлюз по умолчанию и какова конфигурация сети. Тебе это всегда нужно.

реклама маршрутизатора может сказать клиентам, разрешено ли им выбирать свои собственные адреса или нет (автоматическая конфигурация). Если вы позволите это, то вам может не понадобиться DHCP вообще.

, то вы можете добавить DHCP, без сохранения состояния или с отслеживанием состояния. DHCP без отслеживания состояния сообщает конфигурации клиентов параметры, такие как DNS-резольверы и т. д., без предоставления адресов (полезно, если вы разрешаете автоматическую настройку). DHCP с отслеживанием состояния также предоставляет адреса.

Как вам нужно radvd в любом случае это самый простой, возможно в сочетании с DHCP без состояния. Не беспокойтесь о DHCP с отслеживанием состояния, если вам действительно не нужно управлять адресами вручную.

  • Rt n12 доступ к роутеру через интернет
  • Router beeline ru настройка роутера tp link
  • Rx 22200 роутер дом ру настройка на другой провайдер
  • Ra сервис роутер что это
  • Reset на вай фай роутере