Ensp利用单臂路由实现vlan间路由
原理
在现实中,经常有些用户需要跨越VLAN通信,单臂路由就是解决VLAN间通信的一种方法。
单臂路由的原理是通过一台路由器,使VLAN间互通数据通过路由器进行三层转发。如果在路由器上为每个VLAN分配一个单独的路由器物理接口,随着VLAN数量的增加,必然需要更多的接口,而路由器的接口数量有限,所以在路由器的一个物理接口上通过配置子接口(即逻辑接口)的方式来实现以一当多的功能是一种非常好的方式。路由器同一物理接口的不同子接口作为不同VLAN的默认网关,当不同VLAN间的用户主机需要通信时,只需将数据包发送给网关,网关处理后再发送至目的主机所在VLAN,从而实现VLAN间通信。
由于从拓扑图上看,在交换机与路由器之间,数据仅通过一条物理链路传输,故被形象地称之为“单臂路由”。
实验场景
本实验模拟公司网络场景。路由器 R1 是公司的出口网关,员工 PC 通过接入层交换机(如 S2 和 S3 )接入公司网络,接入层交换机又通过汇聚交换机 S1 与路由器 R1 相连。公司内部网络通过划分不同的 VLAN 隔离了不同部门之间的二层通信,保证各部门间的信息安全,但是由于业务需要,经理、市场部和人事部之间需要能实现跨 VLAN 通信,网络管理员决定借助路由器的三层功能,通过配置单臂路由来实现。
实验拓扑
实验参数
实验步骤
下面我们创建VLAN并配置Access接口
在S2上创建VLAN 10和VLAN 20,把连接PC1的E0/0/1和连接PC2的E0/0/2接口配置为Access类型,并分别划分到相应的VLAN:
在S3上创建VLAN 30,把连接PC3的E0/0/1接口配置为Access类型并划分到VLAN 30
交换机之间或路由器之间相连的接口需要传递多个VLAN信息,需要配置成Trunk接口。
将S2和S3的GE0/0/2接口配置成Trunk类型接口,并允许所有VLAN通过
在S1上创建VLAN 10、VLAN 20和VLAN 30,并配置交换机和路由器相连的接口为Trunk,允许所有VLAN通过。
配置路由器子接口和IP地址
在R1上创建子接口GE0/0/1.1,配置IP地址192.168.1.254/24,作为人事部网关地址。
在R1创建子接口GE 0/0/1.2,配置IP地址192.168.2.254/24,作为市场部的网关地址
在R1上创建子接口GE 0/0/1.3, 配置IP地址192.168.3.254/24,作为经理的网关地址
在PC-1,PC-2和PC-3上配置IP和相应的网关地址后,在PC-1上测试与PC-2和PC-3间的连通性。
可以看到,通信仍然无法建立。
配置路由器子接口封装VLAN
在R1的子接口GE 0/0/1.1上封装VLAN 10,在子接口GE 0/0/1.2上封装VLAN 20,在子接口GE 0/0/1.3上封装VLAN 30,并开启子接口的ARP广播功能。
使用arp broadcast enable命令开启子接口的ARP广播功能。如果不配置该命令,会导致该子接口无法主动发送ARP广播报文,以及向外转发IP报文
同理配置子接口GE 0/0/1.2和GE 0/0/1.3
查看接口状态
3个子接口的物理状态和协议状态都正常
查看路由器R1的路由表
在PC-1上分别测试与网关地址192.168.1.254和PC2之间的连通性
可以看到通信正常,在PC1上Tracert PC2
可以看到PC1先把ping包发送给自身的网关192.168.1.254,然后再由网关发送到PC2