Как настроить ipv6 ubuntu

Настройка 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 в Debian и Ubuntu

Настрой себе IPv6 за несколько простых шагов.

Настраивать будем 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 соединения нет.

Читайте также:  Как настроить роутер tp link ec 220 g5

Таким образом, 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

Если нет локальной сети — то всё готово 🙂

Шаг 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

# 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 строк:

Теперь все компьютеры в локальной сети получат имена вида 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. В связи с появившимися копипастами напомнимаю, что перепечатка разрешена только с моего разрешения.

Источник

Linux и Windows: помощь админам и пользователям

Администрируем и настраиваем Windows, Linux.

Ubuntu Linux: добавляем статический IPv6 адрес

Для добавления в сетевую конфигурацию Ubuntu IPv6 адреса необходимо просто отредактировать файл/etc/network/interfaces.

Откройте файл /etc/network/interfaces, для начала получив права рута:

Сделайте резервную копию файла, а затем начните редактировать его:

# cp /etc/network/interfaces /etc/network/interfaces.backup

Используйте следующую конфигурацию, соответственно изменив адреса:

### Start IPV6 static configuration

iface eth0 inet6 static

pre-up modprobe ipv6

### END IPV6 configuration

Читайте также:  Не работает клавиатура блуди b120n

Сохраните и закройте файл. Перезапустите сеть:

Тестируем IPv6

Для того чтобы посмотреть ваш адрес, введите :

# ip -6 address show eth0

Пропингуйте сайт, поддерживающий IPv6, например ipv6.google.com или cyberciti.biz

PING cyberciti.biz(www.cyberciti.biz) 56 data bytes

64 bytes from www.cyberciti.biz: icmp_seq=1 ttl=60 time=65.3 ms

64 bytes from www.cyberciti.biz: icmp_seq=2 ttl=60 time=64.2 ms

64 bytes from www.cyberciti.biz: icmp_seq=3 ttl=60 time=63.9 ms

64 bytes from www.cyberciti.biz: icmp_seq=4 ttl=60 time=63.9 ms

64 bytes from www.cyberciti.biz: icmp_seq=5 ttl=60 time=64.1 ms

64 bytes from www.cyberciti.biz: icmp_seq=6 ttl=60 time=64.0 ms

64 bytes from www.cyberciti.biz: icmp_seq=7 ttl=60 time=64.0 ms

Или выполните трассировку:

traceroute to cyberciti.biz (2607:f0d0:1002:11::4), 30 hops max, 40 byte packets

1 ivp6gw.rose.simplyguide.org (2607:f0d0:2001:a::1) 0.739 ms 0.847 ms 0.962 ms

2 2607.f0d0.2000.0001.0000.0000.0000.0005-static.v6reverse.softlayer.com (2607:f0d0:2000:1::5) 1.079 ms 1.197 ms 1.313 ms

3 2607.f0d0.1000.0001.0000.0000.0000.0105-static.v6reverse.softlayer.com (2607:f0d0:1000:1::105) 64.457 ms 64.575 ms 64.691 ms

4 2607.f0d0.1000.0001.0000.0000.0000.0056-static.v6reverse.softlayer.com (2607:f0d0:1000:1::56) 64.810 ms 64.925 ms 65.045 ms

5 www.cyberciti.biz (2607:f0d0:1002:11::4) 67.486 ms 67.604 ms 67.719 ms

Постовой:

Вашей фирме сделали сайт, но его никто не посещает? Не беда, обратитесь в интернет агентство РИА, ведь раскрутка и продвижение сайтов г Воронеж это наша основная специализация.

Источник

Настройка и использование IPv6 на сервере Linux

IPv6 – это последняя версия интернет-протокола (или IP), который используется в сети Интернет для создания подключений (в данном случае аббревиатура IP расшифровывается как “internet protocol”, то есть IPv6 – это internet protocol version 6). Предыдущая версия, IPv4, по-прежнему широко используется; тем не менее, адресное пространство IPv4 исчерпывается быстрыми темпами, и оно не позволяет быстро развернуть готовые устройства.

