Linux下配置DHCP服务器

来源:互联网 发布:梭哈网络用语啥意思 编辑:程序博客网 时间:2024/05/12 05:51
配置DHCP服务器

  1.DHCP服务器启动脚本——/etc/rc.d/init.d/dhcpd (/etc/rc.d  启动、改变运行级时运行的脚本或脚本的目录)

  利用该启动脚本可实现DHCP服务器的启动、状态查询和停止等操作。启动之前,应先完成对DHCP服务器的配置。

  2.配置DHCP服务器  启动、或改变运行级时运行的脚本或脚本的目录。 

   DHCP服务是通过程序/usr/sbin/dhcpd提供的。在DHCP服务器启动时,dhcpd要读取dhcpd.conf文件的内容(dhcpd.conf保存的是DHCP服务器的配置信息)。dhcpd将客户端租用的信息保存在dhcpd.lease文件中。在DHCP服务器为客户提供IP地址之前,将在这个文件中记录租用的信息。新的租用信息会添加到dhcpd.leases的尾部。为了向一个子网提供DHCP服务,dhcpd需要知道子网的网络号码和子网掩码。还有地址范围等等。
  DHCP服务器配置文件内容:

  ⑴ DHCP的配置文件——/etc/dhcpd.conf

  RHEL5安装后的默认情况下,此文件是一个空白文件。

  该文件的模板是:/usr/share/doc/dhcp-3.0.5/dhcpd.conf .sample

  cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf

  cat /etc/dhcpd.conf 如下图所示。


  ddns-update-style interim; //定义所支持的DNS动态更新类型, (必选),一般设置成关闭,interim和none都是关闭的意思(interim或ad-hoc或none )

  ignore client-updates; //忽略客户端更新,不允许动态更新dns

  subnet 172.16.210.0 netmask 255.255.255.0 { //声明一个网段

  # --- default gateway

  option routers 172.16.210.254; //分配给客户机的网关地址或路由IP地址,在DHCP发布IP地址的同时,把网关发布出去。

  option subnet-mask 255.255.255.0; //分配给客户机的子网掩码

  option nis-domain “domain.org”; //设置NIS域名

  option domain-name “domain.org”; //设置DNS域名,要与DNS的域名一致

  option domain-name-servers 172.16.210.1; //DNS服务器的IP地址

  option time-offset -18000; //为客户端设定和格林威治时间的偏移时间

  # option ntp-servers 172.16.210.1; //为客户端设定网络时间服务器IP地址

  # option netbios-name-servers 172.16.210.1; //设置默认的WINS服务器

  # ---Selects point-to-point node (default is hybrid). Don't change this nless

  # -- you understand Netbios very well

  # option netbios-node-type 2;

  range dynamic-bootp 172.16.210.210 172.16.210.240; //可分配的IP范围

  default-lease-time 21600; //默认的租约时间 6小时

  max-lease-time 43200; //最大的租约时间 12小时

  # we want the nameserver to appear at a fixed address

  host ns { //对主机名为ns的主机做host声明设定对特定网卡的IP分配

  next-server marvin.redhat.com; #设置由于定义服务器从引导文件中装入的主机名,用于无盘站。

  hardware ethernet 12:34:56:78:AB:CD; //主机的MAC地址

  fixed-address 172.16.210.222; //该地址始终分配给该主机

  }

  }

  #全局配置项

  # 利用subnet定义DHCP作用域,一个网段应定义一个作用域

  shared-network test {

  subnet 子网1 netmask 子网掩码 {

  option routers 默认网关地址;

  range [dynamic-bootp] low-address [high-address]; #指定可分配的IP地址池范围

  [其他可选设置]

  }

  ……

  subnet 子网n netmask 子网掩码 {

  option routers 默认网关地址;

  range [dynamic-bootp] low-address [high-address];

  [其他可选设置]

  }

  }

  Group { #组配置项设置

  host 主机名1 {

  hardware ethernet 网卡物理地址;

  对该主机的设置;

  }

  }

  3.启动DHCP服务器

  启动

  # service dhcpd start

  重新启动

  service dhcpd restart

  查询服务的启动状态

  service dhcpd status

  停止服务

  service dhcpd stop

  4.测试DHCP服务器

  启动DHCP服务

  在物理机将IP地址设置为自动获得

  打开“运行”→输入“cmd”

  释放IP地址:ipconfig /release

  重新申请IP地址:ipconfig /renew

  执行:ipconfig /all

  此时若能看到所分配到的IP地址、默认网关和DNS服务器地址,则说明DHCP服务器工作正常,配置成功。

Linux客户机的配置
修改/etc/sysconfig/network-scripts/ifcfg-eth0:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
或使用netconfig配置动态地址,然后运行#service network restart
设定1分钟后执行指定操作:
#at now+1minutes
at> service network restart
ctrl+D结束
调试服务器:
#tail /var/log/messages 查看日志信息
#more /var/lib/dhcpd/dhcpd.leases 查看IP分配情况
调试客户机:
Under unix:
#dhclient eth0 DHCP客户端工具,刷新网卡eh0,发送一个广播,重新请求一个IP

Under windows:
C:\>ipconfig /renew

有些网站上有如下说明:



现在配置文件已经有了,但还是不能启动dhcpd,为什么呢?因为我们还没有创建关于dhcpd的租用文件。
现在我们创建dhcpd.leases文件:
  #touch /var/state/dhcp/dhcpd.leases
然后就可以启动DHCP了:
  # /etc/rc.d/init.d/dhcpd start
如果希望在每次启动系统的时候也启动DHCPD,请执行命令:
  # /sbin/chkconfig --level 3 dhcpd on 
chkconfig 命令是检查、设置系统的各种服务。参数 —level <等级代号>指定该系统服务要在哪一个执行等级中开启或关闭,范围是0-7。然后,在Linux客户端的设置netconf在网络设置中把IP地址的获得设置为DHCP。 这样,我们DHCP服务器的配置就完成了。

而在我的系统Centos上面,在/var下没有state这文件夹,当然更加没有dhcpd.leases这个文件了。但是我的是可以启动DHCP服务的。至于要不要这个dhcpd.leases文件,在前面的红色字体dhcpd将客户端租用的信息保存在dhcpd.lease文件中,那么没有这些信息应该也是可以完成dhcp服务的。当我创建这个目录以及文件夹state/dhcp/dhcpd.leases后,我重启了dhcp服务,发现这个文件内容还是空白,那么所说的客服端租用信息保存在哪里呢?是不是系统不一样的缘故造成的?或许是在另一个文件中?
后来发现:
编译安装方法
#tar zxvf dhcp-latest.tar.gz
#cd dhcp-3.0.3
#./configure
#make
#make install
#vi /etc/dhcpd.conf
#touch /var/state/dhcp/dhcpd.leases rpm安装不用touch,文件默认安装在/var/lib/dhcpd/dhcpd.leases
#dhcpd

 
原来是默认是在/var/lib/dhcpd下!
原创粉丝点击