wordpress nginx Android google shell java Ubuntu 开源 HTML5 linux命令 linux Python php centos mysql 微软 Windows Firefox 程序员 apache

Linux下DHCP服务器(CentOS系统)安装和配置详解

DHCP是进行ip地址等网络信息集中管理的服务。在局域网内部构建一台Linux主机作为DHCP服务器,并且设置其他的主机都从DHCP服务器获得主机的网络信息,这样既可以大大简化系统管理员对所有主机逐一进行网络配置的工作,也可以对IP地址实现合理的规划和分配。本文主要撰写的内容是通过DHCP进行自动网络设置,包括DHCP服务器的配置和管理和DHCP客户端的配置使用。

DHCP的概念,可以包括以下解释:

  • DHCP是实现主机IP地址、DNS等动态配置的网络协议。
  • DHCP可以在多种操作系统中实现,包括常见的linux系统和Windows系统。
  • DHCP网络服务的结构中具有服务器和客户机两个角色。
  • DHCP服务器用于为网络中所有的DHCP客户机提供网络配置信息,在同一网络中,DHCP服务器通常是唯一存在的。
  • 网络中的任何主机都可以配置成为DHCP客户机,向DHCP服务器发出配置请求,并按照服务器返回的信息进行网络配置。

在实际的应用中DHCP服务器经过配置后可以为客户机提供以下网络配置信息:

  • 网络接口的IP地址和子网掩码。
  • 网络接口的IP地址对应的网路地址和广播地址。
  • 默认网关地址。
  • DNS服务器地址。

下面开始讲解在CentOS上安装dhcp服务器的过程,和参数设置:

1、下载安装

ftp://ftp.isc.org/isc/dhcp可以下载你需要的版本,我这里下载的是最新稳定版:dhcp-4.2.1.tar.gz

# tar zxvf dhcp-4.2.1.tar.gz
# cd dhcp-4.2.1
# ./configure
# make
# make install

2、网络接口的配置

# vim /etc/sysconfig/dhcpd
#指定网络接口名称,在eth0 网络接口上启用dhcp 服务。
DHCPDARGS=eth0

3、创建DHCP服务器租约文件

# touch /var/db/dhcpd.leases

注意:如果没有创建此文件,启动服务时候会提示以下错误信息:

WARNING: host declarations are global. They are not limited to the scope you declared them in.
Can't open lease database /var/db/dhcpd.leases: No such file or directory --

4、手动创建DHCP主配文件dhcpd.conf

ddns-update-style none;

default-lease-time 21600;
max-lease-time 43200;
option domain-name "linuxde.net";
option domain-name-servers 192.168.3.200;

subnet 192.168.3.0 netmask 255.255.255.0 {
        range 192.168.3.100 192.168.3.200;
        option subnet-mask 255.255.255.0;
        option routers 192.198.3.1;

host server1 {
        hardware ethernet b0:c0:c3:22:46:81;
        fixed-address 192.168.3.100;
}
}

在源码包有一个配置文件的模版,可以参考:dhcp-4.2.1/server/dhcpd.conf

dhcpd.conf配置文件的详细说明:

全局设置

  • ddns-update-style参数:设置DHCP服务器与DNS服务器的动态信息更新模式,一般的DHCP服务器可以不考虑设置该项,但是全局设置中一定要包括ddns-update-style的设置dhcpd才可以正常启动。设置为:interim 表示与DNS互动更新,设置为:none 表示不自动更新。
  • default-lease-time参数:设置默认租约时间,参数值单位是秒。默认租约时间表示客户端从服务器租用一个IP地址的默认时间,到大时间后客户端会向服务器提出继续租用该IP地址的请求。
  • max-lease-time参数:设置最大租约时间,参数值单位是秒。当客户端租约的地址到大这个时间,就不能继续租用该IP地址。
  • option domain-name参数:设置主机所在域的名称,设置的域名和主机名称一起组成主机全名。
  • option domain-name-servers参数:设置DNS服务器地址,设置后客户机DNS会使用该地址,如果要设置多个DNS地址,用逗号隔开

使用subnet声明设置子网属性

  • subnet后面设置网络地址,netmask后面设置子网掩码。
  • range参数:是设置subnet中可供动态分配的IP地址范围,参数值一定要是subnet设置的子网之内,否则不能启动
  • subnet-mask参数:设置子网掩码,设置子网掩码之后一般不需要再设置网络地址和广播地址。
  • routers参数:是设置默认网关。

使用host声明设置主机属性,通常用于为服务器分配好固定使用的IP地址

  • host后面需要为DHCP客户端主机设置主机名称。
  • hardware参数:是设置客户端主机的物理地址(MAC地址),因为通常使用的都是以太网,所以hardware参数类型设置为ethernet。
  • fixed-address参数:设置在host声明中指定的客户端分配固定使用的IP地址。

5、启动DHCP服务器

# dhcpd
Internet Systems Consortium DHCP Server 4.2.1
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
WARNING: Host declarations are global. They are not limited to the scope you declared them in.
Wrote 0 deleted host decls to leases file.
Wrote 0 new dynamic host decls to leases file.
Wrote 0 leases to leases file.
Listening on LPF/eth0/00:0c:29:6b:b5:0d/192.168.3.0/24
Sending on LPF/eth0/00:0c:29:6b:b5:0d/192.168.3.0/24
Sending on Socket/fallback/fallback-net

说明已经启动成功,想写一个DHCP的启动脚本,觉得没有必要。如果你有写好的,能否在评论分享一下:),服务器配置好之后,通过查看/var/db/dhcpd.leases文件可以了解DHCP服务器的地址租约情况。

DHCP客户端(Linux客户端)的配置

网络接口配置文件

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp

重启网络接口

# ifdown eth0 ; ifup eth0

Windows客户端就不用多说了...

延伸阅读

评论