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

39599
thatjuan

У меня есть 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-сервера. Это возможно?

8
Я могу ошибаться, но, поскольку это раздел конфигурации DHCP-сервера, вы явно указываете маршрутизатору предоставить эти серверы Google в качестве параметров DNS для клиентов. Вы хотите удалить их из списка, а затем настроить маршрутизатор для получения своих собственных DNS от Google, возможно, ответ ниже является правильным способом сделать это. horatio 12 лет назад 1
Если я удалю их, маршрутизатор предоставит серверы, которые он получил от провайдера через DHCP. thatjuan 12 лет назад 0
Вы говорите «по какой-то причине» несколько раз в своем посте и комментариях. Это причина того, что 8.8.8.8 передается клиентам. Потому что ты сказал это. Если вы не хотите, чтобы об этом сообщали, вам нужно удалить его. Если ваш маршрутизатор является DNS-сервером, попробуйте ТОЛЬКО адрес вашего маршрутизатора. horatio 12 лет назад 0
@horatio, не совсем .. Моя точка зрения заключается в том, почему сервер dhcp вообще выдает какие-либо дополнительные адреса DNS. Если на устройстве используется dnsmasq и применяются определенные правила разрешения имен, обслуживание дополнительных DNS-серверов (помимо самого маршрутизатора) нарушает эту цель. thatjuan 12 лет назад 0
Этот раздел представляет собой список DNS-серверов *, которые должны быть предоставлены клиентам *, которые запрашивают информацию DHCP. horatio 12 лет назад 0
@horatio, я понимаю, что ... однако, если я оставлю их пустыми, DHCP-сервер будет обслуживать DNS-серверы, полученные от моего провайдера. Таким образом, нет способа не дать серверу просто обслуживать IP-адрес маршрутизатора как единственный DNS-сервер. thatjuan 12 лет назад 0
а у твоего роутера есть днс сервер. обслуживать IP роутера horatio 12 лет назад 0
@kinokijuf это хорошее мнение. Жаль, что это не по теме и неконструктивно :( thatjuan 12 лет назад 0

8 ответов на вопрос

6
palswim

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

Вы можете настроить то, что вам нужно, на вкладке « Службы» (> «Службы») в поле « DNSMasq> Дополнительные параметры DNSMasq», но сначала вам нужно очистить эти поля статического DNS. Static DNS fields in "Setup > Basic Setup"

Добавьте следующее в поле опций 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 7 лет назад 0
@Residualfail: Да; Я думаю, что вы также можете указать это численно, но `option: dns-server` соответствует опции DHCP` 006`. palswim 7 лет назад 0
Кажется, я мог бы говорить слишком рано. Это не похоже, что днс возвращается к днс Google после того, как мой внутренний днс выключен. знак равно Residualfail 7 лет назад 1
4
CarlserversC

Info taken from the official DD-WRT site: http://www.dd-wrt.com/wiki/index.php/OpenDNS

It appears you can set the remaining dns servers to non-routable IPs (in my case 10.0.0.0 & 10.0.0.1) and it will squeeze out your ISPs DNS servers with these non-routables. So far for me it seems to be working without any delay waiting on the non-existent DNS servers.

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

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

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

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

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

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

где xxxx = DNS1 yyyy = DNS2

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

Я бы установил dhcp-option = 6,192.168.10.10 для передачи этого IP-адреса в качестве IP-адреса DNS-сервера клиентам DHCP. thane 12 лет назад 1
Спасибо за указатель. Я пробовал это как на uDHCPd (который является DNS-демоном, который я использовал на ddwrt), так и на DNSMasq (переключился на него), но безрезультатно :(. Он продолжает обслуживать дополнительные записи DNS по любой причине. thatjuan 12 лет назад 1
В этом случае вам следует опубликовать вопрос на [форумах DD-WRT] (http://www.dd-wrt.com/phpBB2/). harrymc 12 лет назад 0
2
LawrenceC

У меня была похожая проблема после того, как мой маршрутизатор умер, и мне нужно было запустить 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 на маршрутизаторе.

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

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

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

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

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

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

Типичный вариант конфигурации для 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 ... такой хак! лол. спасибо снова. thatjuan 12 лет назад 0
0
Someone

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

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

0
dave

Добавил несколько лет спустя, потому что я наткнулся на этот поиск ответа ... Я добавил виртуальные интерфейсы к своей пи-дыре, чтобы обрабатывать еще 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 провайдера, мои машины их не ударили.

Похожие вопросы