DD-WRT обслуживает дополнительные DNS-серверы, а не только IP-адрес маршрутизатора


9

У меня есть DD-WRT (с использованием DD-WRT v24SP2-MULTI (21.03.11) std) маршрутизатор, настроенный с DNSMasq для разрешения определенных доменов на внутренние адреса и передачи всего остального через. Сам маршрутизатор настроен на использование общедоступных DNS-серверов Google для разрешения адресов.

Мой экран настройки выглядит так:

Экран настройки DDWRT

Моя проблема заключается в том, что при подключении клиента DHCP они получают маршрутизатор и два DNS-сервера Google в качестве назначенных DNS-серверов:

DNS-серверы, назначенные DHCP

Это проблема, потому что иногда беспроводные клиенты пытаются разрешить домен, который должен указывать на внутренний IP-адрес, и в итоге вместо этого получают внешний ip, потому что по какой-то причине их запрос отправляется 8.8.8.8вместо маршрутизатора.

Я не хочу, чтобы маршрутизатор обслуживал ничего, кроме своего собственного IP-адреса в качестве DNS-сервера. Это возможно?


1
Я могу ошибаться, но, поскольку это раздел конфигурации DHCP-сервера, вы явно указываете маршрутизатору предоставить эти серверы Google в качестве параметров DNS для клиентов. Вы хотите удалить их из списка, а затем настроить маршрутизатор для получения своих собственных DNS от Google, возможно, ответ ниже является правильным способом сделать это.
Горацио

Если я удалю их, маршрутизатор предоставит серверы, которые он получил от провайдера через DHCP ..
0x6A75616E

Вы говорите «по какой-то причине» несколько раз в своем посте и комментариях. Это причина того, что 8.8.8.8 передается клиентам. Потому что ты сказал это. Если вы не хотите, чтобы об этом сообщали, вам нужно удалить его. Если ваш маршрутизатор является DNS-сервером, попробуйте ТОЛЬКО адрес вашего маршрутизатора.
Горацио

@horatio, не совсем .. Моя точка зрения заключается в том, почему сервер dhcp вообще выдает какие-либо дополнительные адреса DNS. Если на устройстве используется dnsmasq и применяются определенные правила разрешения имен, обслуживание дополнительных DNS-серверов (помимо самого маршрутизатора) нарушает эту цель.
0x6A75616E

Этот раздел представляет собой список DNS-серверов, которые будут выданы клиентам, которые запрашивают информацию DHCP.
Горацио

Ответы:


7

Хорошо, что вы используете DNSMasq.

Вы можете настроить то, что хотите, на вкладке « Службы» (> «Службы») , в поле « DNSMasq> Дополнительные параметры DNSMasq» , но сначала вам нужно очистить эти поля статического DNS. Статические поля DNS в «Настройка> Базовая настройка»

Добавьте следующее в поле опций DNSMasq:

dhcp-option= option:dns-server, 192.168.10.10 # DHCP option 006

server = 8.8.8.8 # DNSMasq will use these servers for forwarding the DNS requests that it can't serve
server = 8.8.4.4

Кажется, это отлично сработало для меня. Очень глупый вопрос. Какая часть этой первой строки указывает параметр DHCP 006? Опция: DNS-сервер?
Остаточный

@Residualfail: Да; Я думаю, что вы также можете указать это численно, но option:dns-serverсоответствует опции DHCP 006.
Palswim

1
Кажется, я мог бы говорить слишком рано. Это не похоже, что днс возвращается к днс Google после того, как мой внутренний днс выключен. = (
Остаточный

4

Информация взята с официального сайта DD-WRT: http://www.dd-wrt.com/wiki/index.php/OpenDNS

Похоже, что вы можете установить оставшиеся DNS-серверы на немаршрутизируемые IP-адреса (в моем случае 10.0.0.0& 10.0.0.1), и он вытеснит DNS-серверы вашего интернет-провайдера с этими немаршрутизируемыми. Пока что мне кажется, что он работает без задержки на несуществующих DNS-серверах.


Задержки не будет, потому что не маршрутизируемые адреса будут немедленно отброшены сетевым стеком. Это создает незначительные накладные расходы и является взломом, но не должно быть никаких проблем в реальном мире.
кто-то

3

Я не использую DDWRT, так что это половина вопроса / половина ответа.

Руководство DNSMasq в качестве DHCP-сервера говорит в разделе «Дополнительные параметры DNSMasq»:

В веб-интерфейсе DNSMasq есть несколько дополнительных параметров, которые вы можете установить, введя их в Дополнительные параметры DNSMasq на вкладке «Службы».

Если вы хотите пройти через DNS-серверы от вашего интернет-провайдера, вы можете использовать следующие параметры:

dhcp-option=6, x.x.x.x, y.y.y.y

где xxxx = DNS1 yyyy = DNS2

Похоже, это означает, что пропуск серверов ISP не является обязательным, поэтому поиск и удаление вышеуказанной строки должно отключить ее.


1
Я бы установил dhcp-option = 6,192.168.10.10 для передачи этого IP-адреса в качестве IP-адреса DNS-сервера клиентам DHCP.
тан

1
Спасибо за указатель. Я пробовал это как на uDHCPd (который является DNS-демоном, который я использовал на ddwrt), так и на DNSMasq (переключился на него), но безрезультатно :(. Он продолжает обслуживать дополнительные записи DNS по любой причине.
0x6A75616E

В этом случае вам следует опубликовать вопрос на форумах DD-WRT .
harrymc

2

Если вы не хотите, чтобы клиенты обращались к внешнему DNS, не указывайте их адреса в конфигурации вашего DHCP-сервера.

Я полагаю, вы хотели добавить (в конечном итоге быстрее) DNS-серверы Google в конфигурации внешнего DHCP-клиента (где DNSMASQ будет использовать его настройки DNS-клиента)

Дополнительно:

Вы должны добавить дополнительные (все) DNS-серверы в конфигурацию канала WAN. DNSMasq будет использовать их, и ни один из них DHCP-клиент не получит от провайдера.


спасибо за ваш вклад, но это не имеет особого смысла в контексте вопроса. DNSMasq работает путем пересылки DNS-запросов от клиентов на реальные DNS-серверы с возможностью изменять некоторые ответы на лету. Если я удалил DNS-серверы из конфигурации, маршрутизатор просто возвращается к серверам, назначенным провайдером. Вы отвечаете на мой вопрос, говоря «исправить свою конфигурацию», но сам вопрос заключается в том, «как исправить конфигурацию».
0x6A75616E

2

Типичный вариант конфигурации для DD-WRT - разрешить маршрутизатору маршрутизировать DNS вне основных DNS-серверов интернет-провайдера; что вы успешно сделали; однако, поскольку запросы генерируются с компьютера КЛИЕНТА, подключающего СЛИШКОМ к маршрутизатору, порядок предпочтений всегда отдается настроенному DNS на компьютере клиента, а затем маршрутизатору.

То, что вы описываете, это то, что клиент связывается с вашим маршрутизатором, и это правильно, но их DNS показывает ваш маршрутизатор IP + 2 другие настройки DNS. Проверьте клиентский компьютер и убедитесь, что его настройки IPV4 настроены для динамического извлечения конфигурации DNS-сервера из соединения, а не для его настройки вручную:

Настройка клиента

Затем убедитесь, что у вас правильно настроен маршрутизатор DD-WRT:

Настроить роутер

В вашей конфигурации выше, у вас также есть некоторые проблемы; вы установили диапазон адресов DHCP для начала 200и окончания в 255; Я бы порекомендовал вам изменить это, чтобы начать с 200 и до конца 254; оставив адрес 255 выключенным, учитывая, что для обычных конфигураций *.*.*.255это широковещательный адрес, а не обычный IP-адрес, который используется для назначения ассоциированному клиенту.

Я выделил локальные настройки DNS, потому что вы установили свои 127.0.0.1; Это означает, что вы используете локальный DNS-сервер на маршрутизаторе . Если это не так, измените его 0.0.0.0или укажите правильный адрес локального DNS-сервера в вашей сети.

Вы заметите, что когда сервер и клиент настроены таким образом, будет отображаться только IP-адрес DNS маршрутизатора; и все запросы будут маршрутизироваться через DNS-серверы, связанные с маршрутизатором.

Примечание по локальному DNS-серверу. Если вы хотите, чтобы маршрутизатор связывал определенный локальный адрес с локальными IP-адресами, вы можете добавить их к параметрам конфигурации DNSMasq на соответствующем экране DD-WRT или использовать локальный DNS-сервер и ввести соответствующий IP-адрес для этот сервер (обычно статический сервер в пределах сети). Таким образом, порядок разрешения будет сначала локальный сервер, а затем 2 внешних. Но все же только клиенты увидят IP-адрес маршрутизатора в качестве DNS-сервера.


спасибо за ваш ответ! Я убедился, что все клиенты в сети не имеют жестко запрограммированных DNS-серверов. Фактически, в каждом случае 192.168.10.10 (сам маршрутизатор) возвращается как первый DNS-сервер, который ударит. Что происходит, так это то, что некоторые компьютеры случайным образом попадают на вторичные DNS-серверы, которые в настоящее время предоставляет DHCP. Я перепробовал миллион вещей, и похоже, что нет способа заставить его работать только для себя. Я мог бы в конечном итоге запустить некоторые другие экземпляры dnsmasq на другом компьютере и использовать его как dns2 и dns3 ... такой хак! лол. спасибо снова.
0x6A75616E

2

У меня была похожая проблема после того, как мой маршрутизатор умер, и мне нужно было запустить WRT160N с прошивкой.

У меня есть ящик, функционирующий как локальный DNS-сервер 192.168.2.30 в моей сети. Я хочу, чтобы DHCP выдавал этот адрес только как DNS-сервер; Я не хочу, чтобы DNS уходил куда-либо еще.

Я использую "Прошивка: DD-WRT v24-sp2 (19.12.10) mini"

Кажется, не имеет значения, какую комбинацию настроек DNSMasq, настроек DHCP, Local DNS или что я использую. Если DNS-сервер 2 и DNS-сервер 3 не заполнены или соответствуют DNS-серверу 1, DD-WRT настаивает на выдаче DNS-серверов Comcast для этих мест. Я не хочу этого, поскольку у меня есть 192.168.2.30 пересылка в OpenDNS для запросов, которые не являются локальными.

Я списываю это как ошибку в этой довольно старой (к настоящему времени) версии DD-WRT и собираюсь установить / настроить свой собственный сервер DHCP на 192.168.2.30 и отключить DHCP на маршрутизаторе.


1
на самом деле это неплохая идея ... Я мог бы просто установить dhcp на другую коробку и прекратить болтаться с ddwrt.
0x6A75616E

1
Эта проблема все еще существует в моей сборке в феврале 2016 года. Я отказываюсь от роутера и собираюсь вернуться на Linux-компьютер для этого. Люди, создающие программное обеспечение маршрутизатора, должны действительно лучше понимать проблемы конфиденциальности, которые сопровождают это неожиданное, необычное и безответственное поведение графического интерфейса. Если мне придется самому взламывать вещи, нет смысла использовать сравнительно сложную и ограниченную систему. А когда вы используете DNS и DHCP уже на другом компьютере, что остается для маршрутизатора? Пакет толкает?
Кто-то

1

Добавлено несколько лет спустя, потому что я наткнулся на этот поиск ответа ... Я добавил виртуальные интерфейсы к своей пи-дыре, чтобы обрабатывать еще 2 IP-адреса.

eth0 192.168.10.10
eth0.1 192.168.10.11
eth0.2 192.168.10.12

Это позволило мне заполнить все 3 ящика локальными адресами, и у меня было достаточно раздачи, что, хотя маршрутизатор dd-wrt раздает 5, 3 локальных и 2 восходящих DNS провайдера, мои машины их не ударили.


0

Включение с помощью менее хакерского метода: если это ваша локальная сеть и ваш DNS, я уверен, что есть запасные адреса, чтобы DNS прослушивал три IP-адреса.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.