一、前言

前面我们讲了用路由器实现VLAN间通信,分了单臂路由和多臂路由,路由器的作用其实也就是为了实现跨网段的交互,对于同VLAN的网络,网段不同的设备也还是需要使用路由器来交互其数据。而这个事情的巧合就在于,一般我们将同一个VLAN的子网配置成同一个网段,所以路由器是恰好实现了VLAN间通信,但本质上路由器还是用于子网间(不同网段)的互通。

对于交换机组成的网络,如果路由器只是用于跨VLAN(跨网段)的通信感觉还是有点浪费,所以就有了所谓的三层交换,也就是在交换机内部实现类似路由器的功能,但毕竟还是与真实路由器有一些不一样的地方。

二、三层交换

如下图所示的网络,PC1与PC2,PC3与PC4可以互通,但PC1与PC3是不能通的。原因除了有VLAN的限制,他们本来也就不在一个网段无法通信的。对于PC1来说当其目标IP不在其网段,它只能求助与网关,也就是把数据丢给网关。所以三层交换就是在交换机上开一个网关即可,这个网关可以接收PC1的数据并将其转发给目标网段的网关2,网关2收到数据后再转发给目标IP。这个过程与路由器是一样一样的。

 

三层主干使用VLan间路由 三层路由vlan间互通_三层主干使用VLan间路由

我们可以在LSW2中配置三层交换,配置内容如下:

system-view #进入系统视图

interface Vlanif 10 #创建虚拟接口

ip address 192.168.1.254 24 #配置成网关的IP

quit

interface Vlanif 30 #创建虚拟接口

ip address 192.168.3.254 24 #配置成网关的IP

配置后我们可以在交换机上查下路由表,可以看到192.168.1.0和192.168.3.0网段的路由已出现了,且由于他们都在一个交换机上所以是直连路由。

 

三层主干使用VLan间路由 三层路由vlan间互通_网络_02

这样我们就利用三层交换实现了VLAN10与VLAN30的通信,通信过程如下图所示。简单来说其实就代替了路由器的功能。

 

三层主干使用VLan间路由 三层路由vlan间互通_三层交换_03

通过抓包,我们还可以发现配置了VLANIF后,LSW2就会响应ARP报文,也会主动发ARP报文来寻找目标IP,之前本来只会转发的。

三、三层交换的局限

其实从VLANIF这个名字就能看出来,三层交换本质上还是用于VLAN间互通的,他不是路由器,比如他只能局限在单交换机的内部路由而不能跨交换机。

如下图所示的网络,我们将VLANIF30改到LSW3后,由于VLANIF10与VLANIF30没有办法真正的写个路由所以当PC1将数据发给其网关(VLANIF10)后,网关找不到目标网段的路由,所以数据会在网关处被丢弃。

 

三层主干使用VLan间路由 三层路由vlan间互通_网络_04

四、回顾

本篇讲的VLANIF其实就是用于代替路由器实现VLAN间互通的一种功能,我觉得还是需要与交换机的路由端口进行区分,有些地方把交换机的路由端口也说是三层交换,这我感觉有点扯了,交换机配上路由端口那就是真真的路由功能,就好像有些路由器也会带交换端口一样。