资讯详情

资讯详情

数据中心网络Overlay三件套与sFlow监控实战解析

简介华为技术有限公司发布的《数据中心技术红宝书》合集文档面向企业数据中心架构、运维及网络技术人员系统讲解Segment Routing、TRILL与sFlow三项关键技术。其中Segment Routing部分重点介绍其改进机制、工作流程与优势TRILL章节解析数据中心内BUM报文高效转发、单播处理及多归属问题的解决方案sFlow部分说明网络流量监控方法。文档还结合实际案例为大规模数据中心内及跨数据中心网络优化提供实施指南。包内含1个pdf文件压缩包大小25.88MB完整技术内容便于离线查阅。目前已有574人学习下载适合具备网络工程背景、希望深入掌握数据中心网络原理与实践的中高级读者。读者可获得详尽的技术说明、工作原理解析、具体场景中的排错思路与配置参考有助于提升数据中心网络设计、运维及问题处理能力。1. 数据中心网络为什么绕不开 Overlay 三件套VXLAN、Segment Routing、TRILL 的落地价值做了几年数据中心网络运维的人多半遇到过这种现场业务部门要扩 VLAN核心交换机上的 STP 收敛慢到秒级广播报文把 CPU 打满跨机房二层拉通要靠一堆手工隧道出了问题连流量从哪条链路走的都说不清。这份华为官方发布的数据中心技术红宝书恰好把这三块最难啃的骨头拆开讲透了——VXLAN/EVPN 解决大二层与租户隔离Segment Routing 把路径计算从设备搬到报文本身TRILL 用路由的思路治好了二层环路和广播风暴。它适合两种人一是刚接手数据中心网络、想把 Overlay 架构从原理到配置一次搞懂的新手二是已经在用 VXLAN 但排障全靠抓包猜的运维熟手。文档里没有花哨的概念堆砌每章都从「为什么需要它」讲到「报文长什么样」、「配置怎么落」读完之后你能少走至少半年的弯路。2. VXLAN/EVPN隧道建立、BD 划分与转发流程的实操拆解2.1 为什么传统 VLAN 在云化数据中心失效传统二层网络里VLAN 是隔离的基本单元但 VLAN 只有 12 位最多 4094 个。云化数据中心里租户数量、业务网段都远超这个量级更麻烦的是大二层需求虚拟机迁移时 IP 和 MAC 不能变这就要求跨物理机、甚至跨机房的二层连通。VLAN 的另一个痛点是它绑定了物理拓扑——同一个 VLAN 必须落在同一个广播域里隔离和扩展两头都卡死。VXLAN 用 24 位 VNIVXLAN Network Identifier替代 VLAN支持约 1600 万个租户网络同时把二层报文封装进 UDP/IP 里让二层网络可以跨越三层物理网络。这份红宝书在第 2 章里用了大量篇幅讲 VXLAN 的报文结构和转发机制核心就一句话VXLAN 不是加密隧道它只是把原始以太网帧原封不动装进 UDP 载荷靠外层 IP 路由在物理网络上搬运。2.2 VXLAN 报文结构与 VNI/BD 的对应关系VXLAN 报文封装顺序是外层以太网头 外层 IP 头 UDP 头 VXLAN 头 内层原始以太网帧。需要注意 UDP 目的端口固定为 4789IANA 分配源端口由内层报文哈希计算用于负载分担。字段长度作用VNI24 bit标识虚拟网络类似 VLAN ID 的扩展版Flags8 bitI 位必须置 1表示 VNI 有效UDP 目的端口16 bit4789接收端据此识别 VXLAN 报文内层 MAC48 bit虚拟机真实的 MAC 地址不发生改变VNI 到 BDBridge Domain的映射是配置的核心。同一个 VNI 对应一个 BDBD 里挂接虚接口VBDIF和物理接口。配置时最常见的错误是把 VNI 和 VLAN 混为一谈VLAN 是二层交换域的本地标识VNI 是跨设备的虚拟网络标识两者需要通过配置映射而不是直接相等。2.3 VTEP 之间隧道建立的必要条件VTEPVXLAN Tunnel End Point是隧道的起点和终点可以是交换机、路由器或服务器上的软件 vSwitch。两个 VTEP 之间能否建立隧道取决于三个条件一是两端 VTEP 的源 IP 必须路由可达二是至少配置了一个相同的 VNI三是 BGP EVPN 邻居关系或静态隧道配置正确。手工配置 VXLAN 隧道非常痛苦尤其是跨机房上百台设备逐一配 peer 的场景。红宝书里明确建议用 EVPN 自动建立隧道这也是当前华为、思科、Juniper 主推的方式。核心配置思路如下# 在华为交换机上配置 VXLAN 的基本步骤简化版 bridge-domain 10 vxlan vni 1010 # 创建 BD 并绑定 VNI # interface Nve1 source 10.1.1.1 # NVE 接口源 IP必须是设备上已有的环回口地址 vni 1010 head-end peer-list protocol bgp # 通过 BGP EVPN 自动发现远端 VTEP # bgp 65001 peer 10.2.2.2 as-number 65001 l2vpn-family evpn peer 10.2.2.2 enable逻辑说明bridge-domain 10定义了二层转发域vxlan vni 1010把 BD 映射到 VNIinterface Nve1是隧道接口source指定本端 VTEP IPhead-end peer-list protocol bgp表示远端 VTEP 由 BGP EVPN 动态下发不用手工加 peer。参数说明VTEP IP 建议使用 Loopback 口地址不要用物理接口地址否则链路切换会导致隧道重建。BGP 邻居建议配置为直连或 IBGP跨域场景用 EBGP 也行但需要保证 EVPN 路由能跨越 AS 传递。2.4 EVPN 替代手工配置BGP EVPN 路由如何动态学习 MAC传统 VXLAN 靠数据面泛洪学习 MAC效率低且依赖核心网络的组播能力。EVPN 的思路是把 MAC 学习搬到控制面VTEP 通过 BGP EVPN 路由通告自己学习到的 MAC 地址其他 VTEP 收到后直接写进转发表不需要泛洪。EVPN 路由类型主要有四种类型 1 以太网自动发现路由、类型 2 MAC/IP 通告路由、类型 3 Inclusive Multicast 路由、类型 5 IP 前缀路由。日常排障最主要看类型 2它携带 MAC 地址、VNI、下一跳 VTEP IP是 MAC 学习的关键路由。# 查看 EVPN 通过 BGP 学到的 MAC 表项华为 NCE/CE 系列命令 display evpn mac-route # 示例输出字段解读 # MAC address VNI Nexthop Priority # 00e0-fc12-3456 1010 10.2.2.2 0这段命令用于确认远端 MAC 是否通过 EVPN 顺利下发。如果发现某台虚拟机的 MAC 一直学不到优先检查 BGP EVPN 邻居是否 UP再看display bgp evpn peer确认路由收发计数最后在源端 VTEP 上查该 MAC 是否已经上送控制面。2.5 同子网与跨子网转发集中式网关和分布式网关怎么选VXLAN 网关分两种集中式网关指所有跨子网流量都绕到一台核心设备上做三层转发分布式网关则是每台叶子交换机都能做三层网关VBDIF 同时配置在每台 leaf 上虚拟机网关地址就是本机 VBDIF 的地址。我一般推荐生产环境用分布式网关原因很直接集中式网关把三层终结放在一台或两台设备上流量路径绕远不说整机故障就是全网故障。分布式网关的代价是每台 leaf 都要配 VBDIF而且必须启用 EVPN 来同步 ARP 和 MAC 表否则会出现「网关在 A 机学到 MACB 机不知道」的黑色三分钟。配置分布式网关时注意 VBDIF 的 MAC 地址要全局一致。华为设备默认使用系统 MAC如果每台 leaf 的系统 MAC 不同虚拟机网关 ARP 会频繁漂移表现为网络时通时断。解决方法是手工把 VBDIF MAC 配成相同的值。3. 把路径选择装进报文的 Segment Routing标签栈、IGP 扩展与优势验证3.1 SR 到底改了什么Segment RoutingSR的本质是源路由路径信息由头端设备算好以标签栈的形式放进报文中间节点只需要按标签转发不需要维持每条流的路径状态。相比传统 MPLS LDP 或 RSVP-TESR 最大的变化是去掉了独立的信令协议——不再有 LDP 邻居、不再有 RSVP 预留、不再有专门为隧道维护的会话状态。这个改动对数据中心网络的意义非常大。传统 MPLS 网络里每台设备要维护 LFIB、ILM、NHLFE 等多张表控制面复杂度高排查路径时经常要和「倒数第二跳弹出」这类机制纠缠。SR 把标签分配融入 IGPOSPF 或 ISIS每条前缀对应一个 Segment路径就是一组 Segment 的列表整条路径一目了然。3.2 SR 标签栈与 IGP Prefix SegmentSR 有两种 SegmentPrefix SegmentIGP 自动分配和 Adjacency Segment邻接标签手工或自动分配。Prefix Segment 对应某台设备通告的网段标签全局唯一SRGB 范围内Adjacency Segment 对应某条物理链路只在本地有意义。一个典型的三段式路径从 A 到 C中间想强制经过 B 的某条链路标签栈就是[B 的 Prefix 标签, B 到 C 的 Adjacency 标签]。头端压入标签栈B 收到后弹出自己的 Prefix 标签再压入 Adjacency 标签转发C 收到后弹出所有标签恢复为原始 IP 报文。# 华为设备查看 SR 标签分配结果 display segment-routing prefix mpls forwarding # 输出中能看到 Prefix、标签值、出接口和下一跳 # Prefix Label Interface Nexthop # 10.0.1.0/24 16001 Eth1/0/1 10.1.1.2配置 SR 时最关键的是 SRGBSegment Routing Global Block规划。如果两台设备 SRGB 配置不一致同样的 Prefix 在不同设备上会被分到不同的标签转发直接断链。华为默认 SRGB 是 16000 到 23999尽量不要改除非整网统一规划。3.3 与 LDP/RSVP-TE 的差异化对比维度LDPRSVP-TESR信令协议独立协议需维护邻居和会话独立协议状态多无需独立协议融入 IGP路径控制基于 IGP 最短路径可显式指定路径但要逐跳建状态头端标签栈指定中间无状态扩展性随网络规模线性增长每个隧道都要维持状态扩展性差只有头端维护路径状态扩展性最好数据中心适用性适合传统骨干适合流量调度要求高的场景适合大规模、快速收敛的数据中心对数据中心来说SR 的最大价值在于快速收敛。IGP 收敛完成了SR 转发路径自动跟着变不需要等 LDP 会话重建。红宝书里还特别点了 SR 对流量工程的好处通过灵活组合 Prefix 和 Adjacency 标签可以实现细粒度的路径规划而且这条规划路径只在头端维护中间设备完全无感知。3.4 在华为设备上的验证方法验证 SR 是否生效我一般分三步第一步看 IGP 是否通告了 SR 能力第二步看标签是否按规划分配第三步用 ping 带标签测试。# 第一步在 ISIS/OSPF 里启用 SR以 ISIS 为例 isis 1 segment-routing mpls # interface Loopback0 ip address 10.0.1.1 32 isis enable 1 isis prefix-sid index 101 # 指定 Prefix SID 索引替代手工标签值prefix-sid index 101的意思是 SRGB 起始值 16000 加上 101最终标签为 16101。使用 index 而不是绝对标签值的好处是如果整网 SRGB 调整各设备的 SID 不用逐个改只要相对索引不变标签会自动跟随变化。排障时最容易翻车的是 SR 与 LDP 共存场景。既有 LDP 又有 SR 时华为设备默认优先使用 SR 标签但需要确认 IGP 里 SR 能力通告成功否则会出现「路由表正常、MPLS 转发表为空」的怪现象。这时候强制检查命令是display segment-routing mpls state如果显示 enabled 但转发表没条目重点看接口是否使能了 mpls 和 IGP 的 SR 能力是否在拓扑内全网统一。4. TRILL用路由的思维方式改造二层网络4.1 RBridge 与控制平面改造TRILLTransparent Interconnection of Lots of Links诞生的背景是传统二层的 STP 太笨——它阻塞冗余链路来防环代价是带宽浪费和收敛慢。TRILL 引入了 RBridgeRouting Bridge的概念每台支持 TRILL 的交换机就是一个 RBridge它们之间运行 IS-IS 协议交换链路状态计算最短路径树从而在二层实现等价多路径和快速收敛。控制平面改造是 TRILL 的关键。IS-IS 在 TRILL 里被扩展用来通告 RBridge 的 nickname类似于 IS-IS 的 system ID携带每个 RBridge 的连接关系实现全网拓扑可视化。这样二层网络第一次拥有了类似路由协议的控制面不再依赖 STP 的阻塞机制。4.2 TRILL 数据报文结构TRILL 数据报文分外层和内层两部分外层是标准的 Ethernet TRILL Header内层是原始的二层帧。TRILL Header 里最关键的两个字段是 Ingress RBridge Nickname 和 Egress RBridge Nickname分别标识报文从哪个 RBridge 进来、从哪个 RBridge 出去。外层: [DANext RBridge MAC][SACurrent RBridge MAC][TRILL Header][Original Ethernet Frame] TRILL Header 关键字段: V(版本) | M(多目的) | Hop Count | Egress Nickname | Ingress NicknameM 位直接决定了转发方式M0 是单播M1 是多目的广播、组播、未知单播。Hop Count 每经过一个 RBridge 减一防止环路无限转发这是 TRILL 比 STP 高明的地方——它允许环路存在但用跳数限制报文的生命周期。4.3 BUM 报文转发模式与广播风暴抑制BUMBroadcast、Unknown Unicast、Multicast报文在 TRILL 网络里的转发比传统二层高效得多。RBridge 收到 BUM 报文后根据 IS-IS 计算得到的分发树把报文从多棵树的根节点传入每台 RBridge 只向对应分支转发不对全网泛洪。实际效果是广播报文不再「一份变 N 份」地传遍整个二层而是沿着 IS-IS 计算的树形路径有目的地扩散。多归属场景下同一台主机接入两台 RBridgeTRILL 还能通过 nickname 和 MAC 地址的绑定关系把流量只从其中一台转发避免了重复接收和 MAC 漂移。4.4 多归属问题的解决机制TRILL 的多归属指一台终端设备同时接入两台或多台 RBridge。传统二层的做法是 STP 阻塞其中一条链路TRILL 的做法更优雅多台 RBridge 可以同时转发但在控制面通过 IS-IS 协商一个主 RBridgeAppointed Forwarder由它负责该端口的 BUM 流量转发单播流量则依据 MAC 表项从最优路径走。如果你在生产环境用 TRILL最需要关注的是所有 RBridge 的 IS-IS 域配置必须一致否则直接导致全网拓扑分裂。另外 TRILL 的 MTU 要求比普通二层高因为封装增加了 TRILL Header通常要求链路 MTU 至少 1600 字节配置时记得检查所有端口 MTU。5. sFlow 流量监控与实施避坑指南5.1 sFlow 架构与采样原理sFlow 是数据中心的流量可视化方案之一架构分两部分Agent嵌入交换机或路由器和 Collector独立服务器。Agent 负责采样和统计Collector 负责汇总分析。sFlow 与其他监控方案最大的区别是采样机制——它不做全量流量分析而是按概率抽取数据包大幅降低对设备性能的影响。sFlow 采样分两种Flow Sample包采样随机抽取数据包并上报头部信息和 Counter Sample计数器采样定期上报接口流量计数。Flow Sample 用于分析流量特征Counter Sample 用于统计带宽使用率。两者配合能达到「既知道流量多大又知道流量是什么」的效果。5.2 采样比设置与流记录解读采样比Sampling Rate是 sFlow 最关键的参数它表示「多少个包采一个」。采样比越高对设备性能影响越小但流量分析的精度越低采样比越低精度高但设备 CPU 开销大。数据中心核心交换机我一般建议 1024 或 2048接入层可以适当调到 512。# 华为交换机 sFlow 配置示例 sflow agent ip 10.1.1.1 sflow collector 10.2.2.2 timeout 120 sflow sampling-rate 1024 interface Eth1/0/1 sflow flow-sampler enable sflow counter-sampler enable参数说明agent ip指定 sFlow Agent 的源 IP必须是设备上真实存在的 IPcollector指定采集服务器地址和超时时间sampling-rate 1024表示每 1024 个包取一个样本。注意 collector 地址必须可达且 Collector 侧 UDP 端口默认 6343要放通。流记录解读时最关键的是 sFlow Header 里的协议字段。sFlow 上报的包头包含源/目的 MAC、源/目的 IP、端口号、协议类型Collector 根据这些字段做聚合分析。如果发现某条链路带宽高但流量特征不清晰多半是采样比过高导致样本太少调低采样比到 256 重抓一轮就能看清。5.3 sFlow 配置中的三个高频踩坑点坑一sFlow 采样比设置过大导致流量分析失真现象Collector 上显示的流量分布和实际业务流量出入很大某些高带宽应用完全没有出现在报表里。原因采样比 8192 或更高时对小流量应用来说一万个包里可能只采到一个样本统计误差被放大。解决把采样比降到 512~1024同时增加 Collector 的采样窗口时间积累足够样本再做统计。坑二Agent IP 配置错误导致 Collector 收不到数据现象Collector 永远显示 0 流量但设备接口计数器明明有流量增长。原因sflow agent 配置的 IP 没有被 Collector 路由到或者该 IP 不在设备上Agent 无法发送报文。解决用ping 10.2.2.2 source 10.1.1.1验证源 IP 可达再检查 Collector 防火墙是否放通 UDP 6343。坑三误以为 sFlow 能做全量审计现象把 sFlow 当成全流量安全审计工具下游安全团队要查某个特定时间点的精确连接记录却发现数据不完整。原因sFlow 本质是采样统计不是全量抓包。解决需要精确审计的场景要部署端口镜像Port Mirror或 NetStream 全量记录sFlow 只适合流量趋势分析和容量规划。6. 用一个叠加验证习惯把红宝书里的知识点串起来用学了 VXLAN、SR、TRILL、sFlow如果只是在纸面上读懂遇到现场依然手忙脚乱。我的建议是在 Ensp 模拟器里先搭一个最小化的数据中心拓扑把这几项技术逐个验证一遍再逐步叠加到真实设备上。叠加的顺序很重要先配底层物理接口、IGP、SR再配 OverlayVXLAN EVPN最后上监控sFlow。这样做的好处是每一层都能单独验证IGP 通了看 SR 标签VXLAN 隧道起来了看 EVPN MAC 表业务通了再配 sFlow 看流量特征。如果反过来先配 sFlow 再搭 Overlay一旦异常你根本分不清是哪一层出了问题。具体验证脚本建议# 1. 验证 IGP 收敛和 SR 标签两台设备之间能看到 16101 等标签 display ospf segment-routing forwarding # 2. 验证 VXLAN 隧道建立Nve 接口状态和 peer 数量 display vxlan tunnel # 3. 验证 EVPN MAC 表项重点看远端 MAC 是否出现 display evpn mac-route # 4. 验证 sFlow Collector 端流量统计是否正常增长 # 一般在 Collector 上执行 sflow-rt 的 status 命令查看每次验证不是看命令输出有没有就完事要养成把输出和业务流量对应起来的习惯。比如 EVPN MAC 表里出现一条远端 MAC就手动 ping 一下对端虚拟机确认转发路径、时延都能对上号。这份红宝书最大的价值是帮我建立了完整的数据中心网络知识框架。以前处理跨机房通信问题我习惯性先怀疑物理链路后来才知道大概率是 VXLAN 隧道没起来或者 EVPN 路由没通告以前配置流量监控总被带宽跑满问题搞得焦头烂额现在直接按采样比、Agent IP、Collector 三层排查五分钟内定位。希望你在实际项目里也能少走这些弯路。如果手头这份文档已经下载建议先把 VXLAN 和 EVPN 两章精读一遍再用模拟器按我上面的顺序练一遍边练边回看报文结构比闷头看十遍都管用。本文还有配套的精品资源点击获取
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →