dhcp在企业网中的应用

 

 

DHCP的原理
 
dhcp动态主机配置协议(Dynamic Host Configuration Protocol, DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址、子网掩码、默认网关、dns指向等信息,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
 
DHCP服务器有3种为DHCP客户机分配TCP/IP地址的方式
 
1、manual手工分配:在手工分配中,网络管理员在DHCP服务器通过手工方法配置DHCP客户机的IP地址。当DHCP客户机要求网络服务时,DHCP服务器把手工配置的IP地址传递给DHCP客户机。

2、automatic自动分配:在自动分配中,不需要进行任何的IP地址手工分配。当DHCP客户机第一次向DHCP服务器租用到IP地址后,这个地址就永久地分配给了该DHCP客户机,而不会再分配给其他客户机。

3、dynamic动态分配:当DHCP客户机向DHCP服务器租用IP地址时,DHCP服务器只是暂时分配给客户机一个IP地址。只要租约到期,这个地址就会还给DHCP服务器,以供其他客户机使用。如果DHCP客户机仍需要一个IP地址来完成工作,则可以再要求另外一个IP地址。
 
dhcp客户端获取地址的过程
 
1、客户端向网络当中发送一个dhcpdiscover数据广播包,等待网络中的dhcp服务器响应。
 
2、当网络中的dhcp服务器收到了来自客户端的数据包后,会向客户端回复一个dhcpoffer包,其中就包括了将要分配的IP地址、子网掩码、默认网关、dns指向等信息。
 
3、客户端收到了来自服务器的数据包之后,会向服务器发送一个dhcprequest的广播包,请求使用此IP地址。
 
4、服务器收到了来自客户端的请求之后,会向客户端回应一个dhcpack广播包,对客户端的请求加以确认。
 
客户端ip租约的更新
 
1、当客户机重启或者达到租期的50%时,客户机会发送dhcprequest请求更新租约,服务器收到请求时,会按照上述过程更新客户端租约;若服务器不在线,或者服务器没有收到更新租约的请求,客户端会继续等待。
 
2、当租约达到87.5%时,客户端会向网络中发送dhcpdiscover的广播,请求更新租约,如果dhcp服务器收到请求会按照四个步骤更新租约,如果2没有服务器响应,则选择等待,租约到期,服务器收回地址,客户端会获得一个169.254.x.y的地址。
案例一

dhcp服务器的搭建

[root@rain ~]# mkdir /mnt/cdrom
[root@rain ~]# mount /dev/cdrom /mnt/cdrom //挂在光盘
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@rain ~]# cd /mnt/cdrom/Server
[root@rain Server]# rpm -qip dhcp-3.0.5-21.el5.i386.rpm  //安装dhcp程序包
[root@rain Server]# setup //配置服务器地址并重启
[root@rain Server]# service network restart
正在关闭接口 eth0:                                        [确定]
正在关闭接口 eth1:                                        [确定]
关闭环回接口:                                             [确定]
弹出环回接口:                                             [确定]
弹出界面 eth0:                                            [确定]
[root@rain Server]# vim /etc/dhcpd.conf  //编辑dhcp配置文件

 

[root@rain ~]# service dhcpd configtest
Syntax: OK   //查看编译的文件是否有错误
[root@rain ~]# service dhcpd restart
启动 dhcpd:                                               [确定]    //启动dhcp服务

客户端的测试

 

 

案例二

假设我们有一台机器作用很大,我们希望其地址一直为192.168.220.253,我们只需在

dhcp的配置文件中稍做配置

 host ns {
                next-server marvin.redhat.com;
                hardware ethernet 00:0C:29:60:5A:2F;    //这台机器的mac地址
                fixed-address 192.168.220.128;  //dhcp服务器的ip地址
        }
}

重新启动dhcp服务器

service dhcpd restart

这样就可以一直获得220.253这个地址了

案例三

如果一家公司有超过200多台的机器需要地址,我们只是用220.0网段的地址是不够分配的,这是我们有两种方法可以解决

(1)给该公司一个B类的地址作为作用域,这个作用域可以分配60000多个客户端,这样就容易造成浪费。

(2)使用超级作用域,绑定多个C类地址就可以了。

这里我们只需要在案例一的编辑dhcp配置文件的步骤中加入多个作用域就可以了

 

 

vim /etc/dhcpd.conf

