IPv6

Вопросы по настройке, сообщения о неполадках и др.

Модератор: Администрация сайта

ASPtr
Сообщения: 6
Зарегистрирован: Вт фев 15, 2011 20:48

IPv6

Сообщение ASPtr » Пт ноя 01, 2013 13:15

Собственно, предоставляет ли Подряд IPv6 адрес?
Если нет, то планируется ли?

sega
Сообщения: 65
Зарегистрирован: Вт окт 22, 2013 20:23
Откуда: Владивосток

Re: IPv6

Сообщение sega » Сб ноя 02, 2013 12:47

Присоединяюсь к вопросу.

И можно ли получить IPv6 в тестовом режиме уже сейчас хотя бы через 6rd или 6to4 или ещё через какой-нибудь туннель?

Аватара пользователя
Zar1n
Сотрудник
Сообщения: 277
Зарегистрирован: Ср янв 11, 2012 14:33

Re: IPv6

Сообщение Zar1n » Сб ноя 02, 2013 16:25

Пока нет. Работаем над этим.
Основным тормозом является отсутствие абонентского железа, которое имеет нормальную реализацию IPv6. (в основном кривая работа Prefix Delegation механизма)

Ну и ограничения, с выдачей IPv6 на PPP соединение. (а точнее, кривая работа этого механизма ос семейства виндовс)

sega
Сообщения: 65
Зарегистрирован: Вт окт 22, 2013 20:23
Откуда: Владивосток

Re: IPv6

Сообщение sega » Вс ноя 03, 2013 01:48

http://version6.ru/isp - тут вроде нормально провайдеры выдают через L2TP... Может, просто включить в тестовом режиме, а клиенты - кому надо - сами обновят железо или ОС? Зачем ждать, если можно получить конкурентное преимущество прямо сейчас?

Аватара пользователя
Zar1n
Сотрудник
Сообщения: 277
Зарегистрирован: Ср янв 11, 2012 14:33

Re: IPv6

Сообщение Zar1n » Вс ноя 03, 2013 17:49

Есть мысли включить на тест. )) но пока времени нет, заниматься.

sega
Сообщения: 65
Зарегистрирован: Вт окт 22, 2013 20:23
Откуда: Владивосток

Re: IPv6

Сообщение sega » Пн ноя 04, 2013 10:07

Спасибо за хорошую новость, значит будем ждать. Надеюсь, что не затянется :)

Аватара пользователя
Zar1n
Сотрудник
Сообщения: 277
Зарегистрирован: Ср янв 11, 2012 14:33

Re: IPv6

Сообщение Zar1n » Пн ноя 04, 2013 15:16

sega писал(а):Спасибо за хорошую новость, значит будем ждать. Надеюсь, что не затянется :)
VPN сервер на котором выдаются IPv6 - 192.168.158.220. Используется механиз DHCPv6 + PD. Префиксы размером /58

