DHCP——动态主机配置协议。作用:为客户机分发IP地址、子网掩码、网关、DNS服务器、 租期等参数。
使用DHCP好处:
1.简化了客户机设置
2.防止用户误操作
3.避免IP地址重复
架构: C/S架构 C-Client 客户机S-Server服务器,客户机/服务器架构
DHCP服务对应传输层是UDP协议, 因为是C/S架构,所以DHCP服务是分为客户机占用UDP67号端口,DHCP服务器占用UDP68号端口。
DHCP原理:
1:DHCP客户机向局域网中的所有DHCP服务器发送DHCPdiscovery请求。
2:局域网中的所有DHCP服务器都会回复DHCPoffer, 为客户机提供IP地址。
3:客户机选择第一台DHCP服务器回复的IP地址,并且要发送DHCPrequest通告给局域网内所有的DHCP服务器,它选择了哪个IP和哪个DHCP服务器。
4:被选中的DHCP服务器收到DHCPrequest消息后,会给DHCP客户机回复一个DHCPack, 正式确认此IP可以被客户机使用,DHCP客户机将此IP与自己的MAC绑定起来,以便下次继续使用,而其他DHCP服务器将把分配给该DHCP客户机的IP回收。
租期:
DHCP客户机使用IP地址是有期限的。一般DHCP客户机使用DHCP分配得的IP地址到了租期的50%的时候, 会主动的向DHCP服务器发出续约请求,DHCP服务器接收到DHCP客户机的续约请求后,DHCP服务器会检查此IP地址有没有被别的DHCP客户机抢先占用,如果没有,就续约成功。如果此IP地址有被其他客户机占用,那么续约就不成功,此时DHCP客户机将会重新发起DHCPdiscovery请求来获取新的IP地址。
DHCP服务的实现分为两种情况:
1: DHCP服务器和DHCP客户机在同一个网段。
2: DHCP服务器和DICP客户机不在同一个网段——DHCP中继, 贝能由路由器实现,DHCP服务器无法单独实现。
如图所示拓扑结构:
设置PC1和PC3为vlan10,PC2和PC4为vlan20。
在L3-SW1:
[ ]int g0/0/1 //进入g0/0/1端口
[ ]port link-type trunk //设置端口类型为trunk
[ ]port trunk allow-pass vlan all //设置白名单
[ ]int g0/0/2 //进入g0/0/2端口
[ ]port link-type trunk //设置端口类型为trunk
[ ]port trunk allow-pass vlan all //设置白名单
[ ]vlan batch 10 20 //创建多个vlan
开启DHCP功能:
[ ]dhcp enable //开启DHCP功能
方法一:接口分发IP地址
[ ]int vlan 10 //进入vlanif10接口
[ ]ip add 192.168.10.1 255. 255. 255.0 //配置IP地址和子网掩码
[ ]dhcp select interface // 指定dhcp接口分发IP地址
[ ]dhcp server dns-list 4.4.4.4 8.8.8.8 //下发DNS服务器地址是4.4.4.4和8.8.8.8
方法二:建DHCP地址池,地址池分发IP地址
[ ]ip pool dhcp2 //新建一个DHCP地址池,地址池名称叫dhcp2
[ ]network 192.168.20.0 mask 24 //指定dhcp2地址池的分发的网段
[ ]gateway-list 192.168.20.1 //指定dhcp客户机获取到的网关地址
[ ]dns-list 2.2.2.2 40.40.40.40 //指定dhcp客户机获取的DNS服务器地址
[ ]lease day 7 //指定dhcp客户机可以使用的地址租期
[ ]int vlan 20 //进入虚拟接口vlanif20
[ ]ip add 192.168.20.1 255.255.255.0 //配置IP地址和子网掩码
[ ]dhcp select global //接口下指定dhcp以地址池方式分配IP地址
L2-SW2:
[ ]vlan batch 10 20 //创建多个vlan
[ ]int e0/0/1 //进入e0/0/1接口
[ ]port link-type access //设置接口类型
[ ]port default vlan 10 //将接口划分到VLAN10
[ ]int e0/0/2 // 进入e0/0/2接口
[ ]port link-type access //设置接口类型
[ ]port default vlan 20 //将接口划分到VLAN20
[ ]int g0/0/1 //进入g0/0/1端口
[ ]port link-type trunk //设置端口类型为trunk
[ ]port trunk allow-pass vlan all //设置白名单
L2-SW3:
[ ]vlan batch 10 20 //创建多个vlan
[ ]int e0/0/1 //进入e0/0/1接口
[ ]port link-type access //设置接口类型
[ ]port default vlan 10 //将接口划分到VLAN10
[ ]int e0/0/2 // 进入e0/0/2接口
[ ]port link-type access //设置接口类型
[ ]port default vlan 20 //将接口划分到VLAN20
[ ]int g0/0/1 //进入g0/0/1端口
[ ]port link-type trunk //设置端口类型为trunk
[ ]port trunk allow-pass vlan all //设置白名单
设置PC机为DHCP方式获取IP,且自动获取DNS服务器地址。在命令行输入ipconfig验证。
如图所示拓扑结构:
设置PC1和PC3为vlan10,PC2和PC4为vlan20
在L3-SW1:
[ ]dhcp enable //开启DHCP功能
[ ]int g0/0/1 //进入g0/0/1端口
[ ]port link-type trunk //设置端口类型为trunk
[ ]port trunk allow-pass vlan all //设置白名单
[ ]int g0/0/2 //进入g0/0/2端口
[ ]port link-type trunk //设置端口类型为trunk
[ ]port trunk allow-pass vlan all //设置白名单
[ ]vlan batch 10 20 100 //创建多个vlan
[ ]int vlan 10 //进入vlanif10接口
[ ]ip add 192.168.10.1 255. 255. 255.0 //配置 IP地址和子网掩码
[ ]dhcp select relay //开启DHCP中继
[ ]dhcp relay server-ip 10.10.10.2 //指定DHCP服务器的地址
[ ]int vlan 20 //进入虚拟接口vlanif20
[ ]ip add 192.168.20.1 255.255.255.0 //配置IP地址和子网掩码
[ ]dhcp select relay //开启DHCP中继
[ ]dhcp relay server-ip 10.10.10.2 //指定DHCP服务器的地址
[ ]int g0/0/3 //进入g0/0/3端口
[ ]port link-type access //设置端口类型为access
[ ]port default vlan 100 //将接口划分到VLAN100
[ ]int vlan 100 //进入vlanif100接口
[ ]ip add 10.10.10.1 24 //配置IP地址和子网掩码长度
L2-SW2:
[ ]vlan batch 10 20 //创建多个vlan
[ ]int e0/0/1 //进入e0/0/1接口
[ ]port link-type access //设置接口类型
[ ]port default vlan 10 //将接口划分到VLAN10
[ ]int e0/0/2 // 进入e0/0/2接口
[ ]port link-type access //设置接口类型
[ ]port default vlan 20 //将接口划分到VLAN20
[ ]int g0/0/1 //进入g0/0/1端口
[ ]port link-type trunk //设置端口类型为trunk
[ ]port trunk allow-pass vlan all //设置白名单
L2-SW3:
[ ]vlan batch 10 20 //创建多个vlan
[ ]int e0/0/1 //进入e0/0/1接口
[ ]port link-type access //设置接口类型
[ ]port default vlan 10 //将接口划分到VLAN10
[ ]int e0/0/2 // 进入e0/0/2接口
[ ]port link-type access //设置接口类型
[ ]port default vlan 20 //将接口划分到VLAN20
[ ]int g0/0/1 //进入g0/0/1端口
[ ]port link-type trunk //设置端口类型为trunk
[ ]port trunk allow-pass vlan all //设置白名单
R1:
开启DHCP功能:
[ ]dhcp enable //开启DHCP功能
[ ]int g0/0/0 //进入g0/0/0接口
[ ]ip add 10.10.10.2 24 //设置IP地址与子网掩码长度
[ ]undo shutdown //取消关闭(开启)
[ ]dhep select global //dhcp选择地址池方式分发IP
[ ]ip route-static 192.168.10.0 24 10.10.10.1 //添加一条静态路由,目的网段是192.168.10.0子网掩码长度是24 下一 跳入接口ip为10.10.10.1
[ ]ip route-static 192.168.20.0 24 10.10.10.1. //添加一条静态路由,目的网段是192.168.20.0子网掩码长度是24 下一 跳入接口ip为10.10.10.1
[ ]ip pool dhcp1 //新建一个DHCP地址池,地址池名称叫dhcp1
[ ]network 192.168.10.0 mask 24 //指定dhcp1地址池的分发的网段
[ ]gateway-list 192.168.10.1 //指定dhcp客户机获取到的网关地址
[ ]dns-list 20.20.20.20 9.9.9.9 //指定dhcp客户机获取的DNS服务器地址
[ ]lease day 7 //指定dhcp客户机可以使用的地址租期
[ ]q //退出地址池dhcp1
[ ]ip pool dhcp2 //新建一个DHCP地址池,地址池名称叫dhcp2
[ ]network 192.168.20.0 mask 24 //指定dhcp2地址池的分发的网段,
[ ]gateway-list 192.168.20.1 //指定dhcp客户机获取到的网关地址,
[ ]dns-list 2.2.2.2 40.40.40.40 //指定dhcp客户机获取的DNS服务器地址
[ ]lease day 7 //指定dhcp客户机可以使用的地址租期
设置PC机为DHCP方式获取IP,且自动获取DNS服务器地址。在命令行输入ipconfig验证。
1.客户机发送DHCPrequest通告的原因有两层,第一层是通告给所有DHCP服务器,让其他没有被选中的DHCP服务器把未使用到的地址进行回收,第二层是通告给被选中的DHCP服务器,这个地址DHCP客户机要使用了。
2.取消地址池dhcp2分配IP
[ ]undo ip pool dhcp2
[ ]int vlan 20
[ ]undo dhcp select global
3.取消接口分发IP
[ ]int vlan 10
[ ]undo dhcp select interface