OpenWrt отключить IPv6

Введение

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


Отключение IPv6 на роутере с OpenWrt

Для отключения IPv6 на роутере с OpenWrt подключаемся к нему по ssh и поочередно вводим команды ниже:

uci set 'network.lan.ipv6=0'
uci set 'network.wan.ipv6=0'
uci set network.lan.delegate="0"

uci set 'dhcp.lan.dhcpv6=disabled'
uci -q delete dhcp.lan.dhcpv6
uci -q delete dhcp.lan.ra

uci -q delete network.globals.ula_prefix

/etc/init.d/odhcpd disable
/etc/init.d/odhcpd stop

uci set dhcp.@dnsmasq[0].filter_aaaa='1'

uci commit

sysctl -w net.ipv6.conf.all.disable_ipv6=1
echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
sysctl -w net.ipv6.conf.default.disable_ipv6=1
sysctl -w net.ipv6.conf.lo.disable_ipv6=1

/etc/init.d/network restart
service dnsmasq restart

Немного подробнее о командах для отключения IPv6 на OpenWrt

  • uci set 'network.lan.ipv6=0' и uci set 'network.wan.ipv6=0' – отключаем поддержку IPv6 для интерфейсов LAN и WAN, устанавливая значение параметра ipv6 в 0.
  • uci set 'dhcp.lan.dhcpv6=disabled' – отключаем сервер DHCPv6 для локальной сети, чтобы устройства в LAN не получали IPv6-адреса.
  • uci -q delete dhcp.lan.dhcpv6 – удаляем параметр dhcpv6 из конфигурации DHCP для LAN.
  • uci -q delete dhcp.lan.ra – удаляем параметр RA из конфигурации DHCP для LAN, чтобы отключить рассылку IPv6-префиксов.
  • uci set network.lan.delegate="0" – отключаем делегирование IPv6-префиксов для LAN.
  • uci -q delete network.globals.ula_prefix – удаляем ULA префикс.
  • /etc/init.d/odhcpd disable и /etc/init.d/odhcpd stop – отключаем и останавливаем службу odhcpd, которая отвечает за DHCPv6 и RA.
  • uci set dhcp.@dnsmasq[0].filter_aaaa='1' – включаем фильтрацию AAAA-записей в DNS.
  • uci commit – сохраняем все внесенные изменения.
  • sysctl -w net.ipv6.conf.all.disable_ipv6=1 – отключаем поддержку IPv6 для всех сетевых интерфейсов через sysctl.
  • echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6 – отключаем IPv6 для всех интерфейсов, записывая значение 1 в файл /proc/sys/net/ipv6/conf/all/disable_ipv6.
  • sysctl -w net.ipv6.conf.default.disable_ipv6=1 – отключаем IPv6 по умолчанию для всех новых сетевых интерфейсов.
  • sysctl -w net.ipv6.conf.lo.disable_ipv6=1 – отключаем IPv6 для интерфейса loopback.
  • /etc/init.d/network restart – перезапускаем сетевые интерфейсы, чтобы применить изменения.
  • service dnsmasq restart – перезапускаем службу dnsmasq, чтобы применить изменения в конфигурации DNS и DHCP.

    Заключение

    В данной заметке разобрали как отключить IPv6 на роутере с OpenWrt.

    Что бы не потерять инструкцию рекомендую подписаться на мой личный блог-канал в Telegram в котором я делюсь в формате заметок своими знаниями и интересным из мира IT, спасибо за потраченное время на чтение и доброго времени суток!)

    Так же вы можете отблагодарить автора материально:

    OpenWrt отключить IPv6

    4 комментария к “OpenWrt отключить IPv6”

    1. Опять же, для чего отключать? Вы могли бы приводить примеры практического применения. Видно что разбираетесь и блог не просто так, а для широких масс. И всё же не все и всё досканально знают

      Ответить
      • Приветствую, Дмитрий
        Я уже по дефолту отключаю его, а если вы пользуетесь скриптами от ItDog и другими подобными, для маршрутизации на медленные сайты, то она не всегда работает как надо с ipv6

        Ответить
    2. Денис, добрый день!

      А зачем после Init скриптовых команд отключения и остановки службы ODHCPD следует команда сохранения изменений в конфигурации UCI? Логичнее сделать перезапуск сети Я про вот эту часть:

      /etc/init.d/odhcpd disable
      /etc/init.d/odhcpd stop
      uci commit

      Тем более в “Немного подробнее о …” данная команда у вас есть (/etc/init.d/network restart – перезапускаем сеть.) но в основном блоке её нет.

      Ответить
      • Приветствую, Дмитрий
        Благодарю, что написали, недавно обновлял команды из чернового варианта, забыл отредактировать🤝

        Ответить

    Оставьте комментарий