vlan:virtual Lan(虚拟端口局域网划分技术)
在传统的网络划分的端口里面,只能使用路由器的接口类型不相同来隔离广播域,但是会出现的原因是导致所有的网路设备都处在同一广播域内,所以自然而然的就出现了一种新型的网络端口划分的模式叫做vlan技术划分
再写的大白话一点就是,你现在和班里同学处于一个教室,但是有一批人和另外一批人闹了小矛盾谁也不想和谁玩,所以你们在教室中间划分了一条所谓的三八线(楚河汉界),这条线以左(vlan10)的人一起玩,线右面的人(vlan20)一起玩,虽然是同一个教室,但是却互不影响,如果还有其他人和这边的人还有矛盾那就再划一条线这片区域内的人一起玩可以叫做(vlan30)(白话文举个列子,仅仅是为了通俗易懂而已没有分裂班级矛盾的意思,感觉这样讲会很通俗易通了吧)
vlan:vlan通过划分交换机设备端口的方式,将一个物理局域网划分为多个逻辑局域网从而可以达到隔离广播域的问题
第一种端口类型:access端口(access端口是基于pc端发送端的一种类型的端口)
access端口仅属于一个vlan通过,这也就是交换机不能用access端口的原因
喜欢打篮球的(pc1) (vlan10) 喜欢打篮球的(pc2)(vlan10)
(vlan10/20)sw1-----sw2(vlan10/20)
喜欢踢足球的 (pc3) (vlan20) 喜欢踢足球的(pc4)(vlan20)
tips:vlan10/20只是vlan的一种格式标签,没有特殊含义,默认的vlan标签为vlan1
第二种类型端口:trunk类型的端口(trunk是一种基于交换机类型的一种端口)
trunk类型的端口仅属于一个vlan,但能允许多个vlan通过,这就是此端口适用于交换机的原因
如果说不是能很好的理解trunk类型端口的前面的那句话,再拿教室举例子的话就是它相当于一个老师,双方对老师都没有矛盾,无论有什么问题双方都可以从老师这里解决问题
假设sw1或者sw2只单独包含了vlan10或vlan20的一种标签,那么这样出现的弊端会是要么只能含有携带vlan10或者vlan20的标签单独通过,所以这样显然是不合理的,所以就出现了trunk端口来携带多标签通过(图在上面)
上方的所有问题都属于的是vlan的设备配置类型的问题
接下来要说明的是vlan配置完以后pc端发出报文所实现的一系列的操作
所有端口的工作机制的原理是为所有进出的报文打上或者剥离vlan标签来实现的
vid的取值范围为0-4095
access端口:
收到无tag的标签,access端口来进行打上标签(pvid)
收到有tag的标签,aceess端口分析,如果pvid=tag则剥离标签进行通过,如果pvid!=tag,如果后面有存在的标签则通过,如果没有则就进行丢弃
trunk端口:
收到无tag的标签,trunk端口来进行打上标签(pvid)
收到有tag的标签,trunk端口分析,如果pvid=tag则剥离标签进行通过。如果pvid!=tag,如果存在trunk类型具有的vlan标签则选择所带有vlan标签的进行通过
当pc端发送报文出去后(此时假设没有任何的vlan标签)sw交换机会打上vlan标签进行通过,此时
s.mac/d.mac | vlan | ip(s.ip/d.ip) | Icmp(ping) |
这里普及一个概念叫做Mac地址表:
mac地址表是基于交换机中的一种表,用于查找所对应的端口和vlan所划分区域
在初期讲mac地址表的时候可能只会提到端口和mac地址,其实mac地址还有vlan区域,当交换机设备收到一个广播报文,未知的单波帧的时候,交换机会查mac地址发现是否有无对应的端口和是否存在于同一片vlan区域内,并在此端口内除了向发送端口的其他端口进行转发
如果设备发出一个未知的单播帧,广播帧,组播帧,只要vlan不在同一个vlan范围内,就不会收到响应的帧的接收,再大白话一点就是别的教室吵架不关我们教室什么事情,我们最多吃吃瓜,但是不插手,这也就是为什么vlan虚拟划分能够隔离广播域的原因
在查找完mac地址表以后将报文发送到下一个交换机的时候进行标签的剥离并且发送到最后一个pc端,这里拿两台交换机和两台pc端来进行实现的,如果有多个则进行重复的流程,直到报文可以进行正常的转发到所要到达的目的端
所以最后pc端无论是接收到报文还是发送报文的时候都不存在vlan标签,只有正常的封装协议会转发出去
hybrid端口:hrbrid端口在没有标签的时候会进行和access端口一样的操作来打上标签,区别在于pvid要有untag或者tag才能够进行生效,如果有标签的话和其他端口一样剥离标签或者丢弃
如果要进行特定的访问的时候可以更改端口类型为hybrid端口 例如打篮球要和打棒球的互访但不和踢足球的进行访问,这时候就可以通过利用hybrid untag/tag的标签来进行隔离达到互访
vlan报头格式拆分:
每个报文都有特定的封装格式
enthernet II中的报文协议为type字段进行标识上层协议类型
ip中的protocol字段用来标识ip中的协议类型
当观察一个报文是否携带有vlan标签的时会进行pvid的读取,如果读取到了pvid则说明这里是封装了vlan的报文
链路聚合聚合技术
Eth-trunk
产生原因:因为传输的速度问题和负担载和问题网络工程师想出了一种方法叫做链路聚合技术,将两条或者多条链路捆绑在一起来解决问题
一:手工配置的ethtrunk端口
sw1
——————————————
——————————————
sw2
将两条链路捆绑在一起,但由此也会产生一个很严重的问题叫做回环问题
回环问题的产生:一个报文到交换机sw1如果没有特定的目的转发地址那么sw1就会进行泛洪处理导致sw2会进行同样的操作,导致进行回环,从而发生很严重的网络问题
所以这里也产生了一种协议叫做stp协议(生成树协议)用来解决环路问题,详见下一篇文章
二:lacp动态配置ethtrunk端口
相对于手工配置而言lacp会多了很多优点,在手工模式的配置下trunk端口不能自动检测错误类型,而且不能使用M:N进行备份
不能检测错误类型的原因是手工类型配置的端口不支持动态协议,所以它只能检测此链路的up/down状态,如果在手工状态下,两台设备错连,错连的设备将会将接收的流量全部丢弃从而早成流量大幅度的浪费
不能实现备份的原因是在手工静态配置的情况下只有有多条链路,它都会认为你是要进行聚合的链路会将所有的链路全部自动设置为活动状态,从而不能实现备份功能
lacp的优点:
lacp如果进行错连,被错连的链路会进行自动的down状态,从而使得流量没有被大量丢弃
lacp的主要活动电路和备份电路也不是随机选取的,而是拥有专门的协议进行选取的
lacp的选取规则:
主从规则:向设备通过交互lacpdu,比较mac(越小越优)
选取活跃电路:比较端口(越小越优)
当Iacp状态下,如果一条链路宕机后,Iacp会自动选取最合适和最活跃的链路进行补充
这就是大部分现在网络中所存在的交换技术和交换机制,如有错误请联系我