gardarea51 06.01.2011 16:46
Есть проблема! — [Решено]Настройка dnsmasq для DNS провайдера интернета и DNS VPN-туннеля.
Привет всем!Сначала немного предыстории =) Есть шлюз под адресом 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.. Вот настройки (в части того, что у меня включено и не более):
1 |
strict-order
|
Строки
1 |
#server=93.88.181.2@eth1
|
Закомментированы, потому что на шлюзе прописаны маршруты до "корпоративных" днс-серверов и смысла биндить на интерфейс или адрес смысла нет, пакет все равно пойдет так как надо. То есть у меня просто прописано, чтобы сервера опрашивались в порядке их написания, потом для зоны "ustu" у меня два сервера, это например если юзер открывает адрес resource.ustu..(Надеюсь я правильно понял этот момент), то его dns-запросы должны бы быть отправлены на этот сервер. В конце два днс для инета (от гугла). Так же в конфиге как можно видеть указано не читать /etc/resolv.conf, потому что там у меня стоит nameserver 127.0.0.1. Дак вот.. когда пользователь сети идет в Интернет - его запросы великолепно резолвятся, а когда он пробует попасть на внутренние ресурсы, то я вижу только такую картинку: http://dl.dropbox.com/u/4427808/tmp/dns.jpg - простите, пришлось снять скрин, так просто скопировать не вышло.. Помогите, может быть где то в конфиге не то что-то написано?
ps: прошу прощения, что практически продублировал тему с другого ресурса, просто нужно найти решение как можно быстрее, до концы праздников.. А то потом народ выйдет на работу и все.. =) Заранее всем спасибо!
=) Спасибо за ответ. Но можно поподробнее более простым языком.. для меня DNS это лес. Уточню сразу, у меня нет доступа к корпоративным DNS-серверам, до меня есть туннель и есть адресный диапазон со шлюзом, в пределах этого идапазона я могу давать адреса клиентам. Но клиентам нужен еще и интеренет, поэтому я поставил такой вот шлюз, который работает в качестве указателя.
Если уж корпоративные серверы недоступны... Судя по скриншоту, у Вас всё корректно, все запросы к .ustu форвардятся к 93.88.18(1|2).2.
Но тем не менее, когда я на клиенте помимо адреса своего шлюза в качестве сервера DNS указываю вторичным DNS адрес 93.88.18(1|2).2 то клиент сразу начинает ходить на эти ресурсы.. значит беда у меня.. Только я вот не могу понять что же не так настроено..
Ещё раз. Судя по скриншоту логов, все запросы к .ustu корректно форвардятся к корпоративным серверам. Так что не так?
Не так то, что судя по логам они форвардятся и видимо все, дальше ничего не происходит. То есть запрос сайта в зоне *.ustu перенаправляется к DNS-серверу компании, но и происходит какое то зацикливание. Ну вы меня успокоили немного, что хоть судя по логам оно работает. По факту пока клиент пытается использовать шлюз с dnsmasq на борту с качестве DNS-сервера, то он может свободно гулять в инет, но не на внутрисетевые ресурсы (хотя по логам оно форвардится), как только клиенту вторым DNS явно указать DNS-сервер компании - все рабоает. Помогите локализовать проблему, я надеюсь, что не слишком сумбурно описываю ситуацию. И спасибо, я очень благодарен вам за помощь :)
Полагаю, стоит смотреть на месте. Я на Вашем месте обратил бы взгляд на bind, сделав его slave для зон корпоративных серверов, остальные запросы бы точно также форвардил бы на public dns. О конфигурировании bind достаточно написано в интернетах.
На текущий момент элементарно через dhcpd юзерам выдавать два dns-сервера, публичный и корпоративный. В дальнейшем, настроив уже bind, за одно движение руки перевести людей на локальный dns-сервер.
На текущий момент элементарно через dhcpd юзерам выдавать два dns-сервера, публичный и корпоративный. В дальнейшем, настроив уже bind, за одно движение руки перевести людей на локальный dns-сервер.
Спасибо, я также пришел к подобносу выводу, убрать dnsmasq, поставить DHCP-сервер и выдавать в явном виде все 4 DNS-адреса клиентам. Пусть они их и используют, про bind вы уже 4й человек, который говорит мне, что лучше использовать его. Спасибо Вам еще раз!
Ой, простите, я не так выразился, корпоративные DNS конечно доступны, я могу их прописывать в качестве DNS-серверов на клиентах, я имел в виду, что у меня нет доступа к их настройке.. мой удел тут невелик (к счастью =)
C DNS разобрался, поставил DHCP-сервер и просто выдаю пользователям 4 DNS: й внутренний, 2 гугл, 3 внутренний, 4 гугл =) Спасибо!
Ставлю решено, потому что юеда оказалась не в настройке, неделю назад раскопал, что у меня файрвол ответы убивал.. все работает как и утверждалось знатоками выше =)
Пользователям выдавайте только корпоративные dns.