Два источника DNS, Интернет и внутренние ресурсы.. (Dnsmasq не поддается настройке..)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
gard
Сообщения: 215

Два источника DNS, Интернет и внутренние ресурсы..

Сообщение gard »

Привет всем!
Сначала немного предыстории =) Есть шлюз под адресом 172.16.10.2, который обслуживает подсеть 172.16.10.0/24, за исключением адреса 172.16.10.1. Назначение шлюза:
1) Натить запросы в Интернет для подсети через модем А.
2) Перенаправлять запросы к локальным русурсам через адрес 172.16.10.1 (это модем Б, туннель)..
То есть шлюз - просто делает возможным пользователям сети иметь интернет и оставаться в своей сети без разделения на подсети. После установки вскрылась небольшая проблема..

Компьютеров в сети примерно 30-40, хочется поставить DHCP, некторые задать статикой, остальные нет. Это не проблема, но вылез момент, о котором подробнее. При соединении шлюза с инетом он использует у меня два ДНС-адреса, которые у меня прописаны в /etc/resolv.conf. Они не меняются. Все нормально, но для ресурсов корпоративной сети у меня есть еще два DNS-адреса.. То есть мне надо чтобы:
- если пользователь запрашивает адрес домена например *.corpnet, то ему бы отдавались одни DNS
- если он запрашивает просто какой то адрес, то первыми бы ему отдавались другие DNS
- есетсвенно, если он получает отлуп запроса, то спросить следующий по списку днс-сервер.

Дак вот, я чтобы кота за хвост не тянуть решил поставить dnsmasq (dns-сервер то есть поднять), чтобы уже на клиентах прописывать адрес шлюза в роли сервера DNS.. Вот настройки (в части того, что у меня включено и не более):

Код: Выделить всё

strict-order

# If you don't want dnsmasq to read /etc/resolv.conf or any other
# file, getting its servers from this file instead (see below), then
# uncomment this.
no-resolv

# If you don't want dnsmasq to poll /etc/resolv.conf or other resolv
# files for changes and re-read them then uncomment this.
no-poll

# Add other name servers here, with domain specs if they are for
# non-public domains.

server=/ustu/93.88.181.2
server=/ustu/93.88.182.2
#server=93.88.181.2
#server=93.88.182.2
server=8.8.8.8
server=8.8.4.4


#server=93.88.181.2@eth1
#server=93.88.182.2@eth1

#server=93.88.181.2@172.16.10.2#55
#server=93.88.182.2@172.16.10.2#55

interface=lo
interface=eth1

# Or you can specify which interface _not_ to listen on
#except-interface=
# Or which to listen on by address (remember to include 127.0.0.1 if
# you use this.)

listen-address=127.0.0.1,172.16.10.2

# Set the cachesize here.
cache-size=150

# If you want to disable negative caching, uncomment this.
no-negcache

log-queries

Строки

Код: Выделить всё

#server=93.88.181.2@eth1
#server=93.88.182.2@eth1

#server=93.88.181.2@172.16.10.2#55
#server=93.88.182.2@172.16.10.2#55
Закомментированы, потому что на шлюзе прописаны маршруты до "корпоративных" днс-серверов и смысла биндить на интерфейс или адрес смысла нет, пакет все равно пойдет так как надо. То есть у меня просто прописано, чтобы сервера опрашивались в порядке их написания, потом для зоны "ustu" у меня два сервера, это например если юзер открывает адрес resource.ustu..(Надеюсь я правильно понял этот момент), то его dns-запросы должны бы быть отправлены на этот сервер. В конце два днс для инета (от гугла). Так же в конфиге как можно видеть указано не читать /etc/resolv.conf, потому что там у меня стоит nameserver 127.0.0.1. Дак вот.. когда пользователь сети идет в Интернет - его запросы великолепно резолвятся, а когда он пробует попасть на внутренние ресурсы, то я вижу только такую картинку: http://dl.dropbox.com/u/4427808/tmp/dns.jpg - простите, пришлось снять скрин, так просто скопировать не вышло.. Помогите, может быть где то в конфиге не то что-то написано?
Изображение Contacts: gard.area51@jabber.ru/org .. more: http://gardarea51.wordpress.com
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Два источника DNS, Интернет и внутренние ресурсы..

Сообщение IMB »

