Решено: Несколько доменов для каждого интерфейса

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

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

Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Решено: Несколько доменов для каждого интерфейса

Сообщение serzh-z »

Правильно ли я понимаю, что не существует (в Linux) способа указать каждому интерфейсу свой домен и свой набор DNS-серверов?

То есть хотелось бы указать чтобы хосты в домене somenet ресолвились через один набор DNS-серверов, а, скажем, все остальные - через другой набор DNS-серверов.

Примерно так:

domain somenet
nameserver xxx.xxx.xxx.xxx

domain somenet99
nameserver nnn.nnn.nnn.nnn

Как я понимаю, такую фишку умеет делать только Windows, ага?

Возможно существует другой удобный способ ресолвить имена какой-то удалённой локалки при подключении к этой локалке через VPN (OpenVPN)?
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение KiWi »

serzh-z писал(а):
29.10.2009 01:13
Как я понимаю, такую фишку умеет делать только Windows, ага?

Что-то не помню такой фишки... Изменение DNS-серверов одного подключения вроде бы меняло DNS(или отрубало) других подключений...

Возможно существует другой удобный способ ресолвить имена какой-то удалённой локалки при подключении к этой локалке через VPN (OpenVPN)?

bind...
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение serzh-z »

KiWi писал(а):
29.10.2009 02:23
Что-то не помню такой фишки... Изменение DNS-серверов одного подключения вроде бы меняло DNS(или отрубало) других подключений...
Ну там ipconfig пишет "DNS-суффикс этого подключения" для каждого интерфейса. И DNS-сервера есть для каждого подключения. В деле не пробовал, но, как понимаю, оно как раз позволяет туеву хучу доменов и DNS-серверов иметь.

KiWi писал(а):
29.10.2009 02:23
bind...
Ммм... Иметь Bind-сервер на стороне клиента (в его локалке), чтобы он правильно разруливал суффиксы и форвардил некоторые соответствующие DNS-запросы в VPN-сеть? Это что-то из области микроскопов и гвоздей? =)

Речь идёт о *простом* способе - таком, чтобы клиенту было достаточно кинуть к себе простой конфиг для OpenVPN-клиента, ключ и сертификаты и запустить клиент, после чего, зная имя хоста в удалённой локалке, спокойно отресолвить это имя в IP.
Спасибо сказали:
Sleeping Daemon
Сообщения: 1450

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение Sleeping Daemon »

serzh-z писал(а):
29.10.2009 01:13
Правильно ли я понимаю, что не существует (в Linux) способа указать каждому интерфейсу свой домен и свой набор DNS-серверов?

То есть хотелось бы указать чтобы хосты в домене somenet ресолвились через один набор DNS-серверов, а, скажем, все остальные - через другой набор DNS-серверов.

Примерно так:

domain somenet
nameserver xxx.xxx.xxx.xxx

domain somenet99
nameserver nnn.nnn.nnn.nnn

Как я понимаю, такую фишку умеет делать только Windows, ага?

Возможно существует другой удобный способ ресолвить имена какой-то удалённой локалки при подключении к этой локалке через VPN (OpenVPN)?

man 5 resolver не поможет?
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение rm_ »

То есть хотелось бы указать чтобы хосты в домене somenet ресолвились через один набор DNS-серверов

