Автор Тема: Два DNS, две сети  (Прочитано 3214 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн speed_vm

Два DNS, две сети
« : 22 Мая 2015, 09:54:21 »
Доброго времени суток!
Установлен Debian 7. В компе две сетевые карты для двух сетей (10.x.x.x и 192.x.x.x). В этих сетях разные DNS серверы. Каким образом можно настроить resolv.conf для того, чтобы пинговались имена компов из этих сетей.
Вроде как можно настроить через /etc/dhcp/dhclient.conf. Подскажите, как это можно сделать.
P.S. В сетях развернуты разные домены. Для сети 10.x.x.x адрес получаю по dhcp, для сети 192.x.x.x адрес задаю руками.
« Последнее редактирование: 22 Мая 2015, 10:04:57 от speed_vm »
 

Оффлайн sandaksatru

Re: Два DNS, две сети
« Ответ #1 : 22 Мая 2015, 11:32:30 »
Просто укажите оба DNS. Первый тот, к которому чаще всего обращаетесь. Для конкретных сетей можно сконфигурировать лишь обратные зоны, и то подняв свой кеширующий DNS.

Логика работы проста:
когда ваш комп хочет получить адрес машины по доменному имени, он отправляет запрос сначала на первый DNS, затем, если получит пустой ответ, то на второй.

Хотя можно поступить следующим образом:
Поднять свой bind9, настроить его на кеширование зон - одну зону с одного сервера, другую с другого. А в resolv.conf указать 127.0.0.1. Тогда при разрешении имени в адрес машин из разных зон он будет отсылать запрос на соответствующий DNS.

Но если честно, я не вижу смысла в такой конфигурации. Разве чтобы администратор первого домена случайно не узнал имена машин из второго домена.
 

Оффлайн speed_vm

Re: Два DNS, две сети
« Ответ #2 : 22 Мая 2015, 11:39:48 »
Дело в том, что при загрузке файл /etc/resolv.conf перезаписывается, и настройки устанавливаются для первой сети:
domain domain.com
search domain.com
nameserver 10.x.x.1
nameserver 10.x.x.2
Если менять руками этот файл после конфигурации на такой:
domain domain.com
search domain.com domain2.com
nameserver 10.x.x.1
nameserver 10.x.x.2
nameserver 192.x.x.1
nameserver 192.x.x.2
То из первой сети компы пингуются, из второй - нет.

Хосты из обоих сетей запинговались при указании серверов и доменов в обратном порядке. Т.е. вывод /etc/resolv.conf:
domain domain2.com
search domain2.com domain.com
nameserver 192.x.x.1
nameserver 192.x.x.2
nameserver 10.x.x.1
nameserver 10.x.x.2
Только пинг-запросы очень долго стали выполнятся. С чем это может быть связано? Т.е. я понимаю, что это связано с наличием двух сетей и днс серверов в них. Можно ли сделать так, чтобы пинги к основной сети (к одной из сетей) проходили "без тормозов"? И почему, если указать в resolv.conf сначала днс 10.x.x.x, то сеть 192.x.x.x не пингуется, а если указать наоборот, то обе сети пингуются, но пинги УЖАСНО тормозят?
« Последнее редактирование: 22 Мая 2015, 17:36:23 от speed_vm »
 

Оффлайн sandaksatru

Re: Два DNS, две сети
« Ответ #3 : 24 Мая 2015, 00:42:07 »
Дело в том, что при загрузке файл /etc/resolv.conf перезаписывается, и настройки устанавливаются для первой сети:
Resolv.conf перезаписывается dhcp-клиентом. Скорей всего у вас установлен isc-dhcp-client, идущий в Debian по умолчанию. Чтобы всегда использовать вначале определённое значение парамтра, перед получаемым по dhcp, нужно указать это в файле настроек dhclient.conf. ЕМНИП, за это отвечает опция pretend:
interface "ethX" {
    prepend domain-name-servers 192.x.x.1, 192.x.x.2;
    request routers, subnet-mask, broadcast-address, ntp-servers, domain-search, domain-name, domain-name-servers, host-name;
}
Или можно не указывать pretend, а просто убрать параметры DNS (domain-search, domain-name, domain-name-servers, host-name) из request, тогда resolv.conf будет статичен.

И ещё, через какой интерфейс осуществляется выход в интернет? Если через настраиваемый статически, то уберите пареметр routers в опции request, а маршруты в этой сети пропишите статически для этого интерфейса.

Для полноты картины неплохо бы знать все получаемые маршруты и настройки. Скиньте вывод ip a && ip r
Только пинг-запросы очень долго стали выполнятся. С чем это может быть связано? Т.е. я понимаю, что это связано с наличием двух сетей и днс серверов в них. Можно ли сделать так, чтобы пинги к основной сети (к одной из сетей) проходили "без тормозов"? И почему, если указать в resolv.conf сначала днс 10.x.x.x, то сеть 192.x.x.x не пингуется, а если указать наоборот, то обе сети пингуются, но пинги УЖАСНО тормозят?
Пингуете по доменному имени? Имя домена полностью прописываете? Если пинговать по адресу, задержка имеется?
 

Оффлайн speed_vm

Re: Два DNS, две сети
« Ответ #4 : 24 Мая 2015, 11:26:07 »
И ещё, через какой интерфейс осуществляется выход в интернет? Если через настраиваемый статически, то уберите пареметр routers в опции request, а маршруты в этой сети пропишите статически для этого интерфейса.
Выхода в инет нет. Развернуты две закрытые сети с разными доменами и адресными пространствами.
Пингуете по доменному имени? Имя домена полностью прописываете? Если пинговать по адресу, задержка имеется?
Пингую по по разному. Задержки и там, и там. Если пинговать по ip, задержек нет. Более подробно (с выводом команд) напишу завтра, когда на работе окажусь. Благодарю sandaksatru за то, что не бросаете один на один с моей бедой!
 

Оффлайн sandaksatru

Re: Два DNS, две сети
« Ответ #5 : 24 Мая 2015, 12:35:49 »
Ок, дождёмся вывода сетевых параметров. А пока подскажу:
Выхода в инет нет. Развернуты две закрытые сети с разными доменами и адресными пространствами.
Если выхода в инет нету, то в качестве маршрута по умолчанию лучше оставить шлюз той сети, из которой/в которую больше всего идёт запросов. Маршрут для второй сети должен иметь меньшую метрику. Соответственно, в resolv.conf должен также стоять DNS от наиболее часто используемой сети первым. При такой конфигурации задержки по ip должны исчезнуть, по доменному имени задержки миогут быть только при обращении ко второй сети. Чтобы и их не было, то, как я указал выше, вам стоит поднять bind9 и настроить его на кеширование зон с других dns, тогда в настройках dhclient.conf в опции prepend domain-name-servers нужно будет указать локальный адрес 127.0.0.1, либо вручную указать его в resolv.conf, а из request убрать всё, что относится к DNS.

Заодно тогда дайте вывод /etc/network/interfaces, чтобы в случае чего я могу предметно подсказать.
 

Оффлайн speed_vm

Re: Два DNS, две сети
« Ответ #6 : 25 Мая 2015, 10:00:32 »
Сеть 10.x.x.x основная, ip адрес получаю для неё автоматически. Сеть 192.x.x.x второстепенная, ip адрес задаю вручную. В /etc/dhcp/dhclient.conf добавляю следующие строки:
append domain-name " domain2.com";
append domain-name-servers 192.x.x.1, 192.x.x.2
Строка request уже присутствовала и содержала следующие параметры:
request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, domain-search, host-name, dhcp6.name-servers, dhcp6.domain-search, netbios-name-servers, netbios-scope, interface-mtu, rfc3442-classless-static-routes,ntp-servers;При перезапуске службы networking соответственно получаю следующий resolv.conf:
domain domain.com
search domain.com domain2.com
nameserver 10.x.x.1
nameserver 10.x.x.2
nameserver 192.x.x.1
nameserver 192.x.x.2
При такой конфигурации пинги в основную сеть идут без задержек по имени и адресу. Во второстепенную сеть пинги идут без задержек по адресу, а по имени машины не пингуются (ни по короткому имени, ни по длинному):
ping: unknown host host
ping: unknown host host.domain2.com
Вывод ip r:
default via 10.x.x.1 dev eth0
10.x.x.0/23 dev eth0  proto kernel  scope link  src 10.x.x.14
192.x.x.0/24 dev eth1  proto kernel  scope link  src 19.x.x.10
Задержки для второстепенной сети погоды не сделают, лишь бы в первую сеть пинги шли без "тормозов".
« Последнее редактирование: 25 Мая 2015, 12:00:49 от speed_vm »
 

Оффлайн sandaksatru

Re: Два DNS, две сети
« Ответ #7 : 25 Мая 2015, 15:11:23 »
Я не совсем прозрачно представляю логику работы NS запросов с клиентов. Я тут у себя немного потестировал, в общем у меня получилось, что оба запроса с подстановкой суффиксов, указанных в поле search, ушли первому в списке нэймсерверу, остальные два запроса другим двум нэймсерверам ушли по хостнейму, без добавки имени домена, и соответственно вернули нулевой результат. То есть получается, resolv.conf поддерживает максимум три DNS. Но почему у вас третий не получает запрос - хз. Попробуйте поснимайте дампы при выполнении пингов по имени:
tcpdump -nn -i eth[i]X[/i] 'proto \udp and port 53'
Может кто ещё подскажет что...
 

Оффлайн speed_vm

Re: Два DNS, две сети
« Ответ #8 : 25 Мая 2015, 17:53:32 »
Заметил странность: поставил наоборот настройки для интерфейсов и кабели поменял местами. В этом случае первая сеть (10.x.x.x) всё также отлично пингуется, а хосты из второй при таком раскладе перестали принговаться даже по адресу.
 

Оффлайн endru

Re: Два DNS, две сети
« Ответ #9 : 26 Мая 2015, 06:37:30 »
Заметил странность: поставил наоборот настройки для интерфейсов и кабели поменял местами
значит что то намудрил.

по теме: скорее всего 3 DNS сервер и последующие отбросятся, если их ответ не будет заслуживать доверия (например, если эти DNS кэширующие)
domain domain1.com
search domain1.com domain2.com
nameserver 10.x.x.1
nameserver 192.x.x.1
для корректной работы в 2-х сетях нужно в файле /etc/hosts прописать имя компьютера для сетей:
127.0.1.1 compname conpname.domain1.com compname.domain2.com

Оффлайн speed_vm

Re: Два DNS, две сети
« Ответ #10 : 26 Мая 2015, 19:01:33 »
Решил оставить одну сеть (192.x.x.x) и настройки для только для неё. В результате на обоих сетевухах "тормоза" (если пинговать по имени машины) при разных конфигурациях resolv.conf и ip адреса (ставил руками и через dhcp). В hosts тоже прописывал домены - не помогает.

Если запускать "ping -n" до хоста, то тормозов нет. Что может быть?

Пока что выхожу из сложившейся ситуации таким образом:
Настроил на первой сетевухе сеть 10.x.x.x, на второй - 192.x.x.x. В /etc/dhcp/dhclient.conf написал:
append domain-name " domain2.com";
prepend domain-name-servers 192.x.x.1
append domain-name-servers 192.x.x.2
Таким образом resolv.conf формируется следующим:
domain domain.com
search domain.com domain2.com
nameserver 192.x.x.1
nameserver 10.x.x.1
nameserver 10.x.x.2
nameserver 192.x.x.2
Компы сетей пингую с помощью "ping -n". В этом случае "задержка" получается только после запуска пинга. Ответы же приходят без "тормозов". Не знаю, являются ли данные манипуляции решением, поэтому тему не закрываю пока. Вдруг кто-то что-нибудь ещё подскажет.
P.S. Забавна, конечно, ситуация, если nameserver 10.x.x.1 стоит первым (т.е. перед 192.x.x.1), то имена компов из второй сети вообще не резолвятся (т.е. появляется сообщение "ping: unknown host" и всё).
« Последнее редактирование: 27 Мая 2015, 12:04:18 от speed_vm »
 

Теги:
     

    Debian 8.ОшИбка [phy0]SIOCSIFFLAGS: Имя не уникально в сети

    Автор atticus

    Ответов: 1
    Просмотров: 2108
    Последний ответ 08 Января 2015, 00:12:41
    от zarguni
    [решено] Удалённое управление в домашней сети

    Автор Лесьяр

    Ответов: 4
    Просмотров: 2386
    Последний ответ 30 Мая 2012, 15:06:31
    от ryoken
    браузерное приложение в локальной сети

    Автор alexandr.jurka

    Ответов: 7
    Просмотров: 2041
    Последний ответ 12 Августа 2015, 13:38:30
    от alexandr.jurka
    пропадает/нестбильное подключение к локальной сети

    Автор bbiktop

    Ответов: 23
    Просмотров: 8934
    Последний ответ 04 Февраля 2013, 19:12:00
    от corner
    Настройка vpn и локальной сети

    Автор gubin

    Ответов: 0
    Просмотров: 1944
    Последний ответ 15 Апреля 2013, 08:15:36
    от gubin