SDN在云计算中的应用与实践

定义

SDN全称为Software Defined Network,软件定义网络。在云计算中,让网络实现多种功能,包括:软件编排、开放API、构建云平台租户组网、支持云原生。使整个计算网络垂直开放,能够有效解决网络资源规模扩展受限、组网灵活性差的问题。

应用场景

租户网络tenant network

不同租户间的资源相互隔离,每个租户独享私有网络,一个租户可以在自己的私有网络内创建多个子网。租户可以创建虚拟路由器vrouter,将虚拟网络virtual network和外部网络external network连接起来。

跨数据中心网络

在传统大二层网络中,采用SDN技术,可以将分布在不同数据中心的资源,跨中心整合在同一个网络内。多用于跨数据中心业务容灾,或用于跨数据中心灵活调配资源。

网络虚拟化

通过SDN的可编程方式,可以在很短的时间内,实现交换机、路由器、防火墙、QoS、负载均衡等网络设备的整合。

平面划分

把行驶路线作为对比:由于乘客只关心目的站点的到达,所以只需记住乘坐某某交通工具即可,不关心具体路线、交通状况等其他因素。


城市的公路、辅路、高架桥等基础设施为underlay网络;公交车的具体行驶路线为overlay网络。

underlay网络

物理网络,由交换机、路由器等设备组成,负责传递数据包,使用路由协议确定ip地址的连接。

overlay网络

虚拟网络,使用网络虚拟化技术,在物理基础设施之上构建的逻辑。

OpenFlow

在Open Networking Foundation SDN方案中,OpenFlow充当南北向接口,使控制平面control plane、数据平面data plane交互的协议。

Flow就是具有相同特征的数据包集合。例如,源mac地址1、目的mac地址2的所有数据包集合就可以视为一条流,可见流具有方向性。

流表

Flow Table由若干条流表项Flow Entry组成,用于指导OF交换机对收到的数据包进行转发,相当于统一了二层的mac地址表、三层的路由表。

流表项

匹配域Match Fields:定义以及匹配流表的依据,拥有多个可选字段,例如可以根据源ip地址、目的ip地址来定义一条流;

指令Instructions:处理流的动作,最普遍的动作集Action Set(添加、修改、清空);

优先级Priority:流表项的优先匹配程度;

计数器Counters:统计该条流的信息;

生存时间Timeouts:流表项的有效存活时间;

Cookie:控制器设置的、用来过滤被动作集Action Set影响的流表项;

过程对比

传统网络

二层:生成arp表,数据包成功匹配,则基于目的mac地址转发,失败则向除入端口外其他所有端口转发;

三层:分布式路由协议,数据包成功匹配相应的路由规则,则基于目的ip地址转发,失败则丢弃;

结论:采用基于数据包独立转发的模式,设备不知道具体路径,发送给大致知晓的其他设备。

SDN

控制层:SDN控制器构建流表;

数据层:OF交换机先向SDN控制器查询流表,再转发数据包,匹配成功则基于匹配域(比如源地址、目的地址)转发;匹配失败时,则问询SDN控制器;

结论:基于流进行转发的,对相同特征的数据包集合采用同样的处理,设备知晓最佳路径。

详细举例

1、OF交换机接收ip数据包;

2、OF交换机解析数据包头部并查询流表,由于流表为空,向控制器询问;

3、OF交换机向控制器发送Packet-In消息;

4、控制器计算主机1到主机2的路由;

5、控制器下发由FlowMod消息承载的流表信息,OF交换机加载流表;

6、控制器发送Packet-Out消息,指示OF交换机按照流表转发IP数据包;

7、OF交换机转发数据包;

EVPN

evpn运行在控制面,负责虚拟网络的管理和控制,通过BGP协议来学习跨数据中心的mac地址、路由表,支持多租户隔离、高效的数据转发等。

路由类型

Type-2路由:用于通告mac地址。每个 Type-2 路由包含一个mac地址、一个vtep的ip地址,用于指示该mac地址所在的vtep;

Type-3路由:用于租户隔离,直接通告二层vlan信息,并不直接携带隧道的相关信息,但配合Type-2路由,间接实现vxlan隧道的建立和维护;

Type-5 路由:用于通告三层ip前缀信息。每个Type-5路由包含一个ip前缀和下一跳ip地址,用于指示路由信息。

二层arp表

学习:EVPN通过BGP通告mac地址,使得不同数据中心的设备能够了解到对端的mac地址及其对应的VTEP;

分发:当一个数据中心内的设备发送一个arp请求或广播帧时,EVPN通过BGP协议将mac地址分发出去,从而实现跨数据中心的二层通信;

三层路由表

ip前缀学习:EVPN通过BGP学习不同数据中心之间的ip前缀信息;

路由分发:EVPN 可以将三层路由信息(ip前缀、下一跳)分发到其他数据中心,从而实现跨数据中心的三层通信;

vxlan

vxlan运行在数据面,负责数据包的封装和传输。使vm、pod可以在不同的物理数据中心之间迁移,而不需要改变其二层网络配置。

VTEP

隧道端点Tunnel Endpoints,运行vxlan的边缘设备,可以是网络设备、服务器、虚拟机、pod,是隧道的起点和终点,负责数据包的封装和解封装。

VNI

网络标识符Network Identifier,可以将一个VNI对应一个租户身份,容量空间总共有2^24=1600万个实例。

BD

桥域Bridge Domain,类似传统网络中采用vlan划分广播域。VNI与BD一一对应,一个BD就表示着一个桥域,同一个BD内的主机就可以进行二层互通。

BDIF

桥域接口Bridge Domain Interface,作为某BD的网关,提供三层转发接口。如果数据包从某二层广播域出去,必须经过BDIF。

NVE

网络虚拟化边缘节点Network Virtualization Edge,是实现网络虚拟化功能的物理设备。在三层网络建立的基础上,实现二层网络。

数据包结构

VTEP将运行在overlay的内层原始二层数据包(绿色),先添加vxlan包头(黄色),然后添加上外层UDP数据包头(蓝色),在underlay网络传输,到达目的VTEP,收到数据包后,依次剥离外层的ip包头、UDP包头,通过vxlan的VNI发送给对应的BD桥域,接收原始二层数据包。

抓包举例

可以看出:overlay的数据包通过VXLAN建立隧道后 ,从underlay网络的10.2.12.18传递到10.2.12.10,从而实现192.168.0.102、192.168.0.108的跨设备二层打通。

相关推荐
咕噜企业分发小米1 天前
阿里云AI教育产品如何助力老年教育?
人工智能·阿里云·云计算
天翼云开发者社区1 天前
云上稳着陆,就找天翼云Landing Zone!
云计算·云治理
咕噜企业分发小米1 天前
阿里云AI教育产品如何助力教育公平?
人工智能·阿里云·云计算
咕噜企业分发小米1 天前
阿里云AI教育产品如何助力残障教育?
人工智能·阿里云·云计算
观测云1 天前
腾讯云 PostgreSQL 最佳实践
postgresql·云计算·腾讯云
忧郁蓝调261 天前
Redis单节点主从复制数据迁移
数据库·redis·缓存·云原生·中间件·云计算·paas
weisian1511 天前
入门篇--知名企业-16-阿里巴巴-4--阿里云平台:一整套数字时代的操作系统
人工智能·阿里云·云计算
2503_946971861 天前
【DataRecovery/GitOps】2026年度全量数据回滚与多重宇宙版本控制基准索引 (Phase 3-End & Phase 4-Start)
网络安全·系统架构·云计算·数据集·版本控制
hk11241 天前
【K8s/Cluster】2026年度分布式微工集群与高并发任务编排基准索引 (Benchmark Index)
运维·算法·系统架构·云计算·数据集
有谁看见我的剑了?2 天前
ESXI OVF 和 OVA 模板学习
云计算