目录
一、DHCP协议介绍
DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。
DHCP采用C/S架构,C-client(客户机),S-server(服务器),客户机/服务器架构
DHCP服务对应传输层UDP协议,因为是C/S架构,所以客户机端口号是67,服务器端口号是68
二、DHCP作用
为客户机分发IP地址、子网掩码、网关、DNS服务器、租期等参数。
三、DHCP好处
1、简化了客户机的配置
2、防止用户误操作
3、避免IP地址重复使用
四、DHCP原理
1、DHCP工作过程
DHCP客户机向局域网中所有DHCP服务器发送DHCP discovery请求。DHCP客户机向DHCP服务器发送DHCP请求,来请求DHCP服务器下发IP地址
局域网中所有DHCP服务器回复DHCP offer,为客户机提供IP地址
客户机选择第一台DHCP服务器回复的ip地址,并且要发送DHCP request,通告给局域网中所有的DHCP服务器,它选择了哪个IP和哪个DHCP(发送DHCP request的原因有两层,第一层是通告所有DHCP,让未被选中的服务器,把未使用的地址收回,第二层是通告给被选中的服务器,这个IP地址客户机要使用了)
被选中的DHCP服务器收到DHCP request消息后,会给DHCP客户机回复一个DHCP ACK,告知客户端此ip地址可以被使用了,客户机将此IP与自己的MAC地址绑定,方便下次使用,而其他DHCP服务器将收回分配给该客户机的ip地址。
2、租期
DHCP客户机使用的ip地址的使用是有期限的,一般DHCP客户机使用分配的IP地址到了租期的50%时,会主动向DHCP发送续约请求,DHCP服务器接收到续约请求后,会检查此ip有没有被别的客户机抢占,如果没有就继续续约,如果此IP地址被其他客户机使用,就续约不成功,此时客户机将会重新发起DHCP discovery请求,请求获取新的IP。
五、DHCP的两种应用场景
第一种同网段:DHCP客户机和DHCP服务器在同一个网段
第二种不同网段:DHCP客户机和DHCP服务器不在同一个网段------DHCP中继,只能用由路由器实现,DHCP无法单独实现。
六、配置步骤及命令
(一)DHCP同网段
L2-SW1
[L2-SW1]vlan bat 10 20//创建多个不连续vlan
[L2-SW1]int e0/0/1 //进入接口 e0/0/1
[L2-SW1-Ethernet0/0/1]port link-type access //设置接口链路类型为access
[L2-SW1-Ethernet0/0/1]port default vlan 10 //将接口 e0/0/1划分进vlan10
[L2-SW1-Ethernet0/0/1]int e0/0/2 //进入接口 e0/0/2
[L2-SW1-Ethernet0/0/2]port link-type access //设置接口链路类型为access
[L2-SW1-Ethernet0/0/2]port default vlan 20 //将接口 e0/0/2划分进vlan20
[L2-SW1-Ethernet0/0/2]int g0/0/1 //进入接口g0/0/1
[L2-SW1-GigabitEthernet0/0/1]port link-type trunk //设置接口链路类型为trunk
[L2-SW1-GigabitEthernet0/0/1]port trunk allow-pass vlan all //设置白名单
L2-SW2
[L2-SW1]vlan bat 10 20 //创建多个不连续vlan
[L2-SW1]int e0/0/1 //进入接口 e0/0/1
[L2-SW1-Ethernet0/0/1]port link-type access //设置接口链路类型为access
[L2-SW1-Ethernet0/0/1]port default vlan 10 //将接口 e0/0/1划分进vlan10
[L2-SW1-Ethernet0/0/1]int e0/0/2 //进入接口 e0/0/2
[L2-SW1-Ethernet0/0/2]port link-type access //设置接口链路类型为access
[L2-SW1-Ethernet0/0/2]port default vlan 20 //将接口 e0/0/2划分进vlan20
[L2-SW1-Ethernet0/0/2]int g0/0/1 //进入接口g0/0/1
[L2-SW1-GigabitEthernet0/0/1]port link-type trunk //设置接口链路类型为trunk
[L2-SW1-GigabitEthernet0/0/1]port trunk allow-pass vlan all //设置白名单
L3-SW1
[L3-SW1]int g0/0/1 //进入接口g0/0/1
[L3-SW1-GigabitEthernet0/0/1]port link-type trunk //设置接口链路类型为trunk
[L3-SW1-GigabitEthernet0/0/1]port trunk allow-pass vlan all //设置白名单
[L3-SW1-GigabitEthernet0/0/1]int g0/0/2 //进入接口g0/0/2
[L3-SW1-GigabitEthernet0/0/2]port link-type trunk //设置接口链路类型为trunk
[L3-SW1-GigabitEthernet0/0/2]port trunk allow-pass vlan all //设置白名单
[L3-SW1-GigabitEthernet0/0/2]vlan bat 10 20 //创建多个不连续vlan
[L3-SW1]dhcp enable //开启地址池功能
[L3-SW1]int vlan 10 //进入虚拟接口vlanif 10
[L3-SW1-Vlanif10]ip add 192.168.10.1 24 //配置IP地址及子网掩码长度
[L3-SW1-Vlanif10]dhcp select interface
//接口分发IP地址,为DHCP客户机下发的IP地址默认是和DHCP服务器同网段的,默认网关指向192.168.10.1
[L3-SW1-Vlanif10]dhcp server dns-list 2.2.2.2 3.3.3.3 //下发dns服务器地址是 2.2.2.2和3.3.3.3
[L3-SW1]ip pool dhcp2 //新建一个DHCP地址池,地址池名叫dhcp2
[L3-SW1-ip-pool-dhcp2]network 192.168.20.0 mask 24 //指定dhcp1地址池分发的网段
[L3-SW1-ip-pool-dhcp2]gateway-list 192.168.20.1 //指定dhcp1客户机获取的网关地址
[L3-SW1-ip-pool-dhcp2]dns-list 4.4.4.4 5.5.5.5 //指定dns服务器地址是4.4.4.4和5.5.5.5
[L3-SW1-ip-pool-dhcp2]lease day 9 //指定DHCP客户机可以使用的租期
[L3-SW1]int vlan 20 //进入虚拟接口vlanif 20
[L3-SW1-Vlanif20]ip add 192.168.20.1 24 //配置IP地址及子网掩码长度
[L3-SW1-Vlanif20]dhcp select global //DHCP选择地址池方式分发IP
(二)不同网段
L2-SW1
[L2-SW1]vlan bat 10 20//创建多个不连续vlan
[L2-SW1]int e0/0/1 //进入接口 e0/0/1
[L2-SW1-Ethernet0/0/1]port link-type access //设置接口链路类型为access
[L2-SW1-Ethernet0/0/1]port default vlan 10 //将接口 e0/0/1划分进vlan10
[L2-SW1-Ethernet0/0/1]int e0/0/2 //进入接口 e0/0/2
[L2-SW1-Ethernet0/0/2]port link-type access //设置接口链路类型为access
[L2-SW1-Ethernet0/0/2]port default vlan 20 //将接口 e0/0/2划分进vlan20
[L2-SW1-Ethernet0/0/2]int g0/0/1 //进入接口g0/0/1
[L2-SW1-GigabitEthernet0/0/1]port link-type trunk //设置接口链路类型为trunk
[L2-SW1-GigabitEthernet0/0/1]port trunk allow-pass vlan all //设置白名单
L2-SW2
[L2-SW1]vlan bat 10 20 //创建多个不连续vlan
[L2-SW1]int e0/0/1 //进入接口 e0/0/1
[L2-SW1-Ethernet0/0/1]port link-type access //设置接口链路类型为access
[L2-SW1-Ethernet0/0/1]port default vlan 10 //将接口 e0/0/1划分进vlan10
[L2-SW1-Ethernet0/0/1]int e0/0/2 //进入接口 e0/0/2
[L2-SW1-Ethernet0/0/2]port link-type access //设置接口链路类型为access
[L2-SW1-Ethernet0/0/2]port default vlan 20 //将接口 e0/0/2划分进vlan20
[L2-SW1-Ethernet0/0/2]int g0/0/1 //进入接口g0/0/1
[L2-SW1-GigabitEthernet0/0/1]port link-type trunk //设置接口链路类型为trunk
[L2-SW1-GigabitEthernet0/0/1]port trunk allow-pass vlan all //设置白名单
L3-SW1
[L3-SW1]int g0/0/1 //进入接口g0/0/1
[L3-SW1-GigabitEthernet0/0/1]port link-type trunk //设置接口链路类型为trunk
[L3-SW1-GigabitEthernet0/0/1]port trunk allow-pass vlan all //设置白名单
[L3-SW1]int g0/0/2 //进入接口g0/0/2
[L3-SW1-GigabitEthernet0/0/2]port link-type trunk//设置接口链路类型为trunk
[L3-SW1-GigabitEthernet0/0/2]port trunk allow-pass vlan all //设置白名单
[L3-SW1]vlan bat 10 20 100 //创建多个不连续vlan
[L3-SW1]int vlan 10 //进入虚拟接口vlanif 10
[L3-SW1-Vlanif10]ip add 192.168.10.1 24 //配置IP地址及子网掩码长度
[L3-SW1-Vlanif10]int vlan 20 //进入虚拟接口vlanif 20
[L3-SW1-Vlanif20]ip add 192.168.20.1 24 //配置IP地址及子网掩码长度
[L3-SW1-Vlanif20]int g0/0/3 //进入接口g0/0/3
[L3-SW1-GigabitEthernet0/0/3]port link-type access //设置接口链路类型为access
[L3-SW1-GigabitEthernet0/0/3]port default vlan 100 //将接口划分进vlan100
[L3-SW1-GigabitEthernet0/0/3]int vlan 100 //进入虚拟接口vlanif 100
[L3-SW1-Vlanif100]ip add 10.10.10.1 24 //配置IP地址及子网掩码长度
[L3-SW1]dhcp enable //开启地址池功能
[L3-SW1]int vlan 10//进入虚拟接口vlanif 10
[L3-SW1-Vlanif10]dhcp select relay //开启DHCP中继功能
[L3-SW1-Vlanif10]dhcp relay server-ip 10.10.10.2 //指定DHCP服务器地址
[L3-SW1-Vlanif10]int vlan 20//进入虚拟接口vlanif 20
[L3-SW1-Vlanif20]dhcp select relay //开启DHCP中继功能
[L3-SW1-Vlanif20]dhcp relay server-ip 10.10.10.2 //指定DHCP服务器地址
DHCP服务器(R1路由器)
[R1]dhcp enable //开启地址池功能
[R1]int g0/0/1 //进入接口g0/0/1
[R1-GigabitEthernet0/0/1]undo shutdown //开启物理接口
[R1-GigabitEthernet0/0/1]ip add 10.10.10.2 24 //配置IP地址及子网掩码长度
[R1-GigabitEthernet0/0/1]dhcp select global //DHCP选择地址池方式分发IP
[R1]ip pool dhcp1 //新建一个DHCP地址池,地址池名叫dhcp1
[R1-ip-pool-dhcp1]network 192.168.10.0 mask 24 //指定dhcp1地址池分发的网段
[R1-ip-pool-dhcp1]gateway-list 192.168.10.1 //指定dhcp1客户机获取的网关地址
[R1-ip-pool-dhcp1]dns-list 3.3.3.3 50.50.50.50 //指定dns服务器地址是 3.3.3.3和 50.50.50.50
[R1-ip-pool-dhcp1]lease day 7 //指定DHCP客户机可以使用的租期
[R1-ip-pool-dhcp1]q //退出dhcp1
[R1]ip pool dhcp2//新建一个DHCP地址池,地址池名叫dhcp2
[R1-ip-pool-dhcp2]network 192.168.20.0 mask 24 //指定dhcp2地址池分发的网段
[R1-ip-pool-dhcp2]gateway-list 192.168.20.1 //指定dhcp2客户机获取的网关地址
[R1-ip-pool-dhcp2]dns-list 90.90.90.90 7.7.7.7 //指定dns服务器地址是 90.90.90.90 和 7.7.7.7
[R1-ip-pool-dhcp2]lease day 7 //指定DHCP客户机可以使用的租期
[R1-ip-pool-dhcp2]q//退出dhcp2
[R1]ip route-static 192.168.10.0 24 10.10.10.1
//添加静态路由,目的网段192.168.10.0 子网掩码长度24,下一跳入接口10.10.10.1
[R1]ip route-static 192.168.20.0 24 10.10.10.1
//添加静态路由,目的网段192.168.20.0 子网掩码长度24,下一跳入接口10.10.10.1
PC1
PC2
PC3
PC4
PC:ipconfig //查看分配的ip地址
PC1
PC2
PC3
PC4