Присвойте зафиксированный IP-адрес через DHCP поиском DNS

Предисловие

Я создаю среду виртуализации с Ubuntu 14.04 и LXC. Я не хочу писать свой собственный шаблон, так как обновление от 12,04 до 14,04 показало, что назад совместимость не гарантируется.

Поэтому я развертываюсь, мои виртуальные машины через lxc-создают, с помощью шаблона Ubuntu по умолчанию. DNS для серверов обеспечивается Маршрутом Amazon 53, таким образом, никакой локальный сервер DNS не необходим.

Я также использую Марионетку для конфигурирования моих серверов, таким образом, я хочу сохранить ручное усилие на развертывании минимальным.

Теперь, шаблон Ubuntu по умолчанию присваивает IP-адреса через DHCP. Поэтому мне нужен локальный сервер DHCP для присвоения IP-адресов узлам, таким образом, я могу SSH в них и получать Марионеточное выполнение. Так как Марионетка требует надлежащей установки DNS, присвоение временных IP-адресов не является опцией, клиент должен получить правильное имя хоста и IP-адрес от запуска.

Вопрос

Какой сервер DHCP я использую и как я заставляю его присваивать IP-адрес, базирующийся только на опции DHCP имени хоста путем выполнения поиска DNS на том очень имени хоста?

Что я попробовал

Я пытался заставить его работать с помощью сервера DHCP ISC, однако, руководство ясно указывает:

Знайте, что только опция идентификатора клиента DHCP и аппаратный адрес могут использоваться для соответствия объявлению хоста или опциональному параметру идентификатора хоста для серверов DHCPv6. Например, не возможно соответствовать объявлению хоста к опции имени хоста. Это вызвано тем, что опция имени хоста, как могут гарантировать, не будет уникальна ни для какого данного клиента, тогда как и опция аппаратного адреса и идентификатора клиента DHCP, как по крайней мере теоретически гарантируют, будет уникальна для данного клиента.

Я также пытался создать класс, который соответствует имени хоста как это:

class "my-client-name" {
    match if option host-name = "my-client-name";
    fixed-address my-client-name.my-domain.com;
}

К сожалению, фиксировано-адресная опция не позволяется в операторах класса. Я могу заменить его пулом с 1 размером, который работает как ожидалось:

subnet 10.103.0.0 netmask 255.255.0.0 {
    option routers 10.103.1.1;

    class "my-client-name" {
        match if option host-name = "my-client-name";
    }
    pool {
        allow members of "my-client-name";
        range 10.103.1.2 10.103.1.2;
    }
}

Однако это потребовало бы, чтобы я администрировал IP-адреса в двух местах (Amazon Route53 и сервер DHCP), который я предпочту не делать.

О безопасности

Так как это используется только в загружающейся фазе на внутренней сети и затем заменяется статической конфигурацией сети Марионеткой, это не должно быть проблемой с точки зрения безопасности. Я, однако, знаю, что виртуальная машина загружается с "ubuntu:ubuntu" учетными данными, которые я намереваюсь зафиксировать, после того как это работает.

4
задан 1 June 2014 в 16:44
2 ответа

Надеюсь, вы сможете управлять аппаратными MAC-адресами ваших виртуальных ethernet-интерфейсов.

В этом случае у меня возникла похожая проблема, и ISC-связка в равной степени не взаимодействовала с моими усилиями по настройке конфигурации. Лучшее решение, которое я до сих пор надежно использую в течение многих лет, - это отредактировать файл leases file так, чтобы нужные IP-адреса были назначены соответствующему аппаратурному MAC.

Сначала вы просто запускаете клиентов, чтобы заполнить файл leases. Затем остановите клиентов и свяжите их, затем отредактируйте файл аренды.

.
2
ответ дан 3 December 2019 в 03:58

Как отметил друг, я могу использовать куклу для замены автоматически сгенерированного MAC-адреса в конфигурационном файле LXC. Это позволило бы мне использовать директиву фиксированного адреса с именем DNS.

.
0
ответ дан 3 December 2019 в 03:58

Теги

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