Назад | Перейти на главную страницу

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

Я получил от поставщика сервера собственную подсеть IPv6 / 64, но не могу заставить ее играть так, как я хочу.

Я использую виртуальные машины и хочу, чтобы у них были свои публичные IP-адреса.

Представим, что я получил следующую информацию:

IP-адреса: 1: 1: 1: 1 :: / 64, шлюз: 1: 1: 1: 0 :: 1

Теперь я хочу, чтобы у хост-машины был ip 1: 1: 1: 1 :: 1, а остальное маршрутизировалось с eth0 на внутренний br0, где все виртуальные машины соединены мостом.

Можно выполнить ping6 ipv6.google.com с корневого компьютера, так что пока вроде работает.

Я включил маршрутизацию, и кажется, что пакеты правильно пересылаются с внутренней машины (с br0) через eth0 - но не более того ... нет ответа.

Обратите внимание, что eth0 не является частью br0.

Любые идеи?

Если ваш провайдер действительно маршруты ваша подсеть к вашему хосту, вам нужно будет настроить свой хост так, чтобы он проксировал обнаружение окрестностей ICMPv6 (ND) для IP-адресов ваших гостей.

Предполагая, что вам назначили 2001:0DB8:A::/64, ваш хост 2001:0DB8:A::1 на eth0, а ваша гостевая виртуальная машина использует 2001:0DB8:A::2 (на виртуальном мосту br0). Чтобы сообщить вашему хосту, что нужно проксировать запросы ND, введите следующую команду:

ip -6 neigh add proxy 2001:0DB8:A::2 dev eth0

Также убедитесь, что для IPv6 включены перенаправление и прокси ND:

sysctl -w net.ipv6.conf.all.forwarding=1
sysctl -w net.ipv6.conf.all.proxy_ndp=1

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

Если вы получили собственный / 64 от провайдера туннеля или интернет-провайдера, вы можете без проблем перенаправить его в Интернет IPv6. Для этого вам также не понадобится прокси-сервер NDP. Большинство виртуальных машин, включая VirtualBox и VMware Workstation / Player, позволяют хосту создавать частную сеть без мостов и маршрутизации через NAT к локальной сети хоста. Предполагая, что вы используете VirtualBox в Linux, вы можете создать новую сеть только для хоста в разделе «Настройки» -> «Сеть». Вероятно, он получит имя вроде vboxnet1. Вы можете игнорировать любые настройки IPv4 и оставить DHCP отключенным. Затем выберите выберите сеть только для хоста и vboxnet1 под сетевым адаптером вашей виртуальной машины. Вы можете создать новый сетевой адаптер, если хотите сохранить существующий адаптер для IPv4. Теперь вы сможете использовать свой хост-компьютер как обычный старый маршрутизатор IPv6. Вам нужно будет настроить radvd для рекламы префикса на vboxnet1 и включите пересылку IPv6 в /etc/sysctl.conf. Это net.ipv6.conf.all.forward=1. Вы также захотите назначить статический IPv6-адрес для vboxnet1 из той же сети / 64. Однако важно, чтобы вы не назначали адрес из этой сети / 64 другому адаптеру на хосте, иначе он не будет знать, как правильно маршрутизировать.