Он работает немного иначе: вы не используете /64 из туннеля, вы используете новые /64 из маршрутизируемого /48 для своих сетей. /48 дает вам 2001:470: 6c92::/64
(то есть 2001:470:6c92:0000::/64
) до 2001:470:6c92:ffff::/64
. Это дает вам 65536 /64s, чего обычно достаточно, чтобы дать каждой сети свою /64.
Сначала вам нужно включить пересылку IPv6 в вашем ядре, чтобы Raspberry Pi выступал в роли маршрутизатора. Добавьте эту строку в /etc/sysctl.conf
:
net.ipv6.conf.all.forwarding=1
Это, вероятно, уже там, но закомментировано.
Затем вам нужно будет настроить IPv6 на вашем интерфейсе eth0
. Добавить что-то вроде:
iface eth0 inet6 static
address 2001:470:6c92:1::1
netmask 64
Затем вы настраиваете radvd
(Router Advertising Daemon) так, чтобы ваш Raspberry Pi объявлял в локальной сети, что IPv6 доступен, и он будет функционировать как шлюз по умолчанию. Базовая конфигурация в /etc/radvd.conf
будет выглядеть примерно так:
interface eth0
{
AdvSendAdvert on;
prefix 2001:470:6c92:1::/64
{
AdvOnLink on;
AdvAutonomous on;
};
};
Он объявляет, что это шлюз по умолчанию и что другие системы могут автоматически настраиваться.
Предупреждение: в момент запуска radvd
все системы в вашей локальной сети получат адреса IPv6 и шлюз по умолчанию IPv6. Если вы не настроили брандмауэр IPv6 на Raspberry Pi, все системы будут напрямую подключены к Интернету IPv6. Пожалуйста, убедитесь, что их конфигурации безопасны для работы таким образом, или настройте брандмауэр IPv6 на Raspberry Pi перед включением radvd
.
Если вы хотите, чтобы только Raspberry Pi для подключения по IPv6 использовали только определенные системы , не запускайте radvd
. Вместо этого просто настройте IPv6 вручную в этих системах. Используйте адрес с 2001:470:6c8b:1::/64
.Адрес со всеми нулями является подсетью-маршрутизатором для любого приведенного адреса по соглашению, хотя я почти никогда не видел, чтобы это использовалось на практике. Адрес 2001:470:6c92:1::1
использовался для Raspberry Pi, поэтому вы можете использовать что-либо из 2001:470:6c92:1::2
(= 2001:0470:6c92:0001:0000:0000:0000:0002
) до 2001:470:6c92:1:ffff:ffff:ffff:ffff
. Настройте 2001:470:6c92:1::1
в качестве шлюза по умолчанию, и вы должны быть в сети :)
На https://wiki.ubuntu.com/IPv6#Configure_your_Ubuntu_box_as_a_IPv6_router есть также несколько советов, которые могут применяться к вашей конфигурации. Посмотрите на раздел "UFW и маршрутизация". В основном он говорит вам добавить следующие строки в /etc/ufw/sysctl.conf
:
net/ipv6/conf/default/forwarding=1
net/ipv6/conf/all/forwarding=1
Чтобы изменить эту строку в /etc/default/ufw
:
DEFAULT_FORWARD_POLICY="DROP"
И добавить следующие строки в /etc/ufw/before6.rules
:
-A ufw6-before-forward -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw6-before-forward -i eth0 -o he-ipv6 -m conntrack --ctstate NEW -j ACCEPT