7数据链路层-vLan(三)

需要计算机网络学习资料的朋友可以自行下载:

https://download.csdn.net/download/fengzhan12138/89460361一什么是VLAN

1、什么是VLAN?

虚拟局域网(Virtual LAN)是物理设备上连接的不受物理位置限制的用户的一个逻辑组。

VLAN(Virtual LAN),翻译成中文是“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络——也就是广播域。

简单来说,同一个VLAN中的用户间通信就和在一个局域网内一样,同一个VLAN中的广播只有VLAN中的 成员才能听到,而不会传输到其他的VLAN中去,从而控制不必要的广播风暴的产生。同时, 若没有路由,不同VLAN之间不能相互通信,从而提高了不同工作组之间的信息安全性。网络 管理员可以通过配置VLAN之间的路由来全面管理网络内部不同工作组之间的信息互访。

2,为什么引入VLAN?

交换机分割了冲突域,但是不能分割广播域;

随着交换机端口数量的增多,网络中广播增多,降低了网络的效率

为了分割广播域,引入VLAN

VLAN的作用/优势:

广播控制(分割);安全性提高;带宽利用效率提高;延迟减少

未分割VLAN时将会发生什么?

那么,为什么需要分割VLAN(广播域)呢?那是因为,如果仅有一个广播域,有可能会影响到网络整体的传输性能。具体原因,请参看附图加深理解。

图中,是一个由5台二层交换机(交换机1~5)连接了大量客户机构成的网络。假设这时,计算机A需要与计算机B通信。在基于以太网的通信中,必须在数据帧中指定目标MAC地址才能正常通信,因此计算机A必须先广播“ARP请求(ARP Request)信息”,来尝试获取计算机B的MAC地址。

交换机1收到广播帧(ARP请求)后,会将它转发给除接收端口外的其他所有端口,也就是泛滥了。接着,交换机2收到广播帧后也会泛滥。交换机3、4、5也还会泛滥。最终ARP请求会被转发到同一网络中的所有客户机上,这也就是网络风暴。

我们分析下,这个计算A的ARP请求原本是为了获得计算机B的MAC地址而发出的。也就是说:只要计算机B能收到就万事大吉了。可是事实上,数据帧却传遍整个网络,导致所有的计算机都收到了它。如此一来,一方面广播信息消耗了网络整体的带宽,另一方面,收到广播信息的计算机还要消耗一部分CPU时间来对它进行处理。造成了网络带宽和CPU运算能力的大量无谓消耗,可能会造成网络瘫痪。

二、VLAN的原理

1、实现VLAN的机制

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

这时,如果在交换机上生成红、蓝两个VLAN;同时设置端口1、2属于红色VLAN、端口3、4属于蓝色VLAN。再从A发出广播帧的话,交换机就只会把它转发给同属于一个VLAN的其他端口——也就是同属于红色VLAN的端口2,不会再转发给属于蓝色VLAN的端口。同样,C发送广播信息时,只会被转发给其他属于蓝色VLAN的端口,不会被转发给属于红色VLAN的端口。

就这样,VLAN通过限制广播帧转发的范围分割了广播域。上图中为了便于说明,以红、蓝两色识别不同的VLAN,在实际使用中则是用“VLAN的ID”来区分的。但是,VLAN生成的逻辑上的交换机是互不相通的。因此,在交换机上设置VLAN后,如果未做其他处理,VLAN间是无法通信的。

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

上面了解了,VLAN是广播域。而通常两个广播域之间由路由器连接,广播域之间来往的数据包都是由路由器中继的。因此,VLAN间的通信也需要路由器提供中继服务,这被称作“VLAN间路由”。VLAN间路由,可以使用普通的路由器,也可以使用三层交换机。大家可以记住不同VLAN间互相通信时需要用到路由功能。

三、VLAN的划分方式

1、静态VALN

基于端口静态路由

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

基于端口的vlan这种方法,主要的优点就是定议vlan的成员很简单明了,思路清楚,直接针对交换机现有的端口设置vlan,哪些端口属于同一个vlan,很清楚的理解。

静态路由的缺点

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

2、动态VLAN

动态VLAN则是根据每个端口所连的计算机,随时改变端口所属的VLAN。这就可以避免上述的更改设定之类的操作。动态VLAN可以大致分为3类:

● 基于MAC地址的VLAN(MAC Based VLAN)

● 基于子网的VLAN(Subnet Based VLAN)

● 基于用户的VLAN(User Based VLAN)

基于MAC地址的VLAN

基于MAC地址的VLAN就是通过查询并记录端口所连计算机上网卡的MAC地址来决定端口的所属。假定有一个计算机的MAC地址为“A”被交换机设定为属于VLAN“10”,那么不论MAC地址为“A”这台计算机连在交换机哪个端口,该端口都会被划分到VLAN10中去。

例如:计算机连在端口1时,端口1属于VLAN10;而计算机连在端口2时,则是端口2属于VLAN10。

基于子网的VLAN

基于子网的VLAN,则是通过所连计算机的IP地址,来决定端口所属VLAN的。不像基于MAC地址的VLAN,即使计算机因为交换了网卡或是其他原因导致MAC地址改变,只要它的IP地址不变,就仍可以加入原先设定的VLAN。

说白了,只要电脑ip地址不变,那么它的vlan就不变,很方便,计算机可以换交换机端口,也可以MAC地址了,都不影响。

基于用户的VLAN

基于用户的VLAN,则是根据交换机各端口所连的计算机上当前登录的用户,来决定该端口属于哪个VLAN。这里的用户识别信息,一般是计算机操作系统登录的用户,比如可以是Windows域中使用的用户名。这些用户名信息,属于OSI第四层以上的信息。

3、总结

综上所述,vlan的设定手法有静态VLAN和动态VLAN两种,其中动态VLAN又可以继续细分成几个小类。

其中基于子网的VLAN和基于用户的VLAN有可能是网络设备厂商使用独有的协议实现的,不同厂商的设备之间互联有可能出现兼容性问题;因此在选择交换机时,一定要注意事先确认。

三、交换机之间的连接方式

如果需要设置跨越多台交换机的VLAN时又如何呢?

方法一

在规划企业级网络时,很有可能会遇到隶属于同一部门的用户分散在同一座建筑物中的不同楼层的情况,这时可能就需要考虑到如何跨越多台交换机设置VLAN的问题了。假设有如下图所示的网络,且需要将不同楼层的A、C和B、D设置为同一个VLAN。如下图:

这时最关键的就是“交换机1和交换机2该如何连接才好呢?最简单的方法,自然是在交换机1和交换机2上各设一个红、蓝VLAN专用的接口并互联了。

但是,这个办法从扩展性和管理效率来看都不好。例如,在现有网络基础上再新建VLAN时,为了让这个VLAN能够互通,就需要在交换机间连接新的网线。建筑物楼层间的纵向布线是比较麻烦的,一般不能由基层管理人员随意进行。并且,VLAN越多,楼层间(严格地说是交换机间)互联所需的端口也越来越多,交换机端口的利用效率低是对资源的一种浪费、也限制了网络的扩展。

方法二

为了避免上面这种低效率的连接方式,人们想办法让交换机间互联的网线集中到一根上,这时使用的就是汇聚链接(Trunk Link)。

何谓汇聚链接?

汇聚链接(Trunk Link)指的是能够转发多个不同VLAN的通信的端口。汇聚链路上流通的数据帧,都被附加了用于识别分属于哪个VLAN的特殊信息。现在再让我们回过头来考虑一下刚才那个网络如果采用汇聚链路又会如何呢?用户只需要简单地将交换机间互联的端口设定为汇聚链接就可以了。这时使用的一根网线还是普通的UTP线,而不是什么其他的特殊布线。图例中是交换机间互联,因此需要用交叉线来连接。

汇聚链接实现跨越交换机间的VLAN的原理

A发送的数据帧从交换机1经过汇聚链路到达交换机2时,在数据帧上附加了表示属于红色VLAN的标记。交换机2收到数据帧后,经过检查VLAN标识发现这个数据帧是属于红色VLAN的,因此去除标记后根据需要将复原的数据帧只转发给其他属于红色VLAN的端口。这时的转送,是指经过确认目标MAC地址并与MAC地址列表比对后只转发给目标MAC地址所连的端口。只有当数据帧是一个广播帧、多播帧或是目标不明的帧时,它才会被转发到所有属于红色VLAN的端口。蓝色VLAN发送数据帧时的情形也与此相同。

四、VLAN间通信的原理

1、同一VLAN内的通信

接下来,我们继续学习使用汇聚链路连接交换机与路由器时,VLAN间路由是如何进行的。如下图所示,为各台计算机以及路由器的子接口设定IP地址。

红色VLAN(VLANID=1)的网络地址为192.168.1.0/24,蓝色VLAN(VLANID=2)的网络地址为192.168.2.0/24。各计算机的MAC地址分别为A/B/C/D,路由器汇聚链接端口的MAC地址为R。交换机通过对各端口所连计算机MAC地址的学习,生成如下的MAC地址列表。

首先考虑计算机A与同一VLAN内的计算机B之间通信时的情形。计算机A发出ARP请求信息,请求解析B的MAC地址。交换机收到数据帧后,检索MAC地址列表中与收信端口同属一个VLAN的表项。结果发现,计算机B连接在端口2上,于是交换机将数据帧转发给端口2,最终计算机B收到该帧。收发信双方同属一个VLAN之内的通信,一切处理均在交换机内完成。

2、不同VLAN间通信时数据的流程

接下来是VLAN间通信的核心内容,不同VLAN间的通信。让我们来考虑一下计算机A与计算机C之间通信时的情况。

过程1、计算机A从通信目标的IP地址(192.168.2.1)得出C与本机不属于同一个网段。因此会向设定的默认网关(Default Gateway,GW)转发数据帧。在发送数据帧之前,需要先用ARP获取路由器的MAC地址。

过程2、得到路由器的MAC地址R后,接下来就是按图中所示的步骤发送往C去的数据帧。①的数据帧中,目标MAC地址是路由器的地址R、但内含的目标IP地址仍是最终要通信的对象C的地址。

过程3、交换机在端口1上收到①的数据帧后,检索MAC地址列表中与端口1同属一个VLAN的表项。由于汇聚链路会被看作属于所有的VLAN,因此这时交换机的端口6也属于被参照对象。这样交换机就知道往MAC地址R发送数据帧,需要经过端口6转发。

过程4、从端口6发送数据帧时,由于它是汇聚链接,因此会被附加上VLAN识别信息。由于原先是来自红色VLAN的数据帧,因此如图中②所示,会被加上红色VLAN的识别信息后进入汇聚链路。路由器收到②的数据帧后,确认其VLAN识别信息,由于它是属于红色VLAN的数据帧,因此交由负责红色VLAN的子接口接收。

过程5、接着,根据路由器内部的路由表,判断该向哪里中继。由于目标网络192.168.2.0/24是蓝色VLAN,,且该网络通过子接口与路由器直连,因此只要从负责蓝色VLAN的子接口转发就可以了。这时,数据帧的目标MAC地址被改写成计算机C的目标地址;并且由于需要经过汇聚链路转发,因此被附加了属于蓝色VLAN的识别信息。这就是图中③的数据帧。

过程6、交换机收到③的数据帧后,根据VLAN标识信息从MAC地址列表中检索属于蓝色VLAN的表项。由于通信目标——计算机C连接在端口3上、且端口3为普通的访问链接,因此交换机会将数据帧除去VLAN识别信息后(数据帧④)转发给端口3,最终计算机C才能成功地收到这个数据帧。

所以进行VLAN间通信时,即使通信双方都连接在同一台交换机上,也必须经过:发送方——交换机——路由器——交换机——接收方这样一个流程。

五、补充

1,广播

广播域,指的是广播帧(目标MAC地址全部为1)所能传递到的范围,亦即能够直接通信的范围。严格地说,并不仅仅是广播帧,多播帧和目标不明的单播帧也能在同一个广播域中畅行无阻。本来,二层交换机只能构建单一的广播域,不过使用VLAN功能后,它能够将网络分割成多个广播域。

