实验拓扑
系统版本为:CentOS6.5 64位系统
实验需求
C1和C2通过DHCP获取IP地址
DHCP服务器为C3单独预留地址
配置步骤
[[email protected] ~]# mount /dev/cdrom /mnt //挂载光盘到mnt目录
mount: block device /dev/sr0 is write-protected, mounting read-only
[[email protected] ~]# rpm -ivh /mnt/Packages/dhcp-4.1.1-38.P1.el6.centos.x86_64.rpm //安装DHCP服务
DHCP服务器网卡必须要有静态IP地址,本机的地址为:192.168.10.250/24
DHCP的配置文件在/etc/dhcp/dhcp目录下
[[email protected] ~]# cd /etc/dhcp/dhcpd.conf
由于配置文件没有任何配置内容可以通过cat命令查看配置文件,查看配置模板路径
[[email protected] dhcp]# cat dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see ‘man 5 dhcpd.conf‘
#
[[email protected] dhcp]#
通过cp命令将模板复制到当前目录下,覆盖dhcpd.conf文件
[[email protected] dhcp]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample ./dhcpd.conf
cp:是否覆盖"./dhcpd.conf"? yes
[[email protected] dhcp]#
[[email protected] dhcp]# cp dhcpd.conf dhcpd.conf.bak //修改配置前将配置文件做好备份
[[email protected] dhcp]# grep -v "^#" dhcpd.conf > dhcpd1.conf
//过滤配置文件中的以“#”开头的注释行并追加到一个新的文件中
[[email protected] dhcp]# grep -v "^$" dhcpd1.conf > dhcpd2.conf
//将过滤后的文件在过滤一次将空白行过滤掉,在次追加到新的文件中
[[email protected] dhcp]# mv dhcpd2.conf dhcpd.conf //将过滤后的文件改名dhcpd.conf覆盖原有文件
mv:是否覆盖"dhcpd.conf"? yes
[[email protected] dhcp]#
使用vim编辑器打开的dhcp.conf文件,将文件中多余的范例行删除吊保留一份即可
-----------------------------------修改后的配置文件---------------------------------------
default-lease-time 600; //最小租约,单位为秒
max-lease-time 7200; //最大租约
subnet 192.168.10.0 netmask 255.255.255.0 { //要分配的网段和掩码
range 192.168.10.100 192.168.10.200; //分配的地址范围
option domain-name-servers 1.1.1.1,2.2.2.2; //DNS服务器地址如果有多个地址用“,”隔开
option routers 192.168.10.1; //默认网关
option broadcast-address 192.168.10.255; //广播地址
}
host c3 { //host后面为要保留的主机名可随意命名
hardware ethernet 54:89:98:87:5A:28; //要保留设备的MAC地址以“:”格式分开
fixed-address 192.168.10.199; //要保留主机的IP地址
}
如果想要创建多个地址池,将subnet字段复制粘贴到下面就可以了
------------------------------------------------------------------------------------------
使用service命令启用dhcp服务
[[email protected] dhcp]# service dhcpd start
正在启动 dhcpd: [确定]
[[email protected] dhcp]#
注意:地址池内的地址段必须要有一段和物理网卡在同一网段否则启动不了
-------------------------------------------------------------------------------------------
查看客户端地址
可以看出客户段所获得的地址全是在地址池范围内的地址
C3获取到的地址为我们手动保留的地址
------------------------------------------------------------
DHCP的报文有个4个分别为:
discover
offer
request
ack
通过抓取bootp报文来查看DHCP的4个报文
由上图可以看出DHCP的4个报文为2个单播2个广播而在微软下搭建的DHCP服务器的4个报文却是4个广播报文!
通过抓取Discover可以看出,客户机没地址的时候三层的IP地址为“0.0.0.0”
DHCP报文四层的端口号为:服务器67,客户端68
从Request报文中可以看出虽然是个广播报文但客户机已经标识出了自己选择DHCP服务器是谁
这个是ACK报文,OFFER报文中就已经给了客户机所有地址信息但是只有收到ACK后这些信息客户机才可以使用。
DHCP的工作原理:
一丶首先客户机发送Discover广播报文,寻找DHCP服务器!
二丶DHCP收到后会发送offer报文回应客户机并分配一个地址给客户机(这个地址客户机还未真正使用),可以理解为服务器在问客户机这个地址你要吗?
三、(如果有多台服务器则客户机只使用收到的第一个地址)客户机收到后会发送Request广播报文去请求这个地址,由于是广播同时也告诉了其它服务器我选择了谁。
四、DHCP服务器收到后回应一个ACK报文,回应客户机说我知道了你就使用这个地址吧!(这个时候客户机才可以使用这个地址)