交换机基础原理与Vlan专题
1.以太网的帧类型
。Ethernet II:由目的MAC、源MAC、协议类型、数据内容、FCS(帧校验)组成。一般用于数据 传输
。802.3 RAW:只支持IPX/SPX网络,被淘汰
。802.3 LLC:由目的MAC、源MAC、长度、LLC头部、数据内容、FCS组成
。802.3 SNAP:由目的MAC、源MAC、长度、LLC头部、SNAP头部、数据内容、
FCS
。802.3帧格式的LLC头部和SNAP头部中拥有更多字段,所以可以实现更多的对链路 的控制,一般以太网数据链路层协议使用的帧格式都是802.3格式;但是802.3格式的 帧多出的头部导致留给有效数据载荷的空间就变少了,所以在用于普通数据传输时,一 般使用Ethernet II格式来封装
2.802.1Q帧格式(Vian帧格式)
。被加上Vian tag的帧格式称为802.1Q格式。该格式的帧一般只有交换机能识别,路由 器在子接口上开启802.1Q识别后也能识别,PC无法识别
。给数据帧加上Vian tag是为了使交换机知道该数据帧是来自与哪个Vian
。802.1Q帧格式为目的MAC地址、源MAC地址、Vian tag、协议类型、数据内容、FCS
。Vlan tag 的格式为 TPID、Priority, CFI、Vlan ID
-TPID:标签协议识别符,用于辨识区分一个帧是否被标记
-Priority: 802.1P优先级,用于交换机进行QOS拥塞管理
-CFI:标准格式指示,若为1代表MAC地址为非标准格式;若为0则为标准格式
・Vlan ID:标记该帧数据接收端口的Vlan id
3. 交换机转发数据帧的原理
。交换机收到数据帧后,学习数据帧的源MAC地址,把数据帧的源MAC地址、收到帧 的端口、该端口的PVID进行映射,产生一条MAC地址记录
。示例:A(MAC地址)--G1/0/1(接口)--vlan10(Pvid)
交换机上查看MAC地址表记录:display mac-address;手动配置一条静态MAC地址记录:mac-address staic 000f-e201-0101 int G1/0/1 vlan10(手动配置MAC地址+出接口+VLAN的映射关系)
。对于支持Vian的交换机,会给数据帧加上Vian tag, Vian tag中的Vian id就是接收该 帧端口的所属Vian
。交换机在Tag中Vlan的MAC地址表中检查数据帧的目的MAC地址,如果目的MAC 地址在MAC地址表中有记录,则按照记录对应的出接口进行转发;如果表中没有记 录,则对该帧做广播泛洪处理,把该帧从除了接收端口之外的所有其他端口转发出去。广播的范围:在该VLAN进行广播。
。如果交换机收到的数据帧本身就是广播帧,会把该帧从除了接收端口之外的所有其他端 口转发出去,如果收到了组播帧就看配置了IGMP snooping没有,如果没有就广播处理,如果有就按组播信息表项进行处理。
。怎么区分单播帧,组播帧,广播帧:根据数据帧的MAC地址进行判断。广播帧的目的MAC:FF-FF-FF-FF-FF-FF;组播帧的目的MAC是以01-00-5E开头;单播帧就是某一台设备的MAC地址。
4.交换机MAC地址学习的两种模式
。IVL:独享模式。各个Vian内学习到的MAC地址为各个Vian所有,不会共享给其他 Vian。目前绝大多数交换机都是这个模式
。SVL:共享模式。某一个Vian学习到MAC地址后,会共享给其他所有Vian
5.交换机Access, Trunk, Hybrid端口类型处理数据帧的方式(Vlan通讯原理)
。交换机端口分为Access、Trunk、Hyrbid三种类型
。如何配置:在接口视图下:port link-type access/trunk/hyrbid
。Access 口对帧的处理:
・收到不带Tag的帧,打上该接口 PVID的Vlan tag
-收到带Tag的帧,当Tag中的Vlan id与接口 PVID 一致,则接收该帧,不一致则 丢弃该帧
・发送帧时会先剥离的该帧的Vlan tag
。Trunk 口对帧的处理:
・收到不带Tag的帧,会打上该接口 PVID的Vlan tag。当PVID在Passing列表 中,则接收该帧,不在则丢弃该帧
-收到带Tag的帧,当Tag中的Vlan id在Passing表中,则接收该帧;不在则丢弃 该帧
■发送帧时,如果Vlan id与端口的PVID 一致,则剥昌Tag转发;如果不一致,则 保留Tag转发
・Trunk端口的Passing表中的Vlan来自本机存在的Vlan与Permit表的交集
。如何查看:diaplay port trunk
。Hybrid 口对帧的处理:
■收到不带Tag帧的处理同Trunk 口
-收到带Tag帧的处理同Trunk 口
■发送帧时,如果Vlan id与端口的PVID 一致,则剥昌Tag转发;如果不一致,则 判断Vlan id是在接口的Untagged表还是Tagged表中;在Untagged表中则剥离 标签转发,在Tagged表中则保留标签转发。Untagged表的配置:port hybrid vlan10 20 30 untagged
。Hybrid的passing表是tagged,untagged和本机存在的vlan的交集
。使用场景:私有VLAN;同一个二层间做了VLAN隔离,设备间相互无法访问,但是又可以访问同一个设备,所以就需要配置Hybrid端口。
Trunk和Hybrid的区别:Hybrid端口可以允许多个vlan不打标签,而Trunk端口只允许缺省vlan不大标签。同一个交换机不能Trunk和Hybrid并存
6.Vlan的类型
。基于端口的Vlan:固定的把某个端口加入某个Vlan
。基于MAC的Vlan: Mac地址绑定到Vlan,同一 Mac地址的设备,无论连接在哪个端 口,Vlan归属不变
。基于协议的Vlan:三层协议绑定到Vlan,同一协议的报文,无论从哪个端口接收,Vlan 归属不变
。基于IP子网的Vlan: IP网段绑定到Vlan,同一 IP子网的设备,无论连接在哪个端 口,Vlan归属不变
**。除了基于端口的Vlan以外,其它Vlan类型都需要所有支持的接口类型都设置为
Hybrid,同时放行所有Vlan
**。默认优先级:Mac Vlan>IP子网Vlan >协议Vlan >端口 Vlan
7.Private Vlan原理以及适用场景
。Private Vlan (私有Vlan)技术通过把上行接口和下行接口都设置为Hybrid类型来实现 下行Vlan对上行设备不可见的效果,用于解决局域网中Vlan数量不够用的问题。配置Private vlan后会自动将接口配置为hybrid 并撕标签放行相关vlan
。配置命令:在主VLAN的视图下配置:private-vlan primary(设置该VLAN为主VLAN)
Private-vlan secondary(设置该VLAN的从VLAN)
在交换机的上行接口配置:port private-vlan 100 promiscuous (设置该接口为上行接口并切pvid是100)
在交换机的下行接口配置:port access vlan10 host(设备该接口为下行接口,并且pvid是10)
。Vlan的可用数量为4094(第一个和最后一个保留0和4095),大型局域网中对于核心层设备来说,如果每个用户一个 VLAN, 4094个Vlan远远不够
。Private Vlan设置一个 Primary Vlan(主VLAN)和若干个Secondary Vlan(从VLAN),把连接上行交换机的接 口配置为 Hybrid 类型,PVID 为 Primary Vlan,并 Untagged 放行 Primary Vlan 和所有 Secondary Vlan;下连用户终端的接口也设置为Hybrid类型,PVID为本地的 Secondary Vlan,并 Untagged 放行 Primary Vlan 和本地的 Secondary Vlan。所以当 下行终端的数据帧携带Secondary Vlan的Tag经过上行接口发送至上游交换机时,会 被剥离掉Vlan tag,上游交换机收到未携带Tag的帧后会加上本端口 PVID的Tag,所 以实际上下行PC的数据帧不管来自哪个Vlan,最终到达上游交换机时都会被打上新的 Tag,导致Secondary Vlan对上游交换机不可见。既然不可见,就意味着所有的 Secondary Vlan可以在下游被复用,通过这样来解决Vlan数量不够用的问题
。由于在下行交换机上的连接终端的下行接口只放行Primary Vlan和本地的Secondary Vlan,所以不同的Secondary Vlan之间是无法互通的,也能在本地实现不同Vlan的隔 离
。Secondary Vlan之间可以通过在本地交换机的Primary Vlan三层接口上开启本地代理 ARP来实现,但该功能需要交换机开启L3域功能;也可以无需开启L3域功能,而借 助上行交换机的Vlan三层接口开启本地代理ARP来实现
。使用Private Vlan技术后,交换机会在Secondary Vlan学习到终端的MAC地址。当上 游向终端发送数据帧时,进入本地交换机会加上Primary Vlan的Vlan tag。按照交换机 查表原理,会在Primary Vlan的MAC地址表中查询终端的MAC地址。结果是查询不 到,就会通过广播泛洪把数据发送至终端设备。可以通过MAC地址同步技术来解决该 问题。MAC地址同步是指当交换机在Secondary Vlan学习到一条MAC地址记录,会 自动复制一条至Private(私有) Vlan ;同理,Private Vlan学习到一条MAC地址记录,也会自 动复制一条至Secondary Vlan。MAC地址同步在配置Primary vlan后自动开启。
8.Super(超级Vlan原理以及适用场景
。Super Vlan用于解决三层交换机Vlan三层接口不够用的问题。如果大规模组网中,划 分了数量巨大的Vlan,可能会超出网关三层交换机支持的最大三层接口数量。Super Vlan可以解决该问题
。Super Vlan只用于建立三层接口,不能加入任何物理接口,用于包含若干个Sub Vlan。只要所包含的Sub Vlan中存在UP状态的物理口,Super Vlan的接口就能UP
。Sub(子) Vlan只用于加入物理接口,不能建立三层接口,Sub Vlan只能通过Super Vlan与
外部进行三层通讯。Sub Vlan保留各自独立的广播域
。通过Super Vlan技术,可以实现不同Vlan的主机使用同一个IP网段进行编址,对应同 一个网关,网关就是Super Vlan的三层接口地址
。Super Vlan由于只建立三层接口,不包含任何物理接口,所以不可能出现有携带Super Vlan标签的数据帧发送至其他交换机,反之如果接收到携带Super Vlan标签的数据 帧,交换机也无法转发,所以Trunk链路将自动禁止Super Vlan的流量通过,也就是 说Super Vlan无法在交换机上进行二层转发,只允许进行三层转发
。Sub Vlan可以通过在Super Vlan的三层接口上开启本地代理ARP来实现互通
。配置命令:在Super VLAN的视图下:srpervlan(设置该VLAN为Super vlan)
Subvlan 2 3(设置该Super vlan的子vlan为vlan2,3)
9.本地代理ARP和普通代理ARP
。由于ARP的查询请求是广播发送,所以不同广播域的主机无法互相查询MAC地址。在 使用了 Private Vlan 或 Super Vlan 的网络中,Secondary Vlan 之间或 Sub Vlan 之间, 无论是二层还是三层都将无法互通。代理ARP可以解决这个问题。代理ARP又分为普 通代理ARP和本地代理ARP
。普通代理ARP的工作环境为:想要互通的主机IP地址在同一网段,且连接在不同的三 层接口下**,但又不在一个广播域。通过在交换机三层接口上设置代理ARP,在收到一个 广播域的内的ARP广播查询请求,以自己为源地址,在被查询的IP的广播域内发送查 询目的主机的ARP请求。收到被查询主机ARP单播响应后,再以自己为源地址,发送 ARP单播响应至发起查询请求的主机,通告查询主机,被查询IP的MAC地址是交换 机三层接口的MAC地址。之后查询主机要访问被查询的主机,就会把目的MAC地址 封装为交换机三层接口的MAC地址,发往交换机。交换机收到后再通过三层转发至被 查询主机。**
。本地代理ARP的工作环境为:想要互通的主机IP地址在同一网段,且连接在同一个三 层接口下**,但又不在一个广播域,比如Private Vlan中Secondary Vlan的互通或者 Super Vlan中Sub Vlan的互通。工作原理是在三层交换机的Super Vlan三层接口下启 用本地代理ARP后,Super Vlan的三层接口就能收到一个Sub Vlan中主机对另外一个 Sub Vlan中主机的ARP广播查询请求。之后交换机会把收到的ARP广播查询请求,以 自己为源地址,在被查询的IP对应的Sub Vlan中发送;收到被查询主机的单播响应 后,交换机会以自己为源地址,在收到查询请求的Sub Vlan中发送单播响应,通告查 询主机,被查询的IP的MAC地址是Super Vlan的MAC地址。之后查询主机要访问 被查询的主机,就会把目的MAC地址封装为Super Vlan的MAC地址,发往交换机。 交换机收到后再通过三层转发至被查询主机。**
。开启代理ARP的命令:在VLAN的视图下:local-proxy-arp enable(开启代理ARP)
10.Access端口和Trunk端口能否互联,如果可以,怎么互联
。Access和Trunk端口可以互联
。如果要实现的是同一个Vlan在两个端口间互通,只需要把Access端口加入到该 Vlan,并把Trunk端口的PVID设置为该Vlan就可以了。比如VlanlO内部互通,从 Access端口一侧的交换机来自Vlan10的帧,会被Access端口剥离标签发出,对端
Trunk端口收到未携带标签的帧,打上PVID,也就是Vlan10的标签,再转发至Vlan10 的主机;从Trunk端口一侧的交换机来自Vlan10的帧,由于PVID就是Vlan10,所以 也会剥离标签发出;对端Acces s端口收到未携带标签的帧,打上Vlan10的标签,再 转发至Vlan10的主机
。如果要实现的是跨Vlan互通,比如一台交换机上Vlan10和另一台交换机上Vlan20的 互通,只需要把Access端口加入到Vlan10或Vlan20,把对端Trunk端口的PVID设 置为另一个Vlan就可以了。比如把Access端口加入Vlan10,从该端口一侧的交换机 来自Vlan10的帧会被剥离标签发出,对端Trunk 口收到未携带标签的帧,打上PVID, 也就是Vlan20的帧,就可以转发至Vlan20的主机;从Trunk 口一侧的交换机来自 Vlan20的帧,由于和PVID 一致,所以剥离标签发出,对端Access端口收到未携带标 签的帧,打上Vlan10的标签,再转发至Vlan10的主机
。由于Access端口只能允许一个Vlan通过,所以无法实现两台交换机之间多Vlan同时 互通的效果
11.三层交换机的数据转发原理(VLAN间路由的常用方式)
。三层交换机转发分为精确匹配和最长匹配
。IPFDB和L3Table表的内容:192.168.1.3(精确的目的IP)--2.2(下一跳)--C(MAC地址)--G1/0/1(出接口)
。精确匹配(CPU维护表项)流程如下:
-交换机收到数据帧,如果目的MAC地址是Vlan三层接口的MAC地址(想要跨网段),就判断为 三层转发,否则判断为二层转发
-如果判断为三层转发,则检查IPFDB表,根据IPFDB表(有IP地址和MAC地址)的出接口进行转发。如果 IPFDB表中没有记录,则查询FIB表(精简路由表),按照FIB表进行最长匹配查询转发,然后再查ARP表查目的MAC并产 生该数据报文的IPFDB转发记录
-IPFDB表是根据FIB表和ARP表产生的唯一匹配表项,同时包含二层转发信息和 三层转发信息
。最长匹配(高速芯片维护表项)流程如下:
-交换机收到数据帧,如果目的MAC地址是Vlan三层接口的MAC地址,就判断为 三层转发,否则判断为二层转发
-如果判断为三层转发,则检查L3 Table表,根据L3 Table表的出接口进行转发。 如果L3 Table表中没有记录,则查询DEF_IP表,按照DEF_IP表进行最长匹配查 询转发,然后产生该数据报文的L3 Table转发记录
-L3 Table表是根据DEF_IP表和ARP表产生的唯一匹配表项,同时包含二层转发 信息和三层转发信息。DEF_IP表是类似FIB的最长匹配表项。与精确匹配的区别 是,DEF_IP表由专门的芯片来维护,而FIB是由CPU维护,所以DEF_IP的查表 速度比FIB要快很多
12.MVRP(多VLAN注册协议)的端口模式
。MVRP端口分为Normal模式、Fixed模式和Forbidden模式
。Normal(正常)模式是可传递和动态学习所有的Vlan,就是会把本地创建的静态Vlan注册出 去,也会接收其他交换机发送过来的注册消息,学习动态Vian,交换机的MVRP端口 默认是该模式
。Fixed(固定)模式是只传递Vlanl和静态Vian,不学习其他交换机传递的动态Vian。也就是会 把本地创建的静态Vian注册出去,但是不接收其他交换机发送过来的注册消息,也就 不会学习动态Vian
。Forbidden(禁止)模式是只传递Vlanl, Vlan1每台交换机都有,所以基本等于不传递静态 Vian,也不学习动态Vlan
。MVRP的端口要求都是Trunk类型,并放行所有Vlan
。MVRP协议运行的实体是端口,而不是交换机,只有某个端口是Normai模式,接收注 册消息而学习到其他交换机注册过来的动态Vian后,该Trunk端口才会放行该Vlan; 如果某个端口只是发出某Vlan的注册消息,那么该Trunk端口不会放行该Vlan
。当某台交换机学习到动态Vlan后,一旦该Vlan中加入了某个端口,该Vlan在该交换 机中会自动变为静态Vlan,从而会向对端发起该Vlan的注册消息
。MVRP沿生成树单向传播VLAN,GVRP和MVRP的区别在于GVRP不支持MSTP
。MVRP的配置命令:在端口视图下配置:MVRP enable (开启MVRP)
MVRP registeration fixed/fobidden/normal (选择端口模式)
13. 扩展:
二层三层的排错思路:先看二层有没有问题,因为三层通的前提就是二层也要通。二层是基于MAC转发的,所以如果二层不通就考虑交换机的问题,比如:VLAN和接口类型配置有误,MAC地址学习有问题,二层出现环路,链路聚合不通,是否配置了基于MAC的ACL,错误的ARP静态绑定也会导致二层不通。如果二层没有故障,就排查三层,三层是基于IP转发,所以三层不通要考虑IP和路由的问题,比如:IP地址是否配置正确,是否具有双向互通的路由,路由的指向是否正确,是否配置了ACL过滤了数据包。