什么是SDN?SDN有什么优势?
SDN是一种新型网络创新架构,通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,让网络成为一种可灵活调配的资源。SDN最重要的三个概念是:可编程(开放的API)、控制平面与数据平面分离,以及集中式控制模型。
在SDN中很重要的两个实体是Switch跟Controller。 Controller知道网络中所有的消息,对整个网络进行管理和控制,可以给交换机下发流表,对所有网络设备运行状态进行监控。 Switch就是一个实现Controller指令的实体,只不过跟传统的交换机不一样,它的转发规则由流表指定。Switch由两部分组成:
- Secure Channel,是与控制器通信的模块,通过socket连接。
- Flow table,里面存放这数据的转发规则。当数据包进入switch之后,寻找对应的流表进行匹配,并执行相应的action,如果没有匹配的数据包则将其封装在packet_in中发给控制器进行处理(丢弃、泛洪等)
每条流规则分为基本字段、条件字段和动作字段三部分:
- 基本字段包括生效时间duration_sec、所属表项table_id、优先级priority、处理的数据包数n_packets,空闲超时时间idle_timeout等,
- 条件字段包括输入端口号in_port、源目的mac地址dl_src/dl_dst、源目的ip地址nw_src/nw_dst、数据包类型dl_type、网络层协议类型nw_proto等,可以为这些字段的任意组合
- 动作字段包括正常转发normal、定向到某交换机端口output:port、丢弃drop、更改源目的mac地址mod_dl_src/mod_dl_dst等,一条流规则可有多个动作,动作执行按指定的先后顺序依次完成。
SDN与网络虚拟化
网络虚拟化是一种网络技术,可以在物理拓扑上创建虚拟网络。传统的网络虚拟化部署需要手动逐跳部署,其效率低下,人力成本很高。SDN通过集中控制的方式,网络管理员可以通过控制器的API来编写程序,从而实现自动化的业务部署,大大缩短业务部署周期,同时也实现随需动态调整。基于SDN的网络架构可以更容易地实现网络虚拟化。
SDN技术的优点
- 提供网络结构的统一视图:对整个网络架构实现统一的查看,从而简化配置、管理和优化。
- 高利用率:集中化的流量工程使得我们能够有效地调整端到端的流量路径,从而达到网络资源的高效利用。
- 快速故障修复:链路、节点故障都能实现快速修复。而且系统能够快速的聚合网络资源,实现平均分配,并且对于一些网络行为可进行预测。
- 平滑升级:控制平面和转发/数据平面的分离可以做到软件平滑升级的同时保证没有数据丢包或者性能衰减。
- 弹性计算:大规模的计算、路径分析都被集成在子控制器中,由最新代的服务器完成。
SDN是一种新型网络创新架构,通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,让网络成为一种可灵活调配的资源。 OpenFlow实现了SDN可编程网络的思想,是控制平面和数据平面的一种通信协议,是连接两者之间的桥梁。数据中心网络、数据中心间的互联、政企网络、电信运营商网络、互联网公司业务部署。
SDN在数据中心网络中的优势
- 在数据中心网络中,通过SDN可以使得网络和计算资源更加紧密的联系起来并实现有效的控制。如果数据流量很大,不能合理分配传输路径很容易造成数据拥塞,通过SDN实现路径优化以及负载均衡,从而使得数据交换更加迅速。
- 网络管理和安全控制方面。所有经过OpenFlow交换机的数据流都必须由控制器来做出转发决定。在控制器中可以对这些流按照预先制定的规则进行检查,然后更改数据流的传输路径或者拒绝某些数据流来增强内网的安全性。
- 在SDN中,交换设备的数据转发层和控制层是分离的,因此网络协议和交换策略的升级只需要改动控制层。在openflow网络中实现了软硬件的分离以及底层硬件的虚拟化,从而提供了一个良好的发展平台。