Я новичок в использовании dnsmasq и хотел бы продолжать использовать его в своей лабораторной среде. Однако, будучи новичком, я не уверен, какие команды / файлы использовать. Я потратил два дня на исследование и изучение того, как была настроена моя среда, и на этом этапе я готов переделать всю виртуальную машину.
Конечное состояние: я хотел бы настроить виртуальную машину с запущенным dnsmasq, чтобы она могла служить как DNS-, так и DHCP-сервером для трех виртуальных локальных сетей, каждая со своей собственной подсетью.
Моя среда:
Может кто-нибудь пошагово объяснить, как настроить dnsmasq для достижения желаемого конечного состояния? Это не только поможет мне, но и позволит другим получить эти инструкции для использования в будущем.
Хотя я не хочу, чтобы было слишком много деталей, относящихся к среде (чтобы они были применимы к более широкой аудитории), дайте мне знать, если есть что-то, что мне нужно уточнить.
Что я пробовал до сих пор:
Объявление IP-адреса, сетевой маски, сети и широковещательной рассылки каждого nic в файле / etc / networks / interfaces. Я добавил параметры шлюза и сервера имен к первому интерфейсу, но это не работает.
Один вопрос / ответ, который выглядел многообещающим, предполагал, что я поместил это в конфигурацию: добавление маршрута post-up 10.2.2.10 через 10.2.2.1 dev eth1, добавление маршрута post-up 10.1.1.10 через 10.1.1.1 dev eth2, но это не так. т тоже работать.
Я попробовал два типа прослушивания в конфигурации dnsmasq: один основан на статическом IP-адресе, который я назначил nics, а другой - на имена интерфейсов, которые у меня есть сейчас:
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
На данный момент, если я статически даю виртуальной машине в подсети 10.1.1.0/24 адрес, она может пинговать другие виртуальные машины в других подсетях. Однако, когда я пытаюсь выполнить ping 10.1.1.10 (IP-адрес, назначенный нику dnsmasq для этой подсети), он не разрешается. Сервер dnsmasq по-прежнему работает для первой подсети, для которой он был настроен (10.2.1.0/24), но я хочу, чтобы он работал для двух других подсетей.
Кроме того, чтобы уточнить, когда я говорю, что это не работает, я имею в виду, что тестовая виртуальная машина, которая у меня есть в одной из новых подсетей, не может пинговать ее dns-адрес подсети и не может получить доступ к Интернету.
Итак, чтобы повторить, я хочу довести то, что у меня есть до конечного состояния, описанного выше, и хотя я думаю, что сообществу было бы больше пользы от наличия пошаговых инструкций по настройке такого типа среды для своих инженеров, все Мне нужно понять, что мне нужно сделать, чтобы перевести текущее состояние в конечное.
Спасибо за помощь в продвижении!
Я поговорил со своим другом, который уже имел дело с подобными вещами раньше, и вот что мы сделали, чтобы довести среду до конечного состояния.
Во-первых, мне никогда не приходилось использовать 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
и ping мои имена DNS. Затем я изменил тестовый файл интерфейса vm, чтобы он получал dhcp addr, и после перезагрузки он мог получать dhcp addr.
Надеюсь, это поможет всем! Не стесняйтесь оставлять любые комментарии, если вы хотите, чтобы я уточнить.