Маршрутизатор IPv6 на Raspberry Pi

e4b66ae899a966ae9953f8b18e81e098Уже прошло много лет с тех пор, как был придуман протокол IPv6, однако до сих пор большинство провайдеров используют IPv4. В этой статье рассказывается, как сделать маршрутизатор IPv6 на основе Raspberry Pi. Вам не понадобится отдельное устройство для маршрутизации IPv6, кроме того, подключение может производиться даже с помощью Wi-Fi к имеющемуся маршрутизатору IPv4. Для соединения с сетью IPv6 я использую провайдера туннелей gogo6/Freenet.

Что нам понадобится:

  1. Raspberry Pi с установленным Raspbian Wheezy.
  2. Соединение Raspberry Pi с маршрутизатором (с помощью кабеля или Wi-Fi).
  3. Соединение с Raspberry Pi по протоколу ssh
    (устанавливается командой ssh pi@ip_address)

Шаг 1: Подключитесь к Raspberry Pi по ssh и установите пакеты gogoc и radvd с помощью следующих команд.

sudo apt-get update
sudo apt-get install gogoc radvd

gogoc это клиент провайдера Freenet сети IPv6, а radvd используется для организации функций маршрутизатора.

Шаг 2: Теперь зарегистрируйтесь в gogoNET и войдите под своими учетными данными.

Шаг 3: После этого, получите учетные данные для организации туннеля. Обратите внимание, что учетные данные для туннеля Freenet6 отличаются от тех, которые получены при регистрации на сайте. Выберите сервер, который будет обслуживать туннель и создайте на нем нового пользователя и пароль для доступа к freenet6 туннелю IPv6.

Шаг 4: Откройте в редакторе файл конфигурации клиента gogo6.

sudo nano /etc/gogoc/gogoc.conf

Измените следующие строки:

userid= #tunnel user id from step 3
passwd= #tunnel password from step 3
server=montreal.freenet6.net or amsterdam.freenet6.net
auth_method=any
host_type=router
if_prefix=eth0

#используйте команду «ifconfig» чтобы уточнить название #инфтерфейса, обычно это eth0 или eth1 для проводной сети и wlan0 или wlan1 для #беспроводной.

dns_server=2001:4860:4860::8888
tunnel_mode=v6anyv4
log_console=0
log_stderr=1
log_file=1
log_syslog=0
log_filename=/var/log/gogoc/gogoc.log

Остальные параметры оставьте по умолчанию.

Шаг 5: Теперь перезапустите демона gogoc с помощью соответствующей команды.

to start:      sudo service gogoc start
to stop :      sudo service gogoc start
to restart:    sudo service gogoc restart

Эта команда поможет разобраться с возможными проблемами, связанными с обменом с сервером ключами шифрования:

sudo /usr/sbin/gogoc -n

Шаг 6: Запустите следующую команду:

ifconfig

Если клиент gogoc правильно сконфигурирован (шаг 4) и запущен, то команда покажет интерфейсы туннеля «tun» и адрес IPv6 присвоенный компьютеру.

Шаг 7: Теперь откройте файл журнала gogoc и найдите префикс сети, выделенной вам:

cat /var/log/gogoc/gogoc.log

Нужная запись выглядит как:

gogoc: Your IPv6 prefix is 2221:0222:1996:0000:0000:0000:0000:0000/56

если все работает правильно. Скопируйте ее. Если же адреса IPv6 в файле журнала не будет, то там будут сообщения об ошибках. Попробуйте подождать некоторое время и посмотреть снова.

Шаг 8: Включите маршрутизацию IPv6. Для этого, откройте на редактирование файл sysctl.conf с помощью этой команды:

sudo nano /etc/sysctl.conf

Раскомментируйте такую строчку, для этого уберите знак решётки «#» в начале строки:

net.ipv6.conf.default.forwarding=1

Шаг 9: Теперь время настроить radvd. Для этого запустите:

sudo nano /etc/radvd.conf

Вставьте в конфигурационный файл следующие строки:

interface eth0
{
   AdvSendAdvert on;
   prefix 2001:xxxx:xxxx::/64
   {
        AdvOnLink on;
        AdvAutonomous on;
   };
};

Замените eth0 названием того сетевого интерфейса, который хотите настроить. Это будет тот же интерфейс, который был на шаге 4 в параметре if_prefix или посмотрите вывод команды ifconfig. Чаще всего интерфейс называется eth0 или wan0.

Screenshot from 2013-03-03 15-15-00Также замените префикс в строке «prefix» на префикс выделенной вам сети, полученный на шаге 7.

prefix 2221:0222:1996:0000:0000:0000:0000:0000/56

Шаг 10: Теперь перезапустите radvd командой:

sudo service radvd restart

Шаг 11: Явным образом укажите IPv6 DNS в настойках сетевой конфигурации компьютера-клиента. Лучше всего использовать IPv6 DNS сервера Google.

IPv6 DNSКроме того, не указывайте IPv4 DNS, чтобы заставить компьютер использовать протокол IPv6.

IPv4 setting Ubuntu

В настройках IPv4 укажите «Получать адрес автоматически (DHCP)», но не получать адреса серверов DNS. Сайты с поддержкой только IPv4 тем не менее будут работать правильно, пользуясь DNS IPv6.

 

Теперь Raspberry Pi будет работать как маршрутизатор IPv6 с поддержкой туннеля (т.е. сможет работать в сетях с домашними маршрутизаторами с помощью Wi-Fi). Устройства на Android не всегда работают в сетях с поддержкой только одного протокола IPv6. Вы можете проверить, что ваши компьютеры используют протокол IPv6 с помощью этого сайта, сайта Google или многих других тестовых сайтов. Одним из основных преимуществ использования IPv6 является отсутствие необходимости проброса портов. Проверьте также, что ваш компьютер получает адрес IPv6 автоматически. Сегодня существуют сайты (например Google и Yahoo), которые считают IPv6 основным протоколом.

Оригинал статьи