背景问题:某企业有两个部门,技术部和销售部,为了安全对两个部门的主机进行了VLAN的划分,技术部和销售部分处于不同的VLAN。由于业务的需求现在需要销售部和技术部的主机能够相互访问。
拓扑图:(原先具有隔离功能的局域网)
涉及到的知识:.
1.vlan(虚拟局域网):相同VLAN内的主机可以相互直接通信,不同VLAN的主机之间相互通信必须经路由设备
2.三层交换机:三层交换机具有路由功能,可以为VLAN创建虚拟端口,从而链接虚拟局域网。
先配置成隔离状态:
先给三个主机设置好IP:
配置二层交换机:
Switch>en 进入特权模式
Switch#conf t 进入全局配置模式
创建vlan 2:
Switch(config)#vlan 2
Switch(config-vlan)#exit
创建vlan3:
Switch(config)#vlan 3
Switch(config-vlan)#exit
Switch(config)#int f0/1
Switch(config-if)#switch access vlan 2 将f0/2端口指派到vlan2下
Switch(config-if)#exit
Switch(config)#int f0/2
Switch(config-if)#switch access vlan 3 将f0/3端口指派到vlan3下
Switch(config-if)#exit
Switch(config)#int f0/3
Switch(config-if)#switch mod trunk 将f0/1端口指派为trunk端口
注意:要是我忘了为什么指派trunk端口,我要去看(1)
配置三层交换机:
Switch>en 进入特权模式
Switch#conf t 进入全局配置模式
创建vlan2:
Switch(config)#vlan 2
Switch(config-vlan)#exit
创建vlan3:
Switch(config)#vlan 3
Switch(config-vlan)#exit
Switch(config)#int f0/1
Switch(config-if)#switch trunk p
Switch(config-if)#switch trunk encapsulation dot1q 注意这一行
Switch(config-if)#switch mod trunk 将f0/1端口指派为trunk端口
Switch(config-if)#exit
Switch(config)#int f0/2
Switch(config-if)#switch access vlan 2 将f0/2端口指派到vlan2下
Switch(config-if)#exit
注:思科三层交换机默认封装了auto(即自动协商用acess端口还是用trunk端口),而你要强行用trunk必须要封装一个具体的协议
到这一步,隔离状态已经搭好了,下面实现不同vlan互通:
对三层交换机进行配置:
Switch>en 进入特权模式
Switch#conf t 进入全局配置模式
Switch(config)#int vlan 2 进入vlan配置模式
Switch(config-if)#ip address 192.168.1.10 255.255.255.0 给vlan2创建一个虚拟端口
Switch(config-if)#no shutdown
Switch(config-if)#exit
Switch(config)#int vlan 3 进入vlan配置模式
Switch(config-if)#ip address 192.168.1.11 255.255.255.0
% 192.168.1.0 overlaps with Vlan2 报错:不同vlan的虚拟端口不应该在同一网络
Switch(config-if)#ip address 192.168.2.11 255.255.255.0 给vlan3创建一个虚拟端口
Switch(config-if)#exit
Switch(config)#ip routing 启动路由功能
修改主机的默认网关为所在vlan的虚拟端口:
因为虚拟端口不在同一网络,故PC1的IP地址需要改
然后就可以ping到了