IPv6 решает эти проблемы. Кроме общих улучшений в протоколе, наиболее очевидным преимуществом использования IPv6-адресов является то, что IPv6 имеет более широкое адресное пространство. IPv4 позволяет использовать 232 адресов (некоторые из них зарезервированы для отдельных целей), а адресное пространство IPv6 – 2128 адресов, что гораздо больше IPv4.

IPv6 открывает много возможностей и решает многие давнишние проблемы, но требует небольшой корректировки некоторых из обычных сетевых конфигураций (если ранее использовался исключительно протокол IPv4). В этом руководстве речь пойдет об инструментах IPv6, аналогичных популярным инструментам и утилитам IPv4, а также о настройке некоторых сервисов для использования IPv6.

Диагностика сети с IPv6

Некоторые простейшие утилиты, используемые для диагностики проблем сети, были разработаны с ориентировкой на IPv4. Для работы с трафиком IPv6 можно использовать аналоги этих утилит протокола IPv6.

Прежде всего, чтобы просмотреть имеющиеся на данный момент настроенные IPv6-адреса сервера, используйте инструменты iproute2:

ip -6 addr show
1: lo: mtu 65536
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0:
mtu 1500 qlen 1000
inet6 2400:6180:0:d0::41f/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::601:15ff:fe43:b201/64 scope link
valid_lft forever preferred_lft forever
3: eth1:
mtu 1500 qlen 1000
inet6 fe80::601:15ff:fe43:b202/64 scope link
valid_lft forever preferred_lft forever

Чтобы вывести на экран таблицу маршрутизации IPv6, можно использовать netstat, набрав что-то вроде:

netstat -A inet6 -rn
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
2400:6180:0:d0::/64 :: U 256 0 1 eth0
fe80::/64 :: U 256 0 0 eth1
fe80::/64 :: U 256 0 0 eth0
::/0 2400:6180:0:d0::1 UG 1024 0 0 eth0
::/0 :: !n -1 1 90 lo
::1/128 :: Un 0 1 20 lo
2400:6180:0:d0::41f/128 :: Un 0 1 86 lo
fe80::601:15ff:fe43:b201/128 :: Un 0 1 75 lo
fe80::601:15ff:fe43:b202/128 :: Un 0 1 0 lo
ff00::/8 :: U 256 0 0 eth1
ff00::/8 :: U 256 0 0 eth0
::/0 :: !n -1 1 90 lo

Пользователи, предпочитающие iproute2, могут получить эту информацию, введя:

ip -6 route show
2400:6180:0:d0::/64 dev eth0 proto kernel metric 256
fe80::/64 dev eth1 proto kernel metric 256
fe80::/64 dev eth0 proto kernel metric 256
default via 2400:6180:0:d0::1 dev eth0 metric 1024

Теперь, научившись получать некоторую информацию IPv6, можно ознакомиться с использованием некоторых инструментов, которые работают с IPv6.

На самом деле, часто встречающийся ping является специфичной командой IPv4. Аналогичная команда для IPv6-адресов называется ping6. Например, следующая строка будет пинговать локальный кольцевой интерфейс:

ping6 -c 3 ::1
PING ::1(::1) 56 data bytes
64 bytes from ::1: icmp_seq=1 ttl=64 time=0.021 ms
64 bytes from ::1: icmp_seq=2 ttl=64 time=0.028 ms
64 bytes from ::1: icmp_seq=3 ttl=64 time=0.022 ms
— ::1 ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.021/0.023/0.028/0.006 ms

Как видите, эта команда работает таким же образом, как и ping, с той лишь разницей, что для адресации используется версия протокола.

Еще один важный инструмент, аналог которого можно найти в IPv6 – это traceroute (в IPv6 – traceroute6):

