Настройка IPv6 в Debian, Ubuntu
Проверяем:
ping6 ipv6.google.com
PING ipv6.google.com(lf-in-x64.1e100.net) 56 data bytes
64 bytes from lf-in-x64.1e100.net: icmp_seq=1 ttl=55 time=14.4 ms
64 bytes from lf-in-x64.1e100.net: icmp_seq=2 ttl=55 time=14.0 ms
Второй вариант:
Качаем скрипт который сгенерирует нам нужное количество ipv6 адресов с нашей сети:
wget http://blog.vpsville.ru/uploads/random-ipv6_48-address-generator.sh
wget http://blog.vpsville.ru/uploads/random-ipv6_64-address-generator.sh
В скрипте устанавливаем:
Количество ipv6 адресов которые нужно сгенерировать:
MAXCOUNT=20000
Префикс нашей сети
network=2a07:14c0:0:8006
Даем права на выполнение
chmod +x random-ipv6-address-generator.sh
Создаем файл ip.list с адресами:
./random-ipv6-address-generator.sh > ip.list
Добавляем в файл
nano /etc/sysctl.conf
net.ipv6.conf.ens3.proxy_ndp=1 net.ipv6.conf.all.proxy_ndp=1 net.ipv6.conf.default.forwarding=1 net.ipv6.conf.all.forwarding=1 net.ipv6.neigh.default.gc_thresh3=102400 net.ipv6.route.max_size=409600
sysctl -p
Создаем скрипт добавления адресов:
nano add.sh
for i in `cat ip.list`; do ip -6 addr del $i dev lo || true; ip -6 addr add $i dev lo; ip -6 nei del proxy $i dev ens3 || true; ip -6 nei add proxy $i dev ens3 || true; done
Далее в нашем файле ip.list нужно убрать первые строки, что бы первая строчка начиналась с адреса.
Разрешаем исполнение и запускаем скрипт:
chmod +x add.sh ./add.sh
После выполнения скрипта командой ifconfig можно проверить добавленные ipv6 адреса.
Настройка IPv6 на Ubuntu/Debian

Инструкция по подключению и настройке IPv6 адреса на виртуальном сервере с операционной системой Ubuntu или Debian.
Что это такое?
IPv6 – это протокол сетевого уровня и со временем должен заменить протокол IPv4, который сейчас используется повсеместно. Количество IPv4 адресов ограничено несколькими миллиардами — (2 8 ) 4 адресов, а из-за быстрого роста устройств выходящих в сеть, они начинают заканчиваться. Длина IPv6 адресов больше, а значит и количество доступных адресов в миллиарды раз больше — (2 16 ) 8 .
Основные преимущества IPv6 над IPv4:
- большее количество адресов;
- более эффективная маршрутизация пакетов в сети;
- более эффективная обработка пакетов данных;
- поддержка многоадресной передачи данных.
Подключение IPv6 в панели управления 1cloud
Для подключения виртуального сервера к общей публичной сети с IPv6 откройте настройки вашего сервера, раздел Сети, и нажмите Подключить. Сохраните изменения. Изменение конфигурации займет несколько секунд.

В результате на вашем виртуальном сервере появится еще один сетевой адаптер, который необходимо самостоятельно настроить.
Настройка сетевого интерфейса
Выведете список всех доступных интерфейсов, чтобы определить имя требующего конфигурацию:
Отобразится следующий список:
ens160 Link encap:Ethernet HWaddr 00:50:56:01:09:04 inet addr:XXX.XXX.XXX.XXX Bcast:XXX.XXX.XXX.255 Mask:255.255.255.0 inet6 addr: fe80::250:56ff:fe01:904/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:34413 errors:0 dropped:84 overruns:0 frame:0 TX packets:3285 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:8970744 (8.9 MB) TX bytes:274637 (274.6 KB) ens192 Link encap:Ethernet HWaddr 00:50:56:01:38:13 BROADCAST MULTICAST MTU:1500 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:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:160 errors:0 dropped:0 overruns:0 frame:0 TX packets:160 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:11840 (11.8 KB) TX bytes:11840 (11.8 KB)
В настройках сети в панели управления найдите поле MAC со значением параметра HWaddr из вывода списка сетевых интерфейсов. В нашем примере настройки требует адаптер с именем ens192.

