温馨提示×

Linux DHCP脚本编写:自动化管理

小樊
35
2025-10-18 03:43:37
栏目: 智能运维

在Linux系统中,DHCP(动态主机配置协议)服务通常由isc-dhcp-server软件包提供。为了自动化管理DHCP配置,你可以编写脚本来动态地添加、修改或删除DHCP租约和配置。

以下是一个简单的示例,展示如何使用Bash脚本自动化管理DHCP配置。这个脚本将添加一个新的DHCP租约到指定的子网中。

前提条件

  1. 安装isc-dhcp-server

    sudo apt-get update sudo apt-get install isc-dhcp-server 
  2. 配置/etc/dhcp/dhcpd.conf文件,确保你的子网配置正确。

脚本示例

创建一个名为add_dhcp_lease.sh的脚本文件:

#!/bin/bash # 参数检查 if [ "$#" -ne 3 ]; then echo "Usage: $0 <subnet> <ip_address> <mac_address>" exit 1 fi SUBNET=$1 IP_ADDRESS=$2 MAC_ADDRESS=$3 # 检查IP地址是否在指定子网内 if ! ip addr show dev eth0 | grep -q "$IP_ADDRESS"; then echo "IP address $IP_ADDRESS is not in subnet $SUBNET" exit 1 fi # 检查MAC地址是否有效 if ! macchanger -m "$MAC_ADDRESS" > /dev/null 2>&1; then echo "Invalid MAC address $MAC_ADDRESS" exit 1 fi # 添加DHCP租约 LEASE_FILE="/var/lib/dhcp/dhcpd.leases" LEASE_ENTRY=$(cat <<EOF lease $IP_ADDRESS { hardware ethernet $MAC_ADDRESS; fixed-address $IP_ADDRESS; option subnet-mask 255.255.255.0; option routers 192.168.1.1; option domain-name-servers 8.8.8.8, 8.8.4.4; } EOF ) # 将新的租约条目追加到租约文件中 echo "$LEASE_ENTRY" >> "$LEASE_FILE" # 重启DHCP服务以应用更改 sudo systemctl restart isc-dhcp-server echo "DHCP lease for $IP_ADDRESS added successfully." 

使用脚本

  1. 赋予脚本执行权限:

    chmod +x add_dhcp_lease.sh 
  2. 运行脚本:

    sudo ./add_dhcp_lease.sh 192.168.1.0 192.168.1.100 00:11:22:33:44:55 

注意事项

  1. 权限:修改DHCP配置文件和租约文件需要root权限,因此脚本需要以root用户运行。
  2. IP地址冲突:确保添加的IP地址在指定子网内且未被其他设备使用。
  3. MAC地址格式:确保MAC地址格式正确,例如00:11:22:33:44:55

通过这种方式,你可以自动化管理DHCP租约和配置,提高管理效率。根据实际需求,你可以进一步扩展脚本功能,例如删除租约、查询租约等。

0