Локальный (на шлюзе во всякие там VPN'ы) DNS-прокси под названием dnsmasq - лёгкий и удобный молоточек для Ваших гвоздей.
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение IMB »

serzh-z писал(а):
29.10.2009 01:13
Возможно существует другой удобный способ ресолвить имена какой-то удалённой локалки при подключении к этой локалке через VPN (OpenVPN)?

Если разговор про OpenVPN, то что мешает передавать клиентам необходимые параметры, в частности адреса DNS-серверов?
Спасибо сказали:
GeAlex
Сообщения: 148

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение GeAlex »

Не совсем понял что конкретно хотите, но для каждого сетевого интерфейса в linux можно указать свои dns для резольвинга и добавления dns суффикса (поиск в конкретном домене).
В редхадподобных это реализовано так:
/etc/sysconfig/network-scripts/ifcfg-eth0

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

DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.0.2
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
ONBOOT=yes
METRIC=10
MII_NOT_SUPPORTED=no
USERCTL=yes
[b]DNS1=192.168.0.3
DNS2=xxx.xxx.xxx.xxx[/b]
[b]DOMAIN=mydomain.org[/b]
RESOLV_MODS=no
IPV6INIT=no
IPV6TO4INIT=no
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение serzh-z »

IMB писал(а):
29.10.2009 09:38
Если разговор про OpenVPN, то что мешает передавать клиентам необходимые параметры, в частности адреса DNS-серверов?
Ничего не мешает, но что будет с клиентом - как мои DNS-серверы уживуться с его собственными?

GeAlex писал(а):
29.10.2009 09:47
Не совсем понял что конкретно хотите
Хочу это:

Есть локалка, скажем, lan - 192.168.1.0. Рулит ею роутер с DHCP, DNS и OpenVPN.

В ней есть хосты:
host1.lan
host2.lan
ну и, есесно, сам роутер - router.lan

Есть какой-то клиент, со своими роутерами, своими маршрутами, своими DNS-серверами. Т.е., скажем, у него есть интерфейс eth0 с маршрутами куда-то там на свой роутер, есть свой resolv.conf со своими DNS-серверами и своим доменом. Типа:

search mydomain
nameserver 172.1.2.3

Этот клиент, подключившийся к router.lan по OpenVPN, с использованием TUN (а может и TAP - не знаю чем оно может тут помочь), создаёт себе новый интерфейс tun0 с IP 10.9.0.2 и видит мой router.lan по IP 10.9.0.1. Есесно, что при попытке отресолвить host1.lan его система будет использовать DNS-сервер 172.1.2.3. При попытке отресолвить yandex.ru - его система так же будет использовать 172.1.2.3. Допустим, мой VPN-сервер отправит клиенту адрес DNS-сервера для локалки lan (т.е. сервер - 10.9.0.1).


Я хочу, чтобы ресолвер клиента, при обращении к host1.lan отслылал запрос на 10.9.0.1 (т.е. через VPN на мой DNS), а, разумеется, при ресолвинге всех других имён - он использовал свой 172.1.2.3.


GeAlex писал(а):
29.10.2009 09:47
но для каждого сетевого интерфейса в linux можно указать свои dns для резольвинга и добавления dns суффикса (поиск в конкретном домене).
И как после этого будет выглядеть resolv.conf?
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение IMB »

serzh-z писал(а):
29.10.2009 15:35
IMB писал(а):
29.10.2009 09:38
Если разговор про OpenVPN, то что мешает передавать клиентам необходимые параметры, в частности адреса DNS-серверов?
Ничего не мешает, но что будет с клиентом - как мои DNS-серверы уживуться с его собственными?

А почему должны быть проблемы? Если Ваши внутренние ресурсы именуются отлично от внешних я думаю всё будет без проблем.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение serzh-z »

IMB писал(а):
29.10.2009 17:12
А почему должны быть проблемы?
Так, проблемы видятся следующие:

OpenVPN-клиент получает от моего сервера адреса DNS-серверов и добавляет их в /etc/resolv.conf клиентской ОС.

В итоге у клиента имеется примерно следюущее.

search его_родной_домен
nameserver dns_сервер_его_провайдера

search мой_домен_присланный_vpn_сервером
nameserver мой_dns_присланный_vpn_сервером

Разве это не проблема? Чтобы отресолвить host1.lan клиент отошлёт сначала запрос на *dns_сервер_его_провайдера*... Либо (не знаю - в каком порядке ресолвер просматривает параметры resolv.conf) же все запросы во внешнюю сеть будет слать на мой DNS-сервер.

Т.е. что-то будет обязательно тормозить. Более того - если у клиента будет прописано три nameserver, то мой, четвёртый, просто будет проигнорирован.
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение IMB »

Тут видите ли какая возможна штука...
Насколько я помню, OpenVPN не передаёт, вроде не умеет или клиент не принимает, настройки DNS Linux-клиентам. Поэтому с Linux придется обходится скриптами на стороне клиента.
Проведите эксперимент, не мучайтесь сомнениями :) Потом, я надеюсь, поделитесь наблюдениями.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение serzh-z »

