虽然传统的 VLAN 间路由要求路由器和交换机上均具备多个物理接口,但是现在一种更普遍使用的 VLAN 间路由实施却不需要。 相反,一些路由器软件允许将路由器接口配置为 TRUNK 链路,就是说路由器和交换机上只需要一个物理接口就可以在多个 VLAN 之间传送数据包。

“单臂路由器”是通过单个物理接口在网络中的多个 VLAN 之间发送流量的路由器配置。 如图所示,路由器与交换机 S1 通过单一的物理网络连接 (TRUNK) 相连。

对路由器接口进行配置,使其以 TRUNK 链路的方式运行,并将其与 TRUNK 模式配置下的交换机端口相连。 路由器可执行 VLAN 间路由,方法是在 TRUNK 接口上接受来自邻接交换机的 VLAN 标记流量,然后,通过子接口在 VLAN 间进行内部路由。 之后将路由流量和标记 VLAN 转发到目标 VLAN。由于该物理接口以前接收过流量,所以不能在同一个端口上接收。

子接口是基于软件的虚拟接口,与单个物理接口相关联。 路由器的软件中配置了子接口,并且每个子接口上都分别配置了 IP 地址和 VLAN 分配。 根据各自的 VLAN 分配,每个子网络都配置了子接口以方便逻辑路由。 基于目的 VLAN 进行路由决策后,数据帧会进行 VLAN 标记,并通过物理接口发送回去。

单击图中的“播放”按钮,观看单臂路由器如何执行路由功能的动画。

如动画所示:

1. 利用单个物理路由器接口,VLAN 10 中的 PC1 正经路由器 R1 与 VLAN 30 中的 PC3 通信。

2. PC1 将它的单播流量发送到交换机 S2。

3. 交换机 S2 将该单播流量标记为来源于 VLAN 10 后,将其从 TRUNK 链路转发到交换机 S1。

4. 交换机 S1 将标记流量从端口 F0/5 上的其他 TRUNK 接口转发到路由器 R1 上的接口。

5. 路由器 R1 接收 VLAN 10 上标记的单播流量,并通过为其所配置的子接口将该单播流量发送到 VLAN 30。

6. 单播流量从路由器接口发送到交换机 S1 时标记为 VLAN 30。

7. 交换机 S1 将被标记的单播流量从另一个 TRUNK 链路转发到交换机 S2。

8. 交换机 S2 将单播帧的 VLAN 标记删除后,将该帧转发到端口 F0/6 上的 PC3。

注意:VLAN 间路由器的单臂路由器方法不能扩展超出 50 个 VLAN。