Что то очень сложно. Что Вам мешает раздавать клиентам свои DNS-сервера? На своих серверах Вы прописываете свои master-зоны, а все запросы к другим зонам настраиваете форвардить на DNS провайдера.
На Bind это реализуется очень просто.
Спасибо сказали:
Аватара пользователя
gard
Сообщения: 215

Re: Два источника DNS, Интернет и внутренние ресурсы..

Сообщение gard »

Спасибо за ответ, я вот просто в терминологии "мастер зоны", "прямые зоны", "обратные зоны" вообще запутался уже.. Мне сказали, что в bind есть view, к примеру если клиент идет на *.ustu, то его DNS-запросы могут быть посланы на те или иные DNS-сервера, если куда то в другое место идет - запросы посылаются на другие DNS-сервера.. Вы имеете в виду это?

И сейчас спрошу совсем глупость.. что значит "своя мастер-зона"? У меня как простого ответвления КИС нет прав создавать какие то зоны типа .myzone. Моя часть сети - это просто клиенты, которым надо например на resource.ustu.. Простите ,я в этом вообще чайник...
Изображение Contacts: gard.area51@jabber.ru/org .. more: http://gardarea51.wordpress.com
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Два источника DNS, Интернет и внутренние ресурсы..

Сообщение KiWi »

Судя по скриншоту -- всё нормально форвардится.

Что выдаёт nslookup uni.ustu 93.88.181.2?
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Два источника DNS, Интернет и внутренние ресурсы..

Сообщение IMB »

Не переживайте, разберётесь. В простейшем случае всё достаточно просто, почитайте, например, http://www.books.ru/shop/books/552030
Спасибо сказали:
Аватара пользователя
gard
Сообщения: 215

Re: Два источника DNS, Интернет и внутренние ресурсы..

Сообщение gard »

KiWi
Судя по логам да.. но видимо клиент не получает ответ и его опять форвардит туда же.. то есть пока клиент пытается пройти через шлюз, у него ничего не выходит (логи растут), как только на клиенте явно задать вторым днс-сервером 93.88.181.2 - все работает, естественно, уже в обход шлюза, напрямую к днс компании.. вот и не могу понять почему так происходит. ДНС-сервера доступны, вывод nslookup сейчас дать не могу, сейчас я дома, думаю как с этим дальше жить и разобраться к выходным.. у меня еще и ремонт дома, а я там со шлюзом воюю в выходные то =)
IMB
Спасибо за ссылку на интересную книгу, найду время почитать это точно, но сейчас у меня времени до 9го числа.. что-то надо сделать..

ps: вот она инициатива, наказуема. Раньше было так: чтобы клиенту попасть в корпоративную сеть - он отключал сетевую карточку с локальным адресом (192.168.0.***) и, лишаясь интернета, работал в корпоративной сети. Это две карточки, два провода, два порта в хабе.. А я вот решил сделать проще и удобнее всем..
Изображение Contacts: gard.area51@jabber.ru/org .. more: http://gardarea51.wordpress.com
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Два источника DNS, Интернет и внутренние ресурсы..

Сообщение IMB »

Нарисуйте схему сети с указанием сетевых параметров и размещений серверов, так будет проще понять как устроена у Вас сеть.
Так же не помешает привести параметры которые Вы передаёте/прописываете клиентам.
Спасибо сказали:
Аватара пользователя
gard
Сообщения: 215

Re: Два источника DNS, Интернет и внутренние ресурсы..

Сообщение gard »

Итак, вот схема: http://dl.dropbox.com/u/4427808/tmp/netwrk.png
На роутере (мой шлюз) два интерфейса: eth0 для соединения с модемом Интернета, при соединении поднимается ppp0, и eth1 для соединения с хабом, куда воткнуты все компьютеры. Адрес шлюза в локальной сети (eth1) 172.16.10.2. Для того, чтобы быть в корпоративной сети клиенты должны иметь адрес из диапазона 172.16.10.0/24, где для них шлюзом указывается адрес 172.16.10.1, а днс-сервера 93.88.18(1|2).2. Сейчас стоит шлюз и на нем дефолтным маршрутом является маршрут, получаемый при поднятии ppp0 (ADSL-соединение), для корпоративной сети прописано 3 маршрута:
- 10.0.0.0 mask 255.0.0.0 gw 172.16.10.1
- 172.16.0.0 mask 255.255.0.0 gw 172.16.10.1
- и еще 1 маршрут, который покрывает DNS-сервера и еще много корпоративных.