P.S у меня дома микротик, пришлось поломать голову, чтобы заработал IPv6 :(( что будет у остальных, даже не знаю.

В домашнюю сетку отдается через ND RA

Аватара пользователя
Zar1n
Сотрудник
Сообщения: 277
Зарегистрирован: Ср янв 11, 2012 14:33

Re: IPv6

Сообщение Zar1n » Пн ноя 04, 2013 15:20

Код: Выделить всё

C:\Users\Zarin>tracert 2001:4860:4860::8844

Трассировка маршрута к google-public-dns-b.google.com [2001:4860:4860::8844]
с максимальным числом прыжков 30:

  1     1 ms     1 ms    <1 мс  2a03:200:10:40::
  2     2 ms     1 ms     1 ms  2a03:200:3::1
  3     2 ms     2 ms     2 ms  2a03:200:100:1::1
  4     1 ms     1 ms     4 ms  2a03:200:100::1
  5     2 ms     2 ms     1 ms  2a03:200:2::1
  6   307 ms   171 ms   117 ms  2a01:620:1:2001::1
  7   125 ms   121 ms   121 ms  2a01:620:1:2001::2
  8   131 ms   131 ms   131 ms  2001:4860::1:0:2ab1
  9   144 ms   144 ms   135 ms  2001:4860::8:0:26e6
 10   134 ms   133 ms   133 ms  2001:4860::2:0:2aaf
 11     *        *        *     Превышен интервал ожидания для запроса.
 12   312 ms   142 ms   135 ms  google-public-dns-b.google.com [2001:4860:4860::8844]

Код: Выделить всё

Адаптер беспроводной локальной сети Беспроводное сетевое соединение 3:

   DNS-суффикс подключения . . . . . :
   Описание. . . . . . . . . . . . . : D-Link DWA-547 RangeBooster N650 Desktop Adapter
   Физический адрес. . . . . . . . . : 00-21-91-04-C6-58
   DHCP включен. . . . . . . . . . . : Да
   Автонастройка включена. . . . . . : Да
   IPv6-адрес. . . . . . . . . . . . : 2a03:200:10:40:6042:80eb:7570:86c0(Основной)
   Временный IPv6-адрес. . . . . . . : 2a03:200:10:40:a0cf:7d8d:effb:88ab(Основной)
   Локальный IPv6-адрес канала . . . : fe80::6042:80eb:7570:86c0%34(Основной)
   IPv4-адрес. . . . . . . . . . . . : 192.168.88.252(Основной)
   Маска подсети . . . . . . . . . . : 255.255.255.0
   Аренда получена. . . . . . . . . . : 4 ноября 2013 г. 14:44:06
   Срок аренды истекает. . . . . . . . . . : 7 ноября 2013 г. 14:44:06
   Основной шлюз. . . . . . . . . : fe80::d6ca:6dff:fe7f:dc33%34
                                       192.168.88.1
   DHCP-сервер. . . . . . . . . . . : 192.168.88.1
   DNS-серверы. . . . . . . . . . . : 192.168.88.1
   NetBios через TCP/IP. . . . . . . . : Включен

Код: Выделить всё

Your Internet help desk may ask you for the information below.

Dual Stack

IPv4: Good, AS196949 - PODRYAD-AS Kozitskiy A.M. PI
IPv6: Good, AS196949 - PODRYAD-AS Kozitskiy A.M. PI
OtherSites: 45/46 good, 1/46 bad
IPv4 address: 109.110.33.188
IPv6 address: 2a03:200:10:40:a0cf:7d8d:effb:88ab
Site(s) with failed connectivity

Site	Failed URL
ipv6.test-ipv6.jp	http://ipv6.test-ipv6.jp/images-nc/knob_valid_green.png

sega
Сообщения: 65
Зарегистрирован: Вт окт 22, 2013 20:23
Откуда: Владивосток

Re: IPv6

Сообщение sega » Вт ноя 05, 2013 13:10

Большое спасибо, всё отлично работает!! Ещё бы прописать PTR-ы в трейсе для солидности... :))

Есть пара вопросов:
1) Это работает только для Владивостока или в других городах тоже (перечислите города, пожалуйста)?
2) Префикс статично привязан к номеру договора или изменится при потере DHCPv6 DUID?

Аватара пользователя
Zar1n
Сотрудник
Сообщения: 277
Зарегистрирован: Ср янв 11, 2012 14:33

Re: IPv6

Сообщение Zar1n » Вт ноя 05, 2013 15:27

sega писал(а):Большое спасибо, всё отлично работает!! Ещё бы прописать PTR-ы в трейсе для солидности... :))

Есть пара вопросов:
1) Это работает только для Владивостока или в других городах тоже (перечислите города, пожалуйста)?
2) Префикс статично привязан к номеру договора или изменится при потере DHCPv6 DUID?
1. Владивосток, Артем и поселки спутники (Новый, Надежденский)
2. Выдается динамически из пула. Пока нет возможности привязаться статично. Радиус нашего биллинга очень не торт )

P.S Что у вас в качестве CPE ?

sega
Сообщения: 65
Зарегистрирован: Вт окт 22, 2013 20:23
Откуда: Владивосток

Re: IPv6

Сообщение sega » Ср ноя 06, 2013 14:35

Zar1n писал(а):P.S Что у вас в качестве CPE ?
Просто комп под управлением Ubuntu 12.04, который раздаёт инет в локалку через вторую сетевуху.

Пока что настроил только получение префикса; на компах в локалке назначаю адреса статично. Вот конфиг (возможно, кому-то пригодится):


1) -----------------
1.а) В настройках L2TP-клиента указываем адрес сервера 192.168.158.220
Для xl2tpd это делается такой строкой:

Код: Выделить всё

lns = 192.168.158.220
1.б) В опциях для pppd добавляем такие две строчки:

Код: Выделить всё

+ipv6
ipv6cp-accept-local
После этого переустанавливаем VPN-соединение с провайдером и смотрим вывод команды 'ifconfig ppp0' (или какой там у вас интерфейс появляется при соединении). Если в выводе появилась строка 'inet6 addr: fe80::.......', значит всё в порядке - можно настраивать дальше.


2) -----------------
2.а) Разрешить маршрутизацию IPv6 пакетов (не забудьте добавить соответствующую опцию в /etc/sysctl.conf):

Код: Выделить всё

sysctl -w net.ipv6.conf.all.forwarding=1
2.б) Установите пакет wide-dhcpv6-client:

Код: Выделить всё

aptitude install wide-dhcpv6-client
после установки вас попросят указать имя интерфейса, введите там интерфейс VPN-а (у меня это ppp0)

2.в) Добавьте в конец файла /etc/wide-dhcpv6/dhcp6c.conf такие параметры:

Код: Выделить всё

interface ppp0 { # <--- вместо ppp0 укажите интерфейс своего впн-соединения
    send ia-pd 0;
    script "/etc/wide-dhcpv6/dhcp6c-script";
};

id-assoc pd 0 {
  prefix-interface eth0 { # <-- вместо eth0 укажите интерфейс, который у вас смотрит в локальную сеть
    # выделяем блок /64 для нашей локальной сети:
    sla-len 6; # кол-во бит, которые нужно прибавить к выдаваемому префиксу (58 в нашем случае), чтобы получить 64
    sla-id 1;  # номер подсети; должен укладываться в кол-во бит, которые мы определили в sla-len (т.е. от 0 до 63 в нашем случае)
    ifid 1;    # число для генерации нашего адреса на этом интерфейсе (в нашем случае будет [2a03:200:????:????::1]);
               # если не указать, то адрес сгенерится автоматом из MAC-адреса сетевой карты и будет менее красивым
  };
};
2.г) Дайте команду, чтобы разрешить системе получать информацию о маршрутизаторе по умолчанию (ppp0 замените на свой интерфейс):

Код: Выделить всё

sysctl -w net.ipv6.conf.ppp0.accept_ra=2
2.д) Теперь можно перезапустить DHCPv6-клиент:

Код: Выделить всё

/etc/init.d/wide-dhcpv6-client restart
и проверить, что всё работает:

Код: Выделить всё

ifconfig
ip -6 a
ip -6 r
traceroute6 ipv6.yandex.ru
traceroute -6 ipv6.google.com
ping6 ip.v6net.ru
Если всё работает, значит двигаемся дальше.


3) -----------------
После перезапуска компьютера DHCPv6-клиент у меня не запустился, т.к. его надо запускать после поднятия VPN-соединения. И команду 'sysctl -w net.ipv6.conf.ppp0.accept_ra=2' тоже надо давать только после поднятия соединения. Если вы столкнулись с такой же проблемой, то сделайте следующее:
3.а) Создайте скрипт /etc/ppp/ipv6-up.d/dhcp6c-up и сделайте его исполняемым:

Код: Выделить всё

#!/bin/sh
# Updates information whenever a network interface is brought up.

[ -r /etc/default/wide-dhcpv6-client ] || exit 0
[ -x /usr/sbin/dhcp6ctl ] || exit 0

# Check if dhcp6c is running
pidof dhcp6c > /dev/null 2>&1 ; [ $? -eq 1 ] &&  /etc/init.d/wide-dhcpv6-client start

. /etc/default/wide-dhcpv6-client

for i in $INTERFACES ; do
    if [ "$PPP_IFACE" = "$i" ] ; then
        /usr/sbin/dhcp6ctl -C start interface $PPP_IFACE
        /sbin/sysctl -w net.ipv6.conf.${PPP_IFACE}.accept_ra=2
        exit 0
    fi
