Comcast IPv6 on OpenWrt — Kyle’s Wiki

Comcast is running IPv6 Trials, see [1].

You don’t have to use their custom image, the only thing special about it is their web interface add on.

Cоздаём свою прошивку open-wrt для tp-link tl-mr 3020

Needs

On openwrt you need a few extra packages to get a Comcast IPv6 tunnel running:

You can install these if you didn’t make a custom image:

opkg update opkg install ip kmod-sit radvd

Configuration

The first thing you will need is an init script to control it (call it /etc/init.d/comcast-ipv6):

#!/bin/sh /etc/rc.common START=42 STOP=88 WANIF=eth0.1 LANIF=br-lan SIXRDTUNIF=6rdtun SIXRDTUNMTU=1280 SIXRDTUNTTL=64 WANIP=`ip -4 addr show dev $WANIF | awk ‘/inet / {print $2}’ | cut -d/ -f 1` WANIPSPACED=`echo $WANIP | tr . ‘ ‘` ISP6RDPREFIX=’2001:55c’ ISP6RDPREFIXLEN=’32’ ISP6RDBR=69.252.80.66 LOCAL6PREFIX=`printf "$ISP6RDPREFIX:%02x%02x:%02x%02x" $WANIPSPACED` LOCAL6PREFIXLEN=64 start() { # Setup the tunnel interface ip tunnel add $SIXRDTUNIF mode sit ttl $SIXRDTUNTTL remote any local $WANIP # Set the MTU ip link set $SIXRDTUNIF mtu $SIXRDTUNMTU # Bring up the tunnel interface ip link set $SIXRDTUNIF up # Set the tunnel interface IPv6 address ip -6 addr add $LOCAL6PREFIX:0::1/$ISP6RDPREFIXLEN dev $SIXRDTUNIF # Set the LAN interface IPv6 address ip -6 addr add $LOCAL6PREFIX:1::1/$LOCAL6PREFIXLEN dev $LANIF # Set the default IPv6 route to the ISP’s IPv4/IPv6 boarder router ip -6 route add 2000::/3 via ::$ISP6RDBR dev $SIXRDTUNIF # Enable IPv6 Forwarding sysctl -w net.ipv6.conf.all.forwarding=1 > /dev/null } stop() { ip tunnel del $SIXRDTUNIF ip -6 addr del $LOCAL6PREFIX:1::1/$LOCAL6PREFIXLEN dev $LANIF }

Now enable it:

/etc/init.d/comcast-ipv6 enable

And try starting it:

/etc/init.d/comcast-ipv6 start

You should have a tunnel in ifconfig:

6rdtun Link encap:IPv6-in-IPv4 inet6 addr: 2001:55c:4c78:7f72::1/32 Scope:Global inet6 addr: ::76.120.127.114/128 Scope:Compat UP RUNNING NOARP MTU:1280 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

Radvd

Radvd is a program to advertise that your router has ipv6 capabilities to the rest of your computers on your lan.

Here is my /etc/config/radvd:

config interface option interface ‘lan’ option AdvSendAdvert 1 option AdvManagedFlag 0 option AdvOtherConfigFlag 0 option ignore 0 config prefix option interface ‘lan’ # If not specified, a non-link-local prefix of the interface is used option prefix » option AdvOnLink 1 option AdvAutonomous 1 option AdvRouterAddr 0 option ignore 0 config rdnss option interface ‘lan’ # If not specified, the link-local address of the interface is used option addr » option ignore 0

Again enable it and turn it on:

/etc/init.d/radvd enable /etc/init.d/radvd start

Firewall

TBD

Testing

First on the router, verify your connectivity:

ping6 ipv6.google.com

Now on your client, your ifconfig should look somewhat like this:

eth0 Link encap:Ethernet HWaddr 00:26:b9:01:f7:46 inet addr:10.0.2.242 Bcast:10.0.2.255 Mask:255.255.255.0 inet6 addr: 2001:55c:4c78:7f72:226:b9ff:fe01:f746/64 Scope:Global inet6 addr: fe80::226:b9ff:fe01:f746/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1953172 errors:0 dropped:0 overruns:0 frame:0 TX packets:2151712 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:679623830 (679.6 MB) TX bytes:985853705 (985.8 MB) Interrupt:17

Notice the ipv6 line. You can look at your route table with the ip -6 route command:

2001:55c:4c78:7f72::/64 dev eth0 proto kernel metric 256 expires 86016sec mtu 1500 advmss 1440 hoplimit 4294967295 fe80::/64 dev eth0 proto kernel metric 256 mtu 1500 advmss 1440 hoplimit 4294967295 default via fe80::8886:46ff:feb1:8d03 dev eth0 proto kernel metric 1024 expires 1416sec mtu 1500 advmss 1440 hoplimit 64

To verify, try another ping on your client computer:

ping6 ipv6.google.com

Вы находитесь здесь: version6.ru » 6to4 » 6to4: IPv6 для имеющих статический «белый» IPv4-адрес

