提醒:因为软件开发行业无明确禁止法规, 该企业仅提供软件开发外包定制服务,项目需取得国家许可,严禁非法用途
当前位置: 首页 » 资讯 » 电商 » 正文

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

发布日期:2023-06-21 08:14:21     浏览次数:13
核心提示:熟悉linux系统用户都了解,在Linux系统中VLAN,三层交换和Trunk是三个容易混淆概念。如果对这三个概念只是一知半解,就会不可避免绕一些弯路,浪费不少时间。

熟悉linux系统用户都了解,在Linux系统中VLAN,三层交换和Trunk是三个容易混淆概念。如果对这三个概念只是一知半解,就会不可避免绕一些弯路,浪费不少时间。下面,小编就给大家介绍Linux系统VLAN、三层交换和Trunk区别详解。


Linux系统

和三层没有任何关系

如果先不提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到底和上述简单配置有什么不同呢?这就涉及到了标准。

和三层没有任何关系

如果一个VLAN交换机上配置了两个VLAN,分别为VLAN1和VLAN2,另外几台VLAN交换机上可能也需要配置VLAN1和VLAN2,毕竟单独一台机器口子有限,因此对于组网,不级联拓扑是很少见,现在关键问题就是需要让处在不同VLAN交换机口子可以属于同一个VLAN,即属于同一个广播域。办法很简单,那就是每一个VLAN用一个线将两个VLAN交换机上属于同一个VLAN口子连起来,如果两台交换机上分别有3个VLAN,那就扯3根线。。。这不得不说是一个好方法,但决不是一个妙方法。对于硬件上体力活儿,软件一般都能很好解决,这一次,又是软件帮了忙,正如VLAN概念提出时那样。

Trunk标准提出来了,所谓Trunk就是可以让多个VLAN在两个交换机级联时复用一根线,因此软件上需要对数据帧做一些文章,以便数据帧到达另一个交换机时候知道自己属于哪个VLAN从而限制帧传输域,正是做这个,从而这也成了VLAN核心。Trunk只是简化了布线,降低了硬件成本,这是一个通过软件降低硬件成本绝好例子。

既然Trunk可以通过多个VLAN数据,那么实际上Trunk是将广播域延伸到了另外一台交换机上,而对于LAN,其广播域延伸到哪里,LAN也就延伸到了那里。事实上这并不与VLAN初衷之一-限制广播域相冲突,Trunk将广播透传时候是打着VLAN id标记,也就是说广播除了可以在Trunk上或者在自己VLAN内部传输,是决不会到达其它VLAN里面,如果一个广播到达了这样一个交换机,其上既没有别Trunk口,也没有广播携带VLAN id对应VLAN,那么广播也就到此为止而消失了。

到此为止,丝毫没有任何第三层概念出现。

接口概念

VLAN接口概念和Linux上Bridge实现十分相像,就是可以为一个VLAN配置一个或者多个接口,在该接口上可以指定三层IP地址,在VLAN某一个口子(物理二层接口)上配置这样一个VLAN接口(三层接口)实际上就等同于在VLAN该口子上插入了一台三层设备,只是这台设备是一台虚拟设备罢了,另外和真正插一台设备不同是,由于它是处在本机内部,因此它所配置IP地址当然也就属于本机IP地址了,处在路由表Local域中。

理解了这一点就会明白,实际上配置了VLAN接口VLAN交换机实际上是往纯VLAN交换机里面硬塞了一台三层设备,二者合而为一,因此更能加深对“VLAN交换机是一个纯二层设备”这个观点认识。

交换机上可以配置IP地址

姑且先抛开VLAN概念,说一下LAN交换机。一般以为LAN交换机是纯二层设备,可是知道了VLAN接口概念后,我们发现即使没有VLAN,也是可以将一台虚拟三层设备插入到一个LAN交换机口子上去,其实Linux软Bridge就是这样做,那么内置了三层虚拟设备LAN交换机就有了三层功能。这是什么呢?还是以Linux为例,在Linux上配置两个Bridge,分别为br0,br1,在br0上配置IP地址.1/24,在br1上配置IP地址.2/24,我们就可以看到br0标示一个LAN上流量可以通过br0IP地址被路由到br1,反之,br1标示LAN流量也可以通过br1IP地址路由到br0,这是什么?这就是三层交换机,一个将路由器接口变成交换机接口路由器,这部三层交换机上拥有两组LAN接口,虽然可以略见VLAN概念,但是没有任何标准说这个三层交换机上两组LAN就是两个VLAN。

可见,三层交换机可以和VLAN没有关系。
[page]

5.以太网三层交换机

从上述第4节可以看出,三层交换机可以和VLAN没有关系,然而实际情况下,三层交换机一般都支持VLAN,为何设备厂商要如此做呢?这涉及到一个工业设计问题,工业上设计主要关注产品使用而不是理论上合理性,因此将VLAN引入第4节“两组LAN”是最合适不过了。

另外,三层交换机本质上还是偏重于“交换机”而不是“三层”,交换机特征就是交换,所谓交换是一个快速转发概念,基本都是使用硬件芯片完成,大量存储芯片以空间换时间完成快速交换,这得益于以太网帧头简单易操作性以及LAN交换机设计时关注了基于源MAC自动学习和基于目标MAC转发,之所以能如此还是因为以太网是一个BMA,即广播网络,到底数据应该由谁接收不是交换机决定,而是各个端点主机决定,这样话交换机就可以模糊进行转发,做到尽可能精确-通过源MAC/端口学习,大不了就广播。这就是以太网交换特征,三层交换机可以利用以太网交换大量存储芯片用来存储IP层路由结果,利用以太网快速交换思想用来进行三层转发,数据包第一次通过还是要走三层,这相当于一次学习过程,类似以太网MAC/端口学习,以后结果就可以存储于ASCI了,这样就完成了快速转发。

6.三层交换机和路由器区别

这个问题答案铺天盖地,然而内容也是千篇一律,很少有人研究其背后原因。既然以太网三层交换机可以做到一次路由多次转发,那么为何不再WAN上使用呢?如果仅仅是因为WAN不一定是以太网话,那大可为了性能在WAN上引入以太网技术,这并不是主要原因,实际上,如果再深入一点看一下WAN上路由器和接入层路由器路由表就会恍然大悟了,WAN路由器上表项数量十分庞大,且在BGP影响下虽不频繁但是还是会有刷新,如果使用硬件来转发话,光是对存储空间需求就是一个挑战,三层交换机快速转发实际上用到了cache概念,有cache就会有冲突,特别在WAN环境下,IP地址变动,可达性信息变动会导致大量cache冲突,因此三层交换机带来收益会被马上抵消,另外WAN环境实际上用不到很多交换机口子,因此三层交换机内部背板芯片布线对于WAN环境是不合理。其实用不着为WAN性能担心,WAN路由器早就使用了类似Cisco CEF快速转发技术了。

三层交换机使用场合是单个小型机构内部,因为这种地方特定IP地址几乎不会变动,路由相对稳定,IP地址总量也不多,且路由基本都能汇聚,正好符合cache最优化使用原则,三层交换机用武之地正在于此。

间通信

这个问题方案也是铺天盖地,答案同样千篇一律。VLAN间通信方式被总结出来有两种:1.使用单臂路由方式;2.使用三层交换方式。这好像是从CCNP/CCIE或者华为HCSE考试指南中流出来,如果背下来当然是有用,当初我考HCSE时候还背了呢。学习到了一定程度就应该抛弃答案,回归本质。两个VLAN间通信其实就是两个LAN间通信,两个LAN间通信需要一个网关来路由,那么VLAN间通信也就需要一个网关来路由了,这个网关选择就多样了,可以选择VLAN接口,可以选择路由器等等,最终具体属于一个VLAN主机在访问另一个VLAN主机时如何能寻址到这个三层接口,那也有很多选择,VLANaccess链路上帧保持原样,流量若要跨越交换机级联线,那么需要通过Trunk链路,最终总能找到这个下一跳三层接口。

以上就是Linux系统VLAN、三层交换和Trunk区别详解,获取实用知识分享请持续关注测试笔记。

头条分类

免责声明:本站所有信息由各公司自行发布,请在交易前确认真实合法性,本站不承担任何交易及此类作品侵权行为的直接责任及连带责任!