zhjl520
作者zhjl520·2021-03-15 09:24
网络管理员·江苏省农村信用社联合社

企业应用SDN网络技术难点总结

字数 9663阅读 8337评论 0赞 0

目前SDN方案分为硬件和软件两大类。硬件SDN是采用专用的硬件交换设备与控制器来实现相关的网络功能,控制器对硬件设备进行策略以及流表的下发,来实现网络相关的功能。它的优点是性能强,比较稳定,缺点是不灵活且组网成本很高。

而在软件SDN的解决方案中,网络的功能是通过软件层面的Linux协议栈以及相关的虚拟交换机技术实现的。它的优点可以避免对硬件网络设备的过度依赖,同时降低了组网的成本,但是软件方案的缺点也比较明显,主要表现在网络的稳定性、性能和可扩展性不如硬件方案。

无论您选择哪种SDN方案,未来随着企业数据中心运维深入的后期可与云平台服务器联动监控,让业务处理总体流程明确,而不是割裂的去看网络、服务器、数据库等各点的监控。第三方运维平台还可将各个点运维数据保存,挖掘网络性能变化趋势,可形成网络健康基线范围,对网络状况进行前瞻性预测,可预防一些网络故障风险的发生。这种方式缺点是需投入资金、人力等资源自建运维平台,并需要保持该平台与多品牌设备的联动。

企业在实现SDN网络技术中肯定会遇到不少问题和难点,本期的交流探讨就是围绕大家在应用SDN网络技术遇到的难点进行交流分享。

交流问题:

1、SDN网络与容器云网络对接中遇到的难点

背景介绍:
2020年SDN网络区域建设项目落地,开年碰到的第一个业务就是与容器云网络的对接。
1、容器云厂商标准方案中采用自研网络插件;
calico插件同样支持,不推荐使用
2、SDN支持calico,SDN厂商自研CNI插件和其他标准的CNI插件
方案讨论:
1、容器云使用calico插件,SDN网络可以管理到容器云内部网络
2、容器云采用SDN厂商自研CNI插件,开发成本较大
3、采用容器云自研插件,SDN网络进行调整,开发成本较大
4、不感知容器云内部网络,只做三层网络的可达,缺点是双层vxlan标签
问题讨论:
最终讨论结果为方案4,还想请教大家,是否还有其他的思路。

回复1:siguadantang 技术经理 , 苏宁银行
简单扩展下:
容器技术逐渐普及,以K8S为主要编排器技术的容器生态逐渐建立,但每个企业都在实际落地的过程中都会多多少少碰到“痛点”。主要体现在如下两方面:

  1. 存储,本地存储对一些有共享场景的业务缺乏灵活性;分布式存储,开源的带来运维成本和投入的增加;商用的,要考虑成本;
  2. 网络:是非常重要的拼图。无论是否是容器生态,网络都像人身体的血管一样,是整个IT的软支架;

针对问题个人见解:
在容器云上试用的网络技术主要分为两类:overlay网络和underlay网络。
在开源社区比较活跃的经验分享有:flannel,calico;
flannel是overlay网络,简单,易用,支持vxlan和host-gw模式。但缺点也比较明显性能不佳,如果要打通与存量服务的访问,需要存量服务的虚机部署组件,且对内核版本有要求。
calico相对功能比较强大,是纯三层的容器网络通信解决方案,通过ipip模式实现overlay网络。但部署相对复杂,稳定性,安全性,可靠性,在很多金融行业很难取得信任,也可以说还没有能提供让这个行业取得信任的“标杆”。大多还是基于macvlan等方案;

有一种比较不错的方案:bridge-vlan,通过将容器网络平面和计算节点的网络平面打平,通过在交换机上为容器网络也规划vlan的方式,在计算节点上部署双网卡来实现:一个网卡用户k8s管理,一个网卡用于走数据访问流量。

如上信息供参考!

