当企业的内部网络规模较大时,通常被划分为多个不同的子网,网络内配置了VLAN,VLAN能隔离广播,而DHCP协议使用广播
DHCP服务器在哪个vlan中,就只有在相同vlan内的客户机能从DHCP服务器那里获取IP地址
工具:VMware虚拟机,虚拟机装一个Linux(Centos7)系统,一个win10系统;GNS 3软件+(c3640-ik9o3s-mz.124-25d.image镜像);
(1)宿主机上安装虚拟机,及两个系统(这里不做赘述);宿主机上并安装GNS 3 软件,安装好后添加 c3640-ik9o3s-mz.124-25d.image镜像
(2)设置虚拟机网卡
点击应用和确定后,在宿主机(自己实体的电脑),查看刚才设置的网卡,发现新多出来两个的虚拟网卡,如下图所示,表示设置ok
(3)配置Centos7系统IP地址
因为此实验是以Centos7为DHCP服务器的,所以给其配置一个静态IP地址
[root@www ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.200
NETMASK=255.255.255.0
GATEWAY=192.168.100.254
BOOTPROTO=static
/主要设置上面的几个参数,其他参数不要随意改动,修改好退出保存
systemctl restart network
/重启网络服务
注:如果重启有报错,查看文件是否配置正确。如文件正确
也有可能network服务 与 NetworkManager 服务冲突
[root@www ~]# systemctl stop NetworkManager //关闭此服务
[root@www ~]# systemctl restart network //再次重启network服务
(4)GNS 3软件开始配置拓扑图
R1#vlan database
R1(vlan)#vlan 10
VLAN 10 added:
Name: VLAN0010 //创建vlan10
R1(vlan)#vlan 100
VLAN 100 added:
Name: VLAN0100 //创建vlan100
R1(vlan)#exit //保存退出
R1(config)#interface fastEthernet 0/0
R1(config-if)#switchport mode access
R1(config-if)#switchport access vlan 100
R1(config)#interface fastEthernet 0/1
R1(config-if)#switchport mode access
R1(config-if)#switchport access vlan 10
//进入相应接口划分vlan
R1(config)#interface vlan 100
R1(config-if)#ip address 192.168.100.254 255.255.255.0 //设置的网关
R1(config-if)#ip helper-address 192.168.100.200 //设置DHCP代理中继,此IP为上述所设置的DHCP服务器静态
R1(config-if)#no shutdown
R1(config)#interface vlan 10
R1(config-if)#ip address 192.168.10.254 255.255.255.0
R1(config-if)#ip helper-address 192.168.100.200
R1(config-if)#no shutdown
R1(config)#service dhcp //启动DHCP代理服务
R1(config)#ip routing //开启路由功能
设置完后,进入win10虚拟机,先设置一个静态的IP地址测试;尝试ping网关,能ping通的话,尝试ping Centos7 的IP地址。能ping通表示网络设置没有问题,可以进行下一步。
(7)进入Centos 7系统中,设置DHCP地址池
[root@www ~]# yum install -y dhcp
//先安装DHCP服务,如果安装包简称无法安装,可先挂载光盘,在安装,详情可以去看.rpm软件包安装过程
[root@www ~]# vim /etc/dhcp/dhcpd.conf //进入dhcp配置文件配置地址池
option domain-name "cool.com";
option domain-name-servers www.cool.com; //Centos的主机名,hostname命令可以查看到
default-lease-time 86400;
max-lease-time 86400;
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.100 192.168.100.150; //分配地址的范围vlan100的
option routers 192.168.100.254;
}
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.100 192.168.10.150;
option routers 192.168.10.254;
}
[root@www ~]# systemctl restart dhcpd //重启dhcpd服务,报错的话可能是配置文件写错了,建议检查下
(8)验证
将进入虚拟机打开win10系统,在控制台输入指令
ipconfig /release 释放IP地址
ipconfig /renew 获取IP地址
成功从DHCP服务器获取到IP地址,并且是通过三层交换机中继,客户端与服务器不在同一网段,达到此次试验的目的
SW1#vlan database
SW1(vlan)#vlan 10
SW1(vlan)#vlan 20
SW1(vlan)#vlan 100
SW1(vlan)#exit //创建vlan
SW1(config)#interface fastEthernet 0/1
SW1(config-if)#switchport mode access
SW1(config-if)#switchport access vlan 10
SW1(config)#interface fastEthernet 0/2
SW1(config-if)#switchport mode access
SW1(config-if)#switchport access vlan 20
SW1(config)#interface fastEthernet 0/3
SW1(config-if)#switchport mode access
SW1(config-if)#switchport access vlan 100 //接口划分vlan
SW1(config)#interface fastEthernet 0/4
SW1(config-if)#switchport mode trunk //f0/4接口,设置为trunk
(2)配置三层交换机
SW2#vlan database
SW2(vlan)#vlan 10
SW2(vlan)#vlan 20
SW2(vlan)#vlan 100
SW2(vlan)#exit
SW2(config)#interface fastEthernet 0/1
SW2(config-if)#switchport trunk encapsulation dot1q
SW2(config-if)#switchport mode trunk
SW2(config)#interface vlan 10
SW2(config-if)#ip address 192.168.10.254 255.255.255.0
SW2(config-if)#ip helper-address 192.168.100.200
SW2(config-if)#exit
SW2(config)#interface vlan 20
SW2(config-if)#ip address 192.168.20.254 255.255.255.0
SW2(config-if)#ip helper-address 192.168.100.200
SW2(config-if)#exit
SW2(config)#interface vlan 100
SW2(config-if)#ip address 192.168.100.254 255.255.255.0
SW2(config-if)#ip helper-address 192.168.100.200
SW2(config-if)#exit
//设置各个vlan的网关,设置DHCP中继代理
SW2(config)#ip routing //开启路由功能
SW2(config)#service dhcp //开启dhcp服务
此实验也可以先把每个主机设置静态IP地址,互相ping,看能否实现全网互通,如果能够实现全网互通,表示成功一大半了,只需要在DHCP设置地址池,三层交换机设置中继代理。
以上两种实验环境,原理都是相同的,中继原理就是让DHCP服务器与客户机要实现通信,才能获取到地址。要实现跨vlan获取IP地址,需要通过路由功能,使各主机间都能实现跨vlan通信,在去设置DHCP中继服务