单臂路由实现VLAN间通信
单臂路由实现VLAN间路由拓扑图:
一、配置PC机 ip
设备 | 接口 | IP | 子网掩码 | 网关 |
R1(AR2220) | GE 0/0/1.1 | 192.168.1.254 | 255.255.255.0 | N/A |
GE 0/0/1.2 | 192.168.1.254 | 255.255.255.0 | N/A | |
GE 0/0/1.3 | 192.168.1.254 | 255.255.255.0 | N/A | |
PC1 | Ethernet 0/0/1 | 10.1.1.3 | 255.255.255.0 | 192.168.1.254 |
PC2 | Ethernet 0/0/1 | 10.1.1.4 | 255.255.255.0 | 192.168.2.254 |
PC3 | Ethernet 0/0/1 | 10.1.1.5 | 255.255.255.0 | 192.168.3.254 |
二、创建VLAN并配置Access、Trunk接口
S2上创建VLAN 10和VLAN 20,把连接PC-1的E 0/0/1和连接PC-2的E 0/0/1接口配置为Access类型接口 并划分到相应WLAN(Access接口配置可参考博客https://www.cnblogs.com/yyd-sun/p/11898597.html)
S3上创建VLAN 30,把连接PC-3的E 0/0/1和接口配置为Access类型接口 并划分到相应WLAN(Access接口配置可参考博客https://www.cnblogs.com/yyd-sun/p/11898597.html)
将S2和S3的GE 0/0/1接口配置成Trunk类型接口,并允许所有VLAN通过(Trunk接口配置可参考博客https://www.cnblogs.com/yyd-sun/p/11908433.html)
在S1上创建VLAN 10 20 30,并配置交换机和路由器相连的接口为Trunnk,并运行所有VLAN通过
三、配置路由器子接口和IP地址
由于路由器R1只有一个实际的物理接口与交换机S1相连,可以在路由器上配置不同的逻辑接口来作为不同VLAN的网关,从而达到节省路由器接口的目的。
在R1上创建GE0/0/1.1,配置IP地址192.168.1.254/24
在R1上创建GE0/0/1.2,配置IP地址192.168.2.254/24
在R1上创建GE0/0/1.3,配置IP地址192.168.3.254/24
测试连通性:
PC1与PC2通信失败
四、 配置路由器子接口封装 VLAN
虽然目前已经创建了不同的子接口,并配置了相关IP地址,但是仍然无法通信。这是由于处于不同VLAN下,不同网段的PC间要实现互相通信,数据包必须通过路由器进行中转。由 S1 发送到R1 的数据都加上了 VLAN标签,而路由器作为三层设备,默认无法处理带了 VLAN 标签的数据包。因此需要在路由器上的子接口下配置对应 VLAN 的封装,使路由器能够识别和处理VLAN标签,包括剥离和封装VLAN标签。
在 R1 的子接口 GE 0/0/1.1 上封装 VLAN 10,在子接口 GE 0/0/1.2 上封装 VLAN 20,在子接口GE 0/0/1.3上封装VLAN30,并开启子接口的ARP广播功能。
使用dotlq termination vid 命令配置子接口对一层tag 报文的终结功能。即配置该命令后,路由器子接口在接收带有VLANtag的报文时,将剥掉tag进行三层转发,在发送报文时,会将与该子接口对应VLAN的VLANtag添加到报文中。
[R1_yyd-GigabitEthernet0/0/1.1]dotlq termination vid 10
使用 arp broadcast enable 命令开启子接口的ARP广播功能
同理,配置R1的子接口DE 0/0/1.2和0/0/1.3。
使用 display ip interface brief 在路由器R1上查看接口状态,由表可见,3个子接口的物理状态和协议状态都正常。
五、 测试连通性
PC1为例:连接PC2 PC3皆可通信
tracert 192.168.2.1 可以看见PC1先把ping包发给自身网关198.168.1.254,然后再由网关发送到PC2。
现以 PC-1 ping PC-2为例,分析单臂路由的整个运作过程。
两台PC 由于处于不同的网络中,这时PC-会将数据包发往自己的网关,即路由器R1 的子接口 GE 0/0/1.1 的地址 192.168.1.254。数据包到达路由器R1后,由于路由器的子接口 GE 0/0/1.1已经配置了VLAN封装,当接收到PC-1发送的VLAN10的数据帧时,发现数据帧的 VLANID跟自身GE0/0/1.1 接口配置的 VLAN ID 一样,便会剥离掉数据帧的 VLAN 标签后通过三层路由转发。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了