IPv6

17.14. IPv6

Первоначальный текст написалAaron Kaplan. Реструктуризацию и добавления внёсTom Rhodes.

IPv6 (также называемый IPng "IP next generation" - следующее поколение IP) является новой версией широко известного протокола IP (называемого также IPv4). Как и другие современные системы *BSD, FreeBSD включает эталонную реализацию IPv6 от KAME. Так что система FreeBSD поставляется со всем, что вам нужно для экспериментирования с IPv6. Этот раздел посвящёен настройке и запуску в работу IPv6.

В начале 1990-х люди стали беспокоиться о быстро иссякающем адресном пространстве IPv4. Принимая во внимание темпы роста Интернет, имелись основные проблемы:

  • Нехватка адресов. Сегодня это не такая большая проблема, так как стали применяться адресные пространства для частных сетей (10.0.0.0/8, 192.168.0.0/24 и так далее) и преобразование адресов natd.

  • Таблицы маршрутов становятся всё больше. Это всё ещё является проблемой сегодня.

IPv6 решает эти и многие другие вопросы:

  • 128-битное адресное пространство. Другими словами, теоретически доступны 340,282,366,920,938,463,463,374,607,431,768,211,456 адреса. Это означает плотность примерно в 6.67 * 10^27 адресов IPv6 на квадратный метр нашей планеты.

  • Маршрутизаторы будут хранить в своих талицах только агрегированные адреса сетей, что уменьшает средний размер таблицы маршрутизации до 8192 записей.

Имеется также множество других полезных особенностей IPv6, таких, как:

  • Автоматическая настройка адреса (RFC2462)

  • Групповые адреса ("один к нескольким из многих")

  • Обязательные адреса множественной рассылки

  • IPSec (IP Security - безопасный IP)

  • Упрощённая структура заголовка

  • Мобильный IP

  • Механизмы преобразования IPv4-в-IPv6

Для получения дополнительной информации посмотрите:

17.14.1. Основы адресации IPv6

Существуют различные типы адресов IPv6: одноадресные (Unicast), групповые (Anycast) и многоадресные (Multicast).

Адреса типа Unicast хорошо всем известны. Пакет, посланный на такой адрес, достигает в точности интерфейса, который этому адресу соответствует.

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

Адреса типа Multicast идентифицируют группу интерфейсов. Пакет, посланный на такой адрес, достигнет всех интерфейсов, привязанных к группе многоадресного вещания.

Note: Широковещательные адреса IPv4 (обычно xxx.xxx.xxx.255) выражаются адресами многоадресного вещания IPv6.

Зарезервированные адреса IPv6:

    ipv6-address         prefixlength(Bits)        description        Notes

            ::                        128 Bits      unspecified cf. 0.0.0.0 in IPv4
                                                             address
            ::1                        128 Bits      loopback address cf. 127.0.0.1
                                                              in IPv4
            ::00:xx:xx:xx:xx        96 Bits         embedded IPv4       The lower
               32 bits are
             the     address        IPv4 address. Also called
                                                                    "IPv4 compatible
IPv6
                                                                address"
            ::ff:xx:xx:xx:xx        96 Bits                IPv4 mapped     The
            lower 32
                                                       bits are the
                                                    IPv6 address        IPv4 address.
                                                                   For hosts
                                                                    which do not
                                                                      support IPv6
            fe80:: - feb::                10 Bits                link-local
            cf. loopback address in
                                                    IPv4
            fec0:: - fef::                10 Bits                site-local
            ff::                        8 Bits                multicast
            001 (base 2)                3 Bits                global unicast
            All global unicast

                                                                    addresses are
                                                                    assigned from

                                                                    this pool.
                                                                    The first 3 Bits
                                                                    are "001".

17.14.2. Чтение адресов IPv6

Каноническая форма представляется в виде x:x:x:x:x:x:x:x, где каждый символ "x" является 16-битовым шестнадцатиричным числом. К примеру, FEBC:A574:382B:23C1:AA49:4592:4EFE:9982

Часто в адресе присутствуют длинные строчки, заполненные нулями, поэтому каждая такая последовательность может быть сокращена до "::". К примеру, fe80::1 соответствует канонической форме fe80:0000:0000:0000:0000:0000:0000:0001

