Jump to content
  • 0

Перехватить IPv6 DNS - навязанный оператором


viktorkruglov

Question

Имею: 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 провайдера и мне не удаётся ничего сделать.

Спасибо.

 

 

Edited by viktorkruglov
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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

  • Thanks 1
Link to comment
Share on other sites

  • 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 со всеми нужными настройками.

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

 

Edited by viktorkruglov
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...