当用户主机Host_1发送报文给用户主机Host_2时,报文的发送过程如下(假设Router上还未建立任何转发表项)。
当用户主机Host_1发送报文给用户主机Host_2时,报文的发送过程如下(假设Router_1和Router_2上还未建立任何转发表项)。
这时,如果在交换机上生成红、蓝两个VLAN;
同时设置端口1、2属于红色VLAN、端口3、4属于蓝色VLAN。
再从A发出广播帧的话,交换机就只会把它转发给同属于一个VLAN的其他端口——也就是同属于红色VLAN的端口2,不会再转发给属于蓝色VLAN的端口。
同样,C发送广播信息时,只会被转发给其他属于蓝色VLAN的端口,不会被转发给属于红色VLAN的端口。
就这样,VLAN通过限制广播帧转发的范围分割了广播域。上图中为了便于说明,以红、蓝两色识别不同的VLAN,在实际使用中则是用“VLAN的ID”来区分的。
基于端口的vlan这种方法,主要的优点就是定议vlan的成员很简单明了,思路清楚,直接针对交换机现有的端口设置vlan,哪些端口属于同一个vlan,很清楚的理解。

VLAN间互访

划分VLAN后,由于广播报文只在同VLAN内转发,所以不同VLAN的用户间不能二层互访,这样能起到隔离广播的作用。但实际应用中,不同VLAN的用户又常有互访的需求,此时就需要实现不同VLAN的用户互访,简称VLAN间互访。

同VLAN间互访一样,VLAN间互访也会经过用户主机的报文转发、设备内部的以太网交换、设备之间交互时VLAN标签的添加和剥离三个环节。同样,根据以太网交换原理,广播报文只在同一VLAN内转发,不同VLAN内的用户则不能直接二层互访,需要借助三层路由技术或VLAN转换技术才能实现互访。

VLAN间互访技术

华为提供了多种技术实现VLAN间互访,常用的两种技术为VLANIF接口和Dot1q终结子接口。

  • VLANIF接口
    VLANIF接口是一种三层的逻辑接口。在VLANIF接口上配置IP地址后,设备会在MAC地址表中添加VLANIF接口的MAC地址+VID表项,并且为表项的三层转发标志位置位。当报文的目的MAC地址匹配该表项后,会进行三层转发,进而实现VLAN间的三层互通。
    VLANIF配置简单,是实现VLAN间互访最常用的一种技术。但每个VLAN需要配置一个VLANIF,并在接口上指定一个IP子网网段,比较浪费IP地址。
  • Dot1q终结子接口
    子接口也是一种三层的逻辑接口。跟VLANIF接口一样,在子接口上配置Dot1q终结功能和IP地址后,设备也会添加相应的MAC表项并置位三层转发标志位,进而实现VLAN间的三层互通。
    Dot1q终结子接口适用于通过一个三层以太网接口下接多个VLAN网络的环境。由于不同VLAN的数据流会争用同一个以太网主接口的带宽,网络繁忙时,会导致通信瓶颈。

同设备VLAN间互访

如下图:互访的源主机Host_1和目的主机Host_2连接在同一台设备Router上,分别属于VLAN2和VLAN3,并位于不同的网段。在Router上分别创建VLANIF2和VLANIF3并配置其IP地址,然后将用户主机的缺省网关设置为所属VLAN对应VLANIF接口的IP地址。

打开网易新闻 查看精彩图片

  1. Host_1判断目的IP地址跟自己的IP地址不在同一网段,因此,它发出请求网关MAC地址的ARP请求报文,目的IP为网关IP 10.1.1.1,目的MAC为全F。
  2. 报文到达Router的接口IF_1,Router给报文添加VID=2的Tag(Tag的VID=接口的PVID),然后将报文的源MAC地址+VID与接口的对应关系(1-1-1, 2, IF_1)添加进MAC表。
  3. Router检查报文是ARP请求报文,且目的IP是自己VLANIF2接口的IP地址,给Host_1应答,并将VLANIF2接口的MAC地址3-3-3封装在应答报文中,应答报文从IF_1发出前,剥掉VID=2的Tag。同时,Router会将Host_1的IP地址与MAC地址的对应关系记录到ARP表。
  4. Host_1收到Router的应答报文,将Router的VLANIF2接口的IP地址与MAC地址对应关系记录到自己的ARP表中,并向Router发送目的MAC为3-3-3、目的IP为Host_2的IP地址 10.2.2.2的报文。
  5. 报文到达Router的接口IF_1,同样给报文添加VID=2的Tag。
  6. Router根据报文的源MAC地址+VID与接口的对应关系更新MAC表??,并比较报文的目的MAC地址与VLANIF2的MAC地址,发现两者相等,进行三层转发,根据目的IP查找三层转发表,没有找到匹配项,上送CPU查找路由表。
  7. CPU根据报文的目的IP去找路由表,发现匹配了一个直连网段(VLANIF3对应的网段),于是继续查找ARP表,没有找到,Router会在目的网段对应的VLAN3的所有接口发送ARP请求报文,目的IP是10.2.2.2。从接口IF_2发出前,根据接口配置,剥掉VID=2的Tag??
  8. Host_2收到ARP请求报文,发现请求IP是自己的IP地址,就发送ARP应答报文,将自己的MAC地址包含在其中。同时,将VLANIF3的MAC地址与IP地址的对应关系记录到自己的ARP表中。
  9. Router的接口IF_2收到Host_2的ARP应答报文后,给报文添加VID=3的Tag,并将Host_2的MAC和IP的对应关系记录到自己的ARP表中。然后,将Host_1的报文转发给Host_2,发送前,同样剥离报文中的Tag。同时,将Host_2的IP、MAC、VID及出接口的对应关系记录到三层转发表中。

至此,Host_1完成对Host_2的单向访问。Host_2访问Host_1的过程与此类似。这样,后续Host_1与Host_2之间的往返报文,都先发送给网关Router,由Router查三层转发表进行三层转发。

跨设备VLAN间互访

由于VLANIF接口的IP地址只能在设备上生成直连路由,当不同VLAN的用户跨多台设备互访时,除配置VLANIF接口的IP地址外,还需要配置静态路由或运行动态路由协议。

如下图所示,互访的源主机Host_1和目的主机Host_2连接在不同的设备Router_1和Router_2上,分别属于VLAN2和VLAN3,并位于不同的网段。在Router_1上分别创建VLANIF2和VLANIF4,配置其IP地址为10.1.1.1和10.1.4.1;在Router_2上分别创建VLANIF3和VLANIF4,配置其IP地址为10.1.2.1和10.1.4.2,并在Router_1和Router_2上分别配置静态路由。Router_1上静态路由的目的网段是10.1.2.0/24,下一跳是10.1.4.2;Router_2上静态路由的目的网段是10.1.1.0/24,下一跳是10.1.4.1。

打开网易新闻 查看精彩图片

  1. 与同设备VLAN间互访的步骤1~6一样,经过“Host_1比较目的IP地址—>Host_1查ARP表—>Host_1获取网关MAC地址—>Host_1将发给Host_2的报文送到Router_1—>Router_1查MAC表—>Router_1查三层转发表”的过程,Router_1上送CPU查找路由表。
  2. Router_1的CPU根据报文的目的IP 10.1.2.2去找路由表,发现匹配了一个路由网段10.1.2.0/24(VLANIF3对应的网段),下一跳IP地址为10.1.4.2,于是继续查找ARP表,没有找到,Router_1会在下一跳IP地址对应的VLAN4的所有接口发送ARP请求报文,目的IP是10.1.4.2。报文从Router_1的接口IF_2发出前,根据接口配置,直接透传该报文到Router_2的IF_2接口,不剥除报文的Tag。
  3. ARP请求报文到达Router_2后,发现目的IP为VLANIF4接口的IP地址,给Router_1回应,填写VLANIF4接口的MAC地址。
  4. Router_2的ARP响应报文从其IF_2接口直接透传到Router_1,Router_1接收后,记录VLANIF4的MAC地址与IP地址的对应关系到ARP表项。
  5. Router_1将Host_1的报文转发给Router_2,报文的目的MAC修改为Router_2的VLANIF4接口的MAC地址,源MAC地址修改自己的VLANIF4接口的MAC地址,并将刚用到的转发信息记录在三层转发表中(10.1.2.0/24,下一跳IP的MAC地址, 出口VLAN, 出接口)。同样,报文是直接透传到Router_2的IF_2接口。
  6. Router_2收到Router_1转发的Host_1的报文后,与同设备VLAN间互访的步骤6~9一样,经过“查MAC表—>查三层转发表—>送CPU—>匹配直连路由—>查ARP表并获取Host_2的MAC地址—>将Host_1的报文转发给Host_2”的过程,同时将Host_2的IP地址、MAC地址、出口VLAN、出接口记录到三层转发表项。

四、VLAN的原理

1、实现VLAN的机制

在理解了“为什么需要VLAN”之后,接下来让我们来了解一下交换机是如何使用VLAN分割广播域的。

首先,在一台未设置任何VLAN的二层交换机上,任何广播帧都会被转发给除接收端口外的所有其他端口上泛滥。例如,计算机A发送广播信息后,会被转发给端口2、3、4。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

但是,VLAN生成的逻辑上的交换机是互不相通的。因此,在交换机上设置VLAN后,如果未做其他处理,VLAN间是无法通信的。

2、需要VLAN间通信时怎么办?

那么,当我们需要在不同的VLAN间通信时又该如何是好呢?

VLAN是广播域。而通常两个广播域之间由路由器连接,广播域之间来往的数据包都是由路由器中继的。因此,VLAN间的通信也需要路由器提供中继服务,这被称作“VLAN间路由”。

VLAN间路由,可以使用普通的路由器,也可以使用三层交换机。大家可以记住不同VLAN间互相通信时需要用到路由功能

五、VLAN的划分方式

1、静态VALN

静态VLAN也叫做基于端口的VLAN。从意思也能理解,它是固定不变的,就是明确指定交换机各端口属于哪个VLAN的设定方法。

打开网易新闻 查看精彩图片

那么它的缺点呢?

由于需要一个个端口地指定,因此当网络中的计算机数目超过一定数字(比如数百台)后,设定操作就会变得烦杂无比。并且,计算机每次变更所连端口,都必须同时更改该端口所属VLAN的设定——这显然静态VLAN不适合那些需要频繁改变拓补结构的网络和大型网络。