Перейти к содержанию

Вопрос

Опубликовано (изменено)

Имею: Giga II с включенным IPv6 (оператор OnLime). В смысле IPv6 роутинга и DHCPv6 всё работает прекрасно.

На роутере я поднял DNS-Forwarder dnsmasq на штатном 53м порту (корректно, т.е. через opkg dns-override, а не через "тупой" перехват-прероутинг всего что приходит на 53й с пересылкой на какой то другой c висящим на нём dnsmasq). В конфигах этого своего dns настроил всякие удобные штуки.

Всё прекрасно работает, кроме DNS для IPv6. Некоторые LANовские машины подсетки первым делом тупо идут на DNS сервер IPv6 провайдера интернета [2a02:2168:208:1::1] (а не на IPv4 DNS собственно самого роутера, т.е. на мой dnsmasq).

Прошу тут не давать совет как отключить IPv6 на машинах подсетки или поставить у них приоритетом IPv4 над IPv6. Я прошу помочь решить проблему именно на роутере.

Сначала я попытался решить проблему в лоб неэлегантно:

ip6tables -t nat -I PREROUTING -p udp -m udp --dport 53 -j DNAT --to-destination [ip6адресроутера]:65053 , и повесить на 65053 ещё один dnsmasq, но получил отлуп:

ip6tables v1.4.21: can't initialize ip6tables table `nat': Table does not exist (do you need to insmod?) Perhaps ip6tables or your kernel needs to be upgraded.
 

Собственно тут и застрял.

Коротко вопрос звучит так: как на роутере перехватить обращение клиентов LANовской подсетки к IPv6 DNS провайдера на роутере и перенаправить на свой DNS dnsmasq. Те клиенты, которые ресолвят сначала по IPv4 - отлично обрабатываются установленным мною dnsmasq, но те что ресолвят сперва IPv6 DNS - сразу обращаются к DNS провайдера и мне не удаётся ничего сделать.

Спасибо.

 

 

Изменено пользователем viktorkruglov

Рекомендуемые сообщения

  • 0
Опубликовано
6 часов назад, viktorkruglov сказал:

Имею: Giga II с включенным IPv6 (оператор OnLime). В смысле IPv6 роутинга и DHCPv6 всё работает прекрасно.

На роутере я поднял DNS-Forwarder dnsmasq на штатном 53м порту (корректно, т.е. через opkg dns-override, а не через "тупой" перехват-прероутинг всего что приходит на 53й с пересылкой на какой то другой c висящим на нём dnsmasq). В конфигах этого своего dns настроил всякие удобные штуки.

Всё прекрасно работает, кроме DNS для IPv6. Некоторые LANовские машины подсетки первым делом тупо идут на DNS сервер IPv6 провайдера интернета [2a02:2168:208:1::1] (а не на IPv4 DNS собственно самого роутера, т.е. на мой dnsmasq).

Прошу тут не давать совет как отключить IPv6 на машинах подсетки или поставить у них приоритетом IPv4 над IPv6. Я прошу помочь решить проблему именно на роутере.

Сначала я попытался решить проблему в лоб неэлегантно:

ip6tables -t nat -I PREROUTING -p udp -m udp --dport 53 -j DNAT --to-destination [ip6адресроутера]:65053 , и повесить на 65053 ещё один dnsmasq, но получил отлуп:

ip6tables v1.4.21: can't initialize ip6tables table `nat': Table does not exist (do you need to insmod?) Perhaps ip6tables or your kernel needs to be upgraded.
 

Собственно тут и застрял.

Коротко вопрос звучит так: как на роутере перехватить обращение клиентов LANовской подсетки к IPv6 DNS провайдера на роутере и перенаправить на свой DNS dnsmasq. Те клиенты, которые ресолвят сначала по IPv4 - отлично обрабатываются установленным мною dnsmasq, но те что ресолвят сперва IPv6 DNS - сразу обращаются к DNS провайдера и мне не удаётся ничего сделать.

Спасибо.

 

 

Как ни печально это признавать, но для IPv6 в наших прошивках отсутствует поддержка NAT. Она появилась только в ядре 3.9+.

Можно попробовать блокировать такие обращения:
 

ip6tables -t filter -I FORWARD -d 2a02:2168:208:1::1/128 -p udp --dport 53 -j REJECT

  • 0
Опубликовано (изменено)

To Le ecureuil, спасибо большое!

Вполне рабочее решение! Небольшой disclosure: я обнаружил, что некоторые машины в локальной сетке - за ресолвом IPv4 DNS обращаются сперва к IPv6 DNS.

Поэтому всякие overrides в  dnsmasq на IPv4 висящим на роутере не работают. Да, в Windows-клиентах можно сделать приоритет IPv4 над IPv6 (вместо дефолтного IPv6 над IPv4), но что меня удивило даже при таких твиках, Windows для ресолва IPv4 адресов сперва лезет на IPv6 DNS (если таковой ему удалось узнать, разумеется), а не на IPv4 DNS. И если этот IPv6 DNS провайдерский, то вставляет он (провайдер) туда всё что хочет...И для IPv4 адресов, вот что важно!

Т.е. IPv6 DNS провайдера ресолвит и IPv4.

А Ваше решение эту проблему вполне решает. Хотя RA DNS провайдера в IPv6 конечно приводит к тому, что клиентские машины узнают адрес DNS серверов провайдера в IPv6, но т.к. достучаться до них не могут - "приходится" пользоваться IPv4, а это уже мой родной 192.168.1.1  с висящим dnsmasq со всеми нужными настройками.

Так что спасибо - проблема решена.

 

Изменено пользователем viktorkruglov

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.