一、路由器的DHCP服务
1.谁可以做DHCP服务器
-
前面学过可以把一台win2003或者win2008等服务器操作系统的主机部署成DHCP服务器(五层设备),即专门搭建一台DHCP服务器。
-
只要是三层及三层以上的设备都带DHCP服务,所以路由器可以充当DHCP服务器,那么在下图搭建的网络拓扑中把单臂路由部署成DHCP服务器,即所在局域网的所有主机都可以从路由器那自动获取IP地址等相关信息了
2.为什么将路由器部署成DHCP服务器
- 在创建了vlan和单臂路由的内部网络中,如果单独部署一台DHCP服务器连接在交换机上,那么由于网络划分了vlan,所以隔离了广播,而PC与DHCP服务器通信请求IP时需要发送DHCP-Discovery广播,DHCP-offer广播等,如果DHCP服务器的vlanID和PC的vlanID不一致,则广播是无法转发的,就无法从DHCP服务器那里自动获取IP
- 但是由于设置了单臂路由,DHCP相关的广播经过交换机不能传到其他vlan,但是可以从交换机的中继端口转发出去,而且交换机与单臂路由器连接的端口也是一个中继端口,所以此局域网内所有的PC发的广播都可以经过交换机再转发到路由器的相应vlan的子接口。
- 综上所述,所有的PC发的广播,唯独这个路由器可以接收到,那么可以将此路由器部署成DHCP服务器提供DHCP服务
在小型网络中可以这么做,因为相比与单独部署一台DHCP服务器要简单很多:在设置了vlan的网路中单独部署DHCP服务器需要解决上述问题和其他的一些问题。而将路由器部署成DHCP相对于简单一些。原因详见3.路由器如何准确分配地址
3.路由器做DHCP服务器的弊端
- 如果在一个大型公司中,不建议把路由器额外部署成DHCP服务器,因为路由器的本职工作是将内网的数据路由到外网,而大型公司中PC众多,路由器要处理很多消息,所以再把路由器部署成DHCP服务器无疑增加了路由器的负担,是路由器的该做的路由工作效率变低
二、在三层路由器上部署DHCP服务器
1.在路由器上添加地址池
- 以前学的DHCP服务器上只用添加一个地址池,提供一个网段的IP地址,子网掩码等信息。但是此网络中不同vlan的PC向路由器发送DHCP请求,vlan10的PC发送的请求要给它提供vlan10的地址,vlan20的PC发的请求要提供给它vlan20的地址(因为我们规定过一个vlan对应一个网段,比如:属于vlan10的PC的网段规定为10.1.1.0/24网段的地址,vlan20的为20.1.1.0/24)所以路由器部署成DHCP服务器需要提供vlan数量的地址池,比如图中有vlan10的10网段,vlan20的20网段,vlan30,vlan40,所以要提供4个地址池,但是属于vlan40的是一台服务器,一般服务器的IP是需要固定下来的要手工配置,所以只需要提供3个地址池足以
2.添加地址池命令
conf t
ip dhcp excluded-address 10.1.1.1 10.1.1.99 #10.1.1.1-99IP无法被员工使用(排除IP)【可选】
ip dhcp pool 地址池名字 #进入dhcp地址池配置模式
network 10.1.1.0 255.255.255.0 #这个地址池提供10.1.1.0/24网段的IP地址和子网掩码
default-router 10.1.1.254 #为请求DHCP的PC指定网关
dns-server 40.1.1.1 #提供(指定)dns服务器IP
lease 1 12 3 #设定租期:天 小时 分钟(思科模拟器不支持此命令,现实中有)
一共添加3地址池,分别提供10网段,20网段和30网段的IP
3.删除地址池命令
no ip dhcp excluded-address 10.1.1.1 10.1.1.99
no ip dhcp pool 地址池名字
4.路由器如何准确分配地址
- 为什么在给路由器创建好多个地址池后,就能准确的给vlan10的PC分配10网段的地址,给vlan20的PC分配20网段的地址…?(最初规划网络时要求连接vlan10端口的PC网段为10网段,vlan20端口的PC为20网段,不是说一定就是这样,这可以自己规划的。比如vlan14端口连接的PC网段可以设置为192.169.1.0/24网段,那么在配置单臂路由时需要创建一个子接口,可以识别vlan14标签,并且IP配置为同一网段的192.169.1.254。类似于这样。但是无论怎样都必须遵循一个vlan一个网段)
- 因为在配置单臂路由时,创建了很多子接口。进入某子接口配置模式,输入过命令:
encapsulation dot1q xx
,即每个子接口设置过只认识某一个vlanID标签,而且子接口还配置了vlanID最初设计规划的网段IP。比如现在子接口为f0/0.1,只识别和封装vlan10标签,且f0/0.1子接口的IP为10.1.1.254(可以理解为此子接口为"vlan10/10网段"的网关),所以当属于vlan10的PC发来DHCP请求,到达路由器只能从可以识别vlan10标签的网关10.1.1.254即f0/0.1子接口进入。此时路由器就会记住这个DHCP请求是从哪一个子接口(10.1.1.254)进入路由器的,那么就会在路由器的众多地址池中找提供10网段地址的地址池给你分配IP等信息
基于最开始设计网络时就划分过一个vlan一个网段,而且在创建单臂路由的子接口时就设置了只识别和封装一种vlanID标签,且子接口的IP的网段和此vlanID规划的网段相同。在把路由器配置成DHCP服务器时,只需要根据每一个vlan对应网段创建好多个地址池,则无需多余的操作,就可以准确无误的分配地址
三、DHCP中继技术
1.为什么需要DHCP中继技术
- 在一个小型网络中可以直接把路由器部署成DHCP服务器给同局域网下不同vlan的PC提供DHCP服务。但是刚说过,如果是大型网络,局域网中的PC数量庞大,那么继续让路由器做DHCP服务器,会降低它的本职工作路由的效率,所以我们现在需要在网络中额外单独部署一台DHCP服务器
- 而DHCP服务器肯定要连接在某一交换机上的,连接的交换机端口有属于的vlanID,所以如果其他的PC和DHCP连接的端口vlanID不是同一个,那么其他PC的DHCP请求广播,是无法被DHCP服务器收到的。所以现在需要利用DHCP中继技术来解决此问题:让属于所有vlan的PC都可以从DHCP那获取地址
2.DHCP中继原理
- PC发送DHCP请求广播,广播可以在相同vlanID之间传播,也可以通过中继链路最终传到单臂路由器那里,即所有vlan的PC发的DHCP广播,都会被路由器收到,然后进入能识别对应vlan标签的子接口,但是路由器如果不做设置不会将DHCP广播转发到其他vlan去,所以现在可以在不同vlan的子接口(网关)做一个小操作:即子接口如果收到的是DHCP帮助信息,那么子接口就将此DHCP帮助信息以单播的形式转发一份到DHCP服务器所属vlan,最终被DHCP服务器收到
- 即路由器原本是所有vlanID的PC发送的广播的终点,但是现在给路由器加入DHCP中继技术,路由器可以再接着转发
3.路由器设置DCHP中继技术
-
具体操作详见day16、2 - 综合实验
-
哪一些vlan的PC需要寻求DHCP帮助,就在这些vlan的网关上配一条命令—DHCP帮助,即DHCP中继
-
如何设置:
#现在公司内网中有4个vlan,vlan10/20/30的PC都需要请求DHCP服务,所以需要进入f0/0.1、f0/0.2、f0/0.3这三个路由器子接口即三个vlan对应的网关,去配置DHCP中继相关命令,使这些子接口能够在收到对应vlanPC的DHCP请求广播时,能够单独的将DHCP请求广播以单播的形式DHCP服务器转发一份 conf t int f0/0.1 #f0/0的子接口 ip helper-address 40.1.1.1 exit ----------------- int f0/0.2 ip helper-address 40.1.1.1 exit ----------------- int f0/0.3 ip helper-address 40.1.1.1 exit
4.DHCP如何准确分配地址
- 不同vlan的PC发的DHCP请求会从不同vlan的子接口进入到路由器,路由器设置了DHCP中继后,会以单播的形式单独向DHCP服务器IP转发一份DHCP请求,在准发时路由器会给这份请求用DHCP中继协议添加一个"戳":属于哪一个vlan发来的DHCP请求,那么DHCP服务器跟根据相应的vlan地址池中分配地址
- 但是如果有员工PC的vlanID和DHCP服务器的vlanID一致,那么PC的DHCP请求广播不需要经过路由器,直接可以发到同一个vlan的DHCP服务器
四、总结
1.在公司网络中部署DHCP方法
如果公司划分了vlan,如何部署DHCP服务器
- 以路由器充当DHCP服务器----在路由器上创建对应vlan网段的地址池
- 单独用win2003、win2008主机部署一台DHCP服务器----再路由器上添加DHCP中继技术
- linux系统主机也可以部署成DHCP服务器(后面学习)