В третьей форме последние 32 бита записываются в широко известном (десятичном) стиле IPv4 с точками "." в качестве разделителей. Например, 2002::10.0.0.1 соответствует (шестнадцатиричному) каноническому представлению 2002:0000:0000:0000:0000:0000:000a:0001, которое, в свою очередь, равнозначно записи 2002::a:1

Теперь читатель должен понять следующую запись:

    # ifconfig
    rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
             inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255
             inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1
             ether 00:00:21:03:08:e1
             media: Ethernet autoselect (100baseTX )
             status: active

fe80::200:21ff:fe03:8e1%rl0 является автоматически отконфигурированным локальным адресом. В него входит MAC-адрес Ethernet.

Для получения дополнительной информации о структуре адресов IPv6 обратитесь к RFC2373

17.14.3. Настройка подключения

На данный момент существуют четыре способа подключиться к другим хостам и сетям IPv6:

  • Подключиться к эскпериментальному 6bone

  • Получить сеть IPv6 от вышестоящего провайдера. Для получения рекомендаций обратитесь к вашему провайдеру Интернет.

  • Туннелировать посредством 6-в-4

  • Использовать порт freenet6, если вы используете коммутируемое соединение.

Здесь мы будем рассматривать подключение к 6bone, так как на данный момент это является самым популярным способом.

Сначала взгляните на сайт 6bone и найдите ближайшую к вам точку подключения к 6bone. Напишите ответственному и при некоторой удаче вам дадут инструкции по настройке соединения. Обычно это касается настройки туннеля GRE (gif).

Вот типичный пример настройки туннеля gif(4):

    # ifconfig create gif0
    # ifconfig gif0
    gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
    # ifconfig tunnel MY_IPv4_ADDR  HIS_IPv4_ADDR
    # ifconfig gif0 inet6 alias MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR

Замените слова, написанные заглавными буквами, информацией, которую вам дал вышестоящий узел 6bone

При этом установится туннель. Проверьте работу туннеля утилитой ping6(8) с адресом ff02::1%gif0. Вы должны получить два положительных ответа.

Note: Если вы заинтригованы адресом ff02:1%gif0, скажем, что это адрес многоадресного вещания. %gif0 указывает на использование такого адреса с сетевым интерфейсом gif0. Так как мы выполняем ping над адресом многоадресного вещания, то другая сторона туннеля также должна ответить).

Теперь настройка маршрута к вашей вышестоящей точке подключения 6bone должна быть весьма проста:

    # route add -inet6 default -interface gif0
    # ping6 -n MY_UPLINK
    # traceroute6 www.jp.freebsd.org
    (3ffe:505:2008:1:2a0:24ff:fe57:e561) from 3ffe:8060:100::40:2, 30 hops max,
12 byte packets
         1  atnet-meta6  14.147 ms  15.499 ms  24.319 ms
         2  6bone-gw2-ATNET-NT.ipv6.tilab.com  103.408 ms  95.072 ms *
         3  3ffe:1831:0:ffff::4  138.645 ms  134.437 ms  144.257 ms
         4  3ffe:1810:0:6:290:27ff:fe79:7677  282.975 ms  278.666 ms  292.811 ms
         5  3ffe:1800:0:ff00::4  400.131 ms  396.324 ms  394.769 ms
         6  3ffe:1800:0:3:290:27ff:fe14:cdee  394.712 ms  397.19 ms  394.102 ms

Эта выдача будет отличаться от машины к машине. Теперь вы должны суметь достигнуть сайта IPv6 www.kame.net и увидеть танцующую черепаху - в случае, если ваш браузер поддерживает IPv6, как, например, mozilla+ipv6.

17.14.4. DNS в мире IPv6

Для IPv6 имеются два новых типа записей DNS:

  • Записи AAAA,

  • A6records

Использование записей AAAA достаточно просто. Назначение вашему имени хоста нового адреса IPv6 достигается просто добавлением:

    MYHOSTNAME           AAAA    MYIPv6ADDR

к вашему первичному файлу DNS зоны. В случае, если вы не обслуживаете собственные зоны DNS, обратитесь к вашему провайдеру DNS. Имеющиеся версии bind (версий 8.3 и 9) поддерживают записи AAAA.