Конфигурирование isc-dhcp в OVH

Давеча потребовалось мне раздавать IP адреса по dhcp в локальной сети ДЦ . А адреса с маской 255.255.255.255. И, как водится, шлюз у них один на всех (чтобы масками не добавлять, перерасход же получается — из 8 адресов только 5 используется). Так еще из локалки выпускают только под определенным маком, иначе на шлюзе блочат так, что не видно интернета.

В дата центре OVH шлюз (GATEWAY_IP) у всех IP адресов выделенного сервера начинается так же, как основной IP сервера, а заканчивается на .254. Например для сервера с IP 198.27.92.15 у всех IP будет шлюзом 198.27.92.254 Это очень хороший ход, к слову. Удобно конфигурировать.

После того, как был установлен 6 из коробки OVH, я накатил isc- server:

apt  -y isc-dhcp-server
cp /etc/dhcp/dhcpd.conf{,.backup} 
echo '' > /etc/dhcp/dhcpd.conf
touch /var/lib/misc/dhcp.leases
nano /etc/dhcp/dhcpd.conf

Теперь нужно написать конфиг серверу, чтобы он раздавал IP адреса для виртуальных машин в сети. Пример я напишу ниже. Сразу оговорюсь — конфиг не идеален, так как работает не со всеми ОС. В частности, на сеть не взлетает, так как Фря не принимает маршрут на такой шлюз. Попытки подсунуть ей маршруты через dhcp не помогли. Адрес IP получает, а настройки сети нет. Если кто то знает, как пропихнуть все-таки маршрут — напишите, пожалуйста, в комментарии.

# мой конфиг isc-dhcpd
# Здесь 192.168.246.xxx - адреса для виртуалок (FAILOVER_IP в терминах OVH)
# 10.10.10.254 - шлюз основного IP сервера (GATEWAY_IP )
option classless-routes code 121 = array of unsigned integer 8;
option classless-routes 24, 192,168,246,	10,10,10,254,
                        0,                      10,10,10,254;
subnet 0.0.0.0 netmask 0.0.0.0 {
        range 192.168.246.170 192.168.246.175;
        option subnet-mask 255.255.255.255; 
        option broadcast-address 192.168.246.255;
        option domain-name-servers 8.8.8.8, 1.1.1.1, 208.67.222.222;
        option domain-name "srv22.vps-server.ru";
        option routers 10.10.10.254;
        default-lease-time 120;
        max-lease-time 600;
}
host VM0 {hardware ethernet 02:00:00:01:01:5b; fixed-address 192.168.246.170; }
host VM1 {hardware ethernet 02:00:00:01:01:ef; fixed-address 192.168.246.171; }
#

Обращаю пристальное внимание, на то, что для каждого дополнительного IP address нужно указать MAC. Конечно же, именно этот MAC нужно присвоить виртуалке при её создании. Для примера в конце конфига добавлены две строки виртуальных машин VM0 и VM1.

Необходимо заметить, что ISC-dhcp-server довольно капризная в настройке вещь. И понять по выхлопу лога ненавистного systemd почему оно не взлетает не представляется возможным. Поэтому приходится прибегать при отладке к использованию костылей.

 
# Запуск isc-dhcpd для отладки конфига:
# Для отладки помогает отлично !
/usr/sbin/dhcpd -lf /var/lib/misc/dhcp.leases -cf /etc/dhcp/dhcpd.conf

После того, как конфиг отлажен и работает, можно убить процесс dhcpd и запустить его в режиме демона:


# Убиваем процессы dhcpd 
killall dhcpd -9
/etc/init.d/isc-dhcp-server restart
[ ok ] Restarting isc-dhcp-server (via systemctl): isc-dhcp-server.service.

Отмечу также, что MAC адреса необходимо получить в клиентской панели управления OVH.

Для работы сети с виртуалкой на FreeBSD следует в ней добавить два маршрута:

route add -host GATEWAY_IP/32 -interface em0
route add default GATEWAY_IP
Или добавить в /etc/rc.conf следующие строки:
ifconfig_em0="inet FAILOVER_IP netmask 255.255.255.255 broadcast FAILOVER_IP"
static_routes="net1 net2"
route_net1="-net GATEWAY_IP/32 -interface em0"
route_net2="default GATEWAY_IP"

На этом всё. Напоминаю, выделенные серверы в России с безлимитным трафиком и виртуальные серверы с честной виртуализацией KVM в различных локациях лучше всего приобретать в компании vps-server.. Эти ребята работают более 15 лет на рынке хостинга, имеют огромный опыт администрирования и эксплуатации серверов.

Внимательным читателям :o) сообщаю промокод со скидкой 30% на весь срок аренды некоторых выделенных серверов этой компании в России — diman-rulit2021

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *