Все технологии туннелирования IPv6 понятным языком

    Ура-ура, появился хаб IPv6!
    В этой статье я хотел бы рассмотреть все актуальные способы туннелирования IPv6 через готовую IPv4-инфраструктуру, описанные в RFC 7059. Один из немногих RFC, написанных понятным человеческим языком, кстати.
    Вы все еще сомневаетесь, нужен ли вам IPv6?
    • У всех устройств белый IP. Никаких NAT, никаких пробросов портов
    • Выше скорость скачивания торрентов за счет пиров, имеющих IPv6-адрес, но с «серым» IPv4.
    • В некоторых случаях, выше скорость доступа к сайтам (YouTube через IPv6 не тормозит по вечерам)
    • Доступ к сайтам, заблокированным в РФ, имеющим IPv6-адрес (nnm-club, например)
    Но это еще не все. Представьте ситуацию, когда у вас сломался DHCP-сервер, а на компьютер в этой сети нужно побыстрее бы зайти. Он не получает IP-адрес, вы не можете на него зайти. Беда. Однако, если у вас был просто включен IPv6 — даже не настроен — то вы можете просто пропинговать магический адрес ff02::1, получить ответ от этого компьютера (т.к. у него в любом случае будет link-local IPv6-адрес!) и зайти на него.

    Ну да ладно, перейдем к туннелированию.

    6in4
    Один из самых старых способов туннелирования, придуманный аж в 1996 году, и до сих пор очень популярный. Такие крупные туннель-брокеры, как Hurricane Electric, gogo6 и SIXXS используют его. Использует протокол 41 (не путайте с портом!) и не работает через NAT. Поддерживается всеми современными ОС из коробки.

    6over4
    По сути, 6over4 нельзя назвать туннелем в привычном смысле этого слова. Он использует IPv4 как виртуальный ethernet для IPv6, например, multicast-адрес ff02::1 превращается в IPv4 multicast-адрес 239.192.0.1. Протокол поддерживает генерацию Link-Local адреса, Neighbor Discovery и конфигурируется автоматически. Из-за того, что все роутеры в сети должны поддерживать Multicast, протокол не стал популярным. Поддержка в современных ОС отсутствует или ограничена.

    6to4
    6to4 превратит ваш IPv4-адрес в IPv6 /48-подсеть. По сути, это тот же 6in4, но с фиксированным anycast IPv4 адресом: 192.88.99.1. Протокол полностью автоконфигурируемый, ручная настройка невозможна. Легок в настройке. Минус в том, что ваш IPv4-адрес можно узнать из IPv6-адреса, и то, что вы не можете выбрать сервер, через который происходит туннелирование. В некоторых случаях, вы вообще не сможете узнать, кому этот сервер принадлежит. Использует специальный префикс 2002::/16. Не работает через NAT.

    6rd
    Этот протокол основан на 6to4, только предназначен для развертывания внутри большой организации или ISP. Не использует префикс 2002::/16, а использует обычный диапазон адресов, выданный вашему провайдеру. Может автоматически настраиваться разными способами, самый популярный — через DHCPv4 специальным параметром.

    AYIYA
    Расшифровывается как Anything In Anything, этот протокол может инкапсулировать, собственно, что-либо во что-либо. Протокол придуман туннель-брокером SIXXS и используется им же. В данный момент, в основном, используется IPv4-UDP-AYIYA-IPv6. Есть поддержка чексумм и авторизации. Работает через NAT.

    ISATAP
    Этот протокол несколько похож на 6over4, но не использует Multicast. ISATAP не поддерживает Multicast вообще. IPv6-адреса генерируются на основе IPv4-адреса. Предполагается, что IPv4-адрес будет уникальным, поэтому не работает с NAT. Связь с ISATAP-хостами возможна только в том случае, если у вас тоже настроен ISATAP. Поддерживается современными ОС.

    Teredo
    Крайне популярный способ туннелирования, не требующий особых настроек. В Windows (начиная с Vista) настроен и включен по умолчанию, в Linux поднимается за несколько секунд с использованием Miredo. От вас требуется указать Teredo-сервер (или использовать сервер по умолчанию), все остальное сконфигурируется автоматически. Работает через NAT, однако, с нюансами (зависит как от типа NAT, так и от имплементации на стороне Teredo-сервера).

    6a44
    Протокол сделан под влиянием Teredo, но предназначен для развертывания средствами ISP. Аналогично 6rd и 6to4, клиентам выдается IPv6-префикс провайдера, а не IPv6-префикс Teredo. Похоже, пока нигде не поддерживается.

    6bed4
    Peer-to-Peer IPv6 on Any Internetwork. 6bed4 предназначен для создания p2p IPv6-сети внутри IPv4-сети, не запрещающей p2p-соединения между хостами. Протокол является гибридом 6to4 и Teredo: IPv6-адрес формируется из IPv4 и UDP-порта, если p2p-соединение невозможно, используется релей, который может быть запущен ISP или просто сторонней организацией. Работает через NAT, поддерживает как автоконфигурирование, так и ручную настройку.

    LISP
    Locator/ID Separation Protocol ставит основной целью разделить зависимость IPv6-адреса от местоположения клиента. Используя этот протокол, вы можете использовать свой (предположим, домашний) IPv6-адрес вне вашей сети, без проксирования трафика. По концепции, схож с Proxy Mobile IPv6. Сам протокол достаточно сложный и использовать его исключительно для туннелирования достаточно глупо. Не работает через NAT. Поддерживается Cisco, Linux и FreeBSD.

    SEAL
    Subnetwork Encapsulation and Adaptation Layer. Совсем свежий протокол, draft появился в октябре 2013. Поддерживает несколько IPv4-линков, и, соответственно, multihoming. Есть аутентификация и anti-replay механизм. SEAL Control Message Protocol используется для обменом служебными данными между хостами.

    Табличка


    Протокол Туннелей на IPv4-адрес IPv6-хостов на туннель Публичный IPv4 NAT-совместимость P2P Gateway принадлежит
    6to4 Один Много Требуется Нет Глобальный ISP или публичный
    LISP Один Много Требуется Нет Настраивается ISP или Tunnel Broker
    6rd Один Много Не требуется Нет Внутри домена ISP
    6in4 Один Много Не требуется** Ограниченная Нет ISP или Tunnel Broker
    Teredo Много Один Не требуется Да* Глобальный Публичный релей
    6bed4 Много Много Не требуется Да Глобальный ISP, Tunnel Broker или публичный релей
    6a44 Много Много Не требуется Да Внутри домена ISP
    AYIYA Много Много Не требуется Да Нет ISP или Tunnel Broker
    SEAL Много Много Не требуется Да Настраивается ISP или Tunnel Broker

    * ограниченная поддержка, с некоторыми типами NAT может не работать
    ** внешний IPv4 не требуется, если релей поднят ISP
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 23
    • 0
      Очень бодрое начало! Даже мотивирует ещё раз вспомнить этот протокол, место которому пока ещё так трудно найти. Очень рассчитывал увидеть несколько картинок и много букв.
      • 0
        Не стоит ли добавить в список GRE, поверх которого можно развернуть что угодно и который работает поверх чего угодно? Также, PPTP можно сделать ipv6-over-ipv4, тем более, что он невообразимо популярен в России у провайдеров для раздачи интернета клиентам.
        • +1
          Ну это, все-таки, не технологии туннелирования конкретно IPv6. GRE есть в RFC, однако, с тем же успехом тогда можно заносить OpenVPN, например.
          • 0
            Просто я в статье с заголовком «все технологии тунеллирования ipv6» ожидал увидеть именно что все способы тунеллирования ipv6 ;)
            • +1
              Даже Layer 2 VPN? Тут все-таки подразумевается туннелирование IPv6, когда ваша инфраструктура не готова к этому.
        • 0
          Разве в 6to4 нельзя выбрать ничего кроме эникаст-адреса в качестве эндпоинта? Если мне память не изменяет, указывал другой, и всё работало… или ошибаюсь?
          • +1
            В этом фишка 6to4. Если указать другой адрес, это уже будет обычный 6in4.
            • 0
              Хм, а адрес и префикс в 6in4 такой же как и 6to4?
              • +1
                6in4 не подразумевает каких-либо фиксированных адресов и префиксов. 6to4 — это «прикладная» версия 6in4, дополненная рядом правил насчёт того, что, куда и как. Грубо говоря, 6in4 — это протокол, а 6to4 — policy его использования.
                • 0
                  хм, спасибо
                  6to4 использую, а вот про 6in4 особо то и не интересовался.
                  • 0
                    Если Вы используете 6to4, то используете и 6in4 как его часть. А вообще, про всё это и многое другое написано в Википедии.
          • 0
            Locator/ID Separation Protocol ставит основной целью разделить зависимость IPv6-адреса от местоположения клиента. Используя этот протокол, вы можете использовать свой (предположим, домашний) IPv6-адрес вне вашей сети, без проксирования трафика. По концепции, схож с Proxy Mobile IPv6. Сам протокол достаточно сложный и использовать его исключительно для туннелирования достаточно глупо. Не работает через NAT. Поддерживается Cisco, Linux и FreeBSD.

            Интересный, на мой взгляд, протокол. К сожалению, кроме Cisco, остальные производители сетевого оборудования LISP не поддерживают. А зря!
            • 0
              А почему nnm-club.me используют специальный домен для ipv6, а именно ipv6.nnm-club.me, а не прописали AAAA запись на домен nnm-club.me? В чем скрытый смысл?
              • 0
                А это у них нужно спрашивать. Может, боятся, что у кого-то IPv6 как бы завёлся, но на самом деле не работает, а тогда их сайт окажется недоступным.
                • 0
                  test-ipv6.com так и объясняет отсутствие AAAA у себя. В их FAQ говорится, что в мае 2013 пользователей с поломаным ipv6 всё ещё 0,5 %.
              • 0
                Вопрос по поводу Teredo/Miredo: там же динамически выдаваемый IPv6-адрес? а если захочется стать сервером (ведь глобальный P2P есть)? Есть ли решение наподобие DynDNS, но которое работает и для IPv6?
                • 0
                  www.ipuptime.net/Teredo.aspx — описание процесса генерации Тередо адреса.
                  dns.he.net — динамический ДНС, поддерживает все существующие записи, в том числе и AAAA.
                  • 0
                    Как раз то, что надо! Спасибо! :-)
                • 0
                  Вроде бы начиная с Win 7, Teredo поддерживает коннект вплоть до симметричного NAT'а. Крайняя версия Miredo-клиента тоже, если не ошибаюсь. Ограниченная поддержка только начиная с Висты и ниже.
                  • 0
                    Какой способ является простым и надёжным для настройки на роутере обычного юзера?
                    На выбор есть:
                    • 0
                      Native, статический и 6rd будут работать только, если у вашего провайдера есть IPv6 (вряд ли). 6to4 заработает сразу без настройки, для работы 6in4 вам нужно зарегистрироваться у туннель-брокера.
                      • 0
                        Пропингуйте 192.88.99.1
                        Если пинги приемлемые, используйте 6to4.
                        Если пинги неадекватные ( за 80-100мс ), можно попинговать
                        Скрытый текст
                        Asia
                        Hong Kong, HK 216.218.221.6
                        Singapore, SG 216.218.221.42
                        Tokyo, JP 74.82.46.6
                        Europe
                        Amsterdam, NL 216.66.84.46
                        Berlin, DE 216.66.86.114
                        Budapest, HU 216.66.87.14
                        Frankfurt, DE 216.66.80.30
                        London, UK 216.66.80.26
                        Paris, FR 216.66.84.42
                        Prague, CZ 216.66.86.122
                        Stockholm, SE 216.66.80.90
                        Warsaw, PL 216.66.80.162
                        Zurich, CH 216.66.80.98
                        North America
                        Ashburn, VA, US 216.66.22.2
                        Chicago, IL, US 184.105.253.14
                        Dallas, TX, US 184.105.253.10
                        Denver, CO, US 184.105.250.46
                        Fremont, CA, US 72.52.104.74
                        Fremont, CA, US 64.62.134.130
                        Kansas City, MO, US 216.66.77.230
                        Los Angeles, CA, US 66.220.18.42
                        Miami, FL, US 209.51.161.58
                        New York, NY, US 209.51.161.14
                        Seattle, WA, US 216.218.226.238
                        Toronto, ON, CA 216.66.38.58
                        Winnipeg, MB, CA 184.105.255.26

                        выбрать из них наименьший отклик, идти на tunnelbroker.net, там регистрироваться и получать туннель 6in4.

                        Всё это будет работать, если у вас статический «белый» IPv4.
                        • 0
                          Пинг вполне адекватный (30 мсек).

                          Настроил таки через 6to4, спасибо за подсказку.

                          IP у меня белый, не статический. Но так как роутер, на котором я и настроил, не выключается неделями, думаю мне этот способ тоже подойдёт.

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.