文章转载出处:http://wnqcmq.blog.51cto.com/5200614/1167670

一、 DHCP简介

DHCP 是 Dynamic Host Configuration Protocol(动态主机配置协议,主要是针对于主机ip配置的)缩写,之所以会产生它的原因是传统的手工配置IP的方法效率低、工作量巨大和不够灵活,dhcp的产生很好的解决了上述问题,它能实现IP地址的灵活分配和管理,并且不需要人工的干预,其工作模式是C/S

二、 DHCP的工作原理

dhcp在企业网中的应用(案例)_linux dhcp中继

1. DHCP DISCOVER: 这个很好理解的啦,就是作为客户端的主机目前想跟别人通信,可是自己没IP地址啊,管理员(DHCP SERVER)没给分,它就自己先叫管理员呗,当然声音要大才行啊,就用广播啦(255.255.255.255(udp))

2. DHCP OFFER:管理员(DHCP SERVER)听到有主机地址啦,当然这里接到请求的管理员可能有多个,于是就试着先给一个IP(管理员们很好,如果主机觉得这个IP可以要就拿着),给IP的这个消息包含主机的MAC地址、服务器提供的IP地址、子网掩码、租期以及提供IP的DHCP服务器的IP

3. DHCP REQUEST:客户主机在收到一个IP提供时,它必须告诉所有其他的DHCP服务器它已经有IP啦。因此,客户主机会发送一个DHCPREQUEST消息,其中包含提供租约的服务器的IP。当其他DHCP服务器收到了该消息后,它们会收回所有可能已提供给客户主机的租约。然后它们把曾经给客户保留的那个地址重新放回到可用地址池中,以便给别的主机使用

4. DHCP ACK:当DHCP服务器收到来自客户的REQUEST消息后,它就开始了配置过程的最后阶段。这个响应阶段包括发送一个DHCPACK包给客户。这个包包含租期和客户可能请求的其他所有配置信息。

三、 具体的案例实现

A. 也许你在一所学校做机房管理员,每个机房都有一两百台机器需要分配地址,如果每台机器都手工去配IP地址的话估计你会吃不消吧,那么你可以看看我给你的建议,方案规划图如下:

dhcp在企业网中的应用(案例)_linux dhcp中继_02

对于DHCP SERVER我使用的是LINUX(也可以使用windows):

Step 1:yum install dhcp (当然也可以使用源码安装);

dhcp在企业网中的应用(案例)_linux dhcp中继_03

Step 2:修改/etc/dhcpd.conf

dhcp在企业网中的应用(案例)_linux dhcp中继_04

这里我没有分配很多IP地址,dhcp服务器的IP为192.168.111.20

Step 3:重新启动dhcp服务器

dhcp在企业网中的应用(案例)_linux dhcp中继_05

Step 4:测试客户机获取IP地址情况

dhcp在企业网中的应用(案例)_linux dhcp中继_06

查询服务器分配信息:cat /var/lib/dhcpd/dhcpd.leases

dhcp在企业网中的应用(案例)_linux dhcp中继_07

查询详细的分配过程:tail –f /var/log/messages

dhcp在企业网中的应用(案例)_linux dhcp中继_08

B. 也许你在做一个网吧的管理员,网吧的机器可是相当的多啊,一个地址段的IP无法满足需求啊,那么你就可以建立一个超级作用域么,同时要求有为两台FTP服务器分配固定的IP,将多个网段的地址合在一个dhcp服务器上,实现方案图和A相同

dhcp在企业网中的应用(案例)_linux dhcp中继_09

但是配置上就不同了

Step 1:修改/etc/dhcpd.conf

dhcp在企业网中的应用(案例)_linux dhcp中继_10

Step 2:重新启动dhcpd服务器

dhcp在企业网中的应用(案例)_linux dhcp中继_11

Step 3:测试

主机一:

dhcp在企业网中的应用(案例)_linux dhcp中继_12

 

服务器详细分配情况

dhcp在企业网中的应用(案例)_linux dhcp中继_13

主机二:

dhcp在企业网中的应用(案例)_linux dhcp中继_14

 

服务器分配详细情况:

dhcp在企业网中的应用(案例)_linux dhcp中继_15

C. 也许你是一家大公司的网络管理员,公司分多个部门,现要求对于每个部门的IP分配都使用DHCP,并且都集中在一台DHCP服务器上便于管理,对于不同部门分配不同的网段的IP地址和不同的网关,因此上述的两种方案都无法解决,这涉及到跨网段获取IP地址的问题,前面小编我也提到,获取IP地址的第一阶段是用广播“喊话“,如果DHCP服务器在同一网段那就没啥问题,可是现在DHCP服务器并不在同一网段,那如何实现呢,我们可以使用DHCP中继技术来实现,对于此我提供两套方案来解决(软件中继,硬件中继),方案规划图如下:

1) 软路由

dhcp在企业网中的应用(案例)_linux dhcp中继_16

Step 1:dhcp服务器的配置,修改/etc/dhcpd.conf

dhcp在企业网中的应用(案例)_linux dhcp中继_17

Step 2:修改软路由服务器的/etc/sysctl.conf文件,开启软路由服务器的路由功能

dhcp在企业网中的应用(案例)_linux dhcp中继_18

Step 3:修改软路由器的三个网卡地址(作为网关使用),分别修改为

192.168.111.254

192.168.112.254

192.168.113.254

Step 4:软路由配置,修改软路由服务器的/etc/sysconfig/dhcrelay文件

dhcp在企业网中的应用(案例)_linux dhcp中继_19

Step 5:开启dhcp中继功能

dhcp在企业网中的应用(案例)_linux dhcp中继_20

Step 6: 测试

查看vlan10 主机获取IP地址的情况

dhcp在企业网中的应用(案例)_linux dhcp中继_12

查看DHCP服务器日志情况tail –f /var/log/messages

dhcp在企业网中的应用(案例)_linux dhcp中继_22

查看vlan20 主机获取IP地址的情况

dhcp在企业网中的应用(案例)_linux dhcp中继_23

查看DHCP服务器日志情况tail –f /var/log/messages

dhcp在企业网中的应用(案例)_linux dhcp中继_24

2) 硬路由实现(这里我使用的是华为的设备),方案图如下

dhcp在企业网中的应用(案例)_linux dhcp中继_25

具体核心配置如下:

路由配置

dis cu

Now create configuration...

Current configuration

!

version 1.74

undo pos-server addr-switch

firewall enable

aaa-enable

aaa accounting-scheme optional

!

dhcp server ip-pool test

!

interface Aux0

async mode flow

link-protocol ppp

!

interface Ethernet0

!

interface Ethernet0.10

vlan-type dot1q vid 10

ip address 192.168.10.1 255.255.255.0

ip relay-address 192.168.30.100

!

interface Ethernet0.20

vlan-type dot1q vid 20

ip address 192.168.20.1 255.255.255.0

ip relay-address 192.168.30.100

!

interface Ethernet0.30

vlan-type dot1q vid 30

ip address 192.168.30.1 255.255.255.0

交换机配置

dis cu

#

sysname Quidway

#

radius scheme system

#

domain system

#

vlan 1

#

vlan 10

#

vlan 20

#

vlan 30

#

interface Aux1/0/0

#

interface Ethernet1/0/1

port access vlan 10

#

interface Ethernet1/0/2

port access vlan 20

#

interface Ethernet1/0/3

port access vlan 30

#

interface Ethernet1/0/24

port link-type trunk

port trunk permit vlan all

Dhcp服务器配置

#

ddns-update-style interim;

ignore client-updates;

subnet 192.168.10.0 netmask 255.255.255.0 {

# --- default gateway

option routers 192.168.10.1;

option subnet-mask 255.255.255.0;

option domain-name-servers 1.1.1.1;

range dynamic-bootp 192.168.10.128 192.168.10.254;

default-lease-time 21600;

max-lease-time 43200;

}

subnet 192.168.20.0 netmask 255.255.255.0 {

# --- default gateway

option routers 192.168.20.1;

option subnet-mask 255.255.255.0;

option domain-name-servers 2.2.2.2;

option time-offset -18000; # Eastern Standard Time

range dynamic-bootp 192.168.20.128 192.168.20.254;

default-lease-time 21600;

max-lease-time 43200;

}

subnet 192.168.30.0 netmask 255.255.255.0 {

}

到此所有方案实现完毕。