6to4: IPv6 для имеющих статический «белый» IPv4-адрес

Если ваш провайдер не предоставляет IPv6, но при этом ваш IPv4-адрес статичен, т.е. не меняется никогда, или меняется крайне редко, самым простым и быстрым способом получить в дополнение к IPv4 подсеть IPv6-адресов для вас вероятнее всего будет механизм под названием 6to4.

Этот способ хорошо подходит для разного рода серверов (включая как dedicated-сервера, так и варианты VDS/VPS, разрешающие добавлять сетевые туннели), на которых размещены ///почтовые/радио/видео- и прочие сервисы. 6to4 позволит с минимальными затратами труда и времени сделать всё это доступным и по IPv6 – достаточно лишь настроить его и добавить в AAAA-записи, указывающие на только что полученный 6to4-адрес.

Хотя IPv4-адрес для работы 6to4 нужен всего один, он даст вам IPv6-подсеть с префиксом /48 (это 280 адресов), чего хватит для любой, даже самой большой в мире «локалки». 🙂 Благодаря этому, 6to4 можно использовать и для раздачи IPv6-интернета всей локальной сети, находящейся за (подконтрольным вам) роутером, с единственным статическим IPv4.

Вообще говоря, 6to4 можно использовать и с динамическим IPv4-адресом, но так как получаемые с помощью него адреса генерируются из IPv4 (и при его смене также, меняются) – это довольно неудобно, так что на динамическом адресе лучше обратить внимание на туннели, выдаваемые брокерами.

Преимущества

У 6to4 есть три преимущества над другими способами тунеллирования IPv6:

  • Чтобы его настроить, не нужно нигде регистрироваться, и вообще, делается это крайне просто и быстро;

  • Связь по IPv6 между любыми двумя машинами, использующими 6to4, осуществляется напрямую – без посредников в виде каких-либо шлюзов или туннельных серверов;

  • Ближайший шлюз, через который пакеты будут направляться другим пользователям IPv6, выбирается полностью автоматически.

Недостатки

  • Ближайший шлюз, через который пакеты будут направляться другим пользователям IPv6, выбирается полностью автоматически.

    OpenWrt native IPv6-stack

    🙂
    Одно из достоинств одновременно является и недостатком. Иногда может статься, что автоматически выбранный шлюз плохо функционирует, перегружен, либо просто не работает. При этом не всегда очевидно, от кого и на каком основании можно требовать исправления этих проблем. Хотя подобные случаи и весьма редки, этот момент заставляет многих предпочитать конфигурируемые вручную туннели от туннельного брокера, где всегда чётко известны контакты техподдержки, которую можно побеспокоить в случае проблем с используемым вами туннельным сервером.

Системные требования

Проверьте, есть ли у вас доступ к IPv4-адресу (например с помощью ). Если этот адрес не пингуется, вероятнее всего у вашего Интернет-провайдера что-то всерьёз «не так» настроено, и в этом случае 6to4 с автоматическим выбором шлюза работать не будет. Лучше обратить внимание на какой-нибудь другой способ получения IPv6.

Как установить 6to4?

Достаточно зайти на страницу с одним из генераторов настроек, ввести свой IPv4-адрес – и получить готовые команды, после ввода которых в командную строку вашей ОС (или в один из её конфигурационных файлов), 6to4 будет полностью готов к использованию.

Генераторы 6to4-настроек:

  • debian6to4.gielen.name – для Debian GNU/Linux;

  • 6to4.version6.ru – настройки для Debian, Ubuntu и аналогов (с использованием «родного» для этих ОС способа управления сетевыми интерфейсами через файл ), а также для FreeBSD и Windows.

После применения сгенерированных настроек, проверьте, чему равен MTU созданного 6to4-интерфейса. В силу расходов на инкапсуляцию IPv6-пакета в IPv4, MTU должен быть на 20 байт меньше, чем MTU находящегося уровнем ниже IPv4-интерфейса. Изменить MTU в GNU/Linux можно с помощью команды .

Как проверить?

После выполнения выданых генератором настроек инструкций, на вашей машине должен появиться полноценный доступ в IPv6-интернет. Проверить можно, пропинговав Google по IPv6 (для Windows, команда будет не , а ):

$ ping6 ipv6.google.com PING ipv6.google.com(2a00:1450:8001::6a) 56 data bytes 64 bytes from 2a00:1450:8001::6a: icmp_seq=1 ttl=56 time=92.8 ms 64 bytes from 2a00:1450:8001::6a: icmp_seq=2 ttl=56 time=96.0 ms 64 bytes from 2a00:1450:8001::6a: icmp_seq=3 ttl=56 time=94.6 ms 64 bytes from 2a00:1450:8001::6a: icmp_seq=4 ttl=56 time=92.7 ms ^C — ipv6.google.com ping statistics — 4 packets transmitted, 4 received, 0% packet loss, time 3004ms rtt min/avg/max/mdev = 92.790/94.100/96.097/1.368 ms

Если всё работает, поздравляю! Самое время настроить файрвол и раздать IPv6 в локальную сеть.

Если же не получается,

Ссылки

Настройка записи обратного (PTR) для 6to4-адресов:

Прочие инструкции и информация о 6to4:

6to4/howto.txt · Последние изменения: 2017-09-15 11:01 UTC От rm

Структура адреса IPv6

2001:0DB8:3C4D:7777:0260:3EFF:FE15:9501 /64 |————-|—-|——————| global subnet interface-id

При этом части глобального префикса имеют следующие порции

200 — IANA

10D — registrar

B8 — ISP

3C4D — ISP’s customer/site

Конечным пользователям рекомендуется использовать подсети /64, как стандарт.

Мультикаст адреса начинаются на FF

FF00::/8

Лупбэк ipv6

::1

Link-local адреса. Используются на линке для связи с соседним устройством. Дальше маршрутизатора не проходят.

FE80::X /10

Нулевой и последний адрес в сети можно использовать для хостов, т.к. в ipv6 нет броадкаста.

Поскольку броадкаста нет, любой интерфейс ipv6 обязан зарегистрироваться в служебных мультикаст группах:

FF02::1 — All Nodes

Адрес «все узлы» используется вместо броадкаста.

FF02:0:0:0:0:1:FF00::/104 — Solicited Node

к этому адресу справа дописывают 24 младших бита юникаст адреса интерфейса. Адрес «запрошенный узел» создается для каждого юникаст адреса интерфейса и используется в процессе Neighbor Discovery.

ULA адреса FD00::/8 — Unique Local Address

Scopes

NDP

Вместо ARP протокола используется Neighbor Discovery Protocol — NDP (RFC4861). При поиске мак-адреса хоста ipv6 запускает ICMPv6 Nighbor Solicitation сообщение. Удаленный узел на него отвечает. Результаты ND кладутся в кэш.

IPv6 на маршрутизаторах cisco IOS

Включить ipv6 маршрутизацию (по-умолчанию выключена)

ipv6 unicast-routing

Задать ipv6-адрес на интерфейсе int fa 0/0

ipv6 address 2001:DB8:3C4D:7777::123/64

Задать адрес в формате EUI-64

int fa 0/0 ipv6 address 2001:DB8:3C4D:7777::/64 eui-64

В данном примере на интерфейс назначится глобально-маршрутизируемый адрес: из пула IANA — 200, тестовый регистратор — 10D, провайдер B8, клиент — 3С4В, подсеть — 7777, длина префикса /64, идентификатор интерфейса будет назначен как EUI-64 (дополненный мак-адрес).

В ipv6 нет броадкаст адресов, зато каждый ipv6 интерфейс автоматически участвует в нескольких мультикаст группах

sh ipv6 int fa 0/0

Просмотр таблицы ipv6 маршрутов

sh ipv6 route

Как и в случае с ipv4, туда автоматом попадают directly connected сети.

Пинг обычный

ping 2001:DB8:3C4D:7777:260:3EFF:FE15:9501

Посмотреть кэш соответствий IPv6-MAC можно командой

sh ipv6 neighbor

Статические маршруты прописываются, как обычно, в формате префикс-шлюз:

ipv6 route 2001:DB8:3C4D:10::/64 2001:DB8:3C4D:7777:230:A3FF:FE60:8101

OSPFv3

Для запуска OSPFv3 в ipv6 требуется включать ospf глобально и на интерфейсах.

Router-id требуется указать вручную, если на маршрутизаторе нет ipv4 адресов.

ipv6 router ospf 777 router-id 7.7.7.0 passive-interfase fa0/1

Чтобы сеть анонсировалась, надо на интерфейсе указать принадлежность ospf процессу и area. Чтобы с интерфейса не рассылались анонсы, этот интерфейс надо прописать как passive при настройке ospf процесса.

int fa 0/0 ipv6 ospf 777 area 0 int fa 0/1 ipv6 ospf 777 area 0

DNS для IPv6

AAAA

Автоконфигурация

ipv6 general-prefix

NDP

DAD — Duplicate Address Detection

SLAAC

DHCPv6 — можно задать адрес, но нет концепции шлюза. Можно выдать адрес DNS-сервера.

DHCPv6-PD — делегирование префикса: клиент получает в свое распоряжение префикс из диапазона провайдера, провайдер автоматом устанавливает статический маршрут на этого клиента.

RA — анонс маршрутизатора: указывает клиенту префикс сети, в котором он находится.

OpenWRT IPv6: Konfigurasi

Можно разрешить или запретить использование клиентом DHCPv6/SLAAC. Нельзя выдать адрес DNS-сервера.

RD

Методы миграции на IPv6

Dual-stack

tunnels

NAT64, NAT46

DNS64

sh ipv6 int vlan XX

Добавить комментарий

Закрыть меню