Пересылка ipv6 убивает соединение ipv6?

Привет, я пытаюсь раскрутить виртуальные машины на публичных IPv6-адресах.

Когда я включаю net.ipv6.conf.all.forwarding = 1 на хосте, кажется, убивает подключение ipv6

root@li166-218:~# ip -6 route show dev eth0
2600:3c01::/64  proto kernel  metric 256  expires 2591994sec
fe80::/64  proto kernel  metric 256
default via fe80::1  proto ra  metric 1024  expires 84sec
root@li166-218:~# traceroute -6 google.com
traceroute to google.com (2607:f8b0:4010:801::1000), 30 hops max, 80 byte packets
 1  2600:3c01::8678:acff:fe0d:79c1 (2600:3c01::8678:acff:fe0d:79c1)  0.860 ms  0.915 ms  1.005 ms
 2  10gigabitethernet8-2.core3.fmt2.he.net (2001:470:1:3b8::1)  10.615 ms  10.608 ms  7.144 ms
 3  10ge5-4.core1.pao1.he.net (2001:470:0:263::2)  6.539 ms  6.601 ms  6.653 ms
 4  google-as15169.10gigabitethernet8-2.core1.pao1.he.net (2001:470:0:244::2)  0.937 ms  0.905 ms  0.882 ms
 5  2001:4860::1:0:21 (2001:4860::1:0:21)  9.843 ms  9.812 ms  9.740 ms
 6  2001:4860:0:1::3d5 (2001:4860:0:1::3d5)  1.974 ms  1.712 ms  1.979 ms
 7  2607:f8b0:8000:24::2 (2607:f8b0:8000:24::2)  1.575 ms 2607:f8b0:8000:24::7 (2607:f8b0:8000:24::7)  1.637 ms 2607:f8b0:8000:24::1 (2607:f8b0:8000:24::1)  1.684 ms
root@li166-218:~# sysctl net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.forwarding = 1
root@li166-218:~# traceroute -6 google.com
traceroute to google.com (2607:f8b0:4010:801::1000), 30 hops max, 80 byte packets
connect: Network is unreachable

когда net.ipv6.conf.all.forwarding = 1 Я могу пинговать хост от гостя вм. Однако у хоста больше нет общедоступного соединения ipv6.

2 ответа

Решение

Включение пересылки IPv6 приведет к отключению автоматической настройки IPv6. Обычно вы хотите, чтобы маршрутизаторы (устройства, которые пересылают данные) имели статические адреса.

Это задокументировано в Linux IPv6 HOWTO.

Вот соответствующая часть:

пересылка

Тип: БУЛЕЙСКИЙ

По умолчанию: FALSE, если глобальная пересылка отключена (по умолчанию), иначе TRUE

Настройте специфичное для интерфейса поведение хоста / маршрутизатора.

Примечание. Рекомендуется иметь одинаковые настройки на всех интерфейсах; Смешанные сценарии роутер / хост довольно редки.

Значение FALSE: по умолчанию предполагается поведение хоста. Это означает:

  • Флаг IsRouter не установлен в рекламе соседей.
  • Заявки маршрутизатора отправляются при необходимости.
  • Если accept_ra имеет значение TRUE (по умолчанию), примите объявления маршрутизатора (и выполните автоконфигурацию).
  • Если accept_redirects имеет значение TRUE (по умолчанию), примите перенаправления.

Значение TRUE: если локальная переадресация включена, предполагается поведение маршрутизатора. Это означает в точности наоборот из вышесказанного:

  • Флаг IsRouter установлен в соседних рекламных объявлениях.
  • Заявления маршрутизатора не отправляются.
  • Реклама маршрутизатора игнорируется.
  • Перенаправления игнорируются.

Установив переадресацию на TRUE, ваша машина будет вести себя как маршрутизатор. Вам нужно либо заставить его принимать рекламные объявления маршрутизатора (RA), либо вам нужно вручную настроить свои адреса и маршруты.

Чтобы включить autoconf даже при использовании переадресации, используйте это:

accept_ra

Тип: БУЛЕЙСКИЙ

Принять рекламу маршрутизатора; автоконфигурировать с помощью них.

Возможные значения:

  • 0: не принимать рекламу маршрутизатора.
  • 1: Принять объявления маршрутизатора, если переадресация отключена.
  • 2: Отменить поведение при пересылке. Принимать объявления маршрутизатора, даже если переадресация включена.

Да, это логическое значение со значениями 0, 1 и 2:)

Включение пересылки уничтожит маршрут по умолчанию. Вы можете добавить его обратно с помощью:

ip -6 route add default via <ipv6 gateway address> dev <interface>

Как только это добавлено, подключение IPv6 должно снова быть в порядке.

В моем случае я должен был найти адрес шлюза, просматривая мой кабельный модем через http://192.168.100.1,

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