Есть ли команда для вставки MAC-адреса в подсеть в файле DHCPD.conf?

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

3
05.01.2019, 22:20
2 ответа
  • Для ответа на вопрос обработки конкретной строки -:

    Вы можете использовать sedдля вставки строк перед строкой в ​​середине файл для вашего варианта использования.

    Таким образом, предположим, что ваш файл:

    подсеть 97.129.0.0 маска подсети 255.255.240.0 { запретить неизвестным -клиентам; диапазон 97.129.2.2 97.129.2.254; группа { имя файла "3M -1M -OKS2016NOV.cm"; хост-клиент1 { аппаратный Ethernet 00 :04 :0d :0c :0f :0a; } хост-клиент2 { аппаратный ethernet a0 :be :cd :ea :1d :14; } ####}}

    Можно:

    сэд -я '/ ####/ я \ \thost client _i _хочу _в _вставить {\n\thardware ethernet e3 :ee :ed :ea :1d :e4;\n\ t}\n' /etc/dhcp/dhcpd.conf


Однако в прошлом я также управлял парой кабельных модемов интернет-провайдера (I четко распознать эту строку filename "3M-1M-OKS2016NOV.cm";как предоставление файла конфигурации кабельного модема ).

У меня есть несколько рекомендаций, которые нужно добавить:

- Having a host definition spanning several lines is not practical. Over time the DHCP file will become unwieldy. For scripting it is

сложнее, как для вставки, так и для удаления строк. рекомендую делая это только в одной строке, как:

       host client2 { hardware ethernet a0:be:cd:ea:1d:14; }

- The names of hostnames also have to be unique. Either you increment them, or use your customer code *if* a numeric code.
- an alternative, when incrementing the host part, is putting a comment with the customer code *after* the host definition. As an

добавлен бонус, проще работать с файлом, если нужно сделайте это вручную, чтобы исправить ошибку инициализации, или быстро вмешательство.

       host client2 { hardware ethernet a0:be:cd:ea:1d:14; } #_cus234XP_

Таким образом, при удалении клиентакак вы имеете дело с один вкладыш -, вам просто нужен один вкладыш grep -vили sed.

Кроме того, ISC DHCP также позволяет вам includeфайлы. За то, что не пришлось вставьте строки в середину файла конфигурации, вы можете сделать:

   subnet 97.129.0.0 netmask 255.255.240.0 {
       deny unknown-clients;
       range 97.129.2.2 97.129.2.254;
       group {
               filename "3M-1M-OKS2016NOV.cm";
               include "customers";
       }}

Затем файл клиентов должен выглядеть примерно так:

   host client1 { hardware ethernet 00:04:0d:0c:0f:0a; } #_cus234XP_
   host client2 { hardware ethernet a0:be:cd:ea:1d:14; } #_cus235XZ_

Итак, вам просто нужно добавить новых CM/клиентов в конец файл, и не нужно иметь дело с sed/awk, хотя бы для добавления новых клиенты.


Кроме того, я бы посоветовал рассмотреть другие возможные решения для реализация настройки DHCP для модемов/клиентов CM.

Раньше я писал программное обеспечение для работы с ISC DHCP. текстовые файлы, в течение нескольких лет. Существуют некоторые ограничения для процесс:

- Each time a new item is removed/inserted, the service has to be restarted;  
- If by chance you duplicate an host, the service won't restart;
- Any kind of parsing has to be done in text mode, or done in ancillary/duplicate methods;
- If some auxiliary housekeeping is done by hand, it is prone to errors. 

Затем я обнаружил docsis_server, который представляет собой «взломанный» ISC DHCP поверх MySQL для Linux, специально разработанный как промежуточное программное обеспечение с открытым исходным кодом для кабельной индустрии. В итоге я написал свое программное обеспечение/веб-интерфейс поверх него. Это было благом, когда речь шла непосредственно о запросах MySQL, а не о текстовых файлах, для взаимодействия со службой DHCP.

К сожалению, проект больше не поддерживается.https://github.com/bschirrmeister/docsis_server

В настоящее время у вас также есть проект Kea от ISC для DHCP, на который стоит обратить внимание. Кажется очень интересным разработать поверх него схемы обеспечения.https://kea.isc.org

Kea is an open source software system including DHCPv4, DHCPv6 servers, Dynamic DNS daemon, REST API interface, MySQL, PostgreSQL and Cassandra databases, RADIUS and NETCONF interfaces and related utilities.

Наконец, обычно сеть управления кабельным модемом представляет собой пространство частных IP-адресов в диапазоне 10.x.x.x; здесь нет смысла давать общедоступные IP-адреса кабельным модемам, таким как 97.129.2.x, которые вы используете.

П.С. Насколько я знаю, решение для инициализации, которое я написал поверх docsis_server, работает уже 10 лет.

4
27.01.2020, 21:13

awk-решение

awk '/}}/{$0="\thost client3 {\n\t\thardware ethernet a:b:c;\n\t}\n"$0}1' file
2
27.01.2020, 21:13

Теги

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