done
3.б) Создайте скрипт /etc/ppp/ipv6-down.d/dhcp6c-down и сделайте его исполняемым:

Код: Выделить всё

#!/bin/sh
# Updates information whenever a network interface is brought down.

[ -r /etc/default/wide-dhcpv6-client ] || exit 0
[ -x /usr/sbin/dhcp6ctl ] || exit 0

# Check if dhcp6c is running
pidof dhcp6c > /dev/null 2>&1 ; [ $? -eq 1 ] && exit 0

. /etc/default/wide-dhcpv6-client

for i in $INTERFACES ; do
    if [ "$PPP_IFACE" = "$i" ] ; then
        /usr/sbin/dhcp6ctl -C stop interface $PPP_IFACE
        exit 0
    fi
done
После этого снова перезагружайтесь и проверяйте что всё завелось само.

sega
Сообщения: 65
Зарегистрирован: Вт окт 22, 2013 20:23
Откуда: Владивосток

Re: IPv6

Сообщение sega » Вс ноя 24, 2013 19:35

Дошли руки настроить автоматическую раздачу адресов в локальную сеть (через SLAAC). Получилось немного костыльно, но перекантоваться до появления статического префикса вполне пойдёт.

Проверялось на Ubuntu 12.04. Предполагается, что получение префикса по DHCPv6 вы уже настроили по инструкции постом выше.

1) -----------------
Создайте скрипт /etc/wide-dhcpv6/dhcp6c-script+radvd и сделйте его исполняемым:

Код: Выделить всё

#!/bin/sh
# dhcp6c-script for Debian/Ubuntu. Jérémie Corbier, April, 2006.
# resolvconf support by Mattias Guns, May 2006.
# radvd support by sega, November 2013.

LOCAL_INTERFACE="eth0"; # <-- вместо eth0 укажите интерфейс, который у вас смотрит в локальную сеть
PROVIDER_PREFIX="2a03:200::/32"; # <-- префикс вашего провайдера, клиентам Подряда менять не нужно

# ------------------------------------------------

RESOLVCONF="/sbin/resolvconf";
[ -f /etc/default/wide-dhcpv6-client ] && . /etc/default/wide-dhcpv6-client;
new_domain_name_servers=$new_domain_name_servers;"

if [ -n "$new_domain_name" -o -n "$new_domain_name_servers" ]; then
    old_resolv_conf=/etc/resolv.conf
    new_resolv_conf=/etc/resolv.conf.dhcp6c-new
    rm -f $new_resolv_conf
    if [ -n "$new_domain_name" ]; then
        echo search $new_domain_name >> $new_resolv_conf
    fi
    if [ -n "$new_domain_name_servers" ]; then
        for nameserver in $new_domain_name_servers; do
            # No need to add an already existing nameserver
            res=$(grep "nameserver $nameserver" $old_resolv_conf)
            if [ -z "$res" ]; then
                echo nameserver $nameserver >> $new_resolv_conf
            fi
        done
    fi

    # Use resolvconf if available
    if [ -h "$old_resolv_conf" -a -x "$RESOLVCONF" ]; then
        for IFACE in $INTERFACES; do
        {
            #cat $new_resolv_conf | $RESOLVCONF -a $IFACE
            for nameserver in $new_domain_name_servers; do
                echo nameserver $nameserver
            done
            echo search $new_domain_name
        } | $RESOLVCONF -a $IFACE
        done
    else
        # To preserve IPv4 informations...
        cat $old_resolv_conf >> $new_resolv_conf
        chown --reference=$old_resolv_conf $new_resolv_conf
        chmod --reference=$old_resolv_conf $new_resolv_conf
        mv -f $new_resolv_conf $old_resolv_conf
    fi
fi



#############################
##  Generate radvd config  ##
#############################

