Вы находитесь здесь: version6.ru » 6to4 » Раздача 6to4 IPv6 в локальную сеть
Это — старая версия документа!
Раздача 6to4 IPv6 в локальную сеть
Впервые опубликовано 2010-01-21
После настройки 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.
1. Настройка файрволла
Поскольку при использовании IPv6 каждый из компьютеров вашей локальной сети будет иметь настоящий, Интернетовский IP-адрес, важно настроить на вашем роутере сетевой экран, который будет блокировать все запросы на входящие соединения из Интернета, но разрешать их, если они исходят из локальной сети. Это может выглядеть примерно так:
iptables -I INPUT -p ipv6 -j ACCEPT iptables -I OUTPUT -p ipv6 -j ACCEPT ip6tables -F 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 -m state --state ESTABLISHED,RELATED -j ACCEPT ip6tables -A INPUT -i eth0 -j ACCEPT ip6tables -A INPUT -i lo -j ACCEPT ip6tables -A INPUT -j REJECT ip6tables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT ip6tables -A FORWARD -i eth0 -j ACCEPT ip6tables -A FORWARD -j REJECT ip6tables -A OUTPUT -j ACCEPT
Можно сохранить эти команды в шелл-скрипт, а чтобы он выполнялся при каждом включении компьютера, добавить его вызов в /etc/rc.local
.
Либо, если вы как и я, пользуетесь скриптом arno-iptables-firewall, указанные команды достаточно внести в /etc/arno-iptables-firewall/custom-rules
и перезапустить файрволл.
2. Назначение адреса внутреннему интерфейсу
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 ...
3. Установка и настройка 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
с любого из них.