Linux实现的IEEE 802 1Q VLAN

本文深入探讨了VLAN的核心概念,包括交换机端口的access、trunk和hybrid类型,以及同一VLAN和不同VLAN间的通信情况。在Linux上实现VLAN,可以通过路由器接口、虚拟接口ethx.y或Bridge设备来配置,并强调了正确配置路由的重要性。文章最后总结了关键知识点,是理解Linux VLAN配置的实用指南。
摘要由CSDN通过智能技术生成
               

第一部分:VLAN的核心概念

说起IEEE 802.1q,都知道是VLAN,说起VLAN,基本上也没有盲区,网络基础。然而说到配置,基本所有人都能顺口溜一样说出Cisco或者H3C设备的配置命令,对于Linux的VLAN配置却存在大量的疑问。这些疑问之所以存在我觉得有两点原因:
1.对VLAN的本质还是没有理解。
不管你的Cisco/H3C命令敲得再熟练,如果看不懂Linux的vconfig,那么也将无法掩饰你对概念理解的浅显;
2.对Linux实现虚拟网络设备风格不熟悉

可能你已经十分理解802.1q了,也许还看过了IEEE的文档,然而却对Linux的Bridge,tap,bond等虚拟设备不是很理解,那么也将无法顺利配置VLAN。

对于VLAN概念的理解,有几点要强调:
1.VLAN分离了广播域;
2.单独的一个VLAN模拟了一个常规的交换以太网,因此VLAN将一个物理交换机分割成了一个或多个逻辑交换机;
3.不同VLAN之间通信需要三层参与;
4.当多台交换机级联时,VLAN通过VID来识别,该ID插入到标准的以太帧中,被称作tag;
5.大多数的tag都不是端到端的,一般在上行路上第一个VLAN交换机打tag,下行链路的最后一个VLAN交换机去除tag;
6.只有在一个数据帧不打tag就不能区分属于哪个VLAN时才会打上tag,能去掉时尽早要去掉tag;
7.最终,IEEE 802.1q解决了VLAN的tag问题。除了IEEE 802.1q,其余的都是和实现相关的,虽然Cisco和H3C的实现很类似,Linux可以和它们有大不同。

关键看最后3点,也就是3,4,5。这是VLAN最难理解的部分,不过一旦理解了,VLAN也就不剩下什么了。为了使得叙述上以及配置上更加的方便,Cisco以及其他的厂商定义了很多的细节,而这些细节在IEEE 802.1q标准中并没有被定义,这些细节包括但不局限于以下几点:
1.每一个VLAN交换机端口需要绑定一个VLAN id;
2.每一个VLAN交换机端口处于下面三类中的一类:access,trunk,hybrid。
2.1.access端口:从此类端口收到的数据帧是不打tag的,从此类端口发出的数据帧是不打tag的;
2.2.trunck端口:从此类端口收到的数据帧打着tag,从此类端口发出的数据帧需要打tag(不考虑缺省VLAN的情况);
2.3.hybrid端口:略
我们实则没有必要去深究Cisco/H3C的命令以及到底那三类端口类型有何区别,之所以有三类端口类型完全是为了将VLAN的概念(最终的IEEE 802.1q标准)很方便的用起来。说白了,trunk端口的存在是因为不得已,因为有属于多个VLAN的数据帧要通过单一的物理链路,不打tag是无法区分各自属于哪个VLAN的,于是就有了IEEE 802.1q这个标准,定义了一个tag插入到以太帧中,为了使这个理论性的东西被使用起来,厂商便定义了一系列的概念性的东西,比如和tag相关的链路就是trunk链路之类。
        于是乎,我们可以完全抛开任何的配置命令,抛开任何厂商定义的东西,完全按照IEEE 802.1q标准以及我们的需求来理解VLAN
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值