traceroute6 google.com
traceroute to google.com (2404:6800:4003:803::1006) from 2400:6180:0:d0::41f, 30 hops max, 24 byte packets
1 2400:6180:0:d0:ffff:ffff:ffff:fff1 (2400:6180:0:d0:ffff:ffff:ffff:fff1) 0.993 ms 1.034 ms 0.791 ms
2 2400:6180::501 (2400:6180::501) 0.613 ms 0.636 ms 0.557 ms
3 2400:6180::302 (2400:6180::302) 0.604 ms 0.506 ms 0.561 ms
4 10gigabitethernet1-1.core1.sin1.he.net (2001:de8:4::6939:1) 6.21 ms 10.869 ms 1.249 ms
5 15169.sgw.equinix.com (2001:de8:4::1:5169:1) 1.522 ms 1.205 ms 1.165 ms
6 2001:4860::1:0:337f (2001:4860::1:0:337f) 2.131 ms 2.164 ms 2.109 ms
7 2001:4860:0:1::523 (2001:4860:0:1::523) 2.266 ms 2.18 ms 2.02 ms
8 2404:6800:8000:1c::8 (2404:6800:8000:1c::8) 1.741 ms 1.846 ms 1.895 ms

Следующая популярная команда называется tracepath (в IPv6 – tracepath6). Например:

tracepath6 ::1
1?: [LOCALHOST] 0.045ms pmtu 65536
1: ip6-localhost 0.189ms reached
1: ip6-localhost 0.110ms reached
Resume: pmtu 65536 hops 1 back 64

Читайте также:  Блокировка вращения windows 10 не работает

Чтобы контролировать входящий трафик, как правило, используется программа tcpdump. Эта утилита может отфильтровывать IPv6-трафик с помощью выражения ip6 or proto ipv6, введенного после опций.

Например, можно измерить быстрый трафик IPv6, сказав утилите вывести только важную информацию. Данная команда собирает резюме информации, чтобы избежать задержки выхода:

tcpdump -t -n -i eth0 -s 512 -vv ip6 or proto ipv6

Проверка информации DNS

С помощью типичных инструментов IPv6 можно быстро проверить информацию о доменах. Главное отличие от IPv4 состоит в том, что нужно запрашивать записи AAAA ((IPv6 address record), которые используются в IPv6 вместо записей А (в IPv4).

Чтобы получить запись об IPv6-адресе домена, можно просто запросить запись AAAA. С помощью команды host это делается следующим образом:

host -t AAAA google.com
google.com has IPv6 address 2404:6800:4003:803::1004

Подобный результат можно получить при помощи команды dig:

dig google.com AAAA
; > DiG 9.8.1-P1 > google.com AAAA
;; global options: +cmd
;; Got answer:
;; ->>HEADER

Как видите, работая с IPv6-адресами, можно легко проверить, правильно ли разрешается DNS.

Сетевые сервисы IPv6

Большинство общих сетевых сервисов могут обрабатывать трафик IPv6. Иногда они нуждаются в специальных флагах или синтаксисе, а в некоторых случаях они имеют альтернативную версию, разработанную специально для IPv6.

Настройка SSH

В SSH можно настроить демона на прослушивание IPv6-адресов. Это делается в конфигурационном файле, который можно открыть так:

sudo nano /etc/ssh/sshd_config

Директива ListenAddress указывает, к какому адресу должен привязываться демон SSH. Для адресов IPv4 это выглядит так:

То есть, демон прослушивает IPv4-адрес 111.111.111.111 на порту 22. В случае с IPv6-адресами сам адрес нужно взять в квадратные скобки:

Это скажет демону SSH слушать адрес 1341:8954:a389:33:ba33::1 на порту 22. Чтобы сказать демону слушать все доступные адреса IPv6, наберите:

Не забывайте перезагрузить демона после внесения изменений.

sudo service ssh restart

Если на стороне клиента демон, к которому нужно подключиться, настроен на прослушивание адресов IPv4 и IPv6, клиента можно заставить использовать IPv6 только с помощью флага -6, вот так:

ssh -6 username@host.com

Настройка веб-сервера

Как и SSH-демон, веб-сервер должен быть настроен на прослушивание адресов IPv6.

Чтобы Apache отвечал на запросы определенных IPv6-адресов, используйте синтаксис:

Это скажет серверу прослушивать указанный адрес на порту 80. Для большей гибкости эту строку можно скомбинировать с адресами IPv4; это делается так:

Listen 111.111.111.111:80
Listen [1341:8954:a389:33:ba33::1]:80

При необходимости слушать соединения на порт 80 на всех интерфейсах во всех протоколах можно использовать просто:

Указать адрес IPv6 можно также на уровне виртуального хоста. Как видите, здесь можно настроить virtualhost для IPv6- и IPv4-адреса:

Не забудьте перезагрузить сервис для активации внесенных изменений.

sudo service apache2 restart

Пользователи, предпочитающие использовать в качестве веб-сервера Nginx, могут выполнить подобную конфигурацию. За прослушивание адресов отвечает директива listen; чтоб прослушивать трафик IPv6:

На самом деле, в Linux трафик IPv4 тоже будет прослушиваться на порту 80, потому что запросы IPv4 автоматически преобразовываются в адрес IPv6. Потому не нужно указывать адреса IPv6 и IPv4 отдельно следующим образом:

listen [1341:8954:a389:33:ba33::1]:80;
listen 111.111.111.111:80;

Это приведет к ошибке, сообщающей, что порт уже привязан к другому сервису. Чтобы использовать отдельные директивы, отключите эту функцию с помощью sysctl:

sysctl -w net.ipv6.bindv6only=1

Чтобы эта строка автоматически выполнялась при загрузке, добавьте ее в /etc/sysctl.conf:

sudo nano /etc/sysctl.conf
. . .
net.ipv6.bindv6only=1

После этого можно использовать отдельные директивы для IPv4 и IPv6, добавив флаг ipv6only=on к директиве, прослушивающей IPv6:

listen [1341:8954:a389:33:ba33::1]:80 ipv6only=on;
listen 111.111.111.111:80;

Опять же, нужно перезапустить Nginx для активации новых настроек:

sudo service nginx restart

Настройки брандмауэра

К счастью, пользователи, привыкшие настраивать правила брандмауэра при помощи фронт-эндов netfilter (например, iptables), могут использовать аналогичный инструмент, который называется ip6tables.

Чтобы узнать, как настроить iptables в Ubuntu, читайте данную статью.

Для управления правилами фильтрации пакетов IPv6 можно просто заменить команду на ip6tables. Например, в список правил IPv6 можно ввести:

sudo ip6tables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination

При использовании на сервере инструмента ufw все уже готово! Дело в том, что ufw настраивает сразу оба стека, если не указано иное. Возможно, придется добавить некоторые правила для конкретных адресов IPv6, но использовать другой инструмент не понадобится.

Чтобы узнать больше об использовании ufw, читайте данное руководство.

Настройка TCP-оболочек

При использовании TCP-оболочек для управления доступом к серверу через файлы /etc/hosts.allow и /etc/hosts.deny просто используйте синтаксис IPv6, чтобы соответствовать определенным правилам.

Например, можно разрешить подключаться по SSH только адресам IPv4 и IPv6; для этого внесите в файл /etc/hosts.allow следующее:

sudo nano /etc/hosts.allow
. . .
sshd: 111.111.0.0/255.255.254.0, [1341:8954:a389:33::]/64

Как видите, адаптировать текущие правила оболочки TCP очень легко.

Итоги

Надеемся, данное руководство показало, что переход на IPv6 или использование IPv6 вместе с IPv4 – довольно простой процесс.

Конечно, для рационального использования ресурсов IPv6 часто приходится изучать сетевые сервисы по отдельности, чтобы узнать о необходимости каких-либо дополнительных изменений в конфигурациях. Тем не менее, теперь работать с IPv6, используя основные утилиты и сервисы, будет более комфортно.

Источник

Оцените статью