六、交换机的MAC表(FDB表)
   
    交换机的MAC地址表存有交换机端口与MAC地址的映射,同样分有动态和静态两部分,
    
    当某个端口收到来自于某个MAC地址处发来的帧数据时,会将该MAC地址与端口的映射关系存储在MAC地址表中
     
   
    
    
    6.1 自学习功能
   
    vlan独立学习(IVL)和vlan共享学习(SVL)
    
    IVL:在这种方式下,MAC地址表在逻辑上可以被看成根据VLAN信息分成了很多张表,一个MAC地址可以学习到不同VLAN对应的“地址表”上。
    
    SVL:在这种方式下,MAC地址在整张表中是唯一的,一个MAC地址在地址表中只能有一条记录,一个MAC只能被学习到一个端口上。
   
    两种转发机制的报文转发流程
    
    对于IVL而言,交换机根据目的MAC+VLAN信息一起查MAC地址表,如果打到对应的端口则转发,否则在报文所属VLAN内进行洪泛。
    
    对于SVL而言,交换机先根据目的MAC查MAC表,找到端口之后,然后判断这个端口是否在报文携带的VLAN中,如果在就转发,否则就丢弃。如果根据目的MAC没有找到对应端口,则在报文所属VLAN内进行洪泛。
   
    
    
    6.2 交换机的转发机制
   
    交换机的两中端口类型设置:Acess 类型(收发数据帧都不含 VLAN 标记)和 Trunk 类型 (收发数据帧都含有 VLAN 标记)。
    
    锐捷交换机采用IVL转发机制,即交换机的Acess 端口收到一个帧数据时,先打标再查表。
    
    1.基于SMAC的自学习
    
    交换机收到一个帧数据后,通过源MAC+VLAN信息进行FDB表的更新(已存在该表项)或添加(未存在该表项)。
    
    2.基于DMAC的查找
    
    (1)目的MAC为广播地址
    
    交换机将该广播帧从该交换机的所有同VLAN的ACCESS端口和TRUNK(打上tagged)发出(泛洪);
    
    (2)目的MAC为单播地址
    
    通过目的MAC+VLAN信息在交换机FDB中进行匹配查找,若无匹配项,则从所有同VLAN的ACCESS端口和TRUNK(打上tagged)发出(泛洪);若找到匹配项,则从对应端口发出。
   
    Tips:上述过程是结合了vlan的知识,目前工作中的二层转发主要都是基于同一vlan的,可忽略vlan;
    
    上述的过程可以简单理解为基于源MAC的FDB表更新和学习,基于目的MAC的FDB表查询(广播帧直接泛洪,单播帧先查找,若表中无对应项也会泛洪)
   
实验:通过anysend和wireshark进行上述单播帧和广播帧转发过程的验证
    
    
    七、路由表
   
    
    
    7.1 表的建立
   
    RIB (route information base) 和 FIB (forwarding information base),又称IP路由表和 CEF表,它们之间的关系可以用下面这张图片来高度概括。
    
     
   
本质上,RIB(route information base) 是由节点上各种路由过程通过路由协议(例如OSPF,IS-IS,BGP,甚至是静态路由条目)提供的信息来构建的。从RIB中的所有路由中选出最佳路由后,将它们复制到FIB。因此,RIB包含节点愿意保留的所有路由以及路由协议正在使用的信息,硬件使用FIB来指导转发,物理上将数据包从移入和移出接口。
    RIB维护每种协议的网络拓扑和路由表。这将包括许多到达相同目的地前缀的路由;
    
    FIB是从下推的RIB中可能的许多协议到快速转发查找内存的最佳路径的最佳路由。
   
    
    
    7.2 IP层转发分组的过程
   
     
   
    Tips:
    
    不同的前缀(网络号+掩码,缺一不可),在路由表中属于不同的路由;
    
    默认采用最长匹配原则,匹配(到最长的网段号),转发;无匹配,则找默认路由,默认路由都没有,则丢弃。
   
 
