- DHCP原理与配置
- DHCP工作原理
- 了解DHCP服务
- 使用DHCP的好处
- DHCP的分配方式
- DHCP的租约过程
- 使用DHCP动态配置主机地址
- DHCP服务器的配置
- 安装DHCP服务器
- DHCP客户端的使用
- Windows客户端的验证
- Linux客户端的验证
- DHCP中继原理与配置
- eNSP中的配置
- DHCP (Dynamic Host Configuration Protocol,动态主机配置协议)
- 由lnternet工作任务小组设计开发
- 专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议
- 减少管理员的工作量
- 避免输入错误的可能
- 避免IP地址冲突
- 当更改lP地址段时,不需要重新配置每个用户的IP地址
- 提高了IP地址的利用率
- 方便客户端的配置
- 自动分配:分配到一个IP地址后永久使用
- 手动分配:由DHCP服务器管理员专门指定IP地址
- 动态分配:使用完后释放该lP,供其它客户机使用
-
客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程
-
分为四个步骤
- 客户端在网络中搜索服务器
- 服务器向客户端响应服务
- 客户端向目标服务器发出服务请求
- 服务器向客户端提供服务
-
客户机请求IP地址
当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址
此时DHCP客户机以广播方式发送DHCP Discover发现信息来寻找DHCP服务器
-
服务器响应
DHCP服务器接收到来自客户机请求lP地址的信息时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机
如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的消息中,然后广播一则DHCP Offer消息
-
客户机选择IP地址
DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机
-
服务器确定租约
DHCP服务器接收到DHCP Request消息后,以DHCP ACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息
当客户机收到DHCP ACK消息时,配置IP地址,完成TCP/IP的初始化
-
重新登录
DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息,当收到DHCP ACK确认信息后,继续使用前一次分配得到的IP地址。如果该IP地址已不可用,DHCP服务器会发送DHCP Nack否认信息,此时DHCP客户机重新发送DHCP Discover信息。
-
更新租约
当DHCP服务器向客户机出租的lIP地址租期达到50%时,就需要更新租约
客户机直接向提供租约的服务器发送DHCPRequest包,要求更新现有的地址租约
-
DHCP服务
-
为大量客户机自动分配地址,提供集中管理
-
减轻管理和维护成本、提高网络配置效率
-
-
可分配的地址信息主要包括
-
网卡的P地址、子网掩码
-
对应的网络地址、广播地址
-
默认网关地址
-
DNS服务器地址
-
DHCP服务器软件
CentOS光盘中的dhcp-4.2.5-47.el7.centos.x86_64.rpm
DHCP软件包的主要文件
主配置文件:/etc/dhcpd.conf
执行程序:/usr/sbin/dhcpd、/usr/sbin/dhcrelay
-
配置DHCP服务器
systemctl stop firewalld
setenforce 0 //临时关闭防火墙和SELinux防止实验被安全功能阻止
systemctl mask/umask firewalld可以永久停用/重新启用firewalld
修改/etc/sysconfig/selinux可以实现永久禁用/重新启用/部分生效SELinux(disabled、enforcing、permissive)
yum install -y dhcp //安装dhcp需要配置yum仓库,或者rpm -ivh dhcp-4.2.5-58.elf.centos.x86_64.rpm(具体名称需要自己查询在/mnt/Packages/里查询)
cd /etc/dhcp/
ls //进入并查看DHCP安装的目录
less dhcpd.conf //注释提示去查看/usr/share/doc/dhcp*/dhcpd.conf模板文件
cd /usr/share/doc/dhcp-4.2.5/
ls
less dhcp.conf.example //查看模板
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
-
vim /etc/dhcp/dhcpd.conf
# 设置全局配置参数 default-lease-time 21600; # 默认租约为6小时,单位为秒 max-lease-time 43200; # 最大租约为12小时,单位为秒 option domain-name "nrh.com"; # 指定默认域名 option domain-name-servers 202.106.0.20, 202.106.148.1; # 指定DNS服务器地址(前主后备) ddns-update-style none; # 禁用DNS动态更新 # subnet网段声明(作用于整个子网段,部分配置参数优先级高于全局配置参数,如果有多个网段地址池提供服务,需要把DNS服务器所在的网段设为第一个子网段配置) subnet 192.168.42.0 netmask 255.255.255.0 { # 声明要分配的网段地址 range 192.168.42.10 192.168.42.20; # 设置地址池 option routers 192.168.42.254; # 指定默认网关地址 } subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option routers 192.168.1.254; default-lease-time 45600; # 生效后此网段的租期则优先选择为45600秒 option domain-name-servers 7.7.7.7; # 指定此网段的DNS服务器的地址 } subnet 192.168.2.0 netmask 255.255.255.0 { range 192.168.2.20 192.168.2.30; option routers 192.168.2.254; } # host主机声明(给单机分配固定的IP地址) host hostname { # 指定需要分配固定IP地址的客户机名称 hardware ethernet 00:c0:c3:22:46:81; # 指定该主机的MAC地址 fixed-address 192.168.4.100; # 指定保留给该主机的IP地址 } # 后面内容都可删除 -
保存更新配置文件,启动服务
systemctl start dhcpd
systemctl stop firewalld
setenforce 0
netstat -anpu | grep ":67" //查看启动状态
tail -f /var/log/messages //如果启动失败,可以查看日志文件
-
将参与实验的所有虚拟机网络适配器设置改为VMnet1(仅主机模式)(NAT模式VMware Workstation默认开启一个DHCP服务,会与本次实验服务器端的DHCP服务冲突)
-
此时如果使用Xshell等远程登陆工具连接操作,需要在宿主机里将VMware Network Aadpter VMnet1的IP地址指定为不与虚拟机冲突的同一网段的地址
-
开启一台windows虚拟机,在本地网络连接中全部选择自动获取,即可自动获取到服务器端设置的ip地址等配置
-
开启一台linux虚拟机,修改ens33网卡配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet PROXY_METHOD=none BROWSER_onLY=no BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=df409853-929c-4577-81f9-dbe853e3f498 DEVICE=ens33 onBOOT=yes
-
重启网络服务获得DHCP服务端提供的IP地址等信息
systemctl restart network
ifconfig
-
拓扑图如下
-
Cloud的设置
配置完成后Cloud1才会提供一个Ethernet 0/0/1端口
-
交换机sw1的配置
[sw1]vlan batch 10 20 100 //配置vlan Info: This operation may take a few seconds. Please wait for a moment...done. [sw1]int e0/0/2 //以下都是配置端口类型,设置对应vlan [sw1-Ethernet0/0/2]port link-type access [sw1-Ethernet0/0/2]port default vlan 10 [sw1-Ethernet0/0/2]int e0/0/3 [sw1-Ethernet0/0/3]port link-type access [sw1-Ethernet0/0/3]port default vlan 20 [sw1-Ethernet0/0/3]int e0/0/4 [sw1-Ethernet0/0/4]port link-type access [sw1-Ethernet0/0/4]port default vlan 100 [sw1-Ethernet0/0/4]int e0/0/5 [sw1-Ethernet0/0/5]port link-type access [sw1-Ethernet0/0/5]port default vlan 100 [sw1-Ethernet0/0/5]int e0/0/1 [sw1-Ethernet0/0/1]port link-type trunk [sw1-Ethernet0/0/1]port trunk allow-pass vlan all
-
三层交换机sw2的配置
[sw2]vlan batch 10 20 100 Info: This operation may take a few seconds. Please wait for a moment...done. [sw2]int g0/0/1 [sw2-GigabitEthernet0/0/1]port link-type trunk [sw2-GigabitEthernet0/0/1]port trunk allow-pass vlan all [sw2-GigabitEthernet0/0/1]q [sw2]int vlanif 10 //配置虚接口ip [sw2-Vlanif10]ip address 192.168.1.254 24 [sw2-Vlanif10]int vlanif 20 [sw2-Vlanif20]ip address 192.168.2.254 24 [sw2-Vlanif20]int vlanif 100 [sw2-Vlanif100]ip address 192.168.42.254 24 [sw2-Vlanif100]q [sw2]dhcp enable //打开dhcp功能 Info: The operation may take a few seconds. Please wait for a moment.done. [sw2]int vlanif 10 //配置dhcp中继 [sw2-Vlanif10]dhcp select relay [sw2-Vlanif10]dhcp relay server-ip 192.168.42.3 [sw2-Vlanif10]int vlanif 20 [sw2-Vlanif20]dhcp select relay [sw2-Vlanif20]dhcp relay server-ip 192.168.42.3 //vlan 100网段可以通过广播接收,不需要配置dhcp中继
-
给PC3配置一个固定ip
记录下PC3的MAC地址,再在DHCP客户端配置
vim /etc/dhcp/dhcpd.conf //DHCP配置文件
# 添加以下配置 host hostname { hardware ethernet 54:89:98:C9:7C:58; fixed-address 192.168.42.188; }systemctl restart dhcpd
vim /etc/sysconfig/network-ens33/ifcfg-ens33 //跨网段通信设置网关
# 修改如下配置 GATEWAY=192.168.42.254
systemctl restart network
此后可以在DHCP客户端ping通192.168.10.254和 192.168.20.254,证实可到达客户机网段
-
三台客户机都开启DHCP自动获取IP地址,在命令行执行ipconfig命令,验证试验成功(PC3得到的DHCP服务器固定分配的IP地址)



