Как зарезервировать dhcp для MAC-адреса в другом файле?

У меня есть файл как этот ip_mac, которые содержат студенческий год и их соответствующий MAC-адрес. Я хочу позволить только им иметь арендные договоры dhcp. Действительно ли возможно в человечности выполнить такой.

94:92:66:38:a6:79                             "Prajwal Bhandary"                       2017            cs            Mob
30:e1:71:c9:1b:43                             "Prajwal Bhandary"                       2017            cs            Lan
94:65:2d:23:a8:4d                             "Unique Karki"                           2017            cs            Mob
84:8f:69:ca:15:00                             "Anup Paudel"                            2017            arch          Mob
88:83:22:eb:1e:41                             "Anup Paudel"                            2017            arch          Lan

и любой студент может быть добавлен к любой части поэтому, если я перезапускаю isc dhcp, студент сервера не должен быть разъединен.

Один путь состоял в том, чтобы использовать формат как это в/etc/dhcp/dchpd.conf

host student1 {
hardware ethernet 94:92:66:38:a6:79;
fixed-address 10.0.0.101;
}

но проблема, я должен установить IP для каждого студента. И существуют больше чем 400, таким образом, руководящий IP является ночным правом кобылы?

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

Или,

Можно ли просто использовать MAC-адрес и позволить ли арендные договоры dhcp вместо того, чтобы писать фиксировано-адресный

Действительно ли возможно позволить арендные договоры dhcp путем сканирования файла как этот?

0
задан 19 March 2018 в 08:16

2 ответа

Я сделал этот сценарий из одного из старого сценария, который я сохраняю.

#!/bin/bash

if [ "$EUID" -ne 0 ];
  then echo "Please run as root (sudo)"
  exit
fi

PATH_DHCP_FILE="./test.conf"
PATH_DHCP_TRUST_FILE="./trust_host"
PATH_STUDENTS_FILE="students.list"
PATH_DHCP_LEASES="/var/lib/dhcp/dhcpd.leases"

DATE=`date '+%Y-%m-%d %H:%M'`

IP_RANGE_DEFAULT='192.168.1.50 192.168.1.100'
NETMASK_DEFAULT='255.255.255.0'
AGREE_DEFAULT='yes'

echo ""
echo "|==========================================================|"
echo "|**********************************************************|"
echo "|                       DHCP CONF                          |"
echo "|   Welcome to this configuration Script for DHCP Server.  |"
echo "|                                                          |"
echo "|**********************************************************|"
echo "|==========================================================|"
echo ""
echo "CTRL-C to leave"
echo ""

read -p "WARNING. The file $PATH_DHCP_FILE will be edit. Do you want to continue ? [yes] " AGREE
AGREE=${AGREE:-$AGREE_DEFAULT}

if [ "$AGREE" != 'yes' ]
  then echo "Stop script."
  exit
fi

echo ""
echo "Please, fill the following informations (be care about the syntax)"
read -p "Network IP [192.168.1.0]: " IP
read -p "Netmask [255.255.255.0]: " NETMASK
read -p "IP Range [192.168.1.50 192.168.1.100]: " IP_RANGE
IP=${IP:-$IP_DEFAULT}
NETMASK=${NETMASK:-$NETMASK_DEFAULT}
IP_RANGE=${IP_RANGE:-$IP_RANGE_DEFAULT}

echo ""
echo "--DHCP Configuration--"
echo "----Append configuration to $PATH_DHCP_FILE----"
echo "

# ============================
# *DCHP Script configurations*
# ***$DATE***
subnet $IP netmask $NETMASK {
  range $IP_RANGE;
  deny unknown-clients;
}

include \"$PATH_DHCP_TRUST_FILE\";
# ============================
" >> $PATH_DHCP_FILE

echo ""
ADD_MAC_DEFAULT='yes'

echo "# ***$DATE***" >> $PATH_DHCP_TRUST_FILE
while IFS='' read -r line || [[ -n "$line" ]]; do
    echo "Text read from file: $line"
    studenMac=$(echo $line| cut -d' ' -f 1)
    student=$(echo $line| cut -d' ' -f 2)

    echo "Studen mac : $studenMac"
    echo "Studen host : $student"
    echo "Add $student with $studenMac"
    echo "host $student { hardware ethernet $studenMac; }" >> $PATH_DHCP_TRUST_FILE
done < "$PATH_STUDENTS_FILE"

Отредактируйте PATH_DHCP_FILE, PATH_DHCP_TRUST_FILE и переменные PATH_STUDENTS_FILE и завершенный, когда сценарий спросит информацию.

Существует результат в тестовом файле с моей стороны:

Для файла test.conf (/etc/dhcpd.conf)

# ============================
# *DCHP Script configurations*
# ***2018-03-19 17:36***
subnet  netmask 255.255.255.0 {
  range 192.168.1.50 192.168.1.100;
  deny unknown-clients;
}

include "./trust_host";
# ============================

И в файле trust_host:

# ***2018-03-19 18:44***
host Prajwal { hardware ethernet 94:92:66:38:a6:79; }
host Prajwal { hardware ethernet 30:e1:71:c9:1b:43; }
host Unique { hardware ethernet 94:65:2d:23:a8:4d; }
host Anup { hardware ethernet 84:8f:69:ca:15:00; }
host Anup { hardware ethernet 88:83:22:eb:1e:41; }

Будьте уходом, я не обрабатываю дублирование.

Я надеюсь эта справка.

0
ответ дан 30 October 2019 в 05:55

Можно ограничить пул адресов с deny unknown-clients;. Таким образом, только MAC-адреса, которые появляются в a host объявление получит IP.

И Вы не должны указывать a fixed-address в host объявление.

Минимальное (и непротестированный) пример могло бы быть похожим на это

subnet 192.168.0.0 netmask 255.255.0.0 {
    # option routers 192.168.1.1;
    # option ... etc.

    pool {
            range 192.168.100.1 192.168.101.254;
            deny unknown-clients;
    }
}

include "/etc/dhcpd/known-hosts.conf";

И в "/etc/dhcpd/known-hosts.conf", который должно быть легко генерировать со сценарием из Вашего списка MAC-адресов:

host h1 { hardware ethernet 00:09:b0:48:ca:ec; }
host h2 { hardware ethernet 00:80:88:11:e0:9f; }
1
ответ дан 30 October 2019 в 05:55

Другие вопросы по тегам:

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