Настроить dnsmasq для сквозной передачи домена поиска гостевой системе LXC? (Ubuntu 16.04)

Наша сеть полагается на теги DHCP для маршрутизации клиентов на правильные восходящие хосты без необходимости знать FQDN этих хостов. Мы используем dnsmasq , чтобы установить теги для клиентов по MAC-адресу, а затем проталкиваем клиентам различные поисковые домены на основе тега. Например, у нас есть эти две строки в dnsmasq.conf :

dhcp-option=tag:foo,option:domain-search,foo.company.net
dhcp-host=00:11:22:33:44:55,foo-client,set:foo

Здесь, когда foo-client пытается получить доступ к любым неквалифицированным хостам, он попытается просмотреть < неквалифицированное-имя-хоста> .foo.company.net .

На некоторых клиентских машинах также выполняются службы внутри контейнера LXC.Контейнер получает свою сетевую информацию, назначенную локальным экземпляром dnsmasq , работающим на хосте LXC, который является методом по умолчанию для DNS / DHCP гостевых систем LXC. Затем гость LXC получает IP-адрес в локальной сети NAT.

Проблема связана с нашей схемой тегов. Гости LXC не передают им поисковый домен, потому что они не получают DCHP от нашего основного общесетевого DHCP-сервера. Гости LXC могут пинговать IP-адреса в более широкой сети, но разрешение DNS с поисковым доменом не удается. Если я вручную установил правильный домен поиска, разрешение будет работать должным образом.

Есть ли способ пройти через этот поисковый домен от хоста к гостю?

Обратите внимание, мы НЕ используем lxd .

1
задан 11 January 2018 в 20:40
1 ответ

Так что я не нашел точного решения, но я нашел обходной путь. В основном LXC может запустить скрипт на гостевом компьютере перед тем, как поднять сеть. Эта опция конфигурации называется lxc.network.script.up. Я использовал эту возможность для копирования информации DNS с хоста:

#!/bin/bash

CONTAINER=$1
SECTION=$2
OPERATION=$3
NAMESERVER=$(grep nameserver /etc/resolv.conf  | sed 's/^nameserver //g')
SEARCHDOMAIN=$(grep search /etc/resolv.conf  | sed 's/^search //g')

cat > /var/lib/lxc/$CONTAINER/rootfs/etc/network/interfaces <<EOF

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
dns-search $SEARCHDOMAIN
dns-nameservers $NAMESERVER
EOF

Я поместил этот скрипт в /var/lib/lxc/guest/setup-dns.sh и добавил следующую строку в /var/lib/lxc/guest/config:

lxc.network.script.up = /var/lib/lxc/guest/setup-dns.sh

После выполнения этих шагов, гостевой сервер подойдет и установит правильные параметры DNS и пути поиска.

.
0
ответ дан 4 December 2019 в 04:16

Теги

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