DHCP服务器中自动绑定主机IP、MAC地址 您所在的位置:网站首页 mac地址绑定ip配置 DHCP服务器中自动绑定主机IP、MAC地址

DHCP服务器中自动绑定主机IP、MAC地址

#DHCP服务器中自动绑定主机IP、MAC地址| 来源: 网络整理| 查看: 265

在Linux下,要实现dhcp的MAC与IP绑定,就需要在/etc/dhcpd.conf 文件中为每一个MAC指定一个IP地址。

dhcp的配置文件是/etc/dhcpd.conf,不过默认的情况下这个文件不存在,你需要使用它的模板建一个配置文件。模板的位置在/usr/share/doc/dhcp-3.0p11/dhcpd.conf.sample,内容如下:

ddns-update-style interim; #配置使用过渡性 DHCP-DNS互动更新模式。 ignore client-updates; #忽略客户端更新 subnet 192.168.0.0 netmask 255.255.255.0 { #设置子网声明 # --- default gateway option routers 192.168.0.1; #设置缺省网关为192.168.0.1 option subnet-mask 255.255.255.0; #设置客户端的子网掩码 option nis-domain "domain.org"; #为客户设置NIS域 option domain-name "domain.org"; #为客户设置域名 option domain-name-servers 192.168.1.1; #为客户设置域名服务器 option time-offset -18000; # Eastern Standard Time #设置偏移时间。 # option ntp-servers 192.168.1.1; 设置NTP服务器。 # option netbios-name-servers 192.168.1.1; 设置wins服务器 # --- Selects point-to-point node (default is hybrid). Don't change this unless # -- you understand Netbios very well # option netbios-node-type 2; #设置netbios节点类型 我不清楚这个netbios节点是什么东西。*_*!,不懂最好不设。嘿嘿。 range dynamic-bootp 192.168.0.128 192.168.0.255; #设置动态的地址池。 default-lease-time 21600; #设置缺省的地址租期。 max-lease-time 43200; #设置客户端最长的地址租期 # we want the nameserver to appear at a fixed address //设置主机声明 host ns { next-server marvin.redhat.com; //设置由于定义服务器从引导文件中装入的主机名,用于无盘站。 hardware ethernet 12:34:56:78:AB:CD; 指定dhcp客户的mac地址 fixed-address 207.175.42.254; 给指定的mac地址分配ip } }

我的DHCP服务器的IP地址是192.168.88.230,分配的是88段的地址,/etc/dhcpd.conf配置如下:

dhcpd.conf配置如下: default-lease-time 2880; max-lease-time 43200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.88.255; option routers 192.168.88.230; option domain-name-servers 202.96.134.133,219.133.31.62; ddns-update-style interim; #####################OK################### subnet 192.168.88.0 netmask 255.255.255.0 {    range 192.168.88.1 192.168.88.254 } #We want the nameserver to appear at a fixed address

 

       由于每次在/etc/dhcpd.conf文件中手工写入

host hostname {

       hardware ethernet xx:xx:xx:xx:xx:xx;

       fixed-address xxx.xx.xx.xx;

}

这些内容相当麻烦,于是便动手编写了个根据网关路由表上的内容自动添加IP、MAC地址到/etc/dhcpd.conf文件中的shell程序。

Shell程序原理如下:

1.       创建文件/tmp/factory;

2.       把路由表中所有的IP、MAC地址写入/tmp/factory中;

3.       逐个判断/tm/factory中的MAC地址在/etc/dhcpd.conf中是否已经存在,如果尚未存在则添加进去,如果存在了则无须添加;

 

Shell源码程序如下(autobind.bash): #!/bin/bash touch /tmp/factory FILE=/tmp/factory CONFILE=/etc/dhcpd.conf #awk 'BEGIN {print "   IP \t\t MAC \n----------------------------------" }' > $FILE /sbin/ip n l | awk '{print $1,$5}' > $FILE   ##把路由表中所有的IP、MAC地址写入/tmp/factory中 COUNT=1 STR=`sed -n -e $COUNT,1p $FILE` while [ -n "$STR" ] do grep -q `awk '{print $2}' $FILE|sed -n -e $COUNT,1p` $CONFILE >/dev/null 2>&1

#判断/tm/factory中的MAC地址在/etc/dhcpd.conf中是否已经存在

if [ $? -ne 0 ] then ##以下是要写到/etc/dhcpd.conf里的内容       echo "      host   " `awk '{print $1}' $FILE|sed -n -e $COUNT,1p` " {" >> $CONFILE       echo "                hardware ethernet" `awk '{print $2}' $FILE|sed -n -e $COUNT,1p`";" >>$CONFILE       echo "                fixed-address" `awk '{print $1}' $FILE|sed -n -e $COUNT,1p`";" >>$CONFILE       echo "      }" >>$CONFILE       echo " ">>$CONFILE fi    COUNT=`expr $COUNT + 1` STR=`sed -n -e $COUNT,1p $FILE` done 把该程序放到/etc/crontab里,让它定时执行:

*/2 * * * * root locatedir/autobind.bash

以上都是在DHCP服务器上所做的工作;

在DHCP客户机上设置成自动获取IP地址就可以了。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有