方法一:建议路由器下连接三层交换机(例如Cisco3650)。大体思路是,三层交换机与路由器之间建立OSPF邻居,将交换机上的Vlan三层网段宣告出来,Vlan中主机的默认网关设置为Vlan三层网段实现Vlan间互通以及对外通信。
其中,Vlan三层网段其实就是交换机的SVI(Switch Virtual Interface)。因为一个Vlan通常在一个网段中,设置SVI以便Vlan间以及与外界进行三层路由。配置方法很简单:
Switch(config)#ip routing
Switch(config-if)#interface vlan 2
Switch(config-if)#ip address 192.168.1.1255.255.255.0
Switch(config-if)#no shutdown
保证互通后,再根据网络策略增加设施访问控制列表限制特定访问。
方法二:如果路由器下连接的是二层交换机(例如Cisco2960),那么VLAN间路由的方法通常是单臂路由模式。即将路由器接口配置为中继链路Trunk,通过中继接口接收来自相邻交换机的VLAN标记流量,并通过路由器子接口在VLAN间进行内部路由。Vlan主机的默认网关设置为路由器上对应子接口的IP地址。
其中子接口拥有自己的IP、掩码和VLAN ID,使得每个物理接口可以同时属于多个逻辑网络。具体配置示例为:
R1(config)# interface f0/0.10
R1(config-subif)# encapsulation dot1q 10 //在配置子接口IP前,使用encapsulationdot1q vlan-id使之在特定的VLAN中运行。
R1(config-subif)# ip address 172.17.10.1255.255.255.0
R1(config)# interface f0/0.30
R1(config-subif)# encapsulation dot1q 30
R1(config-subif)# ip address 172.17.30.1255.255.255.0
R1(config)# interface f0/0 //这是路由器上的非trunk连接那个接口
R1(config-if)# no shutdown //物理接口上所有子接口均启动
当然还有一种最笨的方法就是路由器上多个物理接口分别对应不同的VLAN,连接到被分配了不同VLAN的交换机物理端口实现路由。这时交换机端口以接入Access模式连接到路由器。