回复2:张振华 软件架构设计师
SDN和容器云在数据中心出现的越来越多了,而且都属于基础设施层面,因此两者的融合就成了很自然的话题。说到融合,至少包含以下几个方面吧,大家也可以再补充。

  • 网络/ip等基本元素的管理,首先收拢统一管理,管理员可以在一个平台看到全网。这里牵扯到Underlay/overlay,通信协议等的选择。
  • 统一策略管理。传统网络里大量的策略管理,但基于K8S平台下,都是networkpolicy,两者需要进行整合。统一开通或关闭,进行联动。容器云上业务上下线、扩容频繁,能打通的地方要打通,增加基础设施和业务的敏捷性。
  • 统一监控。容器云网络也是基础网络的一部分,需要进行监控和管理。SND有自己的网络视角,可以理解部分协议,例如vlan、vxlan等,从而监控到容器网络。同时CNI也往往有特有的监控视角,比如其内部的种种metrics,这些也可以整合到一起。
  • 统一运维工具。不能说因为引入了容器云,就导致容器网络的运维复杂度大大增加,甚至不可控。

另外,结合企业现状,进行合理的选择,毕竟合适自己的才是最好的。比如BGP,机房里能否开启BGP?有没有相关人员?容器云多个集群就有多个/16的大CIDR(/16在容器云里是通常的一个选择),放开BGP后安全部门如何看待这些海量的IP地址?还是说这些地址就不能出集群?再比如vxlan,vxlan现在用的比较多,性能有一定损耗,能否结合offload进行性能优化?再比如vlan(underlay了),能否为容器云规划出对应的网络?容器云未来的规模是怎么样的?都需要进行考虑。

供参考。

回复3:johnclarkson 架构师
多层vxlan 效率比较低且运维软件默认不认识这包,需要定制。

最佳的方案

让你的数据中心运行BGP.

容器选择BGP能力的calico . kuberouter 等等都可以

之所以这么做,理由是BGP是网络通用协议,直接三层直达,无缝对接各种网络,比如典型的MPLS VPN.

首先BGP稳定性和灵活性如何,这个不需要担心,因为没有BGP就没有互联网,所以BGP基本上是网络世界中的核心协议,对于大部分客户来说BGP会非常陌生,不过,看近几年行业的变革与推动,BGP逐渐进入大众视野,举个例子

BGP EVPN vxlan

kubernetes calico.

物理盒子厂家SDN与外部对接 BGP (Cisco ACI DNAC)

所以尽早拥抱BGP是绝对正确的选择,而非openflow阵营 因为局限性和不兼容,至少 大部分的网络设备不认识openflow. 你不会听到和运营商对接用openflow的,因为压根不支持。所以openflow这个产物要理解一件事,首先小型集群用这个问题不大,你自己玩。不过你出来必须是通用协议,并且虽然说openflow开源,不过越来越多的公司介入造成 根本不兼容 对方的openflow base payload,所以从SDN出来抱着ovs openflow就是很蠢的选择,玩好BGP才是现在的方向,给你个理由。

Google microsoft. 跑BGP.

openflow这套东西呢,试过点,性能完全不合格

so你知道如何选择了。

回复4:albertming 网络 , 民生银行
我推荐也是方案4,但是使用underlay网络模型不会出现双层vxlan标签,你提到的calico网络模型bgp full mesh模式就是underlay的网络,容器pod出入访都是真实ip不会进行vxlan封装和nat,同样的网络模型还有fannel host-gw类似。

回复5:jiachao 网络工程师 , 银行
华为的SDN设备吗?CNI是华为的容器网络插件&CE1800V,我记得去年沟通的时候,华为自己的CNI组件还不是特别成熟
不过容器厂商不推荐Calico,不清楚什么原因。前两年Calico还很流行的,我们使用过程中暂时没有发现比较大的bug。但是Calico不支持流量镜像之类的一些功能,后来容器厂商自己搞了一套CNI,目前在推广自己的CNI

2、SDN主要应用在哪些适用场景?适用的企业的规模如何?

SDN主要应用在哪些适用场景?适用的企业的规模如何?,给企业带来那些收益?

回复:zhjl520 网络管理员 , 江苏省农村信用社联合社
总结来说,SDN所能提供的五大好处如下:

第一、SDN为网络的使用、控制以及如何创收提供了更多的灵活性。

第二、SDN加快了新业务引入的速度。网络运营商可以通过可控的软件部署相关功能,而不必像以前那样等待某个设备提供商在其专有设备中加入相应方案。

第三、SDN降低了网络的运营费用,也降低了出错率,原因在于实现了网络的自动化部署和运维故障诊断,减少了网络的人工干预。

第四、SDN有助于实现网络的虚拟化,从而实现了网络的计算和存储资源的整合,最终使得只要通过一些简单的软件工具组合,就能实现对整个网络的控制和管理。

第五、SDN让网络乃至所有IT系统更好地以业务目标为导向。

3、在SDN软件实施中的难点是什么如何做到高可用?

回复:emake 网络工程师 , 某银行股份有限公司
从网络工程师角度来说,实施难点个人觉得有如下几个方面:
1、linux技术的掌握情况。sdn部署环境大多数为linux系统,一般网络工程师会网络但是对于linux却不是很了解,如果遇到问题更是难。
2、租户及租户内业务规划。sdn的配置关联性很强,配置内容多,需要提前跟客户做好配置方法和业务规划沟通,避免后期推到重来。
3、应急处置方案。目前可参考的sdn的应急处置方案不多,实施过程中需要耗费精力根据产品和客户业务需求进行编写。

sdn软件的高可用。目前市面上的商用软件基本都具备,典型的有2+1集群模式。开源的产品可参考商用软件了解,需要花费一定的精力。

4、关于SDN产品选择?如何根据当前环境选择SDN产品?

回复1:zhjl520 网络管理员 , 江苏省农村信用社联合社
明确当前网络需求。如满足监管机构的区域隔离要求;提供高性能的网络环境,满足万兆高速传输需求;配置支持 SDN 技术的网络设备,满足未来业务扩展需求;新增设备要支持虚拟化,通过逻辑隔离,复用设备,减少设备投入;利旧现有的网络设备。

回复2:albertming 网络 , 民生银行
可以从实用的最主要诉求出发,比如带宽收敛比和时延要求,分布式网关需求,服务链功能需求,南北向功能需求,云平台适配行,以及国产非国产需求,最后还有最近的信创需求。

5、SDN 和云平台对接难点如何解决?

SDN 和云平台对接并不是一件易事,就拿目前最常用的 OpenStack 来说,在和 SDN 对接时存在很多难点:首先每半年一次的 OpenStack 的 release,给对接及后续升级带来了很大的困难;此外,OpenStack 与 SDN 之间的数据同步,都是在落地 SDN 的过程中企业需要考虑的东西。所以想借此机会问问嘉宾,你们在SDN与云平台对接过程中的一些新的经验,以及针对以上难点你们如何处理和规避?

回复1:albertming 网络 , 民生银行
一般这个问题是云平台对接硬sdn的方案会遇到的问题,其实最难的是硬件防火墙对接openstack平台,多租户和网络模型以及路由是最麻烦的,原生openstack网络模型中的fwaas是通过网络节点(一台linunx服务器)中的iptable实现的,其部署位置与网段网关重叠所以不用考虑路由等设计,但是与硬件防火墙结合,路由和外部网关以及多租户互通模型就很复杂了,这块就需要sdn云平台,sdn控制器以及防火墙厂商联合定制化开发才能搞定。
建议最简单方式是云平台和sdn控制器厂商采用同一家厂商,防火墙和负载均衡从与他们对接过有成熟案例的厂商中选择,会减少非常多的工作量。

回复2:ostrich 系统架构师
先看规模和具体需求。规模上,未来会有多大量的真实的“子网”,是不是一定要上VxLAN?说实话,一般企业云环境,VLAN都能满足;
如果一定要你问题开始的那种模式,那么思路应该是反过来的,也就是你用的是什么SDN,这SDN一定是依托于某一厂商的。你要根据厂商的Support Matrix来考虑你的OpenStack升级计划,不可能跟随社区半年一升。

再看功能,除了“SD”出网络和子网之外,路由、防火墙、LB、DDoS……这些功能是否都要实现真正的“软件定义”。这里有一点容易混淆的概念是,软件定义的组件,不一定非得是软件。比如LB,前端可能是一个集中的F5,但通过API的集成,可能在租户层“SD”成多个虚的实现。。。

企业里,最简单的模式,VLAN来定义租户网络,然后路由、防火墙、LB之类的功能性需求,由网络组统一管理,走需求工单。

6、SDN在控制层进行功能控制时,如何应对不同厂家设备之间的兼容性?

SDN在控制层进行功能控制时,如何应对不同厂家设备之间的兼容性?

回复:albertming 网络 , 民生银行
有几种流派,一种是用网上开源的软sdn控制器,这些控制器应用可以兼容一些厂商的sdn交换机,但是功能相比于原厂的控制器稍弱。还有一种方式就是有厂商开发超级控制器对接不同厂商原厂的sdn控制器,屏蔽厂商差异提供统一功能。后者可能更适合大型网络。

7、SDN与传统网络区别有哪些?优势是什么?

回复1:yxb86101 基础设施与安全架构师 , 潍柴动力
简单点,传统网络就是所有的配置都在每个设备或每个虚拟交换机上完成,sdn就是将控制和传输分开,配置这个过程由专门的控制端完成,然后下发到每个硬件设备或者虚拟交换机上,更加灵活的管控网络。

Sdn又分软sdn和硬sdn,性能和稳定性上目前来说硬件更好些,但随着公有云能力的提升,估计软件sdn会成为趋势。

优势的话就是更加灵活,对于数据中心,如果没有租户需求的,个人认为价值不大,毕竟数据中心内部网络变化太少了。虽然他有一些安全,运维的优势,但同样需要数据中心传统网络人员新的技术能力。对于大型数据中心,如公有云sdn那是必须的,因为还要vlan 不够的问题。

反而我觉得园区网络和广域网网络更适合sdn,如方便运维,权随人动,as-wan等能力应用。

从趋势看,sdn是未来的趋势,下一步的意图网络也是基于sdn,结合AI、大数据的应用,管理网络。

回复2:zhjl520 网络管理员 , 江苏省农村信用社联合社
1、SDN可以改变传统网络下应用与网络紧耦合的烟囱式架构,提升网络资源池化的水平。
2、SDN网络与云平台对接,实现自动化部署配置,支持业务快速上线和灵活拓展
3、通过软件代替手工编排,实现网络服务自动化。

8、SDN方案中的设备管理?

SDN方案中的设备管理是如何做的,是否可以实现在同一管理平台中管理所有交换机。

回复1:雪山飞狐ZZB 技术总监 , 某IT企业
交换机的 接入到汇聚使用 vlan 进行联通,在汇聚层设备上,不同 vlan 映射到不同 Vxlan 进行隔离,同时汇聚和核心设备之间运行 Vxlan 构建 overlay 网络,构建一个逻辑上的大二层网络,同时采用分布式 L3 网关并通过可靠的机制有效地抑制广播风暴。
所有对网络的自动化上线,接入管理,用户组 / 策略管理,业务配置管理全部在 控制器上通过直观的图形化界面完成。控制器将管理员的操作在后台转化为网络设备的具体命令进行下发给设备执行。

回复2:zhjl520 网络管理员 , 江苏省农村信用社联合社
使用硬件厂家的SDN控制器,会明确有各家的技术壁垒。无法其他品牌和该品牌较老的交换机。
软控制,理论上是可以做到。

9、SDN如何实现不同业务网络的隔离?

SDN如何实现不同业务网络的隔离?
常见的软SDN与硬SDN是指什么?他们最大的区别是什么?各自的优劣是什么?

回复:zhjl520 网络管理员 , 江苏省农村信用社联合社
现在SDN的发展,客观上已经形成网络设备厂商为主的硬SDN阵营和以软件供应商为主的软SDN阵营。

但孰优孰劣,我们针对上面SDN的各个价值要素对比分析一下。

首先,从自动化能力的灵活性来看,自动化程度更多取决于不同厂家对网络业务的理解能力和逻辑抽象水平,与软硬方式相关性并不那么高。比如在SDN的业务发放上,北美厂商沿用一贯简单的多级表单的方式来下发业务逻辑。而国内厂家基本已经使用图形化交互的方式,抽象层次更高、逻辑理解更直接,这一点值得为国内厂家点赞。而目前逐步兴起的意图网络,硬SDN厂商可用基于IT业务语言来自动化网络的配置,甚至可以做到事前校验、事后验证等更高的自动化水平。软SDN厂商则相对落后。

软SDN在于其业务开发全部依赖于软件实现,更灵活、迭代更快,能力可以不依赖于硬件快速更新。但实际商用时也有严格的版本策略,并且需要考虑将对性能影响严重的特性如加密、封装卸载在网卡上。总体而言,软件方式身段更灵活一点,但因为完全依赖CPU也面临较多约束。所以在这一点上,更应该侧重考察的是,不同厂家不论软硬方式,其在自动化能力上表现出的不同眼界和实践水平。

其次,从网络的可扩展性来看,二者能力不分伯仲。二者均可以构筑大规模的SDN网络,包括支持跨域多DC的级联网络。

软SDN可以灵活牺牲服务器资源来置换网络资源,所以在租户、VPC等规格上可能会超过硬SDN在交换机上的硬件资源限制,然而当前主流交换机规格基本不存在瓶颈,所以这个优势无法体现到实际项目价值中。暂且认为二者在此打成平手。

第三,在实际的网络部署中,可靠、稳定是重中之重。没有人会容忍一个频繁掉链子的网络。这一点硬SDN天然具备更佳的身位,其从早期一路积累的商用可靠性能力有巨大优势。而软SDN通过vSwitch也提供了故障切换的能力,但作为业务软件依然受限于软件特有的可靠性问题。此外,软SDN会给网络运维团队带来新的挑战,运维边界需要延伸到服务器内部,服务器运维在网络和业务团队部分叠合,存在冲突的可能。所以我们看到,敢于使用软SDN的基本是互联网厂家,自身拥有较强的技术能力来克服这个问题也是一个重要原因。

再者,性能问题上二者差异如何呢?由于硬SDN在交换机硬件上甚至芯片上来处理,性能上确实远胜软SDN。软SDN依赖的vSwitch也在持续往这个方向努力,比如叠加DPDK,智能网卡卸载等“围魏救赵”方式,性能问题确实得到了一些缓解,各厂家数据普遍提升到十多G,但相比硬SDN能力仍然差距较大。

有些卸载技术能否规模商用还没有形成行业共识,有些还处在创新实验阶段,而且引入这些辅助技术时又扩展了软SDN的配套边界和复杂度,当然也增加了成本。国内有些保险公司在初期选择软SDN后,因出现了无法接受的性能瓶颈转而寻求硬SDN方案。

还有一点,就是开放集成能力。企业市场细分市场众多,不同企业对包括服务器的厂家和型号、虚拟化平台、云平台等不同部件也有不同的喜好或经验,二者谁更能匹配这种开放集成的诉求呢?由于软SDN依赖服务器vSwitch,它需要配套底层平台软件,甚至匹配虚拟服务器型号支持。由于不同虚拟层软件的差异性,导致了单个vSwitch产品无法通配所有虚拟层平台而需要独立配套的产品。硬SDN则避免了这些锁定,由于控制点在硬件交换机,能普遍适应下层接入的IT资源生态,如不同厂家服务器和不同虚拟化平台,以及云平台产品。

最后却是最重要的,成本!其实,业界不少人认为软硬SDN之争最关键的两点便是可靠性和成本。

性能问题最后归到底也可以看为成本的一个部分。在这场赛跑中,一边是软SDN通过服务器成本来置换网络资源,包括性能叠加和规模管理引入的成本。另一边则是网络设备商的硬件能力提升快速消化掉硬SDN的成本。哪个效率曲线跑的快,哪个就更有优势。

这一点上,目前硬SDN有明显优势。从实际项目中取得信息看,硬SDN方案交换机已经基本消化了SDN的成本,和非SDN交换机的价格基本一样,这得益于这几年芯片集成能力飞速发展。反观软SDN,vSwitch的数量庞大加上运维年费,价格也并不便宜。

但具体到不同场景上,软SDN展现了其灵活的用武之地。比如在一个不再增长的传统业务数据中心,客户无意过多投资网络改造,而老旧的交换机不支持SDN,这时软件SDN方式用服务器资源置换SDN能力会是一个好的选择。毕竟对一个没有增长的业务不必要去大动干戈。硬币的另一面,如果预期业务要持续增长时,仍然建议采用硬SDN的方式来建设或逐步改造,时间越长回报越大。

总体而言,由于各个厂家的销售策略不同,加上服务器和交换机各自成本的下降竞争速度动态变化,成本要素在不同场景不同项目里表现差异较大,只能因地制宜,这里姑且认为一致。

10、SDN环境下,特别是软SDN下,负载均衡发布的应用,在东西向防火墙上怎么管理?

SDN环境下,特别是软SDN下,负载均衡发布的应用,在东西向防火墙上怎么管理,特别是软SDN,是否会导致东西向策略过多导致性能降低?

回复1:johnclarkson 架构师

第一,东西策略过多性能问题是靠堆硬件解决的,首先云计算就是最好的案例。

第二,分布式軟墙(不管开源/厂家vm)每朵云都有(你没有的话人家都嫌弃)

第三,有硬件DIY能力的厂家会专门定制ASIC去加强安全处理性能

所以,现在的模式为 服务器变身成了网络设备,网络设备也能跑应用,听来很搞笑,给你个证据。

Cisco家可以路由器跑容器 vm.

反过来道理一样,所以都一回事,没本质区别。一切都是硬件决定性能的基础,你有什么芯片,他就是什么方向服务器,路由器是服务器 防火墙是服务器。。一切都是。那么问题来了

回复2:zhjl520 网络管理员 , 江苏省农村信用社联合社

软SDN适合小型组网,当使用了VFW,V负载均衡。很多功能不一定能完美的实现,而且随着规模不断增加,会出现问题。

11、如果客户有多个SDN ,如何将多个SDN 融合到一起,以及融合后的管理及性能问题怎么考虑?

回复1:ohnclarkson 架构师
在多厂商介入的场景下,主要根据客户本身管理边界去界定每个区域独立还是统一管理,简单说

你买了思科ACI DNAC. h3c huawei juniper. 云平台,容器等等跟网络有关的内容

那么问题如果各自独立,OK你只需要一个漂亮的UI做监控就行了

那么要统一管理和运维呢,比如自动化下发配置,排错,检验,性能检查

这个时候API就是唯一的解决方案

现在每个厂商都基于web做UI,那restapi一定是主流

所以每个厂家都开放API doc给客户做整合

那么厂家和客户之间的内部研发就需要明确,我需要哪些按钮,这个按钮的API怎么用,payload指令怎么写,最后集成在你自己的运维软件里。听起来很简单,但对接难度最大的就是你需要很清晰的理解你的需求和目的。

回复2:zhjl520 网络管理员 , 江苏省农村信用社联合社
如果是硬件sdn,品牌不同的话,目前融合需开发第三方网络管理软件,通过API调用各控制器功能。但无法很好使用SDN相关功能。个人不建议不同SDN融合。

回复3:雪山飞狐ZZB 技术总监 , 某IT企业
多个SDN,首先要明确下,是园区SDN,数据中心SDN,广域网SDN共存吗?如果是同个厂家的东西,那一般都有sdn-center中心做统一管控,问题直接解决,如果不是同个厂商的硬件SDN 那只能不同厂商去开放各自的api接口去做适配和对接,其中要根据业务需求和组网模型进行长时间的调整,一般是不建议将不同厂商的sdn进行融合,这里面会涉及到不同的问题而且过程也比较麻烦

12、SDN如何与传统网络对接?

回复1: zhjl520 网络管理员 , 江苏省农村信用社联合社
SDN 原本就是一套整体解决方案。传统网络接入SDN的意义和目的可能需要细究。改造的难度难于新建。而且意义不大。
目前我们遇到需求就是打通三层网络即可。

回复2:雪山飞狐ZZB 技术总监 , 某IT企业
传统网络很多是二层或三层架构,SDN是做到转发和控制分离,多1层overlay逻辑层做策略控制,传统网络的设备其实只要不是太旧都可以用,支持vxlan协议即可。接入端的没有太多要求,很多传统网络要转换成SDN网络,首先要加SDN的控制器,然后spine节点和leaf节点支持即可。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广