Рейтинг:1

Как я могу привязать сетевой интерфейс ко всей подсети /48 адресов IPv6 без необходимости перечисления каждого отдельного адреса?

флаг mx

Контекст

Мне нужно знать, как настроить полностью /48 блок IPv6 на моем сервере для выполнения исходящий запросы с любым из этих IPv6-адресов без настройки каждого из них по отдельности.

Мой провайдер предоставляет эту подсеть через DHCP6 сервер подключен непосредственно к моей машине в их центре обработки данных.

На машине работает Ubuntu Server 20.04.

Я еще не пробовал это:

  • IP-адрес добавить 0000:000:00::/48 dev lo, работает очень хорошо с адресами IPv4, я уже получаю блок IPv4 /26, работающий таким образом для исходящих запросов, но я не могу с IPv6;

  • ip route add local 0000:000:00::/48 dev lo, я могу пинговать любой IP локально, используя пинг6, но я не могу привязать какой-либо сокет TCP к IP и выполнять исходящие запросы, я получаю EADDRNOTAVAIL;

Вопрос

Я что-то пропустил? Как я могу заставить это работать?

Ресурсы

Конфигурация сетевого плана

сеть:
  версия: 2
  визуализатор: сетевой
  Ethernet:
    enp132s0:
      DHCP4: да
      DHCP6: да
    enp6s0:
      DHCP4: да
      DHCP6: да

Другие вопросы о сбое сервера

Рейтинг:2
флаг cn

Ваша вторая ссылка на ошибку сервера описывает то, что требуется. Префикс маршрутизации для вас, локальный маршрут на этом хосте и разрешение нелокального IP-адреса в сокете, также известном как IP_FREEBIND. EADDRNOTAVAIL означает, что третий шаг не завершен.

Убедитесь, что ваш маршрутизируемый префикс и локальный маршрут работают, пропинговав IP-адрес из другой сети IPv6.

В Linux разрешите привязку к другим IP-адресам, создав /etc/sysctl.d/freebind.conf содержащий

net.ipv4.ip_nonlocal_bind = 1
net.ipv6.ip_nonlocal_bind = 1

Приложения должны привязываться к желаемому IP-адресу. В противном случае, если он не указан, при обычном выборе исходного адреса будет выбран некоторый локальный IP-адрес, назначенный интерфейсу.Также возможно установить параметр IP_FREEBIND на уровне сокета.

Обратите внимание, что даже без этого трюка с маршрутизируемым префиксом хосту может быть назначено большое количество IP-адресов. Возможно, несколько тысяч, прежде чем обнаружение соседей станет проблемой.


Подсети IPv6 должны иметь размер /64. Стандартизация идентификатора интерфейса нижней половины, агрегация верхней половины для маршрутизации. В качестве маршрутизатора этот хост может по-прежнему маршрутизироваться через /48, но ему нужен только /64 на петлевом маршруте к самому себе.

Количество IP-адресов не имеет значения, так как 2^64 уже фактически неограничены по размеру. Совершенно нормально использовать только один или два / 64 из / 48, оставив место в плане адресов для других вещей.

João Scheuermann avatar
флаг mx
Я могу успешно пропинговать только DHCP, назначенный IPV6.
John Mahowald avatar
флаг cn
Вы имеете в виду эхо-ответ с одного IP-адреса IA_NA или что-то в делегированном префиксе IA_PD? Попробуйте сначала получить один IP-адрес из вашего префикса, назначить его интерфейсу и маршрутизировать.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.