- Miredo: установка IPv6 в GNU/Linux за 1 минуту
- Зачем это надо?
- Системные требования
- Особенности
- Как это выглядит?
- Что дальше?
- Все технологии туннелирования IPv6 понятным языком
- Настройка IPv6 в ОС Linux Debian v7.XX, Ubuntu v14.XX, CentOS v6.XX и FreeBSD v10.XX
- Linux Debian v7.XX, Ubuntu v14.XX
- CentOS v6.XX
- FreeBSD v10.XX
- IPv6 router guide
- Contents
- Preliminaries
- Basic kernel configuration
- Testing IPv6 support
- Tunnel configuration
- Basic configuration
- Hurricane Electric
- Серверы Linux. Часть IX. Протокол IPv6
- Глава 21. Знакомство с протоколом IPv6
- 21.1. Информация о протоколе IPv6
- 21.2. Идентификаторы сети и узла
- 21.3. Генерация части адреса, относящейся к узлу
- 21.4. Запись адреса IPv4 в рамках адреса IPv6
- 21.5. Адреса link local
- 21.6. Уникальные локальные адреса
- 21.7. Глобальная система уникальных адресов для одноадресной передачи
- 21.8. Механизм 6to4
- 21.9. Интернет-провайдеры
- 21.10. Частные адреса
- 21.11. Утилита ping6
- 21.12. Использование протокола IPv6 в Бельгии
- 21.13. Другие веб-сайты
- 21.14. Шлюзы, использующие механизм 6to4
- 21.15. Утилита ping6 и DNS
- 21.16. Протокол IPv6 и стек протоколов TCP/IP
- 21.17. Протокол IPv6 и ресурсная запись PTR
- 21.18. Настройка механизма 6to4 в Linux
Miredo: установка IPv6 в GNU/Linux за 1 минуту
В современных дистрибутивах GNU/Linux существует возможность получить автоматически настроенный IPv6-туннель, введя всего одну команду – даже если ваш провайдер не поддерживает IPv6 или предоставляет выход в Интернет только через свой NAT. Достаточно лишь установить программу под названием Miredo.
Зачем это надо?
Протокол IPv6 позволяет:
Системные требования
Нужно, чтобы использование UDP-порта 3544 не было запрещено вашим файрволлом.
Особенности
Ваш IPv6-адрес будет меняться при каждой смене вашего IPv4-адреса. Если вы хотели бы получить статический IPv6 (это возможно, и более того – бесплатно), воспользуйтесь одним из туннельных брокеров.
Как это выглядит?
Сначала проверяем, что на используемом компьютере доступа к IPv6-сетям действительно не было:
Устанавливаем miredo (выполнять из под root либо через sudo ), на примере Debian или Ubuntu:
Всё работает! Теперь и вы можете пользоваться любыми из доступных по IPv6 сервисов, и вообще, наслаждаться принадлежностью вашего компьютера к Интернету будущего. 🙂
Что дальше?
Если у вас есть некоторый опыт настройки GNU/Linux, рекомендую обратить внимание на два других способа настройки IPv6-туннеля – через туннельного брокера, либо с помощью 6to4. С помощью них, можно получить статический IPv6-адрес, и пользоваться абсолютно всеми преимуществами IPv6 уже сегодня.
Источник
Все технологии туннелирования 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-адрес!) и зайти на него.
Ну да ладно, перейдем к туннелированию.
Один из самых старых способов туннелирования, придуманный аж в 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 превратит ваш IPv4-адрес в IPv6 /48-подсеть. По сути, это тот же 6in4, но с фиксированным anycast IPv4 адресом: 192.88.99.1. Протокол полностью автоконфигурируемый, ручная настройка невозможна. Легок в настройке. Минус в том, что ваш IPv4-адрес можно узнать из IPv6-адреса, и то, что вы не можете выбрать сервер, через который происходит туннелирование. В некоторых случаях, вы вообще не сможете узнать, кому этот сервер принадлежит. Использует специальный префикс 2002::/16. Не работает через NAT.
Этот протокол основан на 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-сервера).
Протокол сделан под влиянием 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, поддерживает как автоконфигурирование, так и ручную настройку.
Locator/ID Separation Protocol ставит основной целью разделить зависимость IPv6-адреса от местоположения клиента. Используя этот протокол, вы можете использовать свой (предположим, домашний) IPv6-адрес вне вашей сети, без проксирования трафика. По концепции, схож с Proxy Mobile IPv6. Сам протокол достаточно сложный и использовать его исключительно для туннелирования достаточно глупо. Не работает через NAT. Поддерживается Cisco, Linux и FreeBSD.
Subnetwork Encapsulation and Adaptation Layer. Совсем свежий протокол, draft появился в октябре 2013. Поддерживает несколько IPv4-линков, и, соответственно, multihoming. Есть аутентификация и anti-replay механизм. SEAL Control Message Protocol используется для обменом служебными данными между хостами.
Источник
Настройка IPv6 в ОС Linux Debian v7.XX, Ubuntu v14.XX, CentOS v6.XX и FreeBSD v10.XX
Изложенный ниже материал не претендует на эксклюзивность. Однако мне пришлось собирать его по крупицам из разных источников, что-то проверяя экспериментально. После этого родилась идея систематизировать полученные знания и опыт, изложив все в одной заметке.
Linux Debian v7.XX, Ubuntu v14.XX
CentOS v6.XX
FreeBSD v10.XX
После внедрения поддержки IPv6, на хостинговой площадке компании в которой я работаю, у нас возникла необходимость автоматизировать настройку VDS соответствующим образом. Необходимо оговорится, что речь идет не о каком-либо туннелировании, а полноценной поддержке. Т.е. сетевая инфраструктура в дата-центре обеспечивает коммутацию и маршрутизацию IPv6, имеются соответствующие стыки по BGPv6 с магистральными провайдерами Internet.
Адреса назначаются и прописываются в настройках ОС статично, т.е. функционал автоматического конфигурирования IPv6 не задействуется. Это связано с особенностями учета адресного пространства и обеспечения безопасности. Задача осложняется тем, что адресов IPv4 и IPv6 у VDS может быть сразу несколько.
Linux Debian v7.XX, Ubuntu v14.XX
В достаточно свежих дистрибутивах ОС Linux уже присутствует полноценная поддержка IPv6. Поэтому доустанавливать что-либо вручную необходимости нет.
Рассмотрим пример настройки.
«/etc/network/interfaces»
Тут следует обратить внимание на два момента. Во-первых, все адреса IPv6 назначаются непосредственно на сам сетевой интерфейс: в отличие от IPv4 нет необходимости создавать виртуальные адаптеры типа «eth0:X». Во-вторых, шлюз по умолчанию для IPv6 указывается один раз для любого из адресов. Действовать он будет для всех.
Результат настроек в выводе команды «ifconfig»:
Базовую диагностику можно выполнить с помощью команд «ping6 -n -c 4 ipv6.google.com» и «traceroute -n -6 -I ipv6.google.com». Проверить MAC-адреса соседей: «ip -6 neighbor show». Изучить таблицу маршрутизации: «route -n6» или «ip -6 route show». Выяснить, какой из адресов IPv6 используется системой по умолчанию для исходящих подключений: «ip -6 route get 2a00:1450:4013:c01::65».
CentOS v6.XX
Настройка CentOS замысловатее из-за того, что опций несколько больше, и они раскиданы по нескольким файлам.
«/etc/sysconfig/network»
В целом картина аналогична Debian. Виртуальные сетевые интерфейсы «eth0:X» необходимы только для IPv4. Опции «NETWORKING_IPV6» и «IPV6INIT» включают поддержку IPv6. В «IPV6_DEFAULTGW» указываем шлюз по умолчанию. Первый адрес IPv6 назначается в «IPV6ADDR», все остальные перечисляются в «IPV6ADDR_SECONDARIES».
Вывод команды «ifconfig» аналогичен Debian:
FreeBSD v10.XX
В ОС FreeBSD уже также есть все необходимое для поддержки IPv6.
Рассмотрим пример настройки.
» /etc/rc.conf»
Основной адрес IPv6 указывается в опции «ifconfig_xn0_ipv6». Поскольку в FreeBSD механизм виртуальных сетевых интерфейсов для IPv4 не используется, то все дополнительные адреса, в том числе IPv6, перечисляются в «ifconfig_xn0_aliases».
Вывод команды «ifconfig» немного отличается от ОС Linux.
Инструмент для диагностики также немного другой: «ping6 -n -c 4 ipv6.google.com» и «traceroute6 -n ipv6.google.com». Проверить MAC-адреса соседей: «ndp -an». Изучить таблицу маршрутизации: «netstat -rn6». Выяснить, какой из адресов IPv6 используется системой по умолчанию для исходящих подключений: «route -nv6 get 2a00:1450:4013:c01::65».
В данном случае адресом по умолчанию является тот, что указан самым последним в выводе команды: «2a04:XXXX:1::12».
Источник
IPv6 router guide
This guide provides details on setting up IPv6 routing on a Gentoo Linux system.
Contents
Preliminaries
Basic kernel configuration
Any kernels version v2.6.0 or higher will easily support IPv6 connections. The new USAGI IPv6 stack is integrated to the kernel since Linux v2.6.0.
Enter the kernel source directory and begin kernel configuration:
Testing IPv6 support
After enabling the recommended options, recompile the kernel, then reboot into the new IPv6-enabled kernel.
If the sys-apps/iproute2 package is not yet installed, it is highly recommended to do so before continuing with this guide. iproute2 is a network configuration suite that contains ip , the famous replacement for ifconfig , route , iptunnel and others.
If IPv6 is working, the loopback device should show an IPv6 address:
Before proceeding any further, make sure to add ipv6 to the list of USE variables in make.conf , so that future emerges of packages will include IPv6 support.
Tunnel configuration
Basic configuration
Most ISPs still do not offer any native IPv6 connections. To get around this limitation, there are several «tunnel brokers» around the globe that offer free IPv6 tunnels. This will allow to tunnel all the IPv6 connections through an IPv4 connection.
Broker | Location |
---|---|
Hurricane Electric | North America, Europe, Asia |
Freenet6 | US (discontinued 2016) |
SixXS | Europe (discontinued 2017-06-06) |
Singnet | Singapore (unknown status, broken link as of 2021) |
Aarnet | Australia/South Pacific (discontinued 2019-05-04) |
Below is an example for setting up a tunnel with a popular North American tunnel Hurricane Electric.
Hurricane Electric
Hurricane Electric (HE for short) offers free IPv6 tunnels and allocates a /64 block of addresses for each customer. It also allows configuration of reverse DNS. Getting a tunnel from HE is as easy as going to https://www.tunnelbroker.net/ and filling out a one page form.
After a tunnel is approved and a /64 block is allocated, start to configure the system. HE provides sample configurations based on ifconfig and the iproute utilities. The following two examples assume that the following configuration is used:
Local IPv4 Address (eth0) | 68.36.91.195 |
HE IPv4 Address | 64.71.128.82 |
Local IPv6 tunnel Address | 2001:470:1F00:FFFF::2 |
Remote IPv6 tunnel Address | 2001:470:1F00:FFFF::1 |
IPv6 Block | 2001:470:1F00:296::/64 |
Using the sys-apps/iproute2 package and the ip command, do the following.
Create a tunnel between the local (eth0) IPv4 and HE’s remote IPv4 address:
Extract the tunneling overhead from the MTU:
Источник
Серверы Linux. Часть IX. Протокол IPv6
Глава 21. Знакомство с протоколом IPv6
21.1. Информация о протоколе IPv6
Протокол IPv6 был спроектирован для замены протокола IPv4 . В то время, как протокол IP версии 4 позволяет использовать максимум четыре миллиарда уникальных адресов, протокол IP версии 6 расширяет это количество до четырех миллиардов в четвертой степени уникальных адресов. Таким образом, протокол IPv6 позволяет использовать более чем 100.000.000.000.000.000.000 адресов на каждом квадратном сантиметре нашей планеты. Этого должно быть достаточно даже в том случае, если отдельный адрес будет выделен для для каждого мобильного телефона, каждой машины для приготовления кофе и каждой пары носков.
Если говорить техническим языком, можно отметить, что протокол IPv6 использует 128-битные адреса (вместо 32-битных адресов, используемых протоколом IPv4). 128-битные адреса представляются с помощью больших чисел . В случае использования десятичного представления для записи адреса данного типа потребуется до 39 чисел, а в случае использования шестнадцатеричного представления адрес будет выглядеть следующим образом:
К счастью, протокол IPv6 позволяет нам сократить ведущие нулевые значения. Исходя из этого, приведенный выше адрес будет выглядеть следующим образом:
В том случае, если в 16-битный блок представлен нулевым значением, он может быть записан в формате :: . Последующие 16-битные нулевые блоки также могут заменяться уже записанной последовательностью символов :: . Таким образом, наш приведенный выше адрес может быть сокращен до следующего вида:
Данная последовательность символов :: должна использоваться не более одного раза! Например, следующий адрес не является корректным адресом IPv6:
Адресом IPv6 локального узла является адрес 0000:0000:0000:0000:0000:0000:0000:0001 , который может быть сокращен до ::1 .
21.2. Идентификаторы сети и узла
Одно из немногих сходств между протоколами IPv4 и IPv6 заключается в том, что адреса имеют часть относящуюся к узлу и часть, относящуюся к сети и определяемую маской подсети. При использовании нотации CIDR последняя выглядит следующим образом:
В приведенном выше адресе 64 бита используются в качестве идентификатора узла, что в теории позволяет использовать четыре миллиарда во второй степени различных узлов.
При использовании нотации CIDR адрес локального узла выглядит следующим образом:
21.3. Генерация части адреса, относящейся к узлу
Часть автоматически генерируемого адреса IPv6 ( stateless address ), которая относится к узлу, включает часть, предназначенную для хранения MAC-адреса узла.
Некоторые люди предъявляют претензии по поводу безопасности данного подхода.
21.4. Запись адреса IPv4 в рамках адреса IPv6
Некоторые приложения используют адреса IPv4, записанные в рамках адресов IPv6. (Да, в течение некоторого времени будет длиться эра миграции, в ходе которой будут использоваться как адреса IPv4, так и адреса IPv6). Подобный адрес IPv6 выгладит аналогичным образом:
При формировании подобных адресов шестнадцатеричные и десятичные числа смешиваются.
21.5. Адреса link local
При работе с протоколом IPv6 адреса, начинающиеся с fe8. , могут использоваться лишь в рамках локального сегмента сети (точка заменяется на десятичное число). По этой причине вы можете видеть строку Scope:Link после адреса в данном примере. Приведенный адрес используется лишь узлами из локального сегмента сети .
Все адреса узлов, которые могут использоваться лишь в рамках локального сегмента сети ( link local ), начинаются с fe8. .
Каждый Интернет-провайдер, поддерживающий протокол IPv6, получает адрес из описанного диапазона.
21.6. Уникальные локальные адреса
На данный момент признанная устаревшей система адресов внутренних сетей ( site local addresses ) аналогична по своей сути частным диапазонам адресов IPv4 и заменена на глобальную систему уникальных локальных адресов IPv6. Это сделано для предотвращения появления дубликатов адресов при объединении двух сетей в рамках диапазонов адресов внутренних сетей .
Все уникальные локальные адреса начинаются с fd.. .
21.7. Глобальная система уникальных адресов для одноадресной передачи
Ввиду того, что протокол IPv6 проектировался с учетом поддержки множества IP-адресов для каждого сетевого интерфейса, глобальная система уникальных адресов IPv6 может использоваться вместе с системой адресов link local .
Эти глобально-уникальные IP-адреса начинаются с 16-битного значения 2. или 3. .
21.8. Механизм 6to4
Механизм 6to4 описан в стандартах RFC 2893 и RFC 3056 как единственный возможный способ передачи пакетов IPv6 через сеть IPv4 без создания специализированного туннеля IPv6.
Данный механизм позволяет закодировать адрес IPv4 с помощью адреса IPv6, который начинается с 2002 . К примеру, адрес 192.168.1.42/24 будет закодирован как:
Вы можете использовать приведенную ниже команду для преобразования любого адреса IPv4 в адрес описанного формата.
21.9. Интернет-провайдеры
Если вам посчастливится получить адрес IPv6 от вашего интернет-провайдера, он будет начинаться с 2001: .
21.10. Частные адреса
По аналогии с адресом example.com в случае сервера DNS, следующие диапазоны адресов IPv6 зарезервированы для примеров и не доступны из сети Интернет.
21.11. Утилита ping6
Используйте утилиту ping6 для тестирования работоспособности соединения, которое установлено между узлами, поддерживающими протокол IPv6. Вам придется указать интерфейс (таблица маршрутизации не используется для ‘произвольным образом’ сгенерированных адресов IPv6 сегмента локальной сети).
В примере ниже утилита ping6 работает в широковещательном режиме и принимает ответы от трех поддерживающих протокол IPv6 узлов из одной и той же сети.
21.12. Использование протокола IPv6 в Бельгии
Большой объем информации об использовании протокола IPv6 в Бельгии приведен на веб-сайте www.ipv6council.be .
Такие веб-сайты, как ipv6.belgium.be , www.bipt.be и www.bricozone.be уже поддерживают протокол IPv6. Также данный протокол поддерживается сайтами некоторых университетов: fundp.ac.be (Namur) и ulg.ac.be (Liege).
21.13. Другие веб-сайты
Другими полезными для тестирования протокола IPv6 веб-сайтами являются веб-сайты:
При переходе по адресу ipv6-test.com веб-сайт определит, используется ли вами корректный доступный адрес IPv6.
При переходе по адресу test-ipv6.com веб-сайт также займется определением того, используется ли вами корректный доступный адрес IPv6.
21.14. Шлюзы, использующие механизм 6to4
Для получения доступа к веб-сайтам, работающим исключительно по протоколу IPv4, в случае использования протокола IPv6 вы можете задействовать ресурс sixxs.net (а точнее, http://www.sixxs.net/tools ) в качестве шлюза.
21.15. Утилита ping6 и DNS
Ниже приведен снимок окна сниффера, который был использован для перехвата трафика утилиты ping6 , работающей с соединением, на уровне которого задействован механизм 6to4.
21.16. Протокол IPv6 и стек протоколов TCP/IP
Ниже приведен снимок окна сниффера, который был использован для перехвата трафика, сгенерированного в процессе осуществления рукопожатия протокола TCP и установления соединения по протоколу HTTP с использованием протокола IPv6.
21.17. Протокол IPv6 и ресурсная запись PTR
Как было сказано в разделе, посвященном серверу DNS, ресурсные записи PTR домена ip6.net содержат дочерние домены, разделенные на 32 уровня.
21.18. Настройка механизма 6to4 в Linux
Ниже приведена последовательность команд, позволяющая настроить механизм 6to4 в системе Linux.
Источник