Назад | Перейти на главную страницу

изменить dhcpd.conf через скрипт для преобразования всей подсети в резервирование DHCP

У нас есть смесь систем, которые являются либо статическими IP-адресами, либо резервированием DHCP. (Мы не раздаем никаких адресов, кроме зарезервированных). Некоторые серверы имеют несколько сетевых адаптеров и плат МОТ. Становится раздражающим сканирование подсети в поисках свободных IP-адресов, которые можно использовать, особенно потому, что сервер может быть отключен на несколько минут, когда я выполняю сканирование. О любом листинге, кажется, быстро забывают ..

Я хочу создать резервирование для каждого IP-адреса в моих подсетях. Это значительно упростило бы управление / просмотр. (а затем посмотрите, как настроить DHCP для обновления DNS)

Я выполнил следующую команду:

sudo arp-scan -I eth0 10.10.10.0/24

И иметь список всех IP-адресов и Mac-адресов. Я также собираюсь получить список всех имен хостов / DNS. (и если у них нет имени хоста, я назову его октетом ip-last, поэтому для 10.10.10.100 «ip-100».). Это легко сделать с помощью некоторой работы в Open Office Calcl.

Есть ли способ автоматически добавлять резервирования в файл dhcpd.conf?

Я действительно не хочу вручную редактировать это, так как существует сотни (несколько подсетей).

есть ли простой способ вызвать команду для создания бронирования или импортировать список из CSV? Я мог найти много способов сделать это с помощью Windows DHCP, используя Net Sh, но не с моим DHCP-сервером на базе CentOS.

Я бы предпочел использовать существующий способ, чем написать свой собственный инструмент.

TL: DR - Мне нужен способ изменить DHCPd Cento из командной строки, как в Windows с помощью Netsh

Если вы что-то делаете с OMshell, по совету Иэна, имейте в виду, что эти изменения временны. Если вы создадите новый объект аренды для данного 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==

Отредактируйте файл yout dhcp.conf и добавьте

omapi-port 9999;
key omapi_key {
algorithm HMAC-MD5;
secret fzg+LkcuXNcnFL1GqwuGv/OafeWEszUjn3dZV0FJkXyPyrOSjqNUKII0NSqEWN8W9/BEakGf9aa/GSV44C0zNQ==;

}; omapi-key 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

Теперь вы можете добавлять записи о хостах, как описано на странице руководства.

Я полагаю, вы используете 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";