Используя dnsmasq для обслуживания нескольких подсетей

Я довольно плохо знаком с использованием dnsmasq, и я хотел бы продолжать использовать его в своей лабораторной среде. Однако будучи новым, я не уверен что команды/файлы использовать. Я провел два дня, проводя исследование и учась, как моя среда была настроена, и я готов восстановить целый vm в этой точке.

Конечное состояние: Я хотел бы настроить vm, работающий dnsmasq, чтобы смочь служить и DNS и сервером DHCP для трех VLAN, каждого с их собственной подсетью.

Моя среда:

  • VMware vm с сервером человечности 14.04 с тремя vitual NICs
  • Каждый NIC присвоен группе портов распределенного коммутатора VMware, и распределенному коммутатору соединили VLAN магистралью к нему
  • Каждой группе портов присваивают один VLAN
  • Три (демонстрационных) подсети являются 10.1.1.0/24, 10.2.1.0/24, и 10.2.2.0/24
  • Маршрутизатор является Cisco Catalyst 3560

Кто-то может объяснить, пошаговый, как установить dnsmasq для достижения желаемого конечного состояния? Это не только поможет мне, но позволит другим иметь эти инструкции для будущего использования.

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

Что я попробовал до сих пор:

  • Объявляя IP каждого nic addr, сетевую маску, сеть, и широковещательно переданный в/etc/networks/interfaces файле. Я добавил в опциях шлюза и сервера имен к первому интерфейсу, но это не работает.

  • Один вопрос/ответ, который выглядел многообещающим, предположил, что я поместил это в конфигурацию: пост маршрут добавляет 10.2.2.10 через 10.2.2.1 dev eth1, пост направляет, добавляют 10.1.1.10 через 10.1.1.1 dev eth2, но это не работало также.

  • Я попробовал два типа слушания в конфигурации dnsmasq, один на основе статического IP, я присвоил зарубки и другой к именам интерфейса, который является тем, что я в настоящее время имею:

    interface=eth0 no-dhcp-interface=eth0 interface=eth1 interface=eth2 no-dhcp-interface=eth1 no-dhcp-interface=eth2

  • Я установил опцию три для определения каждого шлюза, а также диапазона для каждого интерфейса: dhcp-range=eth0,10.2.1.121,10.1.1.249,24h dhcp-option=eth0,3,10.2.1.1

  • Мне установили опцию 6, но затем мне сказали выполнить команду dnsmasq -y и я продолжал получать ошибки привязки. таким образом, я прокомментировал ту опцию. Однако это - то, что я имел: dhcp-option=eth0,6,10.2.1.10

С прямо сейчас, если я статически даю vm на 10.1.1.0/24 подсети addr, она может проверить с помощью ping-запросов другой vms на других подсетях. Однако, когда я пытаюсь проверить с помощью ping-запросов 10.1.1.10 (IP addr присвоенный dnsmasq nic для той подсети), это не решает. dnsmasq сервер все еще работает на первую подсеть, это было настроено для (10.2.1.0/24), но я хочу получить его работающий на другие две подсети.

Кроме того, для разъяснения когда я говорю, это не работает, я подразумеваю, что тест vm, который я имею на одной из новых подсетей, не может проверить с помощью ping-запросов, это - DNS подсети addr и не может добраться до Интернета.

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

Спасибо за справку заранее!

2
задан 22 July 2015 в 18:14
1 ответ

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

Во-первых, у меня никогда не было. чтобы использовать dnsmasq -y, это сработало, как только я перезапустил службу dnsmasq и тестовую виртуальную машину

. Первое, что мы сделали, это исправили сервер dnsmasq. В / etc / network / interfaces вы указываете IP-адрес, который хотите использовать для этого ник, используйте маску сети 255.255.255.0 и определяете сеть для этого ник. Это будет выглядеть так:

auto eth1
iface eth1 inet static
 address 10.2.2.10
 netmask 255.255.255.0
 network 10.2.2.0
 broadcast 10.2.2.255

Единственное изменение касается eth0, в котором эти три строки уже были. Не уверен, нужны ли они (надеюсь, кто-то другой сможет это прояснить), но вот что я добавил:

up route add default gw 10.2.1.1
dns-search      my.lab
dns-nameservers <Corp-DNS-server>

Я также удалил две линии маршрута post-up, поскольку они не были нужны.

Наконец, мне нужно было исправить dnsmasq.conf; здесь я добавил интерфейс lo и закомментировал интерфейс no-dhcp:

interface=lo
interface=eth0
interface=eth1
interface=eth2
#no-dhcp-interface=eth0
#no-dhcp-interface=eth1
#no-dhcp-interface=eth2

Это исправило сервер. Следующее, что нужно сделать для достижения конечного состояния, - это настроить маршрутизатор, чтобы разрешить связь между vlan. Я уже сделал это до этого вопроса, но вот статья, посвященная этой конфигурации: http://www.cisco.com/c/en/us/support/docs/lan-switching/inter-vlan -routing / 41860-howto-L3-intervlanrouting.html

Наконец, я обнаружил, что тестовая vm не добавляла сервер имен в свой файл resolv.conf, поэтому я добавил файл с именем tail в / etc / resolvconf / resolv. conf.d / и просто добавил ip DNS-сервера для этой подсети:

nameserver 10.1.1.10

Как только я закончил, я смог запустить apt-get update и пропинговать мои DNS-имена. Затем я также изменил файл интерфейса тестовой виртуальной машины, чтобы он получал dhcp-адрес, и после перезагрузки он смог получать dhcp-адреса.

Надеюсь, это поможет всем! Не стесняйтесь оставлять любые комментарии, если вы хотите, чтобы я пояснил.

2
ответ дан 3 December 2019 в 11:36

Теги

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