转载注明出处:https://www.cnblogs.com/kelamoyujuzhen/p/9520341.html
实验环境
rhel-server-6.4-x86_64-dvd(ED2000.COM).iso
注意:
对于使用VMware虚拟机进行实验,需要关闭针对某个WMNet的DHCP设置
搭建DHCP Server
配置本地yum源 搭建KVM环境——03 创建虚拟机后配置环境
安装DHCP服务
[root@localhost yum.repos.d]# yum -y install dhcp Loaded plugins: product-id, security, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package dhcp.x86_64 12:4.1.1-34.P1.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved =================================================================================================================================== Package Arch Version Repository Size =================================================================================================================================== Installing: dhcp x86_64 12:4.1.1-34.P1.el6 vcd 816 k Transaction Summary =================================================================================================================================== Install 1 Package(s) Total download size: 816 k Installed size: 1.9 M Downloading Packages: Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : 12:dhcp-4.1.1-34.P1.el6.x86_64 1/1 Verifying : 12:dhcp-4.1.1-34.P1.el6.x86_64 1/1 Installed: dhcp.x86_64 12:4.1.1-34.P1.el6 Complete!
编辑DHCP server配置文件
[root@localhost dhcp]# pwd /etc/dhcp [root@localhost dhcp]# cat dhcpd.conf # # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.sample # see 'man 5 dhcpd.conf' # ddns-update-style none; default-lease-time 7200; max-lease-time 14400; option domain-name "cac.com"; option domain-name-servers 192.168.40.10,192.168.40.20 ; subnet 192.168.80.0 netmask 255.255.255.0 { range 192.168.80.10 192.168.80.100; option routers 192.168.80.1; }
关键字段解析
全局设置(对所有网段都起作用)
ddns-update-style none;
在没有DHCP情况下,计算机使用域名通信情况,见下图,DNS维护IP到域名映射表
在引入DHCP后,计算机一开机,由DHCP自动分配IP,导致DNS那一侧IP到域名映射关系失效,需要更新这份映射关系。可以由计算机自己更新(我们用的Windows就有这个功能),也可由DHCP代劳。ddns-update-style none;这句话的意思就是说,DHCP就不要管闲事更新DNS映射表了。见下图
default-lease-time 7200;
默认租约时间。客户机通过DHCP获取IP后,这个IP使用时间是多久。单位秒
max-lease-time 14400;
最大租约时间。正常情况下,如果客户机在default-lease-time快到期时会向DHCP续租。如果在default-lease-time期间,客户机死机了,default-lease-time时间到了,DHCP服务器并不会立即回收这个IP,他还会再等等,等的这个时间就是max-lease-time。如果max-lease-time 这么长时间还不来续租,那就回收IP方便别人再使用。
option domain-name "cac.com";
默认域名称。在一个局域网内,各个计算机之间通过名称访问,比如ftp服务器全名叫ftp.cac.com,其他客户机要想获取ftp服务就必须使用ftp.cac.com全名(DNS会把这个全名解析成IP)。使用这个字段就可以直接使用ftp通信了。
option domain-name-servers 192.168.40.10,192.168.40.20 ;
指定域名解析服务器,多个域名解析服务器用逗号隔开
子网设置
subnet 192.168.80.0 netmask 255.255.255.0
标记哪个子网
range 192.168.80.10 192.168.80.100;
DHCP分配IP地址范围
option routers 192.168.80.1;
这个子网的网关是什么,每个子网的网关都不一样。
子网也可以设置租约时长,如果和全局设置一样就没必要写了。
启动DHCP服务
service dhcpd start
检查侦听端口
[root@WebServer ~]# netstat -tlunp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1116/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1192/master tcp 0 0 :::22 :::* LISTEN 1116/sshd tcp 0 0 ::1:25 :::* LISTEN 1192/master udp 0 0 0.0.0.0:67 0.0.0.0:* 1638/dhcpd
客户端配置
Linux客户端
编辑网卡配置文件etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 HWADDR=80:8C:29:7B:54:DC TYPE=Ethernet UUID=76cda891-e44f-4236-9f2c-be13f8d87292 ONBOOT=yes NM_CONTROLLED=yes B0OTPROTO=dhcp
重启网络服务 service network restart
在DHCP服务端/var/lib/dhcpd/dhcpd.leases文件查看租约信息
[root@localhost ~]# tail -11 /var/lib/dhcpd/dhcpd.leases lease 192.168.1.100 { starts 2 2018/08/22 08:33:46; ends 2 2018/08/22 14:33:46; tstp 2 2018/08/22 14:33:46; cltt 2 2018/08/22 08:33:46; binding state active; next binding state free; hardware ethernet 00:0c:29:03:e3:40; }
在DHCP客户端/etc/resolv.conf文件可以看到从DHCP服务器获取的信息。客户端这一侧租约信息在/var/lib/dhclient/dhclient-ethe.leases文件里面记录
对于有图形界面的Linux发行版还可以使用图形界面来设置,设置完后重启网络服务
Windows客户端
Windows命令行执行ipconfig查看获取的IP地址。
ipconfig /release告诉DHCP服务器释放租约。如果这时候新加入一台计算机(使用DHCP获取IP),会获取之前释放的哪个IP
ipconfig /renew 重新获取IP地址
DHCP服务器分配原则:尽量让客户端使用原来的IP地址
给特定的服务器保留固定IP地址
如何理解这种场景
有机房A、B,分别在50和60网段。教师要在两个教师上课,课堂上学生需要访问老师的共享文件,学生只知道老师的IP是8,但是由于DHCP是随机分配IP,教师的IP可能就不是8。通过在DHCP服务器一侧设置具体某台机器的IP就可以满足上面场景要求。注意DHCP服务器是通过MAC标识计算机的。
DHCP服务端配置如下
ddns-update-style none; default-lease-time 7200; max-lease-time 14400; option domain-name "cac.com"; option domain-name-servers 192.168.40.10,192.168.40.20 ; subnet 192.168.80.0 netmask 255.255.255.0 { range 192.168.80.10 192.168.80.100; option routers 192.168.80.1; host win2012 { hardware ethernet 80:8C:29:7B:54:DC; fixed-address 192.168.80.50 option domain-name "cs.com"; } }
DHCP夸网段分配IP地址
见下图
学校共4各学院,其中计算机学院最关机,存放所有重要服务器,其他学院都是些普通计算机。4个学院4个网段,对于DHCP服务器而言,其作用主要就是分配个IP,任务量并不大,没必要每个学院都布置一个,其他学院只需要访问计算机学院的DHCP服务器获取IP即可。
这里面有个问题,就是DHCP客户端向DHCP服务端发起分配IP请求,是通过广播进行的。但是由于是跨网段通信,路由器隔绝广播域,导致广播数据包不能传输到计算机学院,因此其他学院也就无法自动获取IP。
解决问题的办法是DHCP中继,他在路由器上设置。客户端的广播请求经过路由器会变成一个定向转给DHCP服务器。这有点类似于NAT地址转换,假设计院,软院,光电,通信分别是192.168.40.0/24、92.168.50.0/24、92.168.60.0/24、92.168.70.0/24。个网段网管均为X.X.X.1,软院有个计算机192.168.50.55的广播包经过路由器会被替换成192.168.50.1
以上是原理部分,具体路由器如何设置,是网管的工作了。