Fork me on GitHub

DHCP服务——服务端 和 客户端 配置

转载注明出处: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!
View Code

编辑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;
} 
View Code

关键字段解析

全局设置(对所有网段都起作用)

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
View Code

检查侦听端口

[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
View Code

客户端配置

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
View Code

重启网络服务 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;  
}  
View Code

在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";
    }
}
View Code

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

以上是原理部分,具体路由器如何设置,是网管的工作了。

 

posted @ 2018-08-22 20:57  克拉默与矩阵  阅读(7183)  评论(0编辑  收藏  举报