今天讲解一下三层交换机的工作原理。
在此篇文章中,有一些内容会涉及我之前发表的两篇文章中的内容,这部分内容我在这里就不一一详细解答,毕竟文章不能太长否则阅读起来会比较耗时间和体验不好等,读者们可以翻一下我发表的两篇文章,分别是:
《畅游网络世界:OSI七层模型》
《畅游网络世界:设备篇之二层交换机》
通过上一篇文章我们都知道二层交换机是工作在OSI七层模型中的第二层,也就是数据链路层,说到这里想必大家也能猜到了三层交换机工作在第三层了,但是这个答案只回答正确了50%,正确来说,单独工作在第三层的设备叫做'路由器',而三层交换机则是同时工作在第二层和第三层。
1.1、三层交换机的用途
三层交换机的用途比较广泛,一般用在企业网中的核心层和汇聚层提供高速路由转发等服务。
一般稍大型的企业网核心交换机都会用到'框式交换机'。
中大型企业网按照网络设备架构来划分可以划分为三部分,核心层、汇聚层、接入层,各个层次分工明确。
举个例子:接入层一般是负责二层通讯,汇聚层通常负责部门内部的三层通信,核心层通常是负责部门之间和分公司和总公司之间的三层通信。
三层交换机同时具备二层交换机的功能和路由器的功能,我们可以理解成二层交换机和路由器的合体!(二层的功能就不说了,因为已经讲解过了。)
通过上一篇文章《带你走进网络世界:硬件篇-二层交换机》我们知道理论上只需要依靠MAC地址和广播这两项技术(二层交换技术),在广州的网卡发出的数据包就可以被在上海的网卡接收了这样就可以互相通信了,但如果全世界的计算机都是在用这种方式进行通讯的话,那么每一台计算机发出的数据包都会以广播的形式被全世界的电脑接收,全世界的电脑再一一进行分析,这种方式是非常低效的,且间接造成了非常大的资源浪费。
因此我们必须找到一种方法,区分哪些MAC地址属于同一个子网,如果是同一个子网就采用广播,如果不是,则采用'路由'的方式发送,但是这个功能不是MAC地址技术所具备的,这也间接地导致了网络层的出现,网络层的作用是引入一套新的地址,使我们能够区分哪些计算机属于同一个子网,这个套机制就叫做'网络地址',也就是我们常说的'IP地址'。
摘自:《带你走进网络世界:互联网之基石-OSI七层模型》
总结:三层技术就是IP通信技术
3.1、什么是VLAN
这里我粗略说一下,因为VLAN涉及的东西比较多以后会写一篇文章详细讲解一下,VLAN中文名叫'虚拟局域网'是交换技术中非常重要的一个技术,也是最为常用的技术之一,VLAN同时工作在第二层和第三层。
要说到VLAN就不得不提广播域,因为VLAN就是为分割广播域而生的,因为VLAN的作用主要是分割广播域,那广播域是什么呢?
下面通过一个例子来说明一下:
广播域就是一个网络,假设这个网络里面有100台电脑,电脑A和电脑B都在这个网络里,电脑A并不知道电脑B在具体在那个位置,那么电脑A就在网络内发送广播帧找电脑B,(其实电脑A发送广播帧的目的只是为了找到电脑B),那么整个网络里面所有的电脑都会收到并且处理电脑A所发送的广播帧,然后发现电脑A并不是找自己就不理会电脑A了,然后只有电脑A要找的电脑B会作出回应,那么网络里其他的98台电脑其实并不需要接收电脑A的广播帧,因为电脑A发送的广播帧跟他们无关,因为其他的98台电脑都花了时间和性能处理电脑A发送的广播帧,那么电脑A间接就浪费了其他的98台电脑的时间和性能。
那么如果把这个网络分成4个小的网络,每一间房间容纳25台电脑,那么电脑A再网络里发送广播帧找电脑B就只有房间里的另外24个人能接收到了,这样就不会浪费其他的75个台电脑的时间和性能了,这就是分割广播域的目的之一。
注意:电脑A第一次找到电脑B之后就会记录下电脑B的位置,下次在找电脑B就会通过'单播'去找电脑B了。
拓展阅读:除了'广播'、'单播'之外还有'组播'。
组播:就是同时跟一群人对话,就像是公司领导在开会给我们训话……。
单播:一对一对话。
广播:在场的所有人都能听到我说话。
看到这里大家应该知道了,四个小网络就是VLAN,分割了一个大的网络(广播域),但是分割后的网络(广播域)依然是网络(广播域),只不过是比以前小了而已。
那么有人提出里疑问,如果电脑A和电脑B不在同一个房间里,那电脑A就算发送再多的广播帧也找不到电脑B啊,这不就是不能通信了吗,这个理解没错,确实是不能通信了,那么在这个时候如果电脑A要找到在别的网络的电脑B就必须要走'网关(三层)'也就是OSI七层模型中的第三层网络层,'网关'我们可以理解成在四间网络之间新建一个网络,这个网络里面一个'网关',网关里面有记录着所有电脑的清单(路由表),清单里面记录着所有电脑的具体位置,如果这个时候电脑A又要找电脑B,电脑A还是不知道电脑B在哪里,那么电脑A还是会发送广播找电脑B,那么这个时候除了网络里面的电脑会收到电脑A的广播帧,还有'网关'也会收到,网关收到电脑A广播帧之后,就会查询自己的清单,那么这个时候网关就知道电脑B在那个网络了,那么网关就会对电脑B所在的网络发送一个广播帧找电脑B,电脑B也会作出回应,然后网关就会告诉电脑A,'电脑B在我这,你有什么话要跟他说就跟我说吧',然后电脑A就会认为电脑B是在网关哪里,接下来所有要对电脑B说的话都先传给网关,再由网关发送给电脑B。
实验在下方,继续往下滚动!
66:客户机发出广播要找192.168.1.40
67:网关(三层)回应
68:通信开始
注意:整个通讯过程中,楼主是不会把电脑A的原话传递给电脑B的,为什么呢?因为'三层'是不会转发广播帧的。
(上述的整个传递过程中会涉及二层的通信技术)
那么说道这里大家都知道为什么要分割广播域了,实际情况中一个客户端(PC)会因为各种业务需求发送很多广播帧,如果局域网中只有几十台电脑问题并不是很大,但如果局域网中有上百,上千台电脑呢?那每秒钟有多少个广播帧发出去,而且每一个广播帧都会被局域网中的每一台电脑接受到,单单是广播帧已经可以造成网络阻塞了,如果是爆发了病毒或者被攻击等等,那么全网的电脑也就这样中招了,所以分割广播域是非常有必要的。
(分割广播域不单单是为力阻断广播帧,这里就不一一细数了。)
划分VLAN的好处:
1、 广播被限制在一个区域内,有效节省网络带宽和资源。
2、 增强安全性,故障和环路仅仅限制在同一个VLAN内,不会影响到其他VLAN。
总结:VLAN就是一个能够分割广播域的技术。
3.2、VLAN间通信
下面来说一下VLAN之间是如何进行通信的,我们通过一个简单的小实验来讲解。
上面体提到VLAN间通信必须通过三层设备,所以必须要有一台三层交换机或者路由器。
下面实验 使用ENSP 软件来模拟。
从上述拓扑图来看,PC1和PC2分别在VLAN10和VLAN20中。
SW1是三层交换机
SW3是二层交换机
不要问我SW2去哪里了,我也不知道!
SW1配置:
首先我们在SW1交换机新建 VLAN10和VLAN20 #在系统视图 直接输入vlan 10 即可创建vlan10
然后通过命令,为两个VLAN添加IP地址。
Interface vlan 10 #进入vlan10
Ip address 192.168.1.1 24 #添加IP地址(quit:退出命令)
进入链接SW3交换的接口(拓扑图中的GE0/0/1口)
Interface GE 0/0/1 #进入GE 0/0/1 接口
Port link-ty trunk #将接口口设置成 'Trunk'
port trunk allow-pass vlan all #然后允许所有VLAN通过
到此完成配置
SW3配置:
首先我们在SW3交换机新建 VLAN10和VLAN20 #在系统视图 直接输入vlan 10 即可创建vlan10
然后进入链接SW1的接口
Interface Ethernet 0/0/1 #进入Ethernet 0/0/1 接口
Port link-ty trunk #将接口口设置成 'Trunk'
port trunk allow-pass vlan all #然后允许所有VLAN通过
然后进入链接两台电脑的接口
Interface Ethernet 0/0/2 #进入Ethernet 0/0/2接口
Port link-ty access #将接口口设置成 'Access'
port default vlan 10 #将此接口加入vlan 10
按照上述的命令把Eth0/0/3加入vlan20
然后将两台电脑设置好IP地址 例如PC1在VLAN10下面就如下设置
IP地址:192.168.1.10
子网掩码:255.255.255.0
网关:192.168.1.1 (VLAN10的IP地址)
PC2同理。
配置完毕两台电脑已经可以互相访问了
下面重点来了:为什么为VLAN配置上IP地址之后就能够互相访问?
我们来看看SW1的路由表(楼主的名单)就能明白了。
为VLAN配置上IP地址,路由器就会自动生成'直连路由'(Direct 就是直连路由)
假设PC1要访问PC2那么PC1就会发出报文
然后'网关(192.168.1.1)'会收到该报文,然后查询路由表再进行转发(过程就是上面我说的电脑A电脑B和楼主的小故事)。
联系客服