这些就不是计网的研究重点了,而是细化到了设备功能上。此次将完成交换机的原理和配置
我们在区分几层设备时就是根据是否能识别到哪一层的信息。比如:集线器仅能识别比特流,交换机可以识别二层设备,路由器则是三层设备和二层设备,物理层无法识别任何设备等等。。。
交换机的前身是Hub集线器(被淘汰了已经)随后发展成了交换机。集线器没有识别信息的能力,它只会把接收到的data进行多份拷贝后泛洪发送给连接到的设备。不过现在有个东西叫做MLS(既有交换机的功能也有路由器功能)。
它可以精确转发二层的data。交换机(Switch)可以用泛洪的方式转发数据。(前提是没有找到数据的前往的目标地址)所谓泛洪就是给自己所连的所有设备都发送一遍信息。
上图为数据的封装过程
交换机内部有一个表,记录了哪些设备连接到了交换机,它可以基于mac地址进行转发。如果收到了冲突碎片和诡异的报文也会进行丢弃。
如果交换机可以通过集线器连接多个PC机,PC机们会统一发送Data,那么会产生冲突域,这时冲突到Switch就会停止,因为Switch会进行丢弃。
注:以上只是假设连接到Hub上,其实现在Switch的每个接口可以隔离一个冲突域。如果没有Hub接入而是通过线缆的话,冲突是不会产生的。
传统网络中,用CSMA/CD的方式解决冲突区域问题。主要解决了同一介质上,多个节点共享链路带宽争夺使用权的问题。但交换机隔离了冲突域。
交换机的表项全是单播表项
单播:一对一的形式,目的mac和源mac一致。
组播:一对多形式,源Mac地址为单播,目的mac为组播
广播:一对多形式,一个人发,一个网络中的人都能收到。
这就说明了,你用一个组播地址或广播地址通过Switch发送数据,Switch无法识别,会进行泛洪。这个泛洪会向连入Switch的所有节点进行转发,因此对于Switch来说,连入它的节点属于一个广播域。
Switch泛洪基于Vlan,而HUB的全发时数据全发。
三种转发机制——转发,泛洪,丢弃
以太网二层Switch端口均是以太网口,仅能对数据的二层头部(以太网的数据帧头)中的MAC地址进行寻址转发data
注:最好不用静态方式配置mac地址表项。除非删除表项,否则会永久存在,不好处理使用。动态获取比较好
Switch通过一个接口收到一个data帧,通过帧的源mac地址和接收接口和其所属VLAN就可以形成信源的MAC地址表项。
Switch存在老化计时器(Aging timer)动态获取到表项,如果(默认五分钟)没有收到刷新,就会删除。
Switch在转发单播帧时会查看路由器的mac表是否有目的MAC,有则发。(它也会判断该数据帧是否是从传输介质进入交换机端口的)
Switch可以获取主机MAC地址表,在PC1发送ARP请求后应答时,Switch会收到PC2的表项。
注:PC和Switch通过网卡转发数据
Virtual Local Area Network 虚拟局域网。VLAN不受地域限制,同一个VLAN内的设备才能进行二层通信。一个接入接口只能绑定一个VLAN,但是PC机连入的时候并不知道它连入了交换机的哪个接口,因此PC机没有VLAN的概念。
一个接口的PVID仅仅有一个,PVID就是我所绑定的VLAN。PVID=Port VLAN ID端口
创建VLAN是需要标记的,可以创建的VLAN范围在1-4095之间。默认的VLAN标记为1,它也叫做本征VLAN
如何让交换机识别数据帧的所属VLAN,就需要在报文中添加标识VLAN的信息字段,就可以让VLAN被交换机识别到。
在IEEE 802.1Q协议里面规定,在以太网数据帧中加入4个字节的VLAN标签,又叫VLAN Tag 简称为Tag
其中Tag标签中:(共6字节)
TPID(0x8100) | PRI | CFI | VLAN ID |
---|---|---|---|
16bit | 3bit | 1bit | 12bit |
TPID(标签协议标识符):表示数据帧类型,值为0X8100时表示802.1Q帧
PRI(优先级):标识帧的优先级用于QOS
CFI(标准格式指示符):以太网中数值为0
Vlan ID(所属Vlan):可以创建的VLAN数量
上图为vlan构成和所处位置
VLAN接入方式:
VLAN接入方式有三种——Access接入,Trunk接入,Hybrid接入
Access接口:Switch用来重连接用户PC,服务器等终端设备接口。一般这些端口都是只发送无标记帧,Access接口仅能加入一个VLAN。
Trunk接口:允许多个VLAN数据帧通过,Trunk用于Switch互连或只与路由器,防火墙等子接口相连。
Hybrid接口:与Trunk接口类似,用户可以指定发送某个Vlan的数据是否携带Tag,做动态VLAN部署使用。
注:Hybrid接口为杂合接口,华为默认开启Hybrid接口。但是一般不用它,它会让不同vlan之间发生通信,而我们划分vlan就是为了Vlan内通信。杂合接口是接入与中继合二为一的接口。
上图为转发特点
原理:根据数据的源mac地址来划分VLAN。网络管理员先预先配置mac地址与VLAN ID映射关系表。当交换机收到untagged帧时,依据根据去往数据目的地来添加指定VLAN的Tag。然后将其数据在指定Vlan里面传输。
例如:如果一个Trunk接口为PVID为5,端口下配置的Port Trunk allow-pass vlan 2,3。那么哪些Vlan可以通过。
答:1,2,3。因为华为默认允许Vlan1可以通过,但是PVID为5,指的是我收到untagged的数据帧会以为是来自Vlan5的帧,当通过Vlan 5发送的时候,因为没有设置Vlan5,我虽然可以接收,但是不能发送。
上图为VLAN划分的原则和建议
华为的交换机默认端口都是hybird类型,hybird为杂合接口,同时具备acces和Trunk的功能,我们可以手动操作更改类型。
PVID为端口VLAN标识符,代表了指定接口连接哪个VLAN。Access接口接收数据后,如果带有VLAN标记的帧,先查看VLAN标记的是否为PVID的VLAN标记。是就接收,否则拒绝接收;如果不带VLAN标记,直接认为是来自PVID VLAN的则打上标记做转发。对于经过这个接口的流量,只能发送PVID VLAN流量,这个标记会去除,以默认帧的形式流过接口。而Trunk中的PVID相当于接口的本征VLAN。
此次实验拓扑及部分信息如下:
首先我们配置好PC的IP地址和掩码后,我们先检测下连通性(以PC1为例):
可以发现都是可达的
其次,我们要创建vlan 10和vlan 20(以SW1为例):
接下来,我们要对VLAN进行划分,让处于同一VLAN的设备可以互访,而不同VLAN设备不能互访。根据我们的理论,交换机之间需要设置为Trunk模式,而交换机与用户PC机之间需要设置为Access模式。
Access模式配置(以PC1到SW1的接口为例,其余同理):
Trunk模式配置(以SW2为例,SW1为相同配置):
我们可以通过命令查看vlan划分的情况(以SW1为例):
最后通过PC1进行测试,可以发现与PC1同属于一个Vlan的PC4可以与之互通,其余设备因为不在同一Vlan,因此不通。
华为有一个Vlan同步的概念,可以同一时间在所有连接的设备上同步创建VLAN。这个东西就是个小简便操作,防止创建了一堆Vlan结果忘记了都有什么Vlan了
拓扑如下图(本次实验以SW3为例):
所有设备之间先设置为Trunk模式
其次,在所有设备的系统模式下、接口模式下开启GVRP(以SW1为例)
之后我们创建Vlan,因为gvrp的影响,所有设备都可以同步创建。
除了原理要明白外,还要懂得灵活运用。不过VLAN没有什么特别的。至于命令就是熟练度的问题,但是不能说机械似的敲命令。