目录
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.0dhcp select global
#
ospf 100
area 0.0.0.0
network 10.0.1.1 0.0.0.0R2
#
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.114HJ-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 30JR-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等方式让它有路由回去。