DHCP原理和实验

目录

DHCP基本认识和原理

场景一、同网段DHCP

场景二、不同段DHCP(中继DHCP)


DHCP基本认识和原理

DHCP(Dynamic Host Configuration Protocol动态主机协议)。

作用:为局域网络中主机动态分发地址,以及集中管理局域网中主机。

端口号:UDP68\67
客户端DHCP请求服务器时使用的端口为UDP68,服务器响应客户端DHCP请求使用的端口为UDP67

工作原理:

1、发现阶段
客户端广播向所有服务器发送DHCP discover报文。(此时客户端DHCP请求使用的端口为UDP 68)

2、提供阶段
DHCP服务器使用DHCP offer回应DHCP客户端。(服务器回应客户端时使用的端口为UDP 67,客户端选择最先回复DHCP offer报文作为客户端请求的服务器)

3、选择阶段
DHCP客户端广播发送DHCP request选择报文。

4、确认阶段
服务器回应DHCP ack确认报文。

DHCP四个阶段的工作内容:

一、发现阶段的客户端是不知道服务器的IP地址的所以会广播发送DHCP discover报文寻找DHCP服务器,目标地址为255.255.255.255,只要在这个网络中的IP地址的服务器都可以接收到DHCP客户端的IP地址请求。

二、提供阶段:DHCP服务器收到DHCP客户端发送的DHCP discover报文后回应DHCP offer报文,DHCPoffer报文中包含了分配给客户端指定mac地址的IP地址,dns,租期,网关等参数。网络内的所有客户端根据封装在DHCP offer报文中的mac地址选择是否接收此报文。

如果DHCP客户端发送的请求中带有期望的租期,那么DHCP服务器会根据自身设置的租期进行比较,给出客户端时间较短的租期。

DHCP服务器会把已经分配给客户端的地址组成一个正在使用的IP地址表,未分配的IP地址组成一个可分配的IP地址表,IP地址冲突的分成一个IP地址冲突表,不能分配的IP地址分到不能分配的表中。

DHCP服务器给DHCP客户端选择IP地址有五个优先顺序

1:DHCP服务器给指定的mac地址静态绑定分配IP地址
2:DHCP客户端在DHCP discover报文中的option50请求指定的IP地址
3:DHCP服务器曾经分配给客户端的IP地址
4:DHCP服务器随即分配IP地址

5:没有可分配地址的情况下DHCP服务器会找超过租期的IP地址和冲突的IP地址进行分配,有可用则分配,没有可用回复DHCP nak拒绝报文,来通知客户端没有可分配的IP地址,客户端会重新发送DHCPdiscover报文请求IP地址。

DHCP服务器为了避免分配的IP地址会冲突所以会在DHCPoffer报文中添加源地址来icmp echo request来检测是否用客户端使用该地址,如果有应答则分配另一个id地址,并划分到冲突地址表中, 没有则继续分配。

提供阶段不是最终的提供IP地址阶段,该阶段还需要等客户端16s回复,如果没有等到客户端回复则此IP地址为继续分配给下一个客户端。

三、选择阶段

DHCP客户端以广播方式发送DHCP discover报文,在同一个网段内有多个服务器回应DHCP offer报文则客户端会选择第一个回应DHCP offer的服务器来进行IP地址选择并广播发送DHCP request报文。

以广播方式发送DHCP REQUEST报文,是为了通知所有的DHCP服务器,它将选择某个DHCP服务器提供的IP地址,其他DHCP服务器可以重新将曾经分配给客户端的IP地址分配给其他客户端。

四、确认阶段

DHCP服务器收到DHCP客户端发送的DHCP request报文之后会回复DHCP ACK来确认分配IP地址。

DHCP客户端受到服务器发送过来的DHCP ACK之后会免费发送广播arp报文来探测在这个网段中是否有使用该IP地址的客户端,如果没有则使用该IP地址,如果有客户端会向服务器发送DECLINE报文,并重新向服务器请求IP地址,同时,服务器会将此地址列为冲突地址。当服务器没有空闲地址可分配时,再选择冲突地址进行分配,尽量减少分配出去的地址冲突。

如果因为DHCP客户端和DHCP服务器协商和DHCP服务器受到DHCP request报文过慢导致此IP地址已经分配给其他客户端,DHCP服务器会回复DHCP NAK报文给客户端,客户端受到DHCP NAk报文之后会重新发送DHCP discover报文寻找IP地址

DHCP发现和释放报文流程

场景一、同网段DHCP

拓扑:

思路:先配汇聚SW,再配置接入,最后PC

配置如下:

汇聚交换机

# 创建vlan

vlan batch 10 20

# 创建三层vlan,dhcp的网关

interface Vlanif10
 ip address 192.168.10.254 255.255.255.0
 dhcp select global
#
interface Vlanif20
 ip address 192.168.20.254 255.255.255.0
 dhcp select global

# 接口划分vlan

interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk allow-pass vlan 10 20
#
interface GigabitEthernet0/0/2
 port link-type trunk
 port trunk allow-pass vlan 10 20

# 使能dhcp

dhcp enable

# 配置dhcp
ip pool hcie
 gateway-list 192.168.10.254
 network 192.168.10.0 mask 255.255.255.0
 dns-list 8.8.8.8 114.114.114.114
#
ip pool hcie1
 gateway-list 192.168.20.254
 network 192.168.20.0 mask 255.255.255.0
 dns-list 8.8.8.8

 接入交换机1、2

vlan batch 10 20

#
interface Ethernet0/0/2
 port link-type access
 port default vlan 10
#
interface Ethernet0/0/3
 port link-type access
 port default vlan 20

pc配置为DHCP获取地址,使用命令ipconfig查看是否获取到地址,和ping测试。

 学习到的新知识点:

接口下dhcp select 的global和interface的区别(全局地址池和接口地址池)

1、全局地址池可以供其它任何的接口地址dhcp调用.
2、接口地址池就是指定了特定的接口才能分配到这部分的IP地址.

场景二、不同段DHCP(中继DHCP)

拓扑

 思路:

1.先把底层网络打通,由于有一个汇聚sw,所以汇聚使用vlanif100配置在g0/0/3,R2使用子接口在g0/0/1.1配置ip才能打通

2.配置ospf,由于dhcp-server发送dhcp报文没有路由,所以需要在汇聚上的ospf把该dhcp网段宣告进去

3.配置的是vlan,多dhcp的场景,所以汇聚使用vlanif来做网关

配置如下:

dhcp-server
#
interface GigabitEthernet0/0/0
 ip address 10.0.1.1 255.255.255.0

 dhcp select global 
#
ospf 100 
 area 0.0.0.0 
  network 10.0.1.1 0.0.0.0 

R2
#
interface GigabitEthernet0/0/0
 ip address 10.0.1.2 255.255.255.0 
#
interface GigabitEthernet0/0/1.1
 dot1q termination vid 100
 ip address 10.0.2.1 255.255.255.0 
 arp broadcast enable
#
ospf 100 
 area 0.0.0.0 
  network 10.0.1.2 0.0.0.0 
  network 10.0.2.1 0.0.0.0 
#
ip pool hcie1
 gateway-list 192.168.1.254 
 network 192.168.1.0 mask 255.255.255.0 
 dns-list 8.8.8.8 
#
ip pool hcie2
 gateway-list 192.168.2.254 
 network 192.168.2.0 mask 255.255.255.0 
 dns-list 8.8.8.8 
#
ip pool hcie3
 gateway-list 192.168.3.254 
 network 192.168.3.0 mask 255.255.255.0 
 dns-list 114.114.114.114 

HJ-1
#
vlan batch 10 20 30 100
#
interface Vlanif100
 ip address 10.0.2.2 255.255.255.0
#
interface GigabitEthernet0/0/3
 port link-type trunk
 port trunk allow-pass vlan 100
#
ospf 100
 area 0.0.0.0
  network 10.0.2.2 0.0.0.0
  network 192.168.1.254 0.0.0.0
  network 192.168.2.254 0.0.0.0
  network 192.168.3.254 0.0.0.0
#
interface Vlanif10
 ip address 192.168.1.254 255.255.255.0
 dhcp select relay
 dhcp relay server-ip 10.0.1.1
#
interface Vlanif20
 ip address 192.168.2.254 255.255.255.0
 dhcp select relay
 dhcp relay server-ip 10.0.1.1
#
interface Vlanif30
 ip address 192.168.3.254 255.255.255.0
 dhcp select relay
 dhcp relay server-ip 10.0.1.1
#
interface GigabitEthernet0/0/2
 port link-type trunk
 port trunk allow-pass vlan 10 20 30

JR-1
vlan batch 10 20 30
#
interface Ethernet0/0/1
 port link-type access
 port default vlan 10
#
interface Ethernet0/0/2
 port link-type access
 port default vlan 10
#
interface Ethernet0/0/3
 port link-type access
 port default vlan 20
#
interface Ethernet0/0/4
 port link-type access
 port default vlan 20
#
interface Ethernet0/0/5
 port link-type access
 port default vlan 30
#
interface Ethernet0/0/6
 port link-type access
 port default vlan 30

实际效果:

 学习到新的知识点:dhcp-server回包需要路由,所以需要静态或者ospf等方式让它有路由回去。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值