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

Настроить маршрутизацию IPv6

У меня есть 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` в зависимости от моста.