Для настройки сетевого адаптера с помощью текстового редактора, например vi, откройте файл /etc/network/interfaces:
Добавьте следующие строки, заменив соответствующие поля на свои значения:
auto ens192
iface ens192 inet6 static
pre-up modprobe ipv6
address aaaa:aaaa:aaaa:a::a
netmask 64
gateway aaaa:aaaa:aaaa:a::1
Далее с помощью текстового редактора, например vi, откройте файл /etc/resolv.conf:
Добавьте строку, указав выданный вам IPv6 адрес:
После сохранения изменений и выхода из текстового редактора, необходимо перезапустить сетевую службу, где ens192 — это имя адаптера, которое вы запомнили:
ifdown ens192 && ifup ens192
Для проверки корректности настроек выполните ping6 до шлюза (gateway) и до сайта Google:
aaaa:aaaa:aaaa:a::1
ping6 ipv6.google.com
Должна начаться передача пакетов данных.

P. S. Другие инструкции:
- Подключение и настройка IPv6 к серверам
- Маршрутизация внутри локальной сети на pfSense
- Настройка сетевого адаптера на Ubuntu 18.04
- Настройка сетевого адаптера в Ubuntu, Debian
- Сравнительный обзор реализаций технологии VPN: что выбрать?
Поделиться в соцсетях:
Средняя оценка: 5,0, всего оценок: 21 Спасибо за Вашу оценку! К сожалению, проголосовать не получилось. Попробуйте позже
Настрой себе IPv6 в Debian и Ubuntu
Настраивать будем Debian Squeeze. В Ubuntu в принципе то же самое.
Шаг 1. Регистрируем туннель
Заходим на сайт Hurricane Electric, регистрируемся. Логинимся на сайте, и создаём туннель: вписываем свой IPv4 адрес и выбираем сервер поближе. Нам выделяют одну /64 подсеть, в которой будут находиться сервер и клиент как конечные точки туннеля.
В подсети /64 туннеля первый адрес — адрес сервера, второй — адрес клиента (то есть, наш).
Если у вас есть локальная сеть и вы хотите чтобы все машины в ней тоже получили IPv6 адреса, то запрашиваем ещё одну /64 подсеть («routed /64»). Если у вас 2 или более локальных сети за роутером, то запрашиваем /48 подсеть («routed /48»), которую будем нарезать на нужное количество /64. Все выделенные нам подсети будут маршрутизироваться через наш сервер.
Шаг 2. Настраиваем IPv6
Настраиваем туннель — интерфейс he-ipv6. Здесь используем подсеть /64 для туннеля. Вместо «переменных» вводим то, что получили на первом шаге.
Дописываем в конец /etc/network/interfaces
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
address $CLIENT_IPv6
netmask 64
endpoint $SERVER_IPv4
local $CLIENT_IPv4
gateway $SERVER_IPv6
ttl 64
Включаем и проверяем:
# ifup he-ipv6
# ping -n ipv6.google.com
Шаг 3. DNS и Google
К сожалению, ipv6.google.com — единственная DNS запись Google, которая резолвится в IPv6 для всех. Google решил пока не резолвить все сервисы в IPv6 из-за того, что на довольно большом числе машин он неправильно настроен или неправильно отключен, в связи с чем пользователь может увидеть задержку пока браузер пытается соединиться с сервером по IPv6, а на самом деле IPv6 соединения нет.
Таким образом, Google решил включать IPv6 в DNS в масштабе отдельных провайдеров. Hurricane Electric относится как раз к таким провайдерам. Они предоставляют DNS сервер 2001:470:20::2, через который все домены сервисов Google резолвятся в том числе и в IPv6 адреса.
Можно сразу вписать в /etc/resolv.conf этот сервер, а можно поднять локальный кеширующий bind и немного выиграть в скорости.
# apt-get install bind9
Есть два способа настройки: можно резолвить через этот сервер только адреса Google (но нужно знать их список), а можно резолвить вообще всё (и не использовать DNS серверы провайдера вообще). Предлагаю второй способ, он проще, и к тому же у меня нет списка всех адресов сервисов Google.
Правим файл /etc/bind/named.conf.options
acl mynetworks localhost;
192.168.0.0/16; // наша локальная сеть, если есть
2001:XXXX:XXXX:XXXX::/64; // наша IPv6 /64
2001:XXXX:XXXX::/48; // наша IPv6 /48, если есть
>;
options directory «/var/cache/bind»;
Проверяем:
# dig +short google.com @::1 AAAA
2a00:1450:8003::63
2a00:1450:8003::67
2a00:1450:8003::68
2a00:1450:8003::69
2a00:1450:8003::6a
2a00:1450:8003::93
Если всё хорошо, то можно использовать. Вписываем в /etc/resolv.conf
nameserver ::1
Если нет локальной сети — то всё готово 🙂
Шаг 4. Маршрутизация
Для настройки машин в локальной сети предлагаю использовать stateless autoconfiguration. Это чем-то напоминает DHCP, но разница в том, что этот протокол staleless, то есть, сервер не хранит список выданных адресов. Принцип работы следующий: серверу выделяется одна /64, из которой он раздаёт адреса клиентам. Уникальность полученного IPv6-адреса обеспечивается тем, что в него включается MAC адрес клиента (немного преобразованный).
Пусть у нас на eth0 локальная сеть, а на eth1 — провайдер. Пока что IPv6 настроен только на интерфейсе he-ipv6. Поэтому eth0, смотрящий в локальную сеть должен получить статический IPv6-адрес для установки соединений с клиентами. Но мы не может назначить eth0 адрес из нашей туннельной /64, так как тогда получится что два интерфейса смотрят в одну и ту же подсеть. Можно разбить нашу /64 на две, но тогда не будет работать stateless autoconfiguration. Поэтому мы взяли себе ещё одну /64, из которой будем раздавать адреса в локальную сеть (важно подчеркнуть: это настоящие внешние IPv6 адреса). Пусть нам выдали 2001:XXXX:YYYY:ZZZZ::/64.
Если у нас несколько сетей за маршрутизатором, то мы взяли себе ещё и /48, из которой будем использовать необходимое количество подсетей /64. Пусть нам выдали 2001:XXXX:YYYY::/48. Дописываем ещё номер сети — будет занимать целых 2 байта и получаем: 2001:XXXX:YYYY:1::/64. Таким образом, у нас могло бы быть аж 65536 разных сетей. Адресом сервера будет 2001:XXXX:YYYY:1::1. Дальше пример с несколькими сетями не развиваю, думаю что довольно просто обобщить конфигурационные файлы на случай нескольких сетей.
Итак, у нас одна сеть за маршрутизатором, 2001:XXXX:YYYY:ZZZZ::/64. Дописываем в конец /etc/network/interfaces
iface eth0 inet6 static
address 2001:XXXX:YYYY:ZZZZ::1
netmask 64
Устанавливаем демона для stateless autoconfiguration:
# apt-get install radvd
interface eth0
AdvSendAdvert on;
MaxRtrAdvInterval 30;
prefix 2001:XXXX:YYYY:ZZZZ::1/64
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
AdvValidLifetime 300;
AdvPreferredLifetime 120;
>;
>;
Включаем форвардинг:
/etc/sysctl.conf
net.ipv6.conf.all.forwarding=1
# sysctl -w net.ipv6.conf.default.forwarding=1
# echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
Перезапускаем radvd:
# invoke-rc.d radvd restart
Теперь все компьютеры из локальной сети должны автоматически получить IPv6 адреса и адрес шлюз. За процессом можно следить на сервере при помощи команды radvdump, а на клиентах проверять наличие адреса при помощи ip -6 a.
DNS-сервер придётся прописать клиентам вручную, stateless autoconfiguration этого не умеет.
Шаг 5. Avahi
Так как адреса клиентов основываются на MAC адресах, то в результате получаются адреса вида: 2001:528d:d4b6:1:215:f2ff:fe55:2d85. Работать с этим довольно тяжело, запомнить — невозможно. На помощь приходит multicast dns и его реализация в виде Avahi.
# apt-get install avahi-daemon avahi-utils
Проверяем наличие в /etc/avahi/avahi-daemon.conf строк:
[server]
use-ipv4=yes
use-ipv6=yes
Теперь все компьютеры в локальной сети получат имена вида hostname.local. Эти имена будут резолвиться по умолчанию в IPv4 адреса. Чтобы они резолвились по умолчанию в IPv6, правим строчку в /etc/nsswitch.conf.
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
hosts: files mdns_minimal [NOTFOUND=return] dns mdns
Теперь можно использовать имена hostname.local и по умолчанию будут устанавливаться IPv6 соединения.
Шаг 6. Squid + IPv6
Держите кеширующий прокси в локальной сети? Небольшая проблема: Squid получил полноценную поддержку IPv6 только в версии 3.1.0.x, которая сейчас находится в репозитории experimental. На самом деле ничего особо экспериментального, у меня нормально работает уже 4 месяца.
Устанавливаем squid3, в разрешающий ACL вписываем наши сети /64 и /48.
UPD. На linuxforum заметили, что Hurricane Electric выдаёт две /64, поэтому запрашивать /48 с одной локальной сетью не нужно. Обновил топик.
UPD2. В связи с появившимися копипастами напомнимаю, что перепечатка разрешена только с моего разрешения.
- Системное администрирование
- IPv6
IPv6: включение и выключение
Перед выполнением действий, описанных в этой статье, рекомендуется ознакомиться со статьей Настройка сетевых подключений в Astra Linux.
Следует помнить, что в настроенной по умолчанию системе (с включенной службой NetworkManager) к сетевым интерфейсам будут последовательно применены сначала настройки сетевой службы networking, а затем — настройки сетевой службы NetworkManager, которые перезаписывают настройки networking.
При этом в ОС, настроенной по умолчанию, служба NetworkManager обслуживает все сетевые интерфейсы, кроме интерфейса обратной петли («loopback», lo).
Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 и РУСБ.10015-10 (очередное обновление 1.7)
- Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
- Astra Linux Special Edition РУСБ.10015-16 исп. 1
- Astra Linux Special Edition РУСБ.10015-16 исп. 2 (кроме управления параметрами загрузки)
- Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1) (кроме управления параметрами загрузки)
- Astra Linux Common Edition 2.12
Управление параметрами загрузки в Astra Linux Special Edition РУСБ.10015-16 исп. 2 и Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1) см. статью Файл параметров загрузки /boot/boot.conf
Проверка наличия адресов IPv6
Проверить наличие адресов IPv6 у сетевых интерфейсов можно командой:
ip a | grep inet6
В версиях Astra Linux с установленными оперативными обновлениями IPv6 по умолчанию отключен на уровне службы networking.
См. файл /etc/sysctl.conf и файлы в каталоге /etc/sysctl.d/ (например, файл /etc/sysctl.d/999-astra.conf). Для отключения IPv6 в этих файлах указана строка net.ipv6.conf.all.disable_ipv6 = 1:
cat /etc/sysctl.d/999-astra.conf
# Astra sysctl config
kernel.sysrq = 0
fs.suid_dumpable = 0
kernel.randomize_va_space = 2
net.ipv6.conf.all.disable_ipv6 = 1
Однако, адреса IPv6 у сетевых интерфейсов по умолчанию присутствуют. Это происходит потому, что работающая по умолчанию служба NetworkManager сама настраивает сетевые интерфейсы перезаписывая настройки, установленные ранее службой networking.
Выключение IPv6
Полное выключение стека IPv6 параметрами загрузчика GRUB2
Данный способ запрещает ядру загрузку модулей IPv6, и позволяет выключить IPv6 независимо от настроек служб NetworkManager и networking. Выключать протокол IPv6 таким способом НЕ РЕКОМЕНДУЕТСЯ, так как отсутствие модулей IPv6 может вызвать неработоспособность некоторых программ (Samba, Контроллер ЕПП FreeIPA в Astra Linux). При необходимости отключить IPv6 рекомендуется использовать выключение настройками сети (см. ниже).
В Astra Linux Special Edition РУСБ.10015-16 исп. 2 и в Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1) загрузчик GRUB2 не используется, а IPv6 выключается в файле /boot/boot.conf (параметр cmdline=»ipv6.disable=1″).
Для выключения IPv6 параметрами загрузки найти в файле /etc/default/grub строчку GRUB_CMDLINE_LINUX, добавить туда параметр «ipv6.disable=1», например
GRUB_CMDLINE_LINUX_DEFAULT=»quiet net.ifnames=0 ipv6.disable=1″
После внесения изменений в файл /etc/default/grub следует обновить конфигурацию загрузчика:
sudo update-grub
и перезагрузить машину.
Конфигурация IPv6 указанная в параметрах службы networking (файлы /etc/sysctl.conf и /etc/sysctl.d/*.conf) и службы NetworkManager (/etc/NetworkManager/system-connections/*) при использовании этого способа не имеет значения, однако следует убедиться, что настройки конфигурации не содержат параметров, относящихся к IPv6 (например, параметр net.ipv6.conf.eth0.disable_ipv6 = 1 в файлах /etc/sysctl.conf и /etc/sysctl.d/*.conf). При наличии таких параметров их следует удалить или закомментировать, так как попытки обращения к несуществующему стеку IPv6 будут вызвать ошибки.
Отключение IPv6 параметрами ядра с сохранением стека IPv6
Для сохранения стека IPv6 следует внести изменения в параметр GRUB_CMDLINE_LINUX в файле /etc/default/grub, заменив в атрибуте » ipv6.disable » значение 1 на значение 0:
GRUB_CMDLINE_LINUX_DEFAULT=»quiet net.ifnames=0 ipv6.disable=0″
После внесения изменений в файл /etc/default/grub следует обновить конфигурацию загрузчика:
sudo update-grub
и перезагрузить машину. Далее использовать Динамическое управление настройками сети sysctl.
Отключение настройки IPv6 сетевыми службами
Отключение IPv6 настройкой параметров ядра сделано в ОС Astra Linux по умолчанию (см. выше файл /etc/sysctl.d/999-astra.conf), однако при наличии загруженного модуля ядра IPv6 служба NetworkManager по умолчанию сама назначает сетевым интерфейсам адреса IPv6. Чтобы этого не происходило следует выполнить одно из действий:
-
Либо настроить все нужные параметры интерфейса в файле /etc/network/interfaces. Тогда параметры интерфейса будут задаваться службой networking, а служба NetworkManager будет игнорировать все интерфейсы, упомянутые в /etc/network/interfaces, и её можно даже отключить за ненадобностью:
sudo systemctl mask —now NetworkManager
- через графический интерфейс управления сетевыми интерфейсами в закладке «Параметры IPv6» выбрать метод «Игнорировать»
- из командной строки установить метод ignore:
nmcli con down «Проводное соединение 1»
nmcli con mod «Проводное соединение 1» ipv6.method ignore
nmcli con up «Проводное соединение 1»
Динамическое управление настройками сети sysctl
- Убедиться, что IPv6 не отключен в файле параметров загрузки:
- При использовании загрузчика grub2:
- Найти в файле /etc/default/grub строку параметров загрузчика GRUB_CMDLINE_LINUX и убедиться, что там не указан параметр «ipv6.disable=1», если такой параметр указан — убрать его или изменить значение параметра на 0
- Если файл был изменен, то обновить загрузчик:
sudo update-grub
net.ipv6.conf.all.disable_ipv6 = 1
заменить значение на 0:
net.ipv6.conf.all.disable_ipv6 = 0
или удалить.Следует контролировать наличие модифицируемых параметров в файле /etc/sysctl.conf и файлах /etc/sysctl.d/*. Если один и тот же параметр указан несколько раз, то используется последнее указанное значение. В частности, значение указанное в /etc/sysctl.conf отменяет значения, указанные в файлах /etc/sysctl.d/*.
Можно также включать/отключать использование на отдельных сетевых интерфейсах, например, для интерфейса eth0 отключить, для интерфейса lo — включить:
net.ipv6.conf.eth0.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 0
sudo sysctl —system
Многие сетевые источники рекомендуют применять изменения командой
sudo sysctl -pЗаданные указанным способом параметры будут автоматически применяться при перезагрузке ОС.
Включение IPv6
В Astra Linux Special Edition РУСБ.10015-16 исп. 2 и в Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1) IPv6 включается в файле /boot/boot.conf. Для включения IPv6 следует в файле /boot/boot.conf в строке cmdline=»ipv6.disable=1″ поменять на cmdline=»ipv6.disable=0″. Подробнее см.отдельную статью Файл параметров загрузки /boot/boot.conf .
Для включения протокола IPv6 следует:
- Убедиться, что IPv6 не отключен в файле параметров загрузки (файл /etc/default/grub или /boot/boot.conf). Для этого:
- В файле /etc/default/grub найти строку параметров загрузчика GRUB_CMDLINE_LINUX и убедиться, что там не указан параметр «ipv6.disable=1», если такой параметр указан — убрать его или заменить значение на 0;
- Для настройки параметров в файле /boot/boot.conf см. Файл параметров загрузки /boot/boot.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1и, если таковые строки имеются, удалить их или закомментировать.
sudo update-grub
Особенности настройки IPv6 для FreeIPA
Независимо от используемой аппаратной платформы для успешной работы серверов (реплик) FreeIPA сетевой интерфейс обратной петли (loopback, lo) должен иметь адрес IPv6.
Чтобы назначить такой адрес следует:
- Разрешить использовать стек IPv6 при загрузке:
- Для платформ, использующих загрузчик grub2 разрешить использовать стек IPv6 в параметрах загрузчика, если он не был ранее разрешен и перезагрузить машину.;
- Для платформ, использующих /boot/boot.conf см. Файл параметров загрузки /boot/boot.conf;
# Astra sysctl config kernel.sysrq = 0
fs.suid_dumpable = 0
kernel.randomize_va_space = 2
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 0sudo sysctl —system
Если при этом каким-то другим сетевым интерфейсам назначены неиспользуемые адреса IPv6 (например, службой NetworkManager), то желательно их убрать, так как попытки их использовать могут замедлять работу FreeIPA.
- Нет меток
- При использовании загрузчика grub2: