实验目的:通过一台DHCP服务器实现给多网段分配IP地址

centos7 之dhcp服务为多个网段分配ip地址_第1张图片

在GNS3上构建如上图的拓扑结构图
配置:
在SW2二层交换机上:
SW2#conf t
SW2(config)#no ip routing //关闭路由功能
SW2(config)#vlan 10,20,80 //创建10,20,80的vlan
SW2(config-vlan)#int f1/1
SW2(config-if)#switchport mode access
SW2(config-if)#switchport access vlan 10
SW2(config-if)#int f1/2
SW2(config-if)#switchport mode access //设置为允许模式
SW2(config-if)#switchport access vlan 20
SW2(config-if)#int f1/3
SW2(config-if)#switchport mode access //设置为允许模式
SW2(config-if)#switchport access vlan 30
SW2(config-if)#int f1/15
SW2(config-if)#switchport mode trunk //设置中继口
SW2(config-if)#switchport trunk encapsulation dot1q //封装为dot1q
SW2(config-if)#do show vlan-sw //查看
centos7 之dhcp服务为多个网段分配ip地址_第2张图片

在SW1三层交换机上:(配置网关)
SW1#conf t
SW1(config)#int f1/15
SW1(config-if)#switchport mode trunk
SW1(config-if)#switchport trunk encapsulation dot1q
SW1(config-if)#vlan 10,20,80
SW1(config-vlan)#int vlan 10
SW1(config-if)#ip add 192.168.10.1 255.255.255.0
SW1(config-if)#no shut
SW1(config-if)#int vlan 20
SW1(config-if)#ip add 192.168.20.1 255.255.255.0
SW1(config-if)# no shut
SW1(config-if)#int vlan 30
SW1(config-if)#ip add 192.168.30.1 255.255.255.0
SW1(config-if)# no shut
SW1(config-if)#int vlan 80
SW1(config-if)#ip add 192.168.80.1 255.255.255.0
SW1(config-if)# no shut
SW1(config-if)#do show ip int b
centos7 之dhcp服务为多个网段分配ip地址_第3张图片

到此,我们在网络设备上的配置先告一段落
我们开始在linux上搭建DHCP服务,来为C1和C2分配IP地址

首先关闭防火墙和selinux,不然之后请求分配IP地址的时候会被拒绝阻止
systemctl stop firewalld
setenforce 0
rpm -q dhcp //查看有木有安装dhcp软件
没有的话,直接
yum install -y dhcp 安装dhcp服务
安装完成后
vi /etc/dhcp/dhcpd.conf //去配置它的配置文件
centos7 之dhcp服务为多个网段分配ip地址_第4张图片

如上图,当我们进去配置的时候只有以上内容,我可以直接在下面配置
也可以,复制一份模版过来进行修改,模版可以从上图看到,
/usr/share/doc/dhcp/dhcpd.conf.example 这就是dhcp配置文件模版
我们可以使用一下命令进行使用
cp /usr/share/doc/dhcp
/dhcpd.conf.example /etc/dhcp/dhcpd.conf

这里呢,我就不使用模版了,就直接添加配置了
centos7 之dhcp服务为多个网段分配ip地址_第5张图片

首先,我们要注意一点,一定一定一定要把虚拟机本身的网段写在第一个,不然的话会报错,无法启动。
然后我们来解释一下,这些代码的含义
subnet 192.168.80.0 netmask 255.255.255.0 { 这里是指定网段和子网掩码的
range 192.168.80.11 192.168.80.33;
这里是我们设置的可以分配的IP地址的地址池
option routers 192.168.80.1; 这里是设置的是网关
}
注意了,大括号里的内容每段以分号结尾。所以说别忘了分号,忘了也会在启动的时候报错

好了,配置这些我们就可以了,我们有三个网段,所以我们要配置三段这样的内容,可以直接4yy复制,然后按P粘贴,然后进行修改

然后保存退出

启动服务
systemctl start dhcpd
启动dhcp服务时,dhcp后面跟个d

这里还有一个注意点
我们的网卡配置一定要指定我们在GNS3中设置的网关,不然无法分配IP地址,报错,dhcp服务器找不到
centos7 之dhcp服务为多个网段分配ip地址_第6张图片

然后回到我们的GNS3中:
在我们的SW1三层交换机上:
SW1(config)#int vlan10
SW1(config-if)#ip helper-address 192.168.80.100 //为vlan10指定dhcp服务器
SW1(config)#int vlan20
SW1(config-if)#ip helper-address 192.168.80.100 //为vlan20指定dhcp服务器
SW1(config-if)#int vlan 30
SW1(config-if)#ip helper-address 192.168.80.100
到此,我们的配置就全部配置完了
现在我们进行测试
centos7 之dhcp服务为多个网段分配ip地址_第7张图片

进入字符命令界面

centos7 之dhcp服务为多个网段分配ip地址_第8张图片

centos7 之dhcp服务为多个网段分配ip地址_第9张图片

输入ip dhcp 来请求获取分配IP地址
如上图出现DDORA或者DORA 的话,说明我们能请求到dhcp服务器
如果是DDD的话,恭喜你,排错吧。

我们也可以通过ping全网IP地址来检查是否全网互通。
centos7 之dhcp服务为多个网段分配ip地址_第10张图片

如上图,我们成功的全网互通了。
实验成功了。