IMB писал(а):
29.10.2009 17:46
Насколько я помню, OpenVPN не передаёт, вроде не умеет или клиент не принимает, настройки DNS Linux-клиентам.
Передавать умеет, это точно. В дефолтном конфиге даже комментарии на эту тему есть. Другой вопрос - будут ли эти настройки использоваться Linux-клиентами.

А если не умеет, то таки получается, что все используют /etc/hosts, ставят на шлюз локальный DNS-сервер или же мучаются с явным указание IP вместо DNS-имени?
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение IMB »

Тогда, скорее всего Linux-клиенты не принимают эти настройки.
У меня пользователи использую ip-адреса для доступа, правда и доступ даётся только на один сервер.
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение KiWi »

Ну... Можно просто забить все DNS-сервера в resolv.conf(первый -- интернетный, остальные -- потом). Если адреса не пересекаются, то всё должно работать. Максимум -- потребуется отредактировать nsswitch.conf(чтобы в случае, если домен не найден, он опрашивал остальные DNS-серверы).
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение serzh-z »

KiWi писал(а):
29.10.2009 18:03
Если адреса не пересекаются, то всё должно работать.
Ну так тормозить же будет. Для ресолвинга host1.lan будет опрашиваться сначала интернетный адрес...

Тут наш админ подсказал решение - ресолвить адреса локалки через публичную сеть (т.е. адреса будут возвращаться внутренние, для доступа через VPN) - т.е. использовать свой внешний домен или DDNS, ну а пакеты к ним роутить уже через VPN-сервер. либо и правда не париться, а прописывать все нужные адреса в /etc/hosts на клиентах.
Спасибо сказали:
GeAlex
Сообщения: 148

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение GeAlex »

serzh-z писал(а):
29.10.2009 15:35
Я хочу, чтобы ресолвер клиента, при обращении к host1.lan отслылал запрос на 10.9.0.1 (т.е. через VPN на мой DNS), а, разумеется, при ресолвинге всех других имён - он использовал свой 172.1.2.3.
Кроме вариантов с /etc/hosts, очередностью dns, можно поднять и свой dns на клиенте который подключается к vpn (или в локальной сети этого клиента, если есть), поднять там мастер зону с хостами из нужной сети, а остальное кешировать и форвадить через dns прова, в принципе получится тоже самое что при использовании /etc/hosts, плюс только улучшится скорость резольвинга адресов интернета, за счет кеширования.

serzh-z писал(а):
29.10.2009 15:35
GeAlex писал(а):
29.10.2009 09:47
но для каждого сетевого интерфейса в linux можно указать свои dns для резольвинга и добавления dns суффикса (поиск в конкретном домене).
И как после этого будет выглядеть resolv.conf?
Там будут находиться dns с того интерфейса у которого меньше метрика. Здесь можно манипулировать очередностью dns и с их количеством, при поднятии определенных интерфейсов в resolv.conf прописываются нужные сервера и в нужной последовательности, то есть это лучше чем просто забить dns сервера в resolv.conf, в нужный момент не будут использоваться не те dns.
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение rm_ »

Добрался домой до своего конфига dnsmasq, привожу соотв. кусок, показывающий, как легко в нём разводятся запросы адресов из разных доменов по разным серверам:

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

# Add other name servers here, with domain specs if they are for
# non-public domains.
#server=/localnet/192.168.0.1

# Hurricane Electric (for Google over IPv6)
server=/google.com/2001:470:20::2
server=/google.com/74.82.42.42

# OpenNIC (opennicproject.org)
server=/indy/2001:470:8388:2:20e:2eff:fe63:d4a9
server=/geek/2001:470:8388:2:20e:2eff:fe63:d4a9
server=/null/2001:470:8388:2:20e:2eff:fe63:d4a9
server=/oss/2001:470:8388:2:20e:2eff:fe63:d4a9
server=/parody/2001:470:8388:2:20e:2eff:fe63:d4a9
server=/bbs/2001:470:8388:2:20e:2eff:fe63:d4a9
server=/fur/2001:470:8388:2:20e:2eff:fe63:d4a9
server=/free/2001:470:8388:2:20e:2eff:fe63:d4a9
server=/ing/2001:470:8388:2:20e:2eff:fe63:d4a9

# ISP's server (everything else)
server=192.168.193.254
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение sash-kan »