(

new_prefix=$(ip -6 r l root $PROVIDER_PREFIX |grep "dev $LOCAL_INTERFACE" |cut -f1 -sd" ");
x=0;
until ( [ $new_prefix ] || [ $x -ge 7 ] );
do
  $(/etc/init.d/radvd stop);
  x=$(($x+1));
  sleep 0.2;
  new_prefix=$(ip -6 r l root $PROVIDER_PREFIX |grep "dev $LOCAL_INTERFACE" |cut -f1 -sd" ");
done;

{

echo "
interface $LOCAL_INTERFACE
{
  AdvSendAdvert on;
  AdvManagedFlag off;
  AdvOtherConfigFlag off;
  AdvLinkMTU 1500;

  MinRtrAdvInterval 30;
  MaxRtrAdvInterval 100;

  prefix $new_prefix {
    AdvOnLink on;
    AdvAutonomous on;
    AdvRouterAddr on;

#   Время валидности адреса для уже установленных соединений - 24 часа (86400 секунд) с момента последнего анонса от роутера:
    AdvValidLifetime 86400;
#   Адрес можно использовать для новых соединений в течении 1,5 часа (5400 секунд) с момента последнего анонса от роутера:
    AdvPreferredLifetime 5400;
    DeprecatePrefix on;
#    DecrementLifetimes on;
  };
";

if [ $new_domain_name_servers ]; then echo "  RDNSS $new_domain_name_servers {  };"; fi

fixed_domain_name=$( for i in $new_domain_name; do echo -n $i |sed 's/\.$//; s/$/ /'; done );
if [ $fixed_domain_name ] ; then echo "  DNSSL $fixed_domain_name {  };"; fi
echo "
};
";

} | cat > /etc/wide-dhcpv6/radvd-autogenerated.conf

if [ $new_prefix ]; then
  $(/etc/init.d/radvd reload || /etc/init.d/radvd start);
else
  $(/etc/init.d/radvd stop);
fi;

) &

exit 0;
2) -----------------
Замените в конфиге /etc/wide-dhcpv6/dhcp6c.conf в секции "interface ppp0" (или не ppp0, если вы заменили имя интерфейса при настройке (см. предыдущий пост)):

Код: Выделить всё

script "/etc/wide-dhcpv6/dhcp6c-script";
на строчку

Код: Выделить всё

script "/etc/wide-dhcpv6/dhcp6c-script+radvd";
(если сомневаетесь, то можно заменить все вхождения этой строчки).

3) -----------------
Установите radvd:

Код: Выделить всё

aptitude install radvd
4) -----------------
Создайе символическую ссылку на конфиг для radvd, который генерируется нашим скриптом:

Код: Выделить всё

ln -s /etc/wide-dhcpv6/radvd-autogenerated.conf /etc/radvd.conf
5) -----------------
Перезапустите DHCPv6-клиент:

Код: Выделить всё

/etc/init.d/wide-dhcpv6-client restart
Всё, устройства в локальной сети должны начать получать адреса IPv6. Если этого не происходит - посмотрите запущены ли процессы dhcp6c и radvd, и смотрите логи.

vakcina
Сообщения: 9
Зарегистрирован: Пн дек 09, 2013 20:22

Re: IPv6

Сообщение vakcina » Ср дек 11, 2013 20:58

можно ли сделать инструкцию по настройке клиентского роутера, чтобы он получал сразу IPv6 ?

sega
Сообщения: 65
Зарегистрирован: Вт окт 22, 2013 20:23
Откуда: Владивосток

Re: IPv6

Сообщение sega » Сб дек 14, 2013 18:29

vakcina: А о каком именно роутере идёт речь? Вообще, сейчас поддержка IPv6 ещё редко встречается в дешёвых роутерах. Надо покупать железку тысяч за 5 и больше, либо ждать соответствующей прошивки для своего роутера.

Если говорить более конкретно, то говорят что на сегодняшний день нормальная поддержка IPv6 в следующих моделях:
ASUS RT-N56U
ASUS RT-N66U
(список далеко не полный, разумеется)

А также:
- Прошивка OpenWrt: http://wiki.openwrt.org/doc/howto/ipv6
- Прошивка dd-wrt: http://www.dd-wrt.com/wiki/index.php/IPv6

vakcina
Сообщения: 9
Зарегистрирован: Пн дек 09, 2013 20:22

Re: IPv6

Сообщение vakcina » Вт дек 17, 2013 13:47

sega : да, у нас именно модель ASUS RT-N66U,
значит вы сможете сделать для неё инструкцию ?

Ответить