Настройте DHCPD с назначенным IP-адресом и шлюзом в разных подсетях для KVM

Настройте DHCPD с назначенным IP-адресом и шлюзом в разных подсетях для KVM

У меня dedi с диапазоном IP 123.123.123.1/24, проблема в адресе шлюза: 111.111.111.254, и он находится в совершенно другой подсети. Я уже настроил мост и виртуализацию KVM.

/etc/dhcpd.conf на хост-узле.

subnet 0.0.0.0 netmask 0.0.0.0 {
authoritative;
default-lease-time 21600000;
max-lease-time 432000000;
}
 ddns-update-style ad-hoc;

host kvm111.0 {
hardware ethernet 02:00:00:ce:fd:ab;
option routers 111.111.111.254;
option subnet-mask 255.255.255.0;
fixed-address 123.123.123.2;
option domain-name-servers 8.8.8.8,8.8.4.4;
}

Затем я настроил виртуальную машину KVM (VM) на этом HWID с ОС Windows и включенным DHCP. Работает хорошо. VM Windows получила IP 123.123.123.2 со шлюзом в 111.111.111.254.

Но когда я меняю ОС VM на Debian 6, это не работает. Я вхожу в VM и обнаруживаю, что шлюз не назначен. Когда я набираюмаршрут добавить по умолчанию gw 111.111.111.254ответ:

SIOADDCART: no such process

Это потому, что шлюз находится в другой подсети, чем назначенный IP-адрес. Поэтому мне пришлось сделать это на виртуальной машине:

маршрут добавить 111.111.111.254/32 dev eth0

маршрут добавить по умолчанию gw 111.111.111.254

и тогда это будет работать. Но так как я хочу автоматизацию через хост-узел (не делать это вручную через VM), мне пришлось сделать это через /etc/dhcpd.conf

Кто-нибудь знает как это сделать?маршрут добавить 111.111.111.254/32 dev eth0через /etc/dhcpd.conf?

решение1

ОтветБесклассовые статические маршруты (RFC3442). В сервере ISc DHCP вам придется указать опцию вручную.

Этот сайткратко излагается, как это сделать так, чтобы это работало как для клиентов Windows, так и для Linux.

Вот сокращенная версия:

Добавьте следующее в dhcpd.conf в верхней части

option rfc3442-classless-static-routes code 121 = array of integer 8;
option ms-classless-static-routes code 249 = array of integer 8;

В соответствующем блоке подсети добавьте следующие две строки параметров

option rfc3442-classless-static-routes 32, 111, 111, 111, 254, 0, 0, 0, 0, 111, 111, 111, 254;
option ms-classless-static-routes 32, 111, 111, 111, 254, 0, 0, 0, 0, 111, 111, 111, 254;

Это должно создать статический маршрут для 111.111.111.254 on-link с назначенным dhcp адресом и сохранить маршрутизатор по умолчанию 111.111.111.254. Специальное значение маршрутизатора 0.0.0.0 означает on-link. RFC утверждает, что клиенты не обязаны реализовывать бесклассовые статические маршруты, но Windows делает это через свою опцию ms, dhclient Linux (протестировано Debian7, rhel6.4) делает, и все мои клиенты IPMI и PXE тоже. Вам следует проверить, работает ли это с вашими клиентами, но я почти уверен, что это будет работать.dhclient можно заставить интерпретировать опцию 121 с помощью хука выхода, если он не поддерживает его изначально.

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

Связанный контент