serzh-z писал(а):
29.10.2009 01:13
То есть хотелось бы указать чтобы хосты в домене somenet ресолвились через один набор DNS-серверов, а, скажем, все остальные - через другой набор DNS-серверов.
ты не поверишь, но именно так и работает domain name system.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение sash-kan »

Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение rm_ »

sash-kan
BIND на порядок тяжелее и сложнее в настройке, чем упомянутый dnsmasq, а 99% его возможностей в применений как простой кэширующий DNS-прокси для локальной сетки просто не нужны.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение serzh-z »

sash-kan писал(а):
30.10.2009 18:41
ты не поверишь, но именно так и работает domain name system.
Да ну? Ты весь топик прочитал уже? =)

Мне тут так навязчиво советуют установить у клиента свой DNS-сервер...

"Клиент" - это, скажем, человек, с одним компьютером и некоторой необходимостью получить доступ к ресурсам в VPN-сети. О каком, чёрт возьми, собственном DNS-сервере может идти речь? О каком BIND, если у него всего один комп и DSL-модем и нет никакого админа в его "сети"? Ему просто нужно, чтобы у него не поломались настройки его яндекс-почты, ленты.ру и прочего, а так же ещё и появилась возможность написать, скажем, ftp://serzh-z.hisnet/pub. Ни о какаких даже hosts он знать не хочет, ему достаточно того, что придёться установить VPN-клиент и кинуть в каталог присланные ключи и конфиг.

Всем спасибо. Вопрос закрыт. Внешний DNS, типа DynDNS, может решить проблемы.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение serzh-z »

KiWi писал(а):
29.10.2009 02:23
Что-то не помню такой фишки... Изменение DNS-серверов одного подключения вроде бы меняло DNS(или отрубало) других подключений...
Кстати нет... Таки наконец выяснил, что винда имеет такую фишку - т.е. если мой VPN-сервер выдал клиенту домен .domain1 и адрес DNS (т.н. VPN-сервера), то при пинге host1.domain1 запрос сразу идёт на VPN. А при пинге google.com - он пойдёт к провайдеру клиента и ко мне запрос даже не будет направлен.

Есесно, что при подключении клиента к VPN и при получении ещё одного DNS - у него ничего там не ломается и не отрубается.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение sash-kan »

serzh-z писал(а):
31.10.2009 14:46
sash-kan писал(а):
30.10.2009 18:41
ты не поверишь, но именно так и работает domain name system.
Да ну? Ты весь топик прочитал уже? =)
конечно.

serzh-z писал(а):
01.11.2009 00:20
Таки наконец выяснил, что винда имеет такую фишку - т.е. если мой VPN-сервер выдал клиенту домен .domain1 и адрес DNS (т.н. VPN-сервера), то при пинге host1.domain1 запрос сразу идёт на VPN. А при пинге google.com - он пойдёт к провайдеру клиента и ко мне запрос даже не будет направлен.
т.е. microsoft засунула часть функциональности dns-сервера внутрь своих клиентских машин? ну что же, я рад за них.


serzh-z писал(а):
31.10.2009 14:46
Внешний DNS, типа DynDNS, может решить проблемы.
кстати, да. dns-сервер действительно решает проблемы dns (улыбка).
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение serzh-z »

sash-kan писал(а):
04.11.2009 23:10
т.е. microsoft засунула часть функциональности dns-сервера внутрь своих клиентских машин? ну что же, я рад за них.
Видимо - да. А я-то как рад, когда пользуюсь клиентом в Windows.

Ну и потом - сложно сказать, то ли MS засунула часть сервера в свой стек, то ли в посиксовую реализацию ресолвера имён недозасунули нужную функциональность (но, засунули поддержку лишь одного домена).
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Решено: Несколько доменов для каждого интерфейса

Сообщение sash-kan »

serzh-z писал(а):
04.11.2009 23:16
Ну и потом - сложно сказать, то ли MS засунула часть сервера в свой стек, то ли в посиксовую реализацию ресолвера имён недозасунули нужную функциональность (но, засунули поддержку лишь одного домена).
боюсь, posix здесь совсем не при делах.
работа dns определяется (огромным) ворохом rfc-ов. в которых, afaik, нигде не написано, что клиент должен брать на себя (хоть какие-нибудь) функции сервера.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: