Пользователь
47,1
рейтинг
27 декабря 2013 в 10:54

Администрирование → Все технологии туннелирования 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
@ValdikSS
карма
632,0
рейтинг 47,1
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Администрирование

Комментарии (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 у меня белый, не статический. Но так как роутер, на котором я и настроил, не выключается неделями, думаю мне этот способ тоже подойдёт.

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