shared-network sun{ ##超级作用域sun

subnet 192.168.220.0 netmask 255.255.255.0 { //作用域1


option routers 192.168.220.254;

option subnet-mask 255.255.255.0;

option nis-domain "domain.org";

option domain-name "tec.com";

option domain-name-servers 222.88.88.88,222.85.85.85;

//主dns与辅助dns中间用逗号隔开

option time-offset -18000;

range dynamic-bootp 192.168.220.1 192.168.220.253;##地址池范围

default-lease-time 21600;
max-lease-time 43200;
}

subnet 192.168.210.0 netmask 255.255.255.0 { //作用域2

option routers 192.168.210.254;

option subnet-mask 255.255.255.0;

option nis-domain "domain.org";

option domain-name "mkt.com";

option domain-name-servers 222.88.88.88,222.85.85.85;

range dynamic-bootp 192.168.210.1 192.168.220.253;

default-lease-time 21600;

max-lease-time 43200;

}

}

 

 

 

启动dhcp服务器

service dhcpd restart

这样就可以了!

案例四

dhcp中继

在大型的网络中,可能会存在多个子网。DHCP客户机通过网络广播消息获得DHCP服务器的响应后得到IP地址。但广播消息是不能跨越子网的。因此,如果DHCP客户机和服务器在不同的子网内,客户机还能不能向服务器申请IP地址呢?这就要用到DHCP中继代理。DHCP中继代理实际上是一种软件技术,安装了DHCP中继代理的计算机称为DHCP中继代理服务器,它承担不同子网间的DHCP客户机和服务器的通信任务。

 

拓扑图

因为疏忽,拓扑图忘了上传,因此把拓扑图补在了文章的最后边。
 开启转发路由功能
vim /etc/sysctl.conf


 
net.ipv4.ip_forward = 1              //路由转发功能(在sysct1.conf 中的第七行)
 
执行sysctl –p                     //开启路由功能

[root@rain Server]# rpm -qip dhcp-3.0.5-21.el5.i386.rpm //安装dhcp程序包
编辑dhcp配置文件

[root@rain Server]# vim /etc/dhcpd.conf //编辑dhcp配置文件

5 subnet 192.168.20.0 netmask 255.255.255.0 {  //子网1的作用域
  6
  7 # --- default gateway
  8
  9         option routers                  192.168.20.254;
 10         option subnet-mask              255.255.255.0;
 11        
 12         option nis-domain               "domain.org";
 13         option domain-name              "domain.org";
 14         option domain-name-servers      222.88.88.88;
 15        
 16        
 17         range dynamic-bootp 192.168.20.1 192.168.20.253;
 18         default-lease-time 21600;
 19         max-lease-time 43200;
 20        
 21         # we want the nameserver to appear at a fixed address
 22         host ns {
 23                 next-server marvin.redhat.com;
 24                 hardware ethernet 12:34:56:78:AB:CD;
 25                 fixed-address 207.175.42.254;
 26         }      
 27
 28 }
 subnet 192.168.30.0 netmask 255.255.255.0 {   //子网2的作用域
 31 
 32 # --- default gateway
 33
 34         option routers                  192.168.30.254;
 35         option subnet-mask              255.255.255.0;
 36         option nis-domain               "domain.org";
 37         option domain-name              "domain.org";
 38         option domain-name-servers      222.88.88.88;
 39
 40
 41         range dynamic-bootp 192.168.30.1 192.168.30.253;
 42         default-lease-time 21600;
 43         max-lease-time 43200;
 44
 45         # we want the nameserver to appear at a fixed address
 46         host ms {
 47                 next-server marvin.redhat.com;
 48                 hardware ethernet 12:34:56:78:AB:CD;
 49                 fixed-address 207.175.42.254;
 50         }
 51 # DHCP Server Configuration file.
 52 #   see /usr/share/doc/dhcp*/dhcpd.conf.sample 
 53 #
 54 }
 55 subnet 192.168.220.0 netmask 255.255.255.0 {   //服务器的空作用域
 56 }


[root@rain Server]# service dhcpd configtest
Syntax: OK
[root@rain Server]# service dhcpd restart
关闭 dhcpd:                                               [确定]
启动 dhcpd:                                               [确定]
[root@rain Server]#
 

测试

子网1

 

 

子网2

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(linux,DHCP)