Linux系统VLAN、三层交换和Trunk的区别详解

熟悉linux系统的用户都了解 , 在Linux系统中VLAN , 三层交换和Trunk是三个容易混淆的概念 。 如果对这三个概念只是一知半解的 , 就会不可避免绕一些弯路 , 浪费不少时间 。 下面 , 钊阳手游小编就给大家介绍Linux系统VLAN、三层交换和Trunk的区别详解 。
Linux系统
1.VLAN和三层没有任何关系
【Linux系统VLAN、三层交换和Trunk的区别详解】如果先不提Trunk而纯粹的VLAN实际上就是将多个纯二层的以太网交换机合并成了一个 , 用软件进行控制 。 合并后的交换机就是支持VLAN的交换机 , 参与合并的多个物理交换机如今退化成了逻辑意义上的交换机 。 多个物理交换机并不是傻乎乎的合并后完事 , VLAN交换机的另一个意义就是可以通过各种策略指定哪个物理port属于哪个逻辑交换机 , 如果让物理交换机实现这个 , 就不得不涉及购置 , 布线等问题 , 这就说明了软件真的比硬件更加灵活 , 以软件为基准 , 硬件其实就是固化了的软件 。
如果想明白VLAN的含义 , 在Linux上配置几个Bridge就可以了 。 我们知道 , Linux内置了一个软Bridge实现 , 通过brctl可以进行配置 , 一个单独的Linux物理主机配置了N块以太网卡 , 就可以简单的模拟VLAN的概念(注意 , 此时还没有引入VLAN的本质-Trunk)了:
a.新增一个br0 , 将网卡1/2/3加进去;
b.新增一个br1 , 将网卡4/5/6加进去;
c....
d.网卡1连接一个纯二层交换机1;
e.网卡4连接一个纯二层交换机2;
f....
这样Linux主机上就存在了多个Bridge , 你可以将Linux主机这个物理的机器视为一个支持VLAN的机器了 。
VLAN交换机是一个纯二层的设备 。 然而 , 如果仅仅这样 , 那就没有必要推出VLAN的概念了 , VLAN到底和上述的简单配置有什么不同呢?这就涉及到了IEEE802.1q标准 。
2.Trunk和三层没有任何关系
如果一个VLAN交换机上配置了两个VLAN , 分别为VLAN1和VLAN2 , 另外几台VLAN交换机上可能也需要配置VLAN1和VLAN2 , 毕竟单独一台机器的口子有限 , 因此对于组网 , 不级联的拓扑是很少见的 , 现在关键的问题就是需要让处在不同VLAN交换机的口子可以属于同一个VLAN , 即属于同一个广播域 。 办法很简单 , 那就是每一个VLAN用一个线将两个VLAN交换机上属于同一个VLAN的口子连起来 , 如果两台交换机上分别有3个VLAN , 那就扯3根线 。 。 。 这不得不说是一个好方法 , 但决不是一个妙方法 。 对于硬件上的体力活儿 , 软件一般都能很好的解决 , 这一次 , 又是软件帮了忙 , 正如VLAN的概念提出时那样 。
Trunk标准提出来了 , 所谓的Trunk就是可以让多个VLAN在两个交换机级联时复用一根线 , 因此软件上需要对数据帧做一些文章 , 以便数据帧到达另一个交换机的时候知道自己属于哪个VLAN从而限制帧的传输域 , 802.1q正是做这个的 , 从而这也成了VLAN的核心 。 Trunk只是简化了布线 , 降低了硬件成本 , 这是一个通过软件降低硬件成本的绝好的例子 。
既然Trunk可以通过多个VLAN的数据 , 那么实际上Trunk是将广播域延伸到了另外一台交换机上 , 而对于LAN , 其广播域延伸到哪里 , LAN也就延伸到了那里 。 事实上这并不与VLAN的初衷之一-限制广播域相冲突 , Trunk将广播透传的时候是打着VLAN id标记的 , 也就是说广播除了可以在Trunk上或者在自己VLAN内部传输 , 是决不会到达其它VLAN里面的 , 如果一个广播到达了这样一个交换机 , 其上既没有别的Trunk口 , 也没有广播携带的VLAN id对应的VLAN , 那么广播也就到此为止而消失了 。
到此为止 , 丝毫没有任何第三层的概念出现 。
3.VLAN接口的概念
VLAN接口的概念和Linux上Bridge的实现十分相像 , 就是可以为一个VLAN配置一个或者多个接口 , 在该接口上可以指定三层的IP地址 , 在VLAN的某一个口子(物理二层接口)上配置这样一个VLAN接口(三层接口)实际上就等同于在VLAN的该口子上插入了一台三层设备 , 只是这台设备是一台虚拟的设备罢了 , 另外和真正插一台设备不同的是 , 由于它是处在本机内部的 , 因此它所配置IP地址当然也就属于本机IP地址了 , 处在路由表的Local域中 。
理解了这一点就会明白 , 实际上配置了VLAN接口的VLAN交换机实际上是往纯VLAN交换机里面硬塞了一台三层设备 , 二者合而为一 , 因此更能加深对“VLAN交换机是一个纯二层的设备”这个观点的认识 。
4.LAN交换机上可以配置IP地址
姑且先抛开VLAN的概念 , 说一下LAN交换机 。 一般以为LAN交换机是纯二层的设备 , 可是知道了VLAN接口的概念后 , 我们发现即使没有VLAN , 也是可以将一台虚拟的三层设备插入到一个LAN交换机的口子上去的 , 其实Linux的软Bridge就是这样做的 , 那么内置了三层虚拟设备的LAN交换机就有了三层的功能 。 这是什么呢?还是以Linux为例 , 在Linux上配置两个Bridge , 分别为br0 , br1 , 在br0上配置IP地址1.1.1.1/24 , 在br1上配置IP地址2.2.2.2/24 , 我们就可以看到br0标示的一个LAN上的流量可以通过br0的IP地址被路由到br1 , 反之 , br1标示的LAN流量也可以通过br1的IP地址路由到br0 , 这是什么?这就是三层交换机 , 一个将路由器接口变成交换机接口的路由器 , 这部三层交换机上拥有两组LAN接口 , 虽然可以略见VLAN的概念 , 但是没有任何标准说这个三层交换机上的两组LAN就是两个VLAN 。

推荐阅读