Linux系统之DHCP
一、CèS的DHCP请求
C :客户端
S:服务端
第一步:CèS使用DISCOVER发起DHCP请求,因不知道DHCP的具体IP,故使用的是全网广播。DHCP服务器收到请求后回应DHCPOFFER,表明身份。其他非DHCP服务器将受到的数据包丢弃;
第二步:CèS使用DHCPREQUEST发起DHCP请求租用IP,使用的还是全网广播的。DHCP服务器使用DHCPACK回应请求可以租用IP,使用的也是全网广播,因为客户机依然没有IP;
第三步:DHCPACK中含有相应的IP租用规则,若C客户机同意则再次发起DHCP请求,表示同意租用,S服务器端则将含有规则的IP发送给C客户端。两者都是使用全网广播的形式,C客户机验证IP是否有效可用;
第四部:客户机验证IP可用后,向服务器发起租用请求,"表示同意使用此IP",服务器端确立租约时间,开始租约!此次依然使用全网广播的形式;
A客户端:
客户端C使用0.0.0.0的地址作为源地址,使用UDP68端口作为源端口,使用255.255.255.255作为目标地址,使用UDP67端口作为目标端口来广播请求IP地址信息! 广播信息中包含有DHCP客户机的MAC地址和计算机名,以便使DHCP服务器能确定是哪个客户机发送的请求!
B、服务器端
当DHCP服务器收到客户机请求IP地址的信息时,就在地址池中挑选剩余合法的IP地址。如果有,DHCP服务器就将此IP做上标记,封装到DHCPOFFER的信息中全网广播出去。DHCPOFFER包含信息有:
DHCP客户机的MAC地址、DHCP服务器提供的合法IP、子网掩码、默认网关、租约期限、DHCP服务器的IP地址
二、DHCP配置
动态IP地址控制协议
当局域网中客户端的数量达到一定级别是,都使用静态IP工作量大、效率低下,而使用DHCP自动分配管理IP,可以有效提高工作显效率,降低网络故障!
2.1、DHCP地址池 (同一网段内)
目的:创建一个IP地址范围,使所有的客户端都从这个范围内获取IP,方便管理。
步骤:
前提:先关闭iptables Selinux VMware虚拟网卡自身的dhcp功能
1、 使用两台虚拟机,一台S,一台C ,都选择相同的自定义网卡Vmnet10
2、 在S上安装DHCP软件包
A、 配置本地yum源,/etc/yum.repo.d/rhel6.repo
手动编辑内容:
[rehl-server]
name=***
baseurl=file:///mnt
enable=1
gpgchack=0
B、 挂载光盘镜像
mount /dev/sr0 /mnt
C、 yum -y install dhcp
3、 修改dhcp配置文件
cat /usr/share/doc/dhcp-4.1.1/dhcp.conf.sample >/etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf 配置其中的 subnet ***和range ***两行即可
格式:
Subnet 网段 netmask 掩码 {
range IP1~IP2 (地址范围) ;
}
4、 检测dhcp配置是否有语法错误
service dhcpd configtest
5、 重启服务
service dhcpd restart
6、 使用C进行验证
将网卡配置设置为dhcp
重启网卡服务
2.2、DHCP保留
实际工作中,机房服务器的IP是固定不变的,就算有变更频率也是很低的,故需要将IP和MAC进行绑定,使A服务器的IP只能是IP-A,B服务器的IP只能是IP-B
步骤:
1、 使用三台虚拟机,一台S,两台C,同一个虚拟网卡(关闭网卡自身的dhcp)
2、修改dhcp配置文件
vim /etc/dhcp/dhcpd.conf中下面的内容
host fantasia {
hardware Ethernet +MAC
fixed-address +对应IP
}
注:此处一台PC的MAC地址绑定,需使用一个host fantasia 集合,两个PC就要使用两个hostfantasia 集合。
3、两台C开启自动获取功能,获取IP
查看绑定MAC效果是否生效!
此处,在虚拟机测试中,IPèMAC绑定的PC必须先占定IP,其他电脑在分配IP时才不会占用到绑定的IP
Dhcp自动分配ip都是按顺序依次分配下去的!
2.3、DHCP作用域
有时候DHCP地址池IP数量太少,需要再增加一个网段增加地址池内IP的数量,以应变办公 电脑IP的变化,即跨网段DHCP
1、 步骤:一台S,两台C,同一个虚拟网卡(关闭网卡自身的dhcp)
两台C都是自动获取
需要修改配置文件中的 share-network public { } 内容
注:其中一个subnet中地址范围只有一个IP,以保证作用域效果的验证!
2.4、DHCP中继
步骤:
1、 实验环境准备
一台DHCP服务器S :eth0 (192.168.15.20)连接内网 VMnet 15
一台DHCP中继 :eth0 (192.168.15.254)连接内网 VMnet 15
eth2 (192.168.14.254)连接外网 VMnet 14
一台外网客户机:eth0 (自动获取)连接外网 VMnet 14
2、 配置DHCP服务器S
1.1、需修改网卡IP--eth0:192.168.15.20
1.2、关闭iptables SElinux 以及VMnet14 VMnet15的dhcp功能
修改配置文件
cat /usr/share/doc/dhcp-4.1.1/dhcp.conf.sample >/etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
保存退出,重启dhcpd服务 service dhcpd restart
指定网关ip route add default gw 192.168.15.254
(也可以将网关写在配置文件的subnet中)
3、 配置DHCP中继
3.1、修改网卡IP
eth0 (192.168.15.254)连接内网 VMnet 15
eth2 (61.150.14.254)连接外网 VMnet 14
3.2、关闭防护修改配置文件
关闭iptables SElinux
安装dhcp服务 yum -yinstall dhcp
3.3、修改配置文件 /etc/sysconfig/dhcrelay
第四行 INTERFACES="eth0 eth2" (需要地址转发的网卡)
第六行 DHCPSERVERS="192.168.15。15" (dhcp服务器IP)
重启dhcrelay服务 service dhcrelay start
3.4、开启地址转发功能
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
刷新配置文件sysctl -p
4、 开启外网客户机,选择VMnet14 ,网卡自动获取IP,验证实验功能
此实验概念注意事项:
1、 dhcp服务器配置内 、外网两个subnet,可以同时dhcp分配内网ip地址池,外网ip地址池。
2、 此时需要中继服务器进行两个网段地址转发,需开启地址转发概念;
3、 使用VMnet15的PC获取15网段的ip
使用VMnet14的PC获取14网段的ip