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
本文固定链接: