ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

数据中心网络演进:VXLAN、EVPN与SR关键技术解析

数据中心网络演进:VXLAN、EVPN与SR关键技术解析 简介由华为技术有限公司发布的数据中心技术红宝书系统梳理Segment Routing、TRILL与sFlow三大网络关键技术面向数据中心运维、IT管理及网络技术人员适合已有一定网络基础、希望深入掌握现代数据中心架构的人群。内容对Segment Routing的改进点、工作流程与优势展开说明解析TRILL协议如何高效完成BUM与单播报文转发并给出多归属问题处理方法sFlow部分则介绍如何实时监控网络流量状况并结合实际案例帮助读者实现理论与实战衔接。资源为单个PDF文档压缩包大小25.88MB全文结构完整覆盖数据中心基础概念到关键技术并提供实施指南与具体解决方案适合用于日常排障和网络优化参考。目前已有576人学习是数据中心方向技术人员值得研读的实用资料。1. 数据中心技术红宝书先把网络演进逻辑看明白再谈配置我刚开始接触数据中心网络时最头疼的不是某台交换机怎么配而是不知道该信哪套说法。网上搜出来VXLAN、TRILL、Segment Routing各讲各的没人说清它们之间的演进关系。后来我把华为这份《数据中心技术红宝书》从头拆了一遍才把这些概念串成一条线数据中心怎么从二层组网走到Overlay为什么有了VXLAN还要EVPNSR到底改进了什么sFlow采样怎么用才不翻车。文档版本03发布于2017年里面对原理的阐述到现在依然成立特别适合IDC运维和网络规划工程师按图索骥。这篇笔记就是我拆分资料时整理的关键点、参数和踩坑记录你可以对照原文章节精读也可以直接拿验证命令上设备核对。2. VXLAN与EVPN大二层网络的核心路径与转发机制2.1 传统网络为何撑不住云计算VLAN扩展性的天花板数据中心网络最早就是两层或三层组网接入交换机汇聚流量核心交换机完成路由。服务器还是物理机的时候一个IP对应一台机器广播域范围大一点小一点影响有限。虚拟化普及之后情况变了一台物理机上跑几十个虚拟机虚拟机要在物理机之间热迁移迁移前后必须处在同一个二层广播域因为VM的IP地址不能变。传统VLAN方案的压力在这里暴露无遗。VLAN ID只有12位满打满算4096个多租户场景下根本不够分加上STP为了防环会阻塞冗余端口链路利用率始终上不去。华为红宝书里把VLAN的处境形容为“见招拆招”意思是你想扩展二层域就得堆设备堆完设备又要解决环路环路解决了带宽又浪费最后整个网络拓扑被物理位置绑死。VXLAN的思路是把二层报文用UDP封装后丢进三层IP网络里跑。物理位置不再限制虚拟机的迁移范围只要underlay路由可达VTEP之间就能建立VXLAN隧道。VNI占24位支持1600多万个虚拟网络等于把VLAN的扩展性问题彻底绕开了。这个转变的关键词不是“扩VLAN”而是“Overlay”业务网络和物理网络从此解耦。提示理解VXLAN时别把它当成“高级VLAN”。VLAN是数据链路层的隔离手段VXLAN是承载在UDP之上的隧道技术隔离单位是VNI不是VLAN ID。2.2 VXLAN转发机制BD、VTEP和隧道建立的层层拆解先理清三个基本概念。VTEP是VXLAN隧道端点负责报文的封装和解封装BD是桥接域类似于传统交换机的VLAN转发域VNI是虚拟网络标识BD与VNI一一映射。华为设备上通常叫Nve接口它承载VTEP功能VXLAN隧道建立后二层流量就在两个Nve接口之间走。配置上华为CE交换机常见的三段式写法如下# bridge-domain 10 vxlan vni 5010 # interface 10GE1/0/1 port link-type trunk port trunk allow-pass vlan 100 # interface Nve1 source 10.1.1.1 vni 5010 head-end peer protocol bgp #第一段在BD里绑定VNI第二段把接入接口放进业务VLAN第三段在Nve接口上指定隧道源地址并开启BGP EVPN动态建隧道。逻辑说明BD相当于把物理端口和VNI关联起来接入侧进来的VLAN 100流量会映射到VNI 5010Nve1上的source地址是隧道的源IP对端VTEP通过BGP EVPN学习到后自动建立隧道。参数说明head-end peer protocol bgp表示隧道由EVPN控制面动态触发如果网络里没有部署BGP也可以用静态VXLAN隧道配置指定对端VTEP IP但可扩展性差适合小型组网。再往下看报文格式。VXLAN报文从内到外依次是原始以太网帧、VXLAN头、UDP头、外部IP头。VXLAN头里最关键的是VNI字段和Flag位目的UDP端口固定为4789。排错时如果看到UDP端口不对基本可以判断封装过程出了问题。华为红宝书对报文结构的描述很细致理解这些字段对抓包分析有直接帮助。2.3 集中式网关与分布式网关跨子网互通的两种解题思路同子网互通时报文在VTEP之间直接转发不涉及网关。但跨子网互通时一定要经过三层网关网关的位置决定了组网模型。集中式网关把网关部署在核心交换机上所有跨子网流量都往核心走。这个方案配置相对简单排错路径清晰适合中小规模IDC。代价是核心设备成为东西向流量的瓶颈VXLAN规模上来之后核心压力很大。分布式网关把VLANIF接口下放到每台Leaf交换机叶子节点既是VTEP又是网关。跨子网流量在本地的Leaf上完成路由不需要绕行核心。华为实现里通常在VLANIF上做ARP广播抑制和本地代理让ARP请求只在本地子网内扩散。好处是带宽效率高Leaf之间流量就近转发代价是对BGP EVPN和underlay的稳定性要求更高排查面也更宽。很多生产环境的“翻车”不是VXLAN本身的问题而是分布式网关后underlay路由振荡带崩了所有VNI。对比项集中式网关分布式网关网关位置核心交换机每台Leaf交换机跨子网路径绕行核心南北向集中本地Leaf直接路由配置复杂度较低较高排错范围集中式路径清晰分散式需逐Leaf排查适用规模中小规模DC大规模或多租户DC2.4 EVPN控制面为什么数据中心要用BGP来学习MACVXLAN的数据面转发很简单难点在于VTEP之间怎么知道对端下面挂了哪些MAC。如果靠数据面泛洪学习每个VTEP都要处理大量BUM流量扩展性很差。EVPN的方案是用BGP作为控制面把MAC地址和主机路由放到BGP EVPN路由里通告。EVPN最核心的路由类型是RT-2即MAC/IP路由它携带主机MAC、所属VNI、下一跳VTEP IP等信息。VTEP收到RT-2后生成VXLAN转发表这样数据面就不需要泛洪了。华为红宝书里给了一张清晰的流程图主机上线、MAC地址发布、BGP邻居通告、对端VTEP生成转发表项几步完成。实际验证时常用几组命令display bgp evpn peer display bgp evpn routing-table display mac-address vxlan 5010 display vxlan tunnel display bridge-domain 10思路是先确认BGP EVPN邻居是Established状态再看路由表里有没有RT-2然后核对VXLAN隧道状态和MAC表项。哪一层断掉就修哪一层。这里有个血泪经验BGP邻居都正常、MAC表也有但业务不通大概率是BD和VNI映射不一致一查一个准。3. Segment Routing控制面做减法、转发面做加法的落地细节3.1 从LDP到SR-MPLS去掉一个协议能换来什么传统MPLS网络里LDP负责为每个前缀分发标签IGP负责路由两套协议各有各的邻居关系和维护成本。Segment Routing的思路是让IGP直接分发SID用SID来表达路径LDP这个角色就没有存在必要了。少一个协议意味着少一套邻居状态、少一类故障点尤其是跨域互通时不用再做LDP和RSVP-TE之间的协议转换。代价是全网设备需要正确理解和配置SRGB。SRGB是Segment Routing的全局标签块华为设备默认范围一般是16000到23999。每台设备的SRGB必须一致或者经过映射对齐否则转发时标签错位流量就跑到不该去的地方。做网络规划时建议给每台核心设备的Loopback地址分配一个全网唯一的Node-SID后续所有路径计算都基于它。3.2 SID与SRGBPrefix-SID、Adj-SID和Node-SID的分工SID是Segment Routing里的“路径片段”不同类型表达不同语义。SID类型分配对象转发含义典型用途Prefix-SID某个前缀如Loopback路由沿最短路径转发到该前缀节点可达性Node-SID设备本身的Loopback地址转发到该设备节点标识节点身份Adj-SID本地直连链路强制从指定邻接链路发出显式路径控制Adj-SID是局部有效的只在分配它的设备上有意义Prefix-SID要求全局唯一。配置时最常踩的坑就是把两台设备的Node-SID配成一样的流量在中间节点查表时发现两条等价路径随机负载分担最终路径完全偏离预期。3.3 TI-LFA快速重路由与SR Policy流量工程不再依赖RSVP传统IP网络故障恢复靠IGP收敛秒级甚至百毫秒级骨干网还能接受数据中心内部业务往往撑不住。TI-LFA基于拓扑计算备份路径不依赖故障后的动态计算只要IGP感知拓扑变化转发面立刻切到预先算好的备份路径上。优势是拓扑无关任意单链路故障都有备用路径。SR Policy则是显式路径的流量工程能力通过一个Segment列表指定从源到目的要经过的节点和链路把路径信息编码进标签栈。配置示例大致如下segment-routing mpls srgb 16000 23999 # interface Loopback0 ip address 10.0.0.1 255.255.255.255 segment-routing mpls prefix 10.0.0.1/32这段配置先开启segment-routing设置SRGB范围然后在Loopback0上给前缀10.0.0.1/32分配Prefix-SID。参数说明SRGB范围决定SID对应的实际MPLS标签值Prefix-SID关联到具体路由前缀其他节点收到IGP通告后就知道到达10.0.0.1应该压入哪个标签。TI-LFA通常不需要逐条配置在IGP里开启fast-reroute即可自动计算备份路径。血泪提醒开启TI-LFA后一定要做故障演练只配置不演练等到真断链才发现备份路径没算出来那场面很难收场。3.4 SRv6报文结构、配置边界与现网评估点SRv6把SID编码进IPv6地址用128位的段标识表达路径信息在IPv6报文头后追加SRH扩展头。好处是整个网络只需要IP协议族不再有MPLS标签栈控制面统一。代价是报文头开销大且对转发芯片有比较高的要求不是所有交换机都支持SRH处理。数据中心场景里SRv6适合新建设的DCI网络或者有端到端IPv6规划的局点存量设备如果只支持SR-MPLS不要强行上SRv6。我一般会先确认设备是否支持SRH头解析再确认SRv6的SID分配和我的地址规划兼容。红宝书里对SR的定位很清楚它是Overlay的另一种玩法目的是简化网络不是炫技。4. TRILL与EVN另类大二层和跨DC互联的实现机制4.1 TRILL的控制面RBridge如何通过IS-IS改造二层网络TRILL的出发点也是解决STP的顽疾。STP靠阻塞端口来防环链路利用率低收敛也慢。TRILL引入RBridge的概念在二层交换机之上运行IS-IS协议通过IS-IS来发现拓扑、计算转发路径。RBridge之间不再有阻塞端口所有链路都可以承担流量同时支持ECMP负载分担。控制面改造之后二层网络的形态发生了根本变化。RBridge像路由器一样维护拓扑数据库知道全网有哪些设备、哪些链路可用。转发决策不再依赖MAC地址泛洪和学习而是基于nickname昵称进行路由。红宝书里用了“移花接木”这个比喻很形象把三层的路由控制逻辑借用到二层让二层网络拥有等价多路径和快速收敛能力。4.2 TRILL转发面TRILL头、已知单播和BUM报文路径TRILL数据报文有两层封装外层是以太网头内层是原始二层帧中间夹着TRILL头。TRILL头里最关键的是ingress nickname和egress nickname分别表示报文的入口RBridge和出口RBridge还有Hop Count字段用来限制环路这和IP报文的TTL是一个作用。已知单播转发时入口RBridge根据内层帧的目的MAC查找表项确定egress nickname然后封装转发。中间RBridge只认nickname不再关心内层MAC。这个设计让二层转发变成了类似三级的逐跳转发每一跳都能做负载分担。BUM报文广播、未知单播、组播的转发逻辑不太一样。TRILL用分发树来承载泛洪流量全网建立一棵或多棵以某个RBridge为根的广播树BUM报文沿着树复制转发。相比STPTRILL的树只服务于泛洪不用屏蔽链路利用率高得多。多归属场景下TRILL还支持将一个终端设备同时接入多个RBridge流量可以负载分担链路故障时无感知切换。4.3 EVN跨域互联BGP控制面与VXLAN封装如何配合EVN是华为在多数据中心互联DCI场景下的增强方案核心思路是“借船出海”借用BGP成熟的控制面和路由扩散能力把VXLAN隧道延伸到跨DC环境。每个数据中心内部还是VXLAN转发DC之间通过BGP传递VNI信息和MAC路由实现跨DC的二层互通。EVN的组网模型里控制平面通过BGP在边缘设备之间交换MAC可达性信息包括哪个MAC在哪个VNI下、对端VTEP地址是什么。转发面仍然是VXLAN封装DC之间的流量在边缘设备上完成封装和解封装。单播流量按VXLAN头里的VNI和目的MAC走BUM流量通过头端复制在入口设备复制多份分别封装发送。这个方案比堆裸VXLAN的优势是可控性更强BGP可以天然跨AS传递路由DC间路由策略也更灵活。4.4 TRILL与VXLAN怎么选设备的支持情况和组网边界选型这件事理论上可以写一篇论文实际上就看三个条件设备支持什么、运维熟悉什么、网络规模边界在哪。纯数据中心内部如果设备是支持TRILL的华为框式交换机想利用多路径大二层TRILL是可选项。但TRILL的互通性不如VXLAN跨厂商设备时需要注意协议兼容问题。跨DC互联场景VXLAN的underlay是IP网络中间设备不需要理解VXLAN只要帮忙转发UDP包就行天然适合穿广域网或第三方传输链路。现在的趋势是VXLANEVPN成为事实标准。EVPN控制面、VXLAN数据面这个组合在大型数据中心里已经有大量生产案例。TRILL更适合存量网络改造或特定设备环境。拆这份文档时我的判断是新规划的数据中心直接走VXLANEVPN路线TRILL作为备选方案了解原理即可别在新建网络上赌一个兼容性偏弱的协议。5. 避坑专栏VXLAN、SR、TRILL和sFlow的高频故障5.1 VXLAN隧道静默失效BD与VNI映射不一致现象VXLAN隧道显示UPBGP EVPN邻居正常业务虚拟机之间就是不通ping对端网关时通时不通。原因本端BD 10绑定了VNI 5010对端BD 10绑定的却是VNI 5011。两边隧道都建立成功但VNI不匹配报文在解封装后落到了不同的转发域直接丢弃。解决逐端执行display bridge-domain和display vxlan vni把两端VNI对照检查。我一般会在割接前做好表格记录每台设备BD和VNI的映射关系并明确规定同一业务VNI在全局必须唯一。从那以后每次配VXLAN我都要两边同步核对一次VNI表。5.2 EVPN邻居振荡underlay可达性和BGP参数排查现象display bgp evpn peer看到邻居状态在Established和Connect之间反复横跳VXLAN隧道跟着起起落落。原因underlay的IGP路由没有把所有Loopback地址互通起来BGP报文走了一条不稳定路径还有可能是BGP keepalive时间过短设备CPU高时超时误判邻居失效。解决先查underlay。逐个ping对端VTEP的Loopback地址确认双向可达再查IGP有没有把Loopback路由通告进underlay。排除underlay问题后调整BGP的keepalive和holdtime参数保持设备间时间参数一致。5.3 SR流量不走预设路径SRGB和SID列表问题现象配置了SR Policy后traceroute发现流量走的路径和预设Segment列表不一致有的路径甚至绕了个大圈。原因常见两种。一种是一种是设备SRGB配置不一致中间节点解出来的SID不代表预期前缀另一种是Segment列表里的中间节点没有发布Adj-SID路径计算时自动回退到了最短路径。解决用display segment-routing mpls forwarding查看标签转发关系逐设备核对SRGB范围。再查IGP里发布的Prefix-SID是不是全局唯一Adj-SID有没有正确通告。SR的排错比传统MPLS更依赖全局视图单看一台设备很难定位问题。5.4 TRILL多归属翻车RBridge昵称冲突和DIS选举抖动现象TRILL网络里两台RBridge做多归属接入设备起来后邻居状态反复up/down接入端口流量不稳。原因RBridge的nickname配置冲突两台设备选了同一个昵称或者IS-IS的DIS选举不稳定hello报文时间参数与接入端口的STP状态冲突。解决查看TRILL拓扑中每台RBridge的nickname分配改为全局唯一。调整IS-IS的hello间隔和邻居保持时间确保链路闪断不会触发频繁的DIS重选。同时检查接入端口的STP配置关闭不必要的STP参与减少二层协议的互相干扰。5.5 sFlow采样结果对不上采样率、方向和轮询间隔现象流量分析平台上的sFlow统计和出口流量监控数据偏差很大有时差一半以上。原因一个原因是采样率设置太高比如4096分之一小流量场景下样本量不足另一个原因是采样方向只开了入方向而出方向的大流量没有被采样还有可能是CPU过载时设备自动丢弃了部分采样报文。解决华为交换机上调整采样率和方向是常规操作命令逻辑如下sflow collector 1 ip 192.168.10.20 sflow collector 1 port 6343 sflow sampling-rate 4096 # interface 10GE1/0/1 sflow flow-sampler enable sflow flow-sampler sampling-rate 1024 sflow counter sampler enable sflow counter sampler interval 30这段配置的意义是先定义sFlow采集器IP和端口再指定默认采样率然后在接口上开启流量采样和计数器采样。参数说明sampling-rate为1024表示每1024个报文随机采样1个数值越小采样越精确但CPU开销越大interval 30表示每30秒上送一次接口计数器。实际调整时建议按流量模型来高流量端口用4096低流量端口用512或1024不要全局一刀切。6. 验证与巡检从ensp模拟到现网核查的落地清单6.1 用eNSP模拟器复现VXLAN和SR配置华为eNSP模拟器对VXLAN和SR-MPLS的支持相对完整适合在割接前跑一遍配置验证。我在模拟器上通常会搭一个最小拓扑两台Leaf接SpineLeaf下面挂业务主机Leaf之间起BGP EVPN。配置顺序固定为先配underlay OSPF再配BGP EVPN邻居然后配BD和Nve接口最后验证隧道。SR部分在CE模拟器上可以验证SRGB配置和TI-LFA的路径切换但SRv6要看版本新版本才有相关特性支持。模拟器验证的关键命令和现网通用display bgp evpn peer display vxlan tunnel display segment-routing mpls forwarding三步看下来邻居、隧道、转发全通再上现网操作。我一直认为模拟器最大的价值不是学命令而是让你在“不会出大事”的环境里把所有错误选项都踩一遍。6.2 现网巡检自查清单逐层排查的顺序和命令现网运维和模拟器不一样遇到的故障往往叠加了物理链路和版本差异。我会按固定顺序巡检先underlay后overlay先控制面后数据面。第一步检查IGP邻居状态确认underlay所有链路正常第二步检查VXLAN隧道状态和BD映射第三步检查BGP EVPN路由数量是否符合预期第四步抽查端到端ping和traceroute最后看sFlow上报的流量指标有没有异常。每步都有明确命令巡检完基本能把问题定位到某一层。从那以后我每次做VXLAN或SR的割接都强制自己走一遍这个清单先模拟后现网再复杂的变更也按这个顺序来。很多看起来诡异的故障其实早在第一步或者第二步就露出了苗头只是当时急着查业务漏掉了基础检查。希望这份拆解能帮你在数据中心网络里少走一段弯路。本文还有配套的精品资源点击获取
返回列表