Это — старая версия документа!


Раздача IPv6 от HE.net в локальную сеть

Впервые опубликовано 2009-05-02

По умолчанию, туннельный брокер Hurricane Electric предоставляет нам две подсети с маской /64: одна используется для связи между вашим роутером и туннельным сервером брокера, а вторая (с адресом, отличающимся на единичку в середине) предназначена для использования компьютерами в вашей локальной сети, и называется в веб-интерфейсе «Routed /64».

Ради простоты примеров, предположим, что вашей Routed-подсетью оказалась 2001:470:aaab:ccc::/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 FORWARD -i he-ipv6 -o he-ipv6 -j DROP

ip6tables -A INPUT -p icmpv6 --icmpv6-type 128 -m limit --limit 900/min -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type 129 -m limit --limit 900/min -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 128 -m limit --limit 900/min -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type 129 -m limit --limit 900/min -j ACCEPT
ip6tables -A FORWARD -p icmpv6 --icmpv6-type 128 -m limit --limit 900/min -j ACCEPT
ip6tables -A FORWARD -p icmpv6 --icmpv6-type 129 -m limit --limit 900/min -j ACCEPT

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 DROP

ip6tables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A FORWARD -i eth0 -j ACCEPT
ip6tables -A FORWARD -j DROP

ip6tables -A OUTPUT -j ACCEPT

Можно сохранить эти команды в шелл-скрипт, а чтобы он выполнялся при каждом включении компьютера, добавить его вызов в /etc/rc.local.

Либо, если вы как и я, пользуетесь скриптом arno-iptables-firewall, указанные команды достаточно внести в /etc/arno-iptables-firewall/custom-rules и перезапустить файрволл.

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

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

ip addr add 2001:470:aaab:ccc::1/64 dev eth0

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

...
iface eth0 inet6 static
	address 2001:470:aaab:ccc::1
        netmask 64
...

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

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

apt-get install radvd

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

interface eth0
{
   AdvSendAdvert on;
   prefix 2001:470:aaab:ccc::/64
   {
       AdvOnLink on;
       AdvAutonomous on;
   };
};

Включаем маршрутизацию 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 с любого из них.


he.net/to-lan.1271307112.txt · Последние изменения: 2011-05-31 10:45 UTC (внешнее изменение)