linux DHCP

1 DHCP服务

DHCP是Dynamic Host Configuration Protocol的缩写,中文译为动态主机分配协议,它是一个简化主机IP地址分配管理的TCP/IP标准协议,是基于C/S模式。本地网络DHCP客户机DHCP服务器IP地址数据库。

1.1 dhcp工作原理

【1】 客户端[UDP 68端口]向网络上广播dhcpdiscover包,内包含客户机的mac地址。
【2】 dhcp服务器收到客户机的dhcpdiscover包后,发送一个dhcpoffer广播包[UDP 67],内包含IP地址,dhcp服务器IP等内容。
【3】 客户机收到第一个dhcp服务器发送的dhcpdiscover包后,再以广播的形式发送一个dhcprequest包发给所有的dhcp服务器,内有一个DHCP服务器IP,说我以已经找到了一个DHCP了。
【4】 被选中的服务器再发一个dhcppak广播包确认此IP的发放。
这个IP地址可以使用一半租期的时间,超过一半时间应续租,如果过了一半时间后找不到DHCP服务器的话,可以再使用四分之一时间,然后就过期了。用户就不能通过此IP地址进行通信了。

1.2 dhcp服务安装

首先应确认dhcp服务的安装

12
[root@zhinan~] rpm -qa|grep dhcppackage dhcp is not installed

没有安装,下面是dhcp的安装。

1
[root@zhinan~] yum intall dhcp

2 DHCP服务的配置

Dhcp服务的配置文件默认是没有的,需要在/etc手工创建dhcpd.conf文件。但是幸运的是,在安装dhcp服务时会为我们提供一个示例文件

12345
[root@zhinan ~] ll /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample-rw-r--r--. 1 root root 3262 Aug 132002/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample [root@zhinan ~]cp/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf   \\将其复制为/etc/dhcp/dhcpd.conf 并在其基础上进行修改配置。

2.1 dhcp单网配置文件

编辑dhcp配置文件为以下内容。具体的实际的环境的配置可以在以下配置文件的基础上进行修改,使其满足具体环境中的应用。

12345678910111213141516171819202122232425
vi/etc/dhcp/dhcpd.conf ddns-update-style interim;                 /*dhcp支持的dns动态更新方式*/ignore client-updates;                     /*忽略客户端DNS动态更新*/ subnet 192.168.1.0 netmask 255.255.255.0 {/*作用域网段*/ range 192.168.1.11 192.168.1.100;            /*ip地址段范围*/ option routers 192.168.1.1;                  /*网关地址*/ option subnet-mask 255.255.255.0;            /*子网掩码*/ option domain-name "koumm.com";              /*域名*/ option domain-name-servers 192.168.1.1,202.103.24.68; /*dns IP*/ option broadcast-address 192.168.16.255;   /*广播地址*/ default-lease-time 86400;                  /*租期1天,秒数*/ max-lease-time 172800;                     /*最长租期2天*//*绑定pc1主机ip地址配置*/host pc1 {                hardware ethernet 00:a0:cc:cf:9C:14; /*绑定机MAC地址*/  fixed-address 192.168.1.20;         /*最长租期2天*/} host pc2 {  hardware ethernet 04:20:c1:f8:37:11;  fixed-address 192.168.1.30; }}

2.2 dhcp超网配置文件

12345678910111213141516171819202122232425262728293031323334353637383940
vi/etc/dhcp.conf ddns-update-style interim;      /*dhcp支持的dns动态更新方式*/ignore client-updates;          /*忽略客户端DNS动态更新*/ shared-network mynet {/*超网作用域选项,共同部分*/ option subnet-mask 255.255.255.0;            /*子网掩码*/ option domain-name "koumm.net";              /*域名*/ option domain-name-servers 192.168.1.2;      /*dns IP*/ option broadcast-address 192.168.1.255;      /*广播地址*/ default-lease-time 86400;                    /*租期1天,秒数*/ max-lease-time 172800;                       /*最长租期2天*/  subnet 192.168.1.0 netmask 255.255.255.0 {/*1.0子网段*/  range 192.168.1.11 192.168.1.100;        /*ip地址段范围*/  option routers 192.168.1.1;               /*网关地址*//*绑定pc1主机ip地址配置*/host pc1 {   hardware ethernet 00:a0:cc:cf:9C:14;   fixed-address 192.168.1.20;  }/*绑定pc2主机ip地址配置*/  host pc2 {   hardware ethernet 04:20:c1:f8:37:11;   fixed-address 192.168.1.30;  }}  subnet 192.168.2.0 netmask 255.255.255.0 {/*2.0子网段*/  range 192.168.2.10 192.168.2.100;         /*ip地址段范围*/  option routers 192.168.2.1;                /*网关地址*/}  subnet 192.168.3.0 netmask 255.255.255.0 {/*3.0子网段*/  range 192.168.3.10 192.168.3.100;         /*ip地址段范围*/  option routers 192.168.3.1;                /*网关地址*/}}

2.3 dhcp中继代理

只要是安装了DHCP服务,也就自动安装了dhcp中继代理dhcrelay。
中继代理服务默认监听所有接口上的dhcp请求,也可以只是监听某一个网卡上的请求。
dhcp中继代理配置文件:
/etc/sysconfig/dhcrelay

1234
vi/etc/sysconfig/dhcrelay # Command line options hereINTERFACES="eth1 eth2"DHCPSERVERS="192.168.1.1"

也可以通过以下命令方式来实现:

1
dhcrelay -i eth1 -i eth2 192.168.1.1

配置完成后,重新启动dhcp服务。

1
service dhcpd restart

2.4 dhcp服务管理

dhcp服务安装好后没有开启,验证如下。

12345
chkconfig --list|grep dhcpddhcpd     0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:关闭  6:关闭 chkconfig --level345 dhcpd on   设为开机自动运行/etc/init.d/dhcpd restart 或service dhcpd restart   重启服务

3 DHCP客户端配置

3.1 windows客户端

略,设为自动获取IP即可。

3.2 linux客户端

12345678910
vi/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE = eth0                网卡设备BOOTPROTO = dhcp             动态ip设置就为DHCP        BROADCAST = 192.168.1.255    广播地址HWADDR = 00:0C:29:49:D0:59   MAC地址IPADDR = 192.168.1.10        本机IP地址 NETMAST = 255.255.255.0      子网掩码NETWORK = 192.168.1.0        网络号ONBOOT = yes                 开机时激活网卡

3.3 dhcp服务验证

1.服务器端验证
查看dhcp租约文件。

1234567891011
cat/var/lib/dhcp/dhcpd.leases # This lease file was written by isc-dhcp-V3.0pl1 lease 192.168.1.100 {  starts 32009/01/2112:26:31;  ends 42009/01/2212:26:31;  binding state active;  next binding state free;  hardware ethernet 00:0c:29:3b:20:d5;}

查看系统日志文件

12345678910
cat/var/log/messages....Jan 2120:25:23 linux  1月 2120:25:23 dhcpd: Listening on Jan 2120:25:23 linux  1月 2120:25:23 dhcpd: Sending on   Jan 2120:25:23 linux  1月 2120:25:23 dhcpd: Sending on   Jan 2120:25:23 linux  1月 2120:25:23 dhcpd: dhcpd 启动 succeededJan 2120:26:30 linux dhcpd: DHCPDISCOVER from 00:0c:29:3b:20:d5 via eth0Jan 2120:26:31 linux dhcpd: DHCPOFFER on 192.168.1.100 to 00:0c:29:3b:20:d5 via eth0Jan 2120:26:31 linux dhcpd: DHCPREQUEST for 192.168.1.100 (192.168.1.8) from 00:0c:29:3b:20:d5 via eth0Jan 2120:26:31 linux dhcpd: DHCPACK on 192.168.1.100 to 00:0c:29:3b:20:d5 via eth0

2.客户端验证
ip地址验证:ifconfig
网关:/etc/sysconfig/network
dns: /etc/resolv.conf



本文固定链接: