Измените dhcpd.conf через скрипт, чтобы преобразовать всю подсеть в резервирование DHCP
У нас есть мешанина систем, которые являются либо статическими IP-адресами, либо резервированием DHCP. (Мы не раздаем никаких адресов, кроме зарезервированных). Некоторые серверы имеют несколько карт NIC и ILO. Это раздражает необходимость сканировать подсеть, чтобы найти свободные IP-адреса, которые можно использовать, тем более что сервер может быть отключен в течение нескольких минут, когда я выполняю сканирование. Кажется, что любой список быстро забыт
Я хотел бы создать резервирование для каждого IP-адреса в моих подсетях. Это сделало бы вещи немного проще в управлении / просмотре. (и после этого посмотрите, как настроить DHCP для обновления DNS)
Я выполнил следующую команду:
sudo arp-scan -I eth0 10.10.10.0/24
И есть список всех IP-адресов и адресов Mac. Я собираюсь получить список всех имен хостов / DNS, а также. (и если у них нет имени хоста, я назову его ip-last octet, поэтому для 10.10.10.100, "ip-100".). Это легко сделать с некоторой работой в Open Office Calcl
Есть ли способ автоматически добавить резервирование в файл dhcpd.conf?
Я действительно не хочу редактировать это вручную, так как есть сотни (несколько подсетей).
Есть ли простой способ вызвать команду для создания резервирования или импортировать список из CSV? Я мог найти много способов сделать это с Windows DHCP, используя Net Sh, но не с моим сервером DHCP на базе CentOS.
Я предпочел бы использовать существующий способ, а затем написать свой собственный инструмент.
TL: DR - мне нужен способ изменить DHCPd Cento из командной строки, как вы можете в Windows с Netsh
3 ответа
Я полагаю, вы используете ISC DHCPd. В этом случае просто добавьте
host client_name {
hardware ethernet 00:00:de:ad:be:ef;
fixed-address 10.10.10.100;
}
в вашу область в /etc/dhcpd.conf.
Конечно, вы не "отредактируете" это вручную, а создадите короткий сценарий, который будет выдавать необходимые определения хоста для каждой области. Что-то подобное сделало бы:
#!/bin/bash
function hostdef {
echo host $1 {
echo -e \\thardware ethernet $2\;
echo -e \\tfixed-address $3\;
echo }
echo
}
cat $1 | while read name mac ip; do hostdef $name $mac $ip; done
вызывая его с простым файлом с содержимым, подобным этому:
ip-100 00:00:de:ad:be:ef 10.10.10.100
ip-101 00:00:0b:ad:be:ef 10.10.10.101
ip-102 00:00:0b:ad:de:ed 10.10.10.102
ip-103 00:00:de:af:be:ef 10.10.10.103
сгенерирует необходимые строки для вставки в ваш конфигурационный файл или запишет вывод в отдельный файл, который вы включите в конфигурацию dhcpd.conf, например так:
include "/etc/dhcpd-reservations-10-10-10.conf";
Если вы делаете что-то с OMshell, согласно предложению Iain, имейте в виду, что эти изменения временны. Если вы создадите новый объект аренды для данного MAC-адреса через OMAPI, этот объект будет потерян при следующем перезапуске сервера.
Вам нужно сделать оба - OMAPI, чтобы сразу добавить резервирование на работающий сервер, и сценарий, который обновляет dhcpd.conf для потомков.
Посмотрите на omshell, он может делать то, что вы хотите. Он позволяет вам создавать новые хост-объекты, которые резервируют IP-адрес для определенного MAC-адреса.
Чтобы слушать omapi на вашем dhcp сервере
создать ключ для безопасного доступа
dnssec-keygen -a HMAC-MD5 -b 512 -n HOST omapi_key
который генерирует файлы как
Komapi_key.+157+24472.key
Komapi_key.+157+24472.private
Я использовал содержимое строки Key: из личного файла
fzg+LkcuXNcnFL1GqwuGv/OafeWEszUjn3dZV0FJkXyPyrOSjqNUKII0NSqEWN8W9/BEakGf9aa/GSV44C0zNQ==
Отредактируйте ваш файл dhcp.conf и добавьте
omapi-port 9999;
key omapi_key {
algorithm HMAC-MD5;
secret fzg+LkcuXNcnFL1GqwuGv/OafeWEszUjn3dZV0FJkXyPyrOSjqNUKII0NSqEWN8W9/BEakGf9aa/GSV44C0zNQ==;
}; omapi-ключ omapi_key;
используя ключ, сгенерированный выше.
Запустить dhcpd
/usr/sbin/dhcpd
теперь вы можете использовать omshell для добавления хостов
/usr/bin/omshell
> port 9999
> server 192.168.200.207
> key omapikey fzg+LkcuXNcnFL1GqwuGv/OafeWEszUjn3dZV0FJkXyPyrOSjqNUKII0NSqEWN8W9/BEakGf9aa/GSV44C0zNQ==
> connect
obj: <null>
> new host
obj: host
Теперь вы можете добавлять записи хоста, как описано на странице руководства.