一.DHCP的基本概念
1.DHCP的定义
DHCP:(Dynamic Host Configuration Protocol )动态主机配置协议,是TCP/IP协议集所提供的一种实现自动分配IP配置信息的子协议,基于UDP协议实现。
2.DHCP的功能
① 动态分配(每一个IP地址都具有租约)
② 分配网关、WINS、DNS系统信息
③ 与DNS相结合实现动态更新
④ 保留IP地址给指定主机
3.DHCP的体系结构
DHCP服务器:运行DHCP服务软件包和DHCP协议的主机
DHCP客户机:运行DHCP协议可以发送DHCP请求的主机
4.分配IP地址过程
① CLIENT发送广播DHCPDISCOVER寻找DCHP服务器。
② 服务器发送广播DHCPOFFER响应CLIENT的请求。
③ CLIENT会检查得到的IP信息是否完整并且发送广播DHCPREQUEST通知DHCP服务器已获得IP地址。
④ SERVER发送广播DHCPACK确认客户机的请求,表示分配成功。
过程即:DHCP Discovery->DHCP Offer->DHCP Request->DHCP ACKnowledge
5.更新租约
① 每次DHCP客户端重新启动时, 都会自动利用广播的方式,给DHCP服务器发送DHCPREQUEST更新信息,要求继续租用原来的IP地址
② 50%时,CLIENT以点到点方式发送DHCPREQUEST请求服务器的更新租约。
③ 87.5%时,CLIENT发送广播DHCPREQUEST寻找其他DHCP服务器,如果更新成功的话,DHCP服务器向CLIENT发送DHCPACK;如果不成功的话则发送DHCPNACK。
二. DHCP服务的配置
1.安装DHCP的服务软件包
dhcp-3.0.5-21.e15.i386.rpm
2.相关文件和目录:
主配置文件:/etc/dhcpd.conf
执行程序:/usr/sbin/dhcpd,/usr/sbin/dhcrelay
服务脚本:/etc/init.d/dhcpd,/etc/init.d/dhcrelay
执行参数配置:/etc/sysconfig/dhcpd
DHCP中继配置:/etc/sysconfig/dhcrelay
3.配置文件
vim /etc/dhcpd.conf
第一次打开主配置文件,可能没有配置信息,此时需要
(1) 声明
subnet 网络号 netmask 子网掩码 { ……..}
功能:定义子网 (定义作用域 )
注意:网络号必须与服务器的网络号相同,如果服务器有多块网卡时,必须为每一个网卡都建立一个相同网络号的子网,但是不用分配地址的子网可以不定义地址范围
(2) shared-network 名称 {………..}
功能:设置DHCP服务器多个IP子网共享同一个物理网络,即超级作用域
注意:通常用于包含多个subnet声明
(3) range 起始IP地址 终止IP地址;
功能:定义作用域范围
(4)mac地址绑定
hardware ethernet 需要绑定的mac地址
fixed-address 绑定的IP地址
三.案例实现
案例一:设置dhcpd.conf文件,达到以下要求:
(1) 不支持dns动态更新,且忽略客户机的更新
(2) 服务器的默认地址租约时间为3600秒,最大地址租约时间为7200秒
(3) 所有作用域的客户机后缀域名为abc.com,DNS服务器地址为192.168.0.254
(4) 所有作用域的客户机默认网关地址192.168.0.1
(5) 定义作用域192.168.0.0子网,地址掩码为255.255.255.0,地址范围为192.168.0.2-----192.168.0.150
(6) 保留192.168.0.0子网中的192.168.0.8给以太网卡物理地址为00:E0:4C:70:33:65的客户机DHCP服务:
1.安装DHCP服务:yum install dhcp -y
(或者 rpm -ivh dhcp-3.0.5-21.e15.i386.rpm)
2.修改主配置文件
vim /etc/dhcpd.conf
ddns-update-style none;
ignore client-updates;
default-lease-time 3600;
max-lease-time 7200;
option routers 192.168.0.1;
option domain-name “abc.com”;
option domain-name-servers 192.168.0.254;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.150;
host c1 {
hardware ethernet 00:E0:4C:70:33:65;
fixed-address 192.168.0.8;
}
}
3.启动服务:service dhcpd start
开机自启:chkconfig dhcpd on
4,.实验效果验证:
对于linux客户端:
1)设置网卡采用dhcp启动协议,自动获取ip地址信息
vim /etc/sysconfig/network-scripts/ifcfg-ethX(X可以0,1,2……)
修改BOOTPROTO为:BOOTPROTO=dhcp
2) 获取IP地址
ifdown ethX ;
ifup ethX:
对于windows客户端:
(1) 右击网上邻居----属性------双击tcp/ip协议----选择“自动获动IP地址”
(2)开始->运行->cmd
输入:ipconfig/release 释放IP地址
ipconfig/renew 重新获取IP地址
案例二:DHCP实现中继代理
①对于dhcrelay主机,先安装yum install dhcp,需要两个网卡:eth0用来跟服务器主机相连,eth1用来跟客户端主机相连
开启路由功能:echo 1 > /proc/sys/net/ipv4/ip_forward
selinux: setenforce 0
vim /etc/syscofig/network-scripts/ifcfg-eth0
IPADDR=192.168.1.1
NETMASK=255.255.255.0
vim /etc/syscofig/network-scripts/ifcfg-eth1
IPADDR=192.168.2.1
NETMASK=255.255.255.0
vim /etc/sysconfig/dhcrelay
INTERFACES="eth0 eth1"
DHCPSERVERS="192.168.1.2"
service dhcrelay start
②对于服务器主机:subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option domain-name "fan.com";
option subnet-mask 255.255.255.0;
range 192.168.1.10 192.168.1.200;
}
③service dhcpd start
添加网关:route add default gw dhcrelay 192.168.1.2
进行实验效果验证。