320 likes | 629 Views
多路径二层网的 FabricPath 简介. 陈 刚 cgang@cisco.com. 议程. 二层网络现状和面临的挑战 高扩展高可用的二层解决方案 FabricPath 的技术细节 FabricPath 的部署案例 FabricPath 的监控与排错. Spanning Tree 的不足. 路径选择的非最优 两个网桥之间只能有单一的可达路径 最短路径只是从根桥的角度去判断的 带宽闲置不用 为了二层逻辑拓扑不存在环路,冗余链路被 Blocking 链路速度越快,浪费的带宽越多 控制平面缺乏安全
E N D
多路径二层网的FabricPath简介 陈 刚 cgang@cisco.com
议程 • 二层网络现状和面临的挑战 • 高扩展高可用的二层解决方案 • FabricPath的技术细节 • FabricPath的部署案例 • FabricPath的监控与排错
Spanning Tree的不足 • 路径选择的非最优 两个网桥之间只能有单一的可达路径 最短路径只是从根桥的角度去判断的 • 带宽闲置不用 为了二层逻辑拓扑不存在环路,冗余链路被Blocking 链路速度越快,浪费的带宽越多 • 控制平面缺乏安全 根桥是按照switch-ID选举出来的, 可能因为操作不当造成故障 • 链路故障的收敛缓慢并且不可靠 即使使用RSTP,也会出现数秒的服务中断 11 条物理链路 5 条逻辑链路
网络设计中的困扰使用L2还是L3? • L3互联的数据中心在提供以下服务方面存在不足: • VMWare应用( Fault Tolerant VM、HA VM、Cluster VM) • HA与Cluster应用(MS MSCS、Oracle RAC、HP TruCluster、IBM HACMP) • 物理服务器平滑搬迁 • 数据中心容量不足时的扩展 Layer 3 Network • 网段分开提供了故障隔离 • 控制平面支持多路径和多拓扑,扩展性好 • 支持快速收敛的HA • 数据平面支持额外的环路避免机制l (e.g. TTL, RPF check, etc.) L3 Core Cisco 具有足够的L2和L3技术 来满足客户的需求 Layer 3? Layer 2? Access • 简单 (不需要进行地址规划和配置,不需要控制平面) • 用于unicast, broadcast, and multicast的控制简单 • 应用开发简单 L2 VLAN VLAN VLAN VLAN VLAN VLAN VLAN VLAN
二层与三层网络的不同世界 Network Address 10.0.0.0/24 10.0.0.10 /24 Host Address 10.0.0.10 0011.1111.1111 0011.1111.1111 10.0.0.0/16 20.0.0.0/16 0011.1111.1111 10.0.0.0/24 20.0.0.0/24 0011.1111.1111 Non-hierarchical Address 0011.1111.1111 10.0.0.10 20.0.0.20 0011.1111.1111 • 二层转发(桥接) • Data-plane学习 • 扁平的地址空间和转发表 (MAC everywhere!!!) • 对未知的单播地址实行Flooding • 为了避免flooding, 同一网络中的所有交换机必须学习目的MAC地址 • 三层转发 (路由) • Control-plane学习 • 层次化的地址空间与转发 • 只有路由表中匹配的目的地址才被转发 • Flooding 被网段隔离 • 路由表的维护不依赖于data-plane
如何改进二层网络? • 地址的编码机制:扁平层次化 需要额外的Header信息来允许L2的“路由”而不是 “桥接” 提供类似TTL的环路避免技术 • 地址的学习: 数据平面控制平面 不再需要每一台交换机学习所有的MAC地址来避免flooding • 控制平面: Distance-Vector Link-State 提高扩展性, 减少收敛时间, 允许多路径 最终的解决方案应该同时考虑控制平面与数据平面!!!
前人的努力之一 -- VL2,来自MS,SIGCOMM 2009 • 使用高冗余的多路径三层网络构建Virtual Layer 2网络 • 使用TCP(Layer 4!)来管理拥塞
前人的努力之二 -- PMAC,Hierarchical Pseudo MAC • 使用Fabric Manager 来改写目的MAC 地址成PMAC • 不需要额外的Header, 内置支持Multicast
前人的努力之三 -- Server-centric Source Routing • 使用传统的交换机 • 平滑的性能下降,适合集装箱式的模块化数据中心
自动发现 操作简单 灵活的 Workload 迁移 带宽高扩展 高可用性 Cisco的解决之道 -- FabricPath “FabricPath 为灵活的二层桥接网络带来的三层路由的好处” 交换 路由 • 配置简单 • 即插即用(Plug & Play) • 管理灵活 • 多路径 (ECMP) • 快速收敛 • 高扩展性 FabricPath
FabricPath在数据平面的操作 -- 通过封装来建立层次化的地址机制 • FabricPath的包头部由入口交换机产生 • 入口和出口交换机地址用于决定 “Routing” • L2 Fabric中不需要学习Client MAC C S42 A S11 DATA FabricPath Header FabricPath Routing S11 S42 C STP Domain FabricPath A S11 S42 DATA Ingress Switch Egress Switch A C L2 Bridging STP Domain 1 STP Domain 2 A C A C A C
FabricPath在控制平面的操作 -- 使用Plug-N-Play L2 IS-IS来管理转发拓扑 • 自动为所有的FabricPath enabled switches 分配地址 (不需要用户配置) • 计算最短路径 • 支持任意一对FabricPath交换机之间的等价路径 S1 S2 S3 S4 FabricPath Routing Table L1 L2 L3 L4 S11 S12 S42 L2 Fabric
FabricPath的环路避免 -- 使用TTL和RPF Check来减少loop的影响 Root STP Domain S1 S2 Root TTL=2 TTL=1 L2 Fabric M S2 S10 TTL=3 TTL=0 • Block冗余路径来防止环路 • 一旦STP失败,以太帧会一直Loop • Flooding可能引起全网异常 • TTL 是FabricPath头部的一部分 • 每一跳减去1 • 当 TTL=0时,数据帧被丢弃 • 基于“树”信息为组播进行RPF 检查
FabricPath的技术细节 -- FabricPath的数据帧封装 使用16字节的头部来建立层次化的地址空间,从而实现增强的特性 (Classical) Ethernet Frame Cisco FabricPath Frame DMAC SMAC 802.1Q Header Ether Type Payload CRC Outer DA (48)* Outer SA (48)* FP TAG (32*) CRC (New) DMAC SMAC 802.1Q Header Ether Type Payload * Lengths for all fields are shown in “bits” Ether Type Tree ID (10) TTL (6) • Switch ID: 用于识别L2 Fabric每一台设备的唯一号码 • Port ID: 用于提供L2 Fabric边界的 MAC-to-Interface关联信息 • Tree ID:帮助识别每个分布层“Tree”的唯一号码 • TTL: 每一跳递减,以防故障造成的数据帧无限Loop EndNode_ID (5:0) U/L I/G EndNode_ID (7:6) RSVD (1)* OOO/DL (1) Switch ID (12) Sub-Switch ID (8) Port ID (16)
FabricPath的“路由”计算 -- Layer 2 IS-IS • 只需要很少的了解,缺省不需要用户的配置 maintain PnP nature of Layer 2 • 基于 ISO/IEC 10589 • 可扩展的协议设计,允许 Layer 2信息通过IS-IS交换 • Single-level IS-IS with support for P2P links • 为转发流量计算转发信息 • 支持ECMP的Link-state 协议,提高故障检测,网络恢复,高可用 L2 Fabric IS-IS Update IS-IS Update IS-IS Update IS-IS Update FabricPath Port CE Port
FabricPath的技术细节 -- FabricPath的“路由表” 包括L2 Fabric中用于转发L2 单播流量的信息 • 已知的单播地址 • One Ingress Switch One Egress Switch • 根据destination Switch-ID 选择转发路径 • L2 Fabric中的每一台交换机根据从L2 IS-IS接收到的信息计算本地交换表 • 交换表包括{Switch-ID, Output Interfaces}等基本信息 • 对于指定的Switch-ID,最多可达16个 ‘Next-hop Interfaces’ (i.e. L2 ECMP) S100 S200 S1 S2 S16 L101 L102 L116 L1 L2 L16 S100 S200 L2 Fabric FabricPath Port A C CE Port
FabricPath的技术细节 -- 边界交换机的MAC学习 优化资源利用– 只学习需要的 MAC 地址 250 MACs 250 MACs 500 MACs 500 MACs L2 Fabric B C A S11 STP Domain 500 MACs 500 MACs 250 MACs 250 MACs • 每一台交换机学习所有的 MACs • 大型的 L2 domain 网络和大量的虚拟化给MAC 表的扩展性带来挑战 • Local MAC: 只有从CE端口接受到数据才学习Source-MAC • Remote MAC: 只有当Destination-MAC已经作为Local时,从FabricPath Ports接收数据时才学习 Source-MAC
Host A与C通讯的过程(一) -- FabricPath对广播的转发 Host A 与Host C 第一次通讯. 向C发送ARP请求 S11 把 A 加入 MAC 表,因为是来自CE端口的源地址学习 由于目的MAC是‘All F’, S11 向所有的CE端口Flood该数据包 同时, S11 选择‘Tree 1’, 在FabricPath header中记录并 floods this frame 到所有属于”tree 1”的 FabricPath ports (L1 ~ L4) S1 继续基于本地的”tree 1”信息flood this frame (L5, L9) S12 与S42 移除FabricPath header 并且向所有CE端口flood the frame A B C S1 S2 S3 S4 S11 FF (1) A FF L1 L2 L3 L4 L7 L8 L6 L5 L10 L11 No Learning on Remote MAC since DMAC is unknown L12 L2 Fabric S11 S12 S42 L9 Decap Decap Encap 1/1 3/1 A FF A FF A FF FabricPath Port CE Port
Host A与C通讯的过程(二) -- FabricPath对未知单播的转发 Host C 向Host A送回ARP Reply S42 从CE端口根据源地址学习原理将C 加入MAC Table 由于 A is unknown, S42向所有CE端口 floods this frame 同时, S42 根据选择的‘Tree 1’, 在FabricPath header中记录并且向所有的FabricPath ports (L9) floods this frame S1继续顺着”tree 1” floods this frame (L1, L5) S11继续顺着”tree 1” floods this frame (L2~L4). 同理,移除FabricPath Header, S11 发现目标地址A 已经是本地学习的,于是将C 作为Remote MAC加入表格并且与S42相关联. A B C S1 S2 S3 S4 A C FF S42 (1) A C FF S42 (1) L1 L2 L3 L4 L7 L8 L6 L5 L10 L11 L12 L2 Fabric S11 S12 S42 L9 Decap Encap Decap MISS 1/1 3/1 HIT! A C A C FabricPath Port C A CE Port
Host A与C通讯的过程(三) -- FabricPath对已知单播的转发 Host A 在解决ARP之后向Host C发送数据流 S11 发现C已经作为remote学习了, 并且和S42关联. 对到C所有后续进行封装,在 FabricPath header中将S42作为目的地址 S11的“路由表”显示到S42有多条路径. 执行 ECMP hash算法,选择 L4 作为next-hop S4的“路由表”显示 L12 as next hop for S42 S42 发现自己是FabricPath header的目的地,并且 C 是本地已知的. 于是, 将A 作为remote加入表格, 并且与S11关联. A B C S1 S2 S3 S4 A C S11 S42 S11 S42 A C L1 L2 L3 L4 L7 L8 L6 L5 L10 L11 L12 L2 Fabric S11 S12 S42 L9 HIT! Decap Encap 1/1 3/1 A C HIT! A C FabricPath Port CE Port
FabricPath的配置 • 不需要 L2 IS-IS 配置 • 新的‘feature-set’ 关键词会自动将FabricPath需要的多个Service同时打开 (e.g. L2 IS-IS, LLDP, etc.) • 非常简单的操作 – 只需要3条命令让FabricPath跑起来 N7K(config)# feature-set fabricpath N7K(config)# vlan 10-19 N7K(config-vlan)# mode fabricpath N7K(config)# interface port-channel 1 N7K(config-if)# switchport mode fabricpath L2 Fabric FabricPath Port CE Port
FabricPath与TRILL的关系 -- FP= PreStandard TRILL? FP=Enhanced TRILL? TRILL 帧格式 FabricPath 帧格式 Conversation based MAC learning 16 ECMP TTL,RPF Multi-Topo CE Inter-OP
E-TRILL与802.1AH TRILL进入SP市场还有哪些障碍? E-TRILL 帧格式 802.1ah 帧格式 Outer MAC DA Outer MAC DA Outer MAC DA Outer MAC SA Outer MAC DA Outer MAC SA Outer MAC SA Outer MAC SA Eth = 0x88a8 Outer VLAN Eth = 0x88a8 B VLAN Eth = PR-TAG PCP/TTL, SID Eth = .1ah PCP/R, I-SID SID C MAC DA I-SID C MAC DA C MAC DA C MAC DA C MAC SA C MAC SA C MAC SA Eth = 802.1Q C MAC SA Eth = 802.1Q C VLAN Payload C VLAN Payload Payload …. Payload ….
5 2 1 4 另外的L2扩展技术 -- OTV的MAC路由 site East 的边界设备接收并解开数据包. 查看原始帧的Layer 2信息. MAC 3 是本地 MAC. 该以太网帧被发送到目的地. 二层查找目的MAC. MAC 3 通过IP B可达. 边界设备封装以太网帧. 骨干传输网将数据包分发到site East. OTV Layer 2 Lookup Layer 2 Lookup 3 Transport Infrastructure Decap IP A IP B OTV OTV OTV OTV Encap MAC 1 MAC 3 IP A IP B IP A IP B MAC 1 MAC 3 MAC 1 MAC 3 MAC 1 MAC 3 6 West Site East Site MAC 1 MAC 1 MAC 3 MAC 3
当vPC遇上FabricPath -- FabricPath下的增强版vPC B B L2 Fabric S3 L2 Fabric S3 S3 S2 B A Payload S3 S1 B A Payload S3 S4 B A Payload S3 S4 B A Payload Payload B A S1 S2 vPC+ S1 S2 vPC S4 A B A Payload A 对于位于L2 Fabric Edge的所有交换机 • 为了给dual-homed的CE设备提供active/active L2 paths, 仍然需要vPC • 然而, MAC Table 只允许MAC和Switch ID的1-to-1 mapping • 对L2 Frabric的其余部分而言,每个vPC domain代表了一个unique ‘Virtual Switch’ • ‘Virtual Switch’的 Switch ID 在FabricPath 封装中作为源地址
FabricPath使用案例 -- 高性能计算 8,192 10GE ports 512 10GE FabricPath ports per system Spine Switch 16 Chassis 16-port Etherchannel 16-way ECMP FabricPath 256 10GE FabricPath Ports 32 Chassis Edge Switch Open I/O Slots for connectivity 160 Tbps System Bandwidth HPC的需求 • HPC Clusters 需要高密度的计算节点 • 尽可能小的over-subscription • server to server 延时很低 • FabricPath 给HPC带来的好处 • FabricPath 适合建设高密度的fat-tree network • 通过FabricPath ECMP & port-channels 达成Fully non-blocking • 通过减少交换机的HOP跳数来降低server to server的延迟
FabricPath使用案例 -- 为2048台万兆服务器扩展带宽 • 带宽性能提升16X • 需要管理的设备从 74 减少到12台设备 • 网络可用性增加2X+ • 简化IT 操作 基于FabricPath 的网络 传统基于Spanning Tree的网络 Blocked Links Fully Non-Blocking Oversubscription 16:1 2:1 Network Fabric 4 Pods 8:1 8 Access Switches 2, 048 Servers 64 Access Switches 2, 048 Servers
FabricPath的排错 -- 提高Layer 2的可视化 • 利用为三层技术设计的相同工具 • Routing table • Link-state database • Distribution trees • ECMP path selection • Pong – L2 Ping + Traceroute • Provide info on all devices on a given path in L2 Fabric • Check on link health • FabricPath的性能衡量 Through IEEE 1588 timestamp and pong to help estimate average end-to-end latency
FabricPath的排错 -- 使用DCNM图形化管理 • 抽象的Fabric视图 • Identify fabric ‘hot-spots’ • FabricPath state awareness • 流量监控 • Frames distribution visibility • Threshold crossing alerts for bandwidth management • 排错 • Visualize unicast, multicast and broadcast paths • Check reachability between source and destination nodes • 配置专家 • Manage FabricPath topologies with Wizard tools • Simplify fine-tuning FabricPath Up to 16-Way L2 ECMP Cisco FabricPath Classical Ethernet Classical Ethernet
FabricPath Roadmap (November 2010, please check the Nexus 7000 and Nexus 5000 wikis for latest roadmap information)
总结: • FabricPath是如何综合二层网和三层网优点的。 • FabricPath包括了独立的控制平面来管理二层拓扑,用于取代传统的生成树协议。 • FabricPath保留了二层技术的“Plug-n-Play”简单性 • 最多16条ECMP路径来实行二层网络的扩展性和灵活性,以满足数据中心的要求 • 高可用的快速收敛。