На клиентах сейчас указан IP из диапазона 172.16.10.11 - 172.16.10.254 mask 255.255.255.0 и шлюз 172.16.10.2 (мой роутер). После установки dnsmasq на клиентах также в качестве primaryDNS указан мой роутер (шлюз) 172.16.10.2, так как он почему то не резолвит адреса внутрисети, то в качестве второгоДНС указан один из ДНС компании.

Вот такая схема. Роль шлюза(роутера) заключается в том, чтобы натить клиентов, когда они идут в интернет и перенаправлять по роутам их в локальную сеть (в которую они и так могли бы попасть, укажи я на них шлюзом 172.16.10.1, но тогда они лишатся интернета). =)
Изображение Contacts: gard.area51@jabber.ru/org .. more: http://gardarea51.wordpress.com
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Два источника DNS, Интернет и внутренние ресурсы..

Сообщение IMB »

Наивный вопрос, а почему от hub нарисованы линии до Routes и VPN? Они оба соединены с ним?
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Два источника DNS, Интернет и внутренние ресурсы..

Сообщение IMB »

gard писал(а):
06.01.2011 16:17
То есть мне надо чтобы:
- если пользователь запрашивает адрес домена например *.corpnet, то ему бы отдавались одни DNS

DNS не отдаются ;), DNS возвращает результат преобразования имя <-> ip-адрес
gard писал(а):
06.01.2011 16:17
- если он запрашивает просто какой то адрес, то первыми бы ему отдавались другие DNS

Невозможно, клиент тупо обращается к серверу с вопросом типа "Какой ip-адрес имеет сервер с именем google.com?".
gard писал(а):
06.01.2011 16:17
- есетсвенно, если он получает отлуп запроса, то спросить следующий по списку днс-сервер.

При прописывании на клиенте нескольких серверов так и происходит.

Приведу в качестве примера как настроено у меня.
/etc/dhcp3/dhcpd.conf

Код: Выделить всё

subnet 192.168.10.0 netmask 255.255.255.0 {
        option routers 192.168.10.1;
        option domain-name-servers 192.168.10.1;

Из важных сейчас параметров видно, что дефолтный гейт и DNS-сервер находятся на 192.168.10.1.
/etc/bind/named.conf.options

Код: Выделить всё

forwarders {192.168.0.250;};
forward first;

Важно то, что если этот сервер не сможет разрешить запрос клиента, то он отправит запрос вышестоящему серверу на 192.168.0.250.
/etc/bind/named.conf.options (192.168.0.250)

Код: Выделить всё

forward first;
forwarders {212.48.128.130; 212.48.128.131; 195.14.50.1; 195.14.50.21;};

Тут такая же логика, если этот сервер не сможет разрешить запрос, он отсылает запрос на вышестоящие сервера провайдеров.

Кстати, что у Вас прописано в /etc/resolv.conf на шлюзе?
В man dnsmasq (http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html) бросаются в глаза следующие опции:

Код: Выделить всё

-R, --no-resolv
    Don't read /etc/resolv.conf. Get upstream servers only from the command line or the dnsmasq configuration file.

-S, --local, --server=[/[<domain>]/[domain/]][<ipaddr>[#<port>][@<source-ip>|<interface>[#<port>]]
    Specify IP address of upstream servers directly. Setting this flag does not suppress reading of /etc/resolv.conf, use -R to do that.
        If one or more optional domains are given, that server is used only for those domains and they are queried only using the specified server.
Спасибо сказали:
Аватара пользователя
gard
Сообщения: 215

Re: Два источника DNS, Интернет и внутренние ресурсы..

Сообщение gard »

Немного непонятно на схеме написал, riutes это имеется в виду маршруты, то есть просто перенаправление в 172.16.10.1.

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

В /etc/resolv.conf прописано nameserver 127.0.0.1, в конфиге dnsmasq указано noresolv и nopool, то есть не читать resolv.conf.

Про настройки "ступеней" DNS понял, все логично. Вот вопрос, например мы спрашиваем у DNS гугла (8.8.8.8) адрес ресурса uni.ustu, по логике он сразу должен дать отлуп? Потому что это "некий приватный домен", не публичный, верхняя зона .ustu, всяко ниже чем .ru, .com и пр., более того, она не может быть корневой в интернете, так?
Изображение Contacts: gard.area51@jabber.ru/org .. more: http://gardarea51.wordpress.com
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Два источника DNS, Интернет и внутренние ресурсы..

Сообщение IMB »

gard писал(а):
06.01.2011 20:23
Про настройки "ступеней" DNS понял, все логично. Вот вопрос, например мы спрашиваем у DNS гугла (8.8.8.8) адрес ресурса uni.ustu, по логике он сразу должен дать отлуп? Потому что это "некий приватный домен", не публичный, верхняя зона .ustu, всяко ниже чем .ru, .com и пр., более того, она не может быть корневой в интернете, так?

dig @8.8.8.8 uni.ustu +trace

; <<>> DiG 9.6-ESV-R3 <<>> @8.8.8.8 uni.ustu +trace ; (1 server found) ;; global options: +cmd . 81247 IN NS g.root-servers.net. . 81247 IN NS h.root-servers.net. . 81247 IN NS e.root-servers.net. . 81247 IN NS j.root-servers.net. . 81247 IN NS b.root-servers.net. . 81247 IN NS f.root-servers.net. . 81247 IN NS d.root-servers.net. . 81247 IN NS a.root-servers.net. . 81247 IN NS l.root-servers.net. . 81247 IN NS i.root-servers.net. . 81247 IN NS k.root-servers.net. . 81247 IN NS m.root-servers.net. . 81247 IN NS c.root-servers.net. ;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 57 ms . 86400 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2011010501 1800 900 604800 86400 ;; Received 101 bytes from 192.112.36.4#53(g.root-servers.net) in 70 ms


dig @8.8.8.8 ya.ru +trace

; <<>> DiG 9.6-ESV-R3 <<>> @8.8.8.8 ya.ru +trace ; (1 server found) ;; global options: +cmd . 81199 IN NS g.root-servers.net. . 81199 IN NS h.root-servers.net. . 81199 IN NS e.root-servers.net. . 81199 IN NS j.root-servers.net. . 81199 IN NS b.root-servers.net. . 81199 IN NS f.root-servers.net. . 81199 IN NS d.root-servers.net. . 81199 IN NS a.root-servers.net. . 81199 IN NS l.root-servers.net. . 81199 IN NS i.root-servers.net. . 81199 IN NS k.root-servers.net. . 81199 IN NS m.root-servers.net. . 81199 IN NS c.root-servers.net. ;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 58 ms ru. 172800 IN NS ns2.nic.fr. ru. 172800 IN NS e.dns.ripn.net. ru. 172800 IN NS ns9.ripn.net. ru. 172800 IN NS ns.ripn.net. ru. 172800 IN NS ns5.msk-ix.net. ru. 172800 IN NS f.dns.ripn.net. ;; Received 415 bytes from 192.33.4.12#53(c.root-servers.net) in 57 ms ya.ru. 345600 IN NS ns5.yandex.ru. ya.ru. 345600 IN NS ns1.yandex.ru. ;; Received 98 bytes from 193.232.156.17#53(f.dns.ripn.net) in 131 ms ya.ru. 7200 IN A 77.88.21.3 ya.ru. 7200 IN A 87.250.250.3 ya.ru. 7200 IN A 87.250.251.3 ya.ru. 7200 IN A 93.158.134.3 ya.ru. 7200 IN A 213.180.204.3 ya.ru. 7200 IN NS ns1.yandex.ru. ya.ru. 7200 IN NS ns5.yandex.ru. ;; Received 146 bytes from 213.180.204.1#53(ns5.yandex.ru) in 1 ms

Спасибо сказали:
Аватара пользователя
gard
Сообщения: 215

Re: Два источника DNS, Интернет и внутренние ресурсы..

Сообщение gard »

Понятно, оно по уровням ходит =) Получается что сверху вниз.. Читать надо блин..
Изображение Contacts: gard.area51@jabber.ru/org .. more: http://gardarea51.wordpress.com
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: Два источника DNS, Интернет и внутренние ресурсы..

Сообщение Ленивая Бестолочь »

gard писал(а):
06.01.2011 22:18
Читать надо блин..

"dns и bind" - прекрасная книга.
у нас используется powerdns, но всю теорию брали оттуда. чесслово, там даже шутки юмора есть :)
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
Аватара пользователя
gard
Сообщения: 215

Re: Два источника DNS, Интернет и внутренние ресурсы..

Сообщение gard »

Ну без юмора в такой литературе никуда.. =)
Изображение Contacts: gard.area51@jabber.ru/org .. more: http://gardarea51.wordpress.com
Спасибо сказали: