У меня есть IPv6-адреса от SIXXS. Мой хост подключен к сети SIXXS через туннель AICCU (интерфейс "sixxs"). Мой хост-адрес - 2001::: 2, хост на конце имеет адрес 2001::: 1. На моем хосте IPv6 полностью доступен. У меня проблема с настройкой сети IPv6 на виртуальных машинах. Я использую VirtualBox, виртуальная машина (Ubuntu) использует tap1 (на хосте, подключенном через br0)
#!/bin/sh
PATH=/sbin:/usr/bin:/bin:/usr/bin:/usr/sbin
# create a tap
tunctl -t tap1
ip link set up dev tap1
# create the bridge
brctl addbr br0
brctl addif br0 tap1
# set the IP address and routing
ip link set up dev br0
ip -6 route del 2001:6a0:200:172::/64 dev sixxs
ip -6 route add 2001:6a0:200:172::1 dev sixxs
ip -6 addr add 2001:6a0:200:172::2/64 dev br0
ip -6 route add 2001:6a0:200:172::2/64 dev br0
Хост: таблица маршрутизации:
2001:6a0:200:172::1 dev sixxs metric 1024
2001:6a0:200:172::/64 dev br0 proto kernel metric 256
2001:6a0:200:172::/64 dev br0 metric 1024
2000::/3 dev sixxs metric 1024
fe80::/64 dev eth0 proto kernel metric 256
fe80::/64 dev sixxs proto kernel metric 256
fe80::/64 dev br0 proto kernel metric 256
fe80::/64 dev tap1 proto kernel metric 256
default via 2001:6a0:200:172::1 dev sixxs metric 1024
Гость: интерфейс eth1 (связан с tap1):
auto eth1
iface eth1 inet6 static
address 2001:6a0:200:172::3
netmask 64
gateway 2001:6a0:200:172::2
Гость: таблица маршрутизации
2001:6a0:200:172::/64 dev eth1 proto kernel metric 256
fe80::/64 dev eth0 proto kernel metric 256
fe80::/64 dev eth1 proto kernel metric 256
default via 2001:6a0:200:172::2 dev eth1 metric 1024
Гость пингует хосту, хост пингует гостя, хост пингует 2001: 6a0: 200: 172 :: 1, но гость не пингует 2001: 6a0: 200: 172 :: 1. Гость пытается выполнить эхо-запрос на хосте (с помощью tcdump), я могу захватить его пакеты, но хост не отправляет их на 2001: 6a0: 200: 172 :: 1. Что я упустил в конфигурации?
Проверьте вывод команды
sysctl -a | grep ipv6 | grep forward
Это должно показать значение 1 для всех сетей, которые вы хотите пересылать. Вы должны иметь возможность включить пересылку с помощью команды:
sysctl net.ipv6.conf.all.forwarding=1
Я бы серьезно подумал о настройке брандмауэра iptables, чтобы вы не открывали свои системы полностью для Интернета IPv6. В отличие от IPv4 у вас нет устройства NAT, предотвращающего входящие соединения. В Shorewall брандмауэр имеет версию IPv6, которая упрощает настройку брандмауэра. Пример настройки с двумя интерфейсами должен стать хорошей отправной точкой и может быть настроен для включения пересылки для вас.
Моя статья о Настройка IPv6 на маршрутизаторе OpenWRT (Linux) может дать вам несколько указателей. Настройте свои хосты в качестве маршрутизатора.
РЕДАКТИРОВАТЬ: Я просмотрел документацию SixXS и подтвердил, что в туннеле действительны только адреса :: 1 (P0P и :: 2 (ваша конечная точка). Вам должен был быть предоставлен маршрутизированный по умолчанию / 64, который вы можете использовать в своей сети . Назначьте адрес вашему мосту. (Традиционно адресом :: 1 является маршрутизатор.) Вы можете настроить radvd
демон для объявления маршрутов во внутренней сети. Если вы используете radvd
образ вашего виртуального ящика должен автоматически настраиваться с указанием адреса и маршрута.
Если вы хотите маршрутизировать другие локальные устройства, добавьте eth1
или eth0` в зависимости от моста.