Настройте сервер DNS на интерфейс nic (eth0 / eth1)?

Я честно не знаю ни о какой причине, Вы не можете настроить IOS через SNMP... однако я предложил бы не делать его. SNMP очень небезопасен. Если Вы не волнуетесь по поводу безопасности, можно просто вывести изменения конфигурации в текстовый файл и вслепую воспроизвести их в сессию telnet..., которую я также рекомендовал бы не делать.

7
задан 3 September 2012 в 19:11
3 ответа

Вы не можете легко делать то, что хотите.

Или как мне настроить другой сервер DNS-имен для eth0 и eth1?

Поиск имени хоста происходит через стандартные системные библиотеки и никак не связан с конкретным «соединением». Фактически, в то время, когда происходит запрос DNS, там нет соединения, потому что ваше приложение даже не выяснило адрес, к которому оно будет подключаться (вот почему оно в первую очередь использует DNS. ).

Как мне заставить его уважать настройки DNS в ifcfg, а не настройки по умолчанию для resolv.conf?

Резолвер Linux имеет только одну глобальную конфигурацию ( /etc/resolv.conf ). Нет никаких настроек для каждого интерфейса, домена или соединения. Настройки в / etc / sysconfig / network-scripts / ... используются только для заполнения /etc/resolv.conf , и, как правило, если вы укажете DNS1 и DNS2 в этих файлах, последний интерфейс, который появится, будет что вы видите в /etc/resolv.conf .

Есть ли лучший способ справиться с этим?

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

Есть ли лучший способ справиться с этим?

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

Есть ли лучший способ справиться с этим?

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

7
ответ дан 2 December 2019 в 23:26

DNS-запрос в основном представляет собой

  1. «какой IP-адрес host1.domain1.com» или
  2. «какое имя хоста 192.168.0.5.»

Таким образом, во время «запроса» неизвестно, какая карта Ethernet будет задействована. То, что вы могли бы разумно спросить: «все запросы, заканчивающиеся на 'domain1.com', должны идти на 192.168.0.2, а все остальные запросы должны идти на 10.0.0.2».

И аналогично: «Все обратные DNS-запросы, соответствующие 192.168.0.0/24, должны идти на 192.168.0.2, а остальные должны идти на 10.0.0.2. "

Как сказал Ларск, Linux этого не делает. t поддерживают такую ​​конфигурацию. Однако вы можете запустить свой собственный минимальный DNS-сервер, который реализует вышеуказанную логику и перенаправляет запросы на соответствующий «настоящий» DNS-сервер.

Я считаю, что dnsmasq может это сделать (см. Как настроить dnsmasq для пересылки нескольких DNS-серверы? ). Но прежде чем я это обнаружил, я накатил свой собственный в Twisted:

from twisted.internet import reactor
from twisted.names import dns
from twisted.names import client, server

class Resolver(client.Resolver):
  def queryUDP(self, queries, timeout=None):
    if len(queries) > 0 and (str(queries[0].name).endswith('.domain1.com'):
      self.servers = [('192.168.0.2', 53)]
    else:
      self.servers = [('10.0.0.2', 53)]
    return client.Resolver.queryUDP(self, queries, timeout)

resolver = Resolver(servers=[('10.0', 53)])
factory = server.DNSServerFactory(clients=[resolver])
protocol = dns.DNSDatagramProtocol(factory)

reactor.listenUDP(53, protocol, interface='127.0.0.1')
reactor.listenTCP(53, factory, interface='127.0.0.1')
reactor.run()
4
ответ дан 2 December 2019 в 23:26

Ответ на все ваши три вопроса теперь systemd-resolved (выделено мной):

запросы поиска направляются на доступные DNS-серверы и LLMNR интерфейсы в соответствии со следующими правилами:

Поиск специального имени хоста "localhost" никогда не направляется на сеть. (Несколько других специальных доменов обрабатываются таким же образом.)

Имена с одной меткой маршрутизируются на все локальные интерфейсы, поддерживающие IP. многоадресная рассылка с использованием протокола LLMNR. Поиск адресов IPv4 отправляется только через LLMNR на IPv4, и поиск адресов IPv6 осуществляется только отправлено через LLMNR по IPv6. Поиск локально настроенного имени хоста и имя хоста "шлюза" никогда не маршрутизируются на LLMNR.

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

Если поиск направлен на несколько интерфейсов, первый успешный ответ возвращается (таким образом эффективно объединяя зоны поиска на всех соответствующие интерфейсы). Если поиск завершился неудачно на всех интерфейсах, последний возвращается неудачный ответ.

На маршрутизацию поиска можно повлиять, настроив для каждого интерфейса доменные имена. См. Systemd.network (5) для подробностей. Ищет имя хоста, заканчивающееся на одном из доменов интерфейса, является исключительно направляется к соответствующим интерфейсам.

1
ответ дан 2 December 2019 в 23:26

Теги

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