广播的应用

实际上广播帧会非常频繁地出现,应用也十分广泛。利用TCP/IP协议栈通信时,除了前面出现的ARP外,还有可能需要发出DHCP、RIP等很多其他类型的广播信息。ARP广播,是在需要与其他主机通信时发出的。当客户机请求DHCP服务器分配IP地址时,就必须发出DHCP的广播。而使用RIP作为路由协议时,每隔30秒路由器都会对邻近的其他路由器广播一次路由信息。RIP以外的其他路由协议使用多播传输路由信息,这也会被交换机转发(Flooding)。

除了TCP/IP以外,NetBEUI、IPX和Apple Talk等协议也经常需要用到广播。例如在Windows下双击打开“网络计算机”时就会发出广播(多播)信息。(Windows XP除外……)

总之,广播就在我们的身边。

常见的广播通信:

  • ARP请求:建立IP地址和MAC地址的映射关系。
  • RIP:一种路由协议。
  • DHCP:用于自动设定IP地址的协议。
  • NetBEUI:Windows下使用的网络协议。
  • IPX:Novell Netware使用的网络协议。
  • Apple Talk:苹果公司的Macintosh计算机使用的网络协议。

如果整个网络只有一个广播域,那么一旦发出广播信息,就会传遍整个网络,并且对网络中的主机带来额外的负担。

因此,在设计LAN时,需要注意如何有效地分割广播域。

2,VLAN的汇聚方式(IEEE802.1Q与ISL)

在交换机的汇聚链接上,可以通过对数据帧附加VLAN信息,构建跨越多台交换机的VLAN。附加VLAN信息的方法,最具有代表性的有:

    • IEEE802.1Q
    • ISL

两种协议分别对数据帧附加VLAN信息解析

01 IEEE802.1Q

IEEE802.1Q,俗称“Dot One Q”,是经过IEEE认证的对数据帧附加VLAN识别信息的协议。在此,请你先回忆一下以太网数据帧的标准格式。IEEE802.1Q所附加的VLAN识别信息,位于数据帧中“发送源MAC地址”与“类别域(Type Field)”之间。具体内容为2字节的TPID和2字节的TCI,共计4字节。在数据帧中添加了4字节的内容,那么CRC值自然也会有所变化。数据帧上的CRC是插入TPID、TCI后,对包括它们在内的整个数据帧重新计算后所得的值。

而当数据帧离开汇聚链路时,TPID和TCI会被去除,这时还会进行一次CRC的重新计算。TPID的值,固定为0x8100。交换机通过TPID,来确定数据帧内附加了基于IEEE802.1Q的VLAN信息。而实质上的VLAN ID,是TCI中的12位元。由于总共有12位,因此最多可供识别4096个VLAN。

基于IEEE802.1Q附加的VLAN信息,就像在传递物品时附加的标签。因此,它也被称作“标签型VLAN(Tagging VLAN)”。

02 ISL(Inter Switch Link)

ISL,是Cisco产品支持的一种与IEEE802.1Q类似的、用于在汇聚链路上附加VLAN信息的协议。使用ISL后,每个数据帧头部都会被附加26字节的“ISL包头(ISL Header)”,并且在帧尾带上通过对包括ISL包头在内的整个数据帧进行计算后得到的4字节CRC值。换而言之,就是总共增加了30字节的信息。在使用ISL的环境下,当数据帧离开汇聚链路时,只要简单地去除ISL包头和新CRC就可以了。由于原先的数据帧及其CRC都被完整保留,因此无需重新计算CRC。

ISL有如用ISL包头和新CRC将原数据帧整个包裹起来,因此也被称为“封装型VLAN(Encapsulated VLAN)”。需要注意的是,不论是IEEE802.1Q的“Tagging VLAN”,还是ISL的“Encapsulated VLAN”,都不是很严密的称谓。不同的书籍与参考资料中,上述词语有可能被混合使用,因此你在学习时需要格外注意。并且由于ISL是Cisco独有的协议,因此只能用于Cisco网络设备之间的互联。

  • 12
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瞎折腾啥啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值