Пересылка 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
,