Как настроить ipv6 linux
Обновлено: 21.11.2024
В Arch Linux IPv6 включен по умолчанию.
Статья tldp Linux+IPv6-HOWTO устарела и менее актуальна. Тем не менее, он пытается охватить многие темы, упомянутые в этой статье, начиная с основ и продвигаясь более медленными темпами. Он также имеет много примеров командной строки. Начинающие могут прочитать или просмотреть ее перед прочтением этой вики-статьи.
Содержание
Обнаружение соседей
Эхо-запрос многоадресного адреса ff02::1 приводит к ответу всех хостов в области локальной связи. Должен быть указан интерфейс:
После этого вы можете получить список всех соседей в локальной сети с помощью:
При эхо-запросе на многоадресный адрес ff02::2 ответят только маршрутизаторы.
Если вы добавите параметр -I your-global-ipv6 , локальные хосты будут отвечать своими адресами глобальной области. В этом случае интерфейс можно не указывать:
Автоконфигурация без сохранения состояния (SLAAC)
Самый простой способ получить IPv6-адрес, если ваша сеть настроена, — это использовать автоконфигурацию адреса без сохранения состояния (сокращенно SLAAC). Адрес автоматически выводится из префикса, который объявляет ваш маршрутизатор, и не требует ни дополнительной настройки, ни специального программного обеспечения, такого как DHCP-клиент.
Для клиентов
Если вы используете netctl, вам просто нужно добавить следующую строку в конфигурацию Ethernet или беспроводной сети.
Если вы используете NetworkManager, он автоматически включает IPv6-адреса, если в сети есть их реклама.
Обратите внимание, что автоконфигурация без сохранения состояния работает при условии, что icmp-пакеты IPv6 разрешены во всей сети. Таким образом, для клиентской стороны должны приниматься пакеты ipv6-icmp. Если вы используете простой межсетевой экран/iptables с отслеживанием состояния, вам нужно всего лишь добавить:
Если вы используете другой интерфейс брандмауэра (ufw, Shorewall и т. д.), обратитесь к его документации, чтобы узнать, как включить пакеты ipv6-icmp.
Если выбранное вами решение для управления сетью не поддерживает настройку преобразователя DNS с IPv6 без сохранения состояния (например, netctl), то для этого можно использовать rdnssd(8) из пакета ndisc6. р>
Для шлюзов
Чтобы правильно раздавать IPv6 сетевым клиентам, нам понадобится рекламный демон. Стандартным инструментом для этой работы является radvd, который доступен в официальных репозиториях. Настройка radvd довольно проста. Отредактируйте /etc/radvd.conf, чтобы включить
В приведенной выше конфигурации клиентам будет предложено автоматически настроить себя, используя адреса из рекламируемого блока /64. Обратите внимание, что приведенная выше конфигурация объявляет все доступные префиксы, назначенные интерфейсу, обращенному к локальной сети. Если вы хотите ограничить рекламируемые префиксы вместо ::/64, используйте нужный префикс, например. 2001:DB8::/64 . Блок префикса может повторяться много раз для большего количества префиксов.
Чтобы объявить DNS-серверы клиентам вашей локальной сети, вы можете использовать функцию RDNSS. Например, добавьте следующие строки в файл /etc/radvd.conf для рекламы серверов Google DNS v6:
Шлюз также должен разрешать трафик пакетов ipv6-icmp во всех основных цепочках. Для простого межсетевого экрана с отслеживанием состояния/iptables добавьте:
Настройте соответствующим образом другие интерфейсы брандмауэра и не забудьте включить radvd.service .
Расширения конфиденциальности
Когда клиент получает адрес через SLAAC, его IPv6-адрес получается из объявленного префикса и MAC-адреса сетевого интерфейса клиента. Это может вызвать проблемы с безопасностью, поскольку MAC-адрес компьютера может быть легко получен по адресу IPv6. Для решения этой проблемы был разработан стандарт Расширения конфиденциальности IPv6 (RFC 4941). С расширениями конфиденциальности ядро генерирует временный адрес, искаженный из исходного автоматически сконфигурированного адреса. Частные адреса предпочтительнее при подключении к удаленному серверу, поэтому исходный адрес скрыт. Чтобы включить расширения конфиденциальности, выполните следующие действия:
Добавьте эти строки в /etc/sysctl.d/40-ipv6.conf:
Не позднее чем после перезагрузки должно быть включено расширение конфиденциальности.
dhcpcd
Конфигурация dhcpcd по умолчанию включает параметр slaac private , который включает «Стабильные частные IPv6-адреса вместо аппаратных», реализуя RFC 7217. Поэтому нет необходимости что-либо менять, за исключением случаев, когда требуется изменить IPv6-адрес. чаще, чем каждый раз, когда система подключается к новой сети. Установите slaac hwaddr для стабильного адреса.
Менеджер сети
Использованием расширений конфиденциальности IPv6 в NetworkManager можно управлять с помощью параметра ipv6.ip6-privacy в NetworkManager.conf(5) или в профиле подключения. Если он не установлен ни глобально, ни для каждого соединения, NetworkManager вернется к чтению /proc/sys/net/ipv6/conf/default/use_tempaddr .
Чтобы явно включить расширения конфиденциальности IPv6 по умолчанию, добавьте эти строки в NetworkManager.конф(5):
Примените конфигурацию и повторно подключитесь ко всем активным подключениям.
Чтобы контролировать использование расширений конфиденциальности IPv6 для отдельных подключений, управляемых NetworkManager, отредактируйте ключевой файл нужного подключения в /etc/NetworkManager/system-connections/ и добавьте в его раздел [ipv6] пару "ключ-значение" ip6-privacy= 2 :
Перезагрузите соединение и повторно подключитесь к нему позже.
Примечание. Хотя может показаться, что глобальный временный IPv6-адрес области действия, созданный путем включения расширений конфиденциальности, никогда не обновляется (он никогда не переходит в устаревший статус по истечении срока действия valid_lft), его необходимо проверять в течение более длительного периода времени. что этот адрес действительно меняется.
systemd-networkd
Другие параметры расширений конфиденциальности IPv6, такие как:
однако уважаются.
Мошенник
Установить в служебном файле, например /var/lib/connman/service/settings :
Подробности см. в ConnMan.
Стабильные частные адреса
Еще один вариант — стабильный частный IP-адрес (RFC 7217). Это позволяет использовать стабильные IP-адреса в сети, не раскрывая MAC-адрес интерфейса.
Чтобы ядро сгенерировало ключ (например, для wlan0 ), мы можем установить:
Примечание. Если вы используете dhcpcd для получения IPv6-адреса, флаг стабильной конфиденциальности не будет привязан к этому IP-адресу.
Менеджер сети
Приведенные выше настройки не учитываются NetworkManager, но NetworkManager по умолчанию использует стабильные частные адреса.[1][2]
Статический адрес
Иногда использование статического адреса может повысить безопасность. Например, если ваш локальный маршрутизатор использует Neighbor Discovery или radvd (RFC 2461), вашему интерфейсу будет автоматически назначен адрес на основе его MAC-адреса (используя автоконфигурацию IPv6 без сохранения состояния). Это может быть далеко не идеальным с точки зрения безопасности, поскольку позволяет отслеживать систему, даже если сетевая часть IP-адреса изменяется.
Чтобы назначить статический IP-адрес с помощью netctl, просмотрите пример профиля в /etc/netctl/examples/ethernet-static . Следующие строки важны:
Примечание. Если вы подключены только по протоколу IPv6, вам необходимо определить свой DNS-сервер IPv6. Например: если ваш провайдер не предоставил вам IPv6 DNS и вы не используете свой собственный, вы можете выбрать из статьи resolv.conf.
IPv6 и PPPoE
Стандартный инструмент для PPPoE, pppd(8), обеспечивает поддержку IPv6 в PPPoE, если ваш интернет-провайдер и ваш модем поддерживают его. Просто добавьте следующее в /etc/ppp/options
Если вы используете netctl для PPPoE, просто добавьте следующее в конфигурацию netctl:
Делегирование префикса (DHCPv6-PD)
Примечание. Этот раздел посвящен индивидуальной настройке шлюза, а не клиентским компьютерам. Для стандартных рыночных маршрутизаторов ознакомьтесь с документацией вашего маршрутизатора, чтобы узнать, как включить делегирование префикса.
Делегирование префикса — это распространенный метод развертывания IPv6, используемый многими интернет-провайдерами. Это метод назначения сетевого префикса пользовательскому сайту (т. е. локальной сети). Маршрутизатор можно настроить для назначения разных сетевых префиксов разным подсетям. Интернет-провайдер выдает сетевой префикс с использованием DHCPv6 (обычно /56 или /64), а клиент DHCP назначает префиксы локальной сети. Для простого шлюза с двумя интерфейсами префикс IPv6 практически назначается интерфейсу, подключенному к локальной сети, из адреса, полученного через интерфейс, подключенный к глобальной сети (или псевдоинтерфейс, такой как ppp).
DHCPv6 требует, чтобы клиент принимал входящие подключения через порт 546 UDP. Для брандмауэра на основе nftables, который можно настроить с помощью одной строки в цепочке ввода в /etc/nftables.conf:
С помощью dhcpcd
dhcpcd помимо поддержки IPv4 dhcp также обеспечивает довольно полную реализацию клиентского стандарта DHCPv6, который включает DHCPv6-PD. Если вы используете dhcpcd, отредактируйте файл /etc/dhcpcd.conf. Возможно, вы уже используете dhcpcd для IPv4, поэтому просто обновите существующую конфигурацию.
Эта конфигурация запросит префикс из интерфейса WAN ( WAN ) и делегирует его внутреннему интерфейсу ( LAN ). В случае, если выдается диапазон /64, вам нужно будет использовать вместо этого вторую инструкцию ia_pd, которая закомментирована. Это также отключит запросы маршрутизатора на всех интерфейсах, кроме интерфейса WAN ( WAN ).
С WIDE-DHCPv6
WIDE-DHCPv6 — это реализация протокола динамической конфигурации хоста для IPv6 (DHCPv6) с открытым исходным кодом, изначально разработанная в рамках проекта KAME. Его можно установить с помощью AUR с широким протоколом DHCPv6.
Если вы используете wide-dhcpv6, отредактируйте /etc/wide-dhcpv6/dhcp6c.conf
Примечание: sla-len должен быть установлен таким образом, чтобы (WAN-префикс) + (sla-len) = 64 . В этом случае он настроен на префикс /56 56+8=64. Для префикса /64 sla-len должен быть равен 0 .
Клиент wide-dhcpv6 можно запустить/включить с помощью интерфейса dhcp6c@.юнит-файл service systemd, где interface — имя интерфейса в файле конфигурации, например для имени интерфейса "WAN" используйте dhcp6c@WAN.service .
systemd-networkd
Настройте восходящий (wan) и нисходящий (lan) интерфейсы. Это включит DHCPv6-PD на интерфейсе, где работает клиент DHCPv6. Делегированные префиксы распространяются объявлением маршрутизатора IPv6 в нисходящей сети.
Другие клиенты
NAT64
Wikipedia:NAT64 — это механизм перехода IPv6, при котором хосты, использующие только IPv6, могут взаимодействовать с хостами IPv4, используя NAT.
Ядро Linux изначально не поддерживает NAT64, но есть несколько пакетов, добавляющих поддержку NAT64.
- Jool — SIIT и NAT64 для Linux
- TAYGA — демон NAT64 (не поддерживается)
Отключить IPv4
Эту статью или раздел необходимо расширить.
Отключить IPv6
Эту статью или раздел необходимо расширить.
Причина: добавьте причины, по которым пользователи могут захотеть отключить IPv6, например некачественные DNS-серверы или правила брандмауэра (Обсудить в разговоре:IPv6)
Эту статью или раздел необходимо расширить.
Причина: добавить недостатки отключения IPv6, такие как снижение производительности CGN, ухудшение производительности в приложениях и играх на основе p2p/webrtc (Обсудить в разговоре:IPv6)
Отключить функциональность
Добавление ipv6.disable=1 в строку ядра отключает весь стек IPv6, что, вероятно, вам нужно, если у вас возникли проблемы. Дополнительные сведения см. в разделе Параметры ядра.
В качестве альтернативы добавление ipv6.disable_ipv6=1 вместо этого сохранит работоспособность стека IPv6, но не будет назначать адреса IPv6 ни одному из ваших сетевых устройств.
Можно также избежать назначения IPv6-адресов конкретным сетевым интерфейсам, добавив следующую конфигурацию sysctl в /etc/sysctl.d/40-ipv6.conf :
Перезапустите модуль systemd-sysctl.service, чтобы применить изменения конфигурации.
Обратите внимание, что вы должны явно перечислить все целевые интерфейсы, так как отключение all.disable_ipv6 не применяется к интерфейсам, которые уже включены, когда применяются настройки sysctl.
Примечание. Если вы отключаете IPv6 через sysctl, вы должны закомментировать хосты IPv6 в файле /etc/hosts. В противном случае могут возникнуть некоторые ошибки подключения, поскольку хосты разрешаются в недостижимые адреса IPv6.
Другие программы
Отключение функций IPv6 в ядре не мешает другим программам использовать IPv6. В большинстве случаев это совершенно безвредно, но если у вас возникнут проблемы с этой программой, вам следует обратиться к страницам руководства программы, чтобы узнать, как отключить эту функцию.
dhcpcd
dhcpcd продолжит безвредные попытки выполнить запрос маршрутизатора IPv6. Чтобы отключить это, как указано на справочной странице dhcpcd.conf(5), добавьте в /etc/dhcpcd.conf следующее:
Менеджер сети
Эта статья или раздел нуждается в улучшении языка, синтаксиса вики или стиля. См. Help:Style для справки.
Чтобы отключить IPv6 в NetworkManager, щелкните правой кнопкой мыши значок состояния сети и выберите Редактировать подключения > Проводная > Имя сети > Редактировать > Настройки IPv6 > Метод > Игнорировать/отключено . Затем нажмите Сохранить.
Это создаст вставной фрагмент, который будет запущен вместо ntpd.service по умолчанию. Флаг -4 запрещает использование IPv6 демоном ntp. Поместите в раскрывающийся фрагмент следующее:
который сначала очищает предыдущий ExecStart , а затем заменяет его тем, который включает флаг -4.
GnuPG
Отключить IPv6 в файле конфигурации dirmngr:
После этого перезапустите пользовательский модуль dirmngr.service.
Убедитесь, что sshd использует IPv4, добавив в sshd_config следующее:
И перезапустите sshd.service .
systemd-timesyncd
Иногда systemd-timesyncd пытается запросить сервер времени IPv6, даже если IPv6 отключен. Это может привести к тому, что системные часы не будут обновляться, а в журнале появится сообщение об ошибке, подобное следующему:
Состояние устройства systemd-timesyncd покажет попытку подключения с IPv6-адресом в его записи Status, аналогично:
systemd-networkd
networkd поддерживает отключение IPv6 для каждого интерфейса. Если в разделе [Сеть] сетевого устройства указано LinkLocalAddressing=ipv4 или LinkLocalAddressing=no , networkd не будет пытаться настроить IPv6 на соответствующих интерфейсах.
Однако обратите внимание, что даже при использовании вышеуказанного параметра networkd все равно будет ожидать получения объявлений маршрутизатора, если IPv6 не отключен глобально. Если интерфейс не получает IPv6-трафик (например, из-за настроек sysctl или ip6tables), он останется в состоянии настройки и может привести к тайм-аутам для служб, ожидающих сеть должна быть полностью настроена.Чтобы этого не произошло, в разделе [Сеть] также необходимо установить параметр IPv6AcceptRA=no.
Предпочитать IPv4 вместо IPv6
Фактическая точность этой статьи или раздела оспаривается.
Это пошаговое руководство по настройке адреса IPv6 проверено в RHEL и CentOS 7.
IPv6 может заменить сетевой протокол IPv4. Основная проблема, которую он решает, — исчерпание адресов IPv4 за счет использования гораздо большего сетевого адресного пространства. Он также предоставляет ряд улучшений и новых функций для управления конфигурацией сети и поддержки будущих изменений протокола.
Основная причина, по которой IPv6 еще не получил широкого распространения, заключается в том, что базовый протокол не предоставляет простого способа для систем, использующих только адреса IPv6, обмениваться данными с системами, имеющими только адреса IPv4.
Чтобы упростить запись IPv6-адресов, начальные нули в группе, разделенной двоеточием, не нужно записывать. Однако в каждом поле должен быть записан хотя бы один полубайт. Нули, следующие за ненулевым полубайтом в группе, записывать не нужно.
Поскольку адреса с длинными строками нулей являются общими, объедините одну или несколько групп последовательных нулей ровно с одним :: блоком.
Обратите внимание, что в соответствии с этими правилами 2001:1:1:1443::400 — менее удобный способ записи примера адреса. Но это допустимое представление одного и того же адреса, и это может сбить с толку администраторов, плохо знакомых с IPv6.
Несколько советов по написанию постоянно читаемых адресов
- Всегда отключать все ведущие нули в группе
- Используйте ::, чтобы максимально сократить текст. Если две серии нулей имеют одинаковую длину, укоротите крайнюю левую серию нулей по своему усмотрению.
- Хотя это и разрешено, не используйте :: для сокращения одной группы нулей. Вместо этого используйте :0: и сохраняйте :: для последовательностей нулей, длиннее одной группы.
- Всегда используйте строчные буквы для шестнадцатеричных чисел от a до f .
При указании сети TCP или UDP после IPv6-адреса всегда заключайте IPv6-адрес в квадратные скобки, чтобы порт не выглядел так, как будто он является частью адреса
Необходимые условия перед началом настройки IPv6-адреса
Убедитесь, что IPv6 включен на вашем узле. Обратите внимание на запись ниже в конфигурации sysctl
Здесь будет указан статус IPv6 для значения по умолчанию и для каждого интерфейса.
Здесь "0" означает, что IPv6 активен на нашем узле, если приведенное выше значение возвращает "1", это означает, что IPv6 отключен на вашем узле. Поэтому, если IPv6 отключен, ваша конфигурация IPv6 не будет работать.
Также возможно, что приведенная выше команда не вернет никакого вывода, что означает, что IPv6 отключен через GRUB, поэтому вам необходимо повторно включить IPv6 из GRUB, а затем перезагрузить узел, чтобы активировать изменения.
Я уже написал статью с инструкциями по включению или отключению IPv6
Сравнение директив nm-setting и ifcfg-*
В следующей таблице сопоставлены имена некоторых ключевых параметров NetworkManager, относящихся к соединениям IPv6, с директивами ifcfg-*.
Настройте IPv6-адрес с помощью Network Manager.
Откройте консоль Network Manager с вашего узла Linux
Выберите «Редактировать соединение» и нажмите «ОК».
Затем найдите свою карту Ethernet, на которой вы хотите настроить IPv6-адрес. Если вашей сетевой карты нет в списке, вы можете добавить новое устройство. Так как для меня существует мое устройство ( eno50 ), поэтому я выберу устройство и выберу Изменить
Появится главная страница конфигурации, где вы должны указать все детали для настройки IPv6-адреса. Поскольку я не хочу добавлять адрес IPv4 к тому же устройству Ethernet, я отключил параметр IPv4.
Укажите IPv6-адрес/подсеть и шлюз. Убедитесь, что вы выбрали Автоматическое подключение
Наконец нажмите OK, чтобы выйти из утилиты.
Затем перезапустите сетевые службы, чтобы активировать изменения
Теперь давайте проверим сетевую конфигурацию eno50
Похоже, мне удалось успешно настроить интерфейс с IPv6-адресом.
Подтвердить подключение, проверив связь со шлюзом IPv6
Таким образом, я могу подключиться к своему шлюзу, что означает, что моя конфигурация IPv6 прошла успешно.
Настройка IPv6-адреса с помощью интерфейса командной строки
Следующая команда добавит новое подключение для интерфейса eno49, который будет автоматически подключаться при запуске, получая сетевую информацию IPv4 с помощью DHCPv4. Он также получит сетевые настройки IPv6, прослушивая объявления маршрутизатора по локальной ссылке.
Приведенная ниже команда настраивает интерфейс eno49 статически, используя адрес IPv6 и префикс сети 2001:1:1:1443::433/122 и шлюз IPv6 по умолчанию 2001:1:1:1443::43F , но по-прежнему подключается автоматически. при запуске и сохраняет свою конфигурацию в /etc/sysconfig/network-scripts/ifcfg-eno49 .
Давайте проверим нашу конфигурацию, пропинговав шлюз с помощью интерфейса eno49
Опять же с CLI, похоже, шаги для меня успешны.
Изменить существующую конфигурацию IPv6
В приведенной ниже команде мы меняем IPv6-адрес нашего интерфейса eno49 с 2001:1:1:1443::433 на 2001:1:1:1443::434, а шлюз остается прежним.
Перезапустите интерфейс eno49
Далее добавьте интерфейс
Подтвердить новый IP-адрес для устройства eno49
Проверьте подключение eno49 к шлюзу
Проверьте файл конфигурации для eno49
Затем перезапустите сетевые службы, чтобы активировать изменения
Я надеюсь, что шаги из статьи по настройке IPv6-адреса в Linux (CentOS/RHEL 7/8) были вам полезны. Дайте мне знать ваши предложения и отзывы, используя раздел комментариев.
Похожие сообщения
Не нашли то, что искали? Выполните быстрый поиск в GoLinuxCloud
Если мои статьи о GoLinuxCloud помогли вам, пожалуйста, купите мне кофе в знак признательности.
Для любых других отзывов или вопросов вы можете использовать раздел комментариев или форму обратной связи.
Спасибо за поддержку!!
6 мыслей о «Как настроить адрес ipv6 в Linux (RHEL / CentOS 7/8)»
Как вы получили /122 при создании нового IP-адреса и того же примера шлюза?
Это шлюз и подсеть, предоставленные нашей сетевой командой.
Для нас, нубов: после настройки адреса необходимо перезапустить сеть:
сервисный перезапуск сети
Спасибо за отзыв, я обновил статью 🙂
Мне очень нравится ваш сайт. Очень приятные цвета и тема. Вы сами сделали этот замечательный сайт? Пожалуйста, ответьте, так как я планирую создать свой собственный сайт и хочу знать, откуда вы это взяли или как именно называется тема. Слава!
Пример IPv6-адреса показан ниже:
IPv6 обычно включен по умолчанию в CentOS/RHEL 8. Чтобы проверить, включен ли IPv6 в вашей системе, выполните команду:
Значение 0 указывает, что IPv6 активен на вашем узле. Значение 1 показывает, что IPv6 отключен. Таким образом, судя по приведенным выше выводам, IPv6 включен.
Еще один способ проверить, включен ли протокол IPv6, — просмотреть сетевой интерфейс в каталоге /etc/network-scripts/. В нашем случае это будет файл /etc/sysconfig/network-scripts/ifcfg-enps03.
Давайте выполним приведенную ниже команду и проверим, включен ли IPv6.
Ищите следующие варианты IPV6, как показано на рисунке:
- IPV6INIT=yes — инициализирует интерфейс для адресации IPv6.
- IPV6_AUTOCONF=yes — включает автоматическую настройку IPv6 для интерфейса.
- IPV6_DEFROUTE=yes — указывает, что интерфейсу назначен маршрут IPv6 по умолчанию.
- IPV6_FAILURE_FATAL=no — указывает, что система не выйдет из строя даже при сбое IPv6.
Вывод выше подтверждает, что адресация IPv6 включена. На терминале вы можете проверить IPv6-адрес ваших интерфейсов, выполнив приведенные ниже IP-команды.
Обратите внимание на префикс inet6, как показано ниже.
Чтобы временно отключить IPv6, выполните команду:
Чтобы включить IPv6, выполните команду:
Затем перезапустите NetworkManager, чтобы изменения вступили в силу.
Чтобы навсегда отключить IPv6, отредактируйте файл GRUB /etc/default/grub. В строке GRUB_CMDLINE_LINUX добавьте аргумент ipv6.disable=1 в конце строки, как показано.
Чтобы применить изменения, перезагрузите систему.
Как и в случае с IPv4, IPv6 можно настроить вручную с помощью инструментов nmtui и nmcli. Однако делать это не рекомендуется, так как ручная настройка IPv6 чревата ошибками и довольно трудоемка.
Кроме того, довольно сложно отслеживать, какие IPv6-адреса назначены каким системам. Скорее всего, вы испортите конфигурацию.
Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.
Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:
TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.
Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.
Мы благодарны за вашу бесконечную поддержку.
Похожие сообщения
Есть что сказать? Присоединяйтесь к обсуждению. Отменить ответ
Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются данные ваших комментариев.
IPv6 — это самая последняя версия протокола IP, на которую опирается весь Интернет для подключения к другим местам (протокол IP немного избыточен, поскольку IP означает интернет-протокол, но мы будем использовать его, потому что он прост). Хотя IPv4 все еще используется во многих регионах мира, адресное пространство IPv4 расходуется с большой скоростью, и его недостаточно для обеспечения быстрого развертывания готовых к Интернету устройств.
IPv6 призван решить эти проблемы. Помимо внесения общих улучшений в протокол, наиболее очевидным преимуществом использования адресов IPv6 является то, что он имеет намного большее адресное пространство. В то время как IPv4 позволяет использовать 2^32 адреса (некоторые из них зарезервированы для специальных целей), адресное пространство IPv6 позволяет использовать 2^128 адресов, что является невероятным увеличением.
Несмотря на то, что IPv6 открывает множество возможностей и решает многие давние проблемы, он требует некоторой корректировки некоторых ваших обычных сетевых конфигураций, если вы привыкли использовать исключительно IPv4. В этом руководстве мы поговорим о некоторых IPv6-аналогах некоторых популярных инструментов и утилит IPv4, а также обсудим, как настроить некоторые популярные службы для использования IPv6.
Простая диагностика сети с IPv6
Некоторые из самых простых утилит, используемых для диагностики сетевых проблем, были созданы с учетом IPv4. Чтобы решить эту проблему, мы можем использовать их кузенов IPv6, когда мы хотим иметь дело с трафиком IPv6.
Прежде всего, чтобы увидеть ваши текущие настроенные IPv6-адреса для вашего сервера, вы можете использовать инструменты iproute2, чтобы показать вам текущие настроенные адреса:
Чтобы распечатать таблицу маршрутизации IPv6, вы можете использовать netstat, набрав что-то вроде этого:
Если вы предпочитаете инструменты iproute2, вы можете получить аналогичную информацию, набрав:
Теперь, когда вы знаете, как получить некоторую информацию о вашем IPv6, давайте немного узнаем, как использовать некоторые инструменты, работающие с IPv6.
Повсеместно распространенная команда ping на самом деле специфична для IPv4. Версия команды для IPv6, которая работает точно так же, но для адресов IPv6, неудивительно называется ping6 . Это пропингует локальный петлевой интерфейс:
Как видите, это работает именно так, как ожидалось, с той лишь разницей, что версия протокола используется для адресации.
Еще один инструмент, на который вы можете положиться, — это traceroute. Также доступен эквивалент IPv6:
Возможно, вам знакома команда tracepath. Это следует примеру других команд для версии IPv6:
Если вам нужно отслеживать трафик, поступающий на ваш компьютер, часто используется программа tcpdump. Мы можем заставить эту утилиту отображать только наш трафик IPv6, отфильтровав его с помощью выражения ip6 или proto ipv6 после наших параметров.
Например, мы можем легко измерить быстро проходящий трафик IPv6, сказав инструменту собирать только интересующую нас информацию. Мы можем использовать эту команду, взятую здесь, чтобы собрать только сводку информации, чтобы избежать задержки вывода. :
Проверка информации DNS IPv6
Вы можете легко проверить информацию DNS для своих доменов с помощью обычных инструментов. Основное отличие состоит в том, что вы, вероятно, будете запрашивать записи AAAA, которые используются для адресов IPv6, а не записи A, которые используются только для сопоставления IPv4.
Чтобы получить запись адреса IPv6 для домена, вы можете просто запросить запись AAAA. С помощью команды host это можно сделать следующим образом:
Если вы предпочитаете использовать dig , аналогичные результаты можно получить, используя следующий синтаксис:
Как видите, проверить правильность разрешения DNS для ваших доменов так же просто, когда вы работаете с адресами IPv6.
Сетевые службы с IPv6
Большинство ваших общих сетевых служб должны иметь возможность обрабатывать трафик IPv6. Иногда им нужны специальные флаги или синтаксис, а иногда они предоставляют альтернативную реализацию специально для IPv6.
Конфигурация SSH
Для SSH демон можно настроить на прослушивание IPv6-адреса. Это контролируется в файле конфигурации, который вы можете открыть с помощью:
Адрес прослушивания указывает, к какому адресу будет привязан демон SSH. Для адресов IPv4 это выглядит так:
Это прослушивает IPv4-адрес 111.111.111.111 на порту 22. Для IPv6-адреса вы можете сделать то же самое, поместив адрес в квадратные скобки:
Это указывает демону SSH прослушивать адрес 1341:8954:a389:33:ba33::1 на порту 22. Вы можете указать ему прослушивать все доступные IPv6-адреса, набрав:
Не забудьте перезагрузить демон после внесения изменений:
На стороне клиента, если демон, к которому вы подключаетесь, настроен на прослушивание с использованием IPv4 и IPv6, вы можете заставить клиента использовать только IPv6, используя флаг -6, как показано ниже. :
Конфигурация веб-сервера
Подобно демону SSH, веб-серверы также должны быть настроены для прослушивания адресов IPv6.
В Apache вы можете настроить сервер так, чтобы он отвечал на запросы по определенному IPv6-адресу, используя следующий синтаксис:
Это указывает серверу прослушивать этот конкретный адрес на порту 80. Мы можем объединить это с адресом IPv4, чтобы обеспечить большую гибкость, например:
На практике, если вы хотите прослушивать подключения на всех интерфейсах по всем протоколам через порт 80, вы можете просто использовать:
На уровне виртуального хоста вы также можете указать адрес IPv6. Здесь вы можете увидеть, что виртуальный хост можно настроить так, чтобы он совпадал как с адресом IPv4, так и с адресом IPv6:
Не забудьте перезапустить службу, чтобы внести изменения:
Если вы предпочитаете использовать Nginx в качестве веб-сервера, мы можем реализовать аналогичные конфигурации. Для директивы listen мы можем использовать это для трафика IPv6:
В Linux это также активирует трафик IPv4 через порт 80, поскольку он автоматически сопоставляет запросы IPv4 с адресом IPv6. Это фактически не позволяет вам указывать IPv6-адрес и IPv4-адрес отдельно, например:
Это приведет к ошибке, говорящей о том, что порт уже привязан к другой службе. Если вы хотите использовать отдельные директивы, подобные этой, вы должны отключить эту функцию с помощью sysctl следующим образом:
Вы можете убедиться, что это автоматически применяется при загрузке, добавив его в /etc/sysctl.conf:
После этого вы можете использовать конфигурацию, аналогичную предыдущей, добавив флаг ipv6only=on в директиву прослушивания IPv6:
Снова перезапустите Nginx, чтобы внести изменения:
Конфигурация брандмауэра
Если вы привыкли настраивать правила брандмауэра с помощью внешних интерфейсов конфигурации netfilter, таких как iptables , вам будет приятно узнать, что существует эквивалентный инструмент под названием ip6tables .
Для варианта IPv6 вы можете просто заменить команду на ip6tables, чтобы управлять правилами фильтрации пакетов IPv6. Например, чтобы вывести список правил IPv6, введите:
Если вы используете инструмент ufw, поздравляем, вы уже сделали это! Инструмент ufw настраивает оба стека одновременно, если не указано иное. Возможно, вам придется добавить правила для конкретных IPv6-адресов, но вам не придется использовать другой инструмент.
Подробнее об использовании ufw можно узнать здесь.
Конфигурация TCP-оболочек
Если вы используете TCP-оболочки для управления доступом к вашему серверу через файлы /etc/hosts.allow и /etc/hosts.deny, вы можете просто использовать синтаксис IPv6 для соответствия определенным исходным правилам.
Например, вы можете разрешить подключение через SSH только адресам IPv4 и IPv6, введя редактирование файла /etc/hosts.allow и добавив следующее:
Как видите, очень легко адаптировать текущие правила оболочки TCP для применения к адресам IPv6. Подробнее о форматировании IP-адресов и подсетей можно узнать здесь.
Заключение
Надеюсь, теперь вы понимаете, что переход на IPv6 или использование преимуществ IPv6 в дополнение к IPv4 — это довольно простой процесс.
Вам нужно будет специально изучить все сетевые службы, которые вы используете, чтобы выяснить, есть ли какие-либо дополнительные изменения конфигурации, которые необходимы для правильного использования ваших ресурсов IPv6. Однако теперь вы должны чувствовать себя более комфортно при работе с IPv6 с самыми основными утилитами и службами.
Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!
Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.
Читайте также: