Раздача IPv6 (6to4) в локальную сеть

Сети > Маршрутизация

После настройки 6to4, на ваш роутер «приходит» из Интернета подсеть с маской /48, имеющая адрес, составленный из 2002 и вашего IPv4, закодированного в hex-формате. К примеру, для адреса 123.123.123.123, адрес этой подсети будет выглядеть как 2002:7b7b:7b7b::/48.

Ради простоты примеров, предположим, что вашей подсетью оказалась 2002:aabb:ccdd::/48, раздать машинам в локальной сети вы решили адреса из входящей в неё подсети меньшего размера, 2002:aabb:ccdd:e::/64, а интерфейсом, к которому подключена локальная сеть, является eth0. Рассмотрим процесс настройки роутера на примере Debian GNU/Linux.

Настройка файрволла

Поскольку при использовании IPv6 каждый из компьютеров вашей локальной сети будет иметь настоящий, Интернетовский IP-адрес, важно настроить на вашем маршрутизаторе сетевой экран, который будет блокировать входящие соединения из Интернета, но при этом разрешать исходящие из локальной сети. В GNU/Linux это может выглядеть примерно так:

# Внутренний интерфейс (локальная сеть)
INTIF=eth0

# Внешний интерфейс (IPv6-интернет)
EXTIF=tun-ipv6

iptables -I INPUT  -p ipv6 -j ACCEPT
iptables -I OUTPUT -p ipv6 -j ACCEPT

ip6tables -F

ip6tables -A FORWARD -i $EXTIF -o $EXTIF -j DROP

ip6tables -A INPUT -p icmpv6 -m limit --limit 600/min -j ACCEPT
ip6tables -A INPUT -p icmpv6 -j DROP
ip6tables -A OUTPUT -p icmpv6 -m limit --limit 600/min -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 -j DROP
ip6tables -A FORWARD -p icmpv6 -m limit --limit 600/min -j ACCEPT
ip6tables -A FORWARD -p icmpv6 -j DROP

ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A INPUT -i $INTIF -j ACCEPT
ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A INPUT -j REJECT

ip6tables -A FORWARD -i $INTIF -j ACCEPT
ip6tables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A FORWARD -j REJECT

ip6tables -A OUTPUT -j ACCEPT

Назначение адреса внутреннему интерфейсу

IPv6-адрес из раздаваемой в «локалку» подсети необходимо также назначить и сетевому интерфейсу самого роутера. Адрес можно выбрать любой, к примеру для роутеров часто используется адрес с ::1 в конце. Добавляется он так:

ip addr add 2002:aabb:ccdd:e::1/64 dev eth0

Для более перманентного сохранения этой настройки, добавим её в /etc/network/interfaces:

...
iface eth0 inet6 static
	address 2002:aabb:ccdd:e::1
        netmask 64
...

Установка и настройка radvd

Устанавливаем radvd:

apt-get install radvd

Изменяем файл /etc/radvd.conf следующим образом:

interface eth0
{
   AdvSendAdvert on;
   prefix 2002:aabb:ccdd:e::/64
   {
       AdvOnLink on;
       AdvAutonomous on;
   };
};

У radvd есть и поддержка 6to4 на динамических IPv4-адресах (заключающаяся в автоопределении используемой подсети, см. опцию Base6to4Interface в man radvd), однако я бы не рекомендовал раздавать такой IPv6 с помощью radvd. Если ваш IPv4 не статичен, лучше воспользуйтесь туннельным брокером.

Включаем маршрутизацию IPv6. Для этого, нужно добавить в /etc/sysctl.conf следующие строки (либо изменить их, если они там есть):

net.ipv6.conf.all.forwarding=1
net.ipv6.conf.default.forwarding=1

После чего, выполнить с правами root:

sysctl -p

Осталось только перезапустить radvd:

/etc/init.d/radvd restart

Всё, теперь компьютеры локальной сети должны автоматически получить адреса из вашей Routed-подсети /64. Можно проверить это, пропинговав ipv6.google.com с любого из них.

Комментарии
]]> ipv6 ready Kiev LUGLinux4MeНостальгияЛичный сайт skeletora ]]>