SDN WIKI

Software Defined Networking

From Wikipedia, the free encyclopedia

Software defined networking (SDN) is an emerging architecture for computer networking. SDN separates the control plane from the data plane in network switches and routers. Under SDN, the control plane is implemented in software in servers separate from the network equipment and the data plane is implemented in commodity network equipment. OpenFlow is a leading SDN architecture.

Thus SDN allows for

  1. quick experimenting and optimization of switching/routing policies, and for
  2. external access to the innards of switches and routers that formerly were closed and proprietary.

Contents

Background

Internet Protocol (IP) based networks were initially built based on the notion of Autonomous Systems (AS). This notion allows networks to scale and extend by connected junctions that forward packets to a reasonable next hop based on partial need-to-know information. The AS principle works much like the traditional post office service, where a postal worker in London does not need to know all the tenants of all the streets in San Francisco in order to choose a reasonable next hop for a letter at hand. This approach to networking is simple, and has proven resilient and scalable.

The AS principle however has a few known drawbacks. It does not allow the designated destinations, or tenants with home mail-boxes, to move without changing their identity as far as the packet delivery service is concerned. The topological location of destinations, which is the network interface they are attached to, dictates their identity. In addition, using only basic AS, it is hard to specify other identity qualities, such as logical grouping, access control, quality of service, intermediate network processing – or to specify aspects that relate to a sequence of packets that form a flow or networked conversation.

Complementary standards by the Internet Engineering Task Force (IETF) were put in place to augment identity specific needs, standards such as virtual LANs, and virtual private networks among many others. Adding such incremental standards tends to build-up complexity in network elements specifications and it translates to increasingly complex configuration of network interfaces by network operators, interfaces where most of these specifications must be coupled with.

As elastic cloud architectures and dynamic resource allocation evolves, and as mobile computer operating systems and virtual machines usage grows, the need rose for an additional layer of Software Defined Networking (SDN). Such a layer allows network operators to specify network services, without coupling these specifications with network interfaces. This enables entities to move between interfaces without changing identities or violating specifications. It can also simplify network operations, where global definitions per identity do not have to be matched to each and every interface location. Such a layer can also reset some of the complexity build-up in network elements by decoupling identity and flow specific control logic from basic topology based forwarding, bridging, and routing.

Software-defined networking decouples network control (learning and forwarding decisions) from network topology (junctions, interfaces, and how they peer).

The basic approach to achieve that is by applying globally aware and topology decoupled software control at the edges of the network. The assumption is that traditional topology-coupled bridging & routing drives the core of the network so that scalability, interoperability, high-availability, and extendability of IP networks can be maintained. Using the analogy of a postal service, the way SDN controllers would work is - for any given street location, all the letters from all the tenants would first be aggregated by an SDN edge. This edge function would examine the current location for each of the letter-destinations using a global non-autonomous lookup mechanism. Based on that global lookup and on other globally defined and globally measured considerations - such as access control or remote location load conditions - the SDN edge places one or more of the original letters in an additional envelope addressed to each of the street locations where the destinations currently are. It then uses the normal postal service which works like traditional IP to get these outer envelopes to the remote locations. This is done based on the existing and scalable hop-by-hop forwarding country.state.zip.street postal service. The outer letters are then opened by the remote SDN edge and the original envelopes are delivered to the destinations.

The global software defined control also tracks specific flow contexts based on source and destination identity aspects. Using the analogy example this Edge overlay service will differentiate between a remote chess game carried over small, non-urgent yet lossless postcards Vs a massive transfer of consecutive legal documents that need to be rushed one after the other to the remote destination.

A mechanism for driving network hardware is has been added and adopted by network gear manufacturers for the purpose of sharing edge driving between software defined edge and vendor specific bridging and routing. A set of open commands for forwarding was defined in the form of a protocol known as OpenFlow (OF). The OpenFlow protocol enables globally aware centralized or distributed software controllers to drive the network edge hardware in order to create an easily programmable identity based overlay on top of the traditional IP core. 

SDN deployment models variants

Symmetric vs asymmetric
In an asymmetric model, SDN global information is centralized as much as possible, and edge driving is distributed as much as possible. The considerations behind such an approach are clear, centralization makes global consolidation a lot easier, and distribution lowers SDN traffic aggregation-encapsulation pressures. This model however raises questions regarding the exact relationships between these very different types of SDN elements as far as coherency, scale-out simplicity, and multi-location high-availability, questions which do not come up when using traditional AS based networking models. In a Symmetrically distributed SDN model an effort is applied to increase global information distribution ability, and SDN aggregation performance ability so that the SDN elements are basically one type of component. A group of such elements can form an SDN overlay as long as there is network reachability among any subset.
Floodless vs flood-based
In a flood-based model significant amount of the global information sharing is achieved using well known broadcast and multicast mechanisms. This can help make SDN models more Symmetric and it leverages existing transparent bridging principles encapsulated dynamically in order to achieve global awareness and identity learning. One of the down sides of this approach is that as more locations are added the load per location increases which degrades scalability. In a FloodLess model all forwarding is based on global exact match typically achieved using Distributed Hashing and Distributed Caching of SDN lookup tables.
Host-based vs Network-centric
In a host-based model an assumption is made regarding use of SDN in data-centers with lots of virtual machines moving to enable elasticity. Under this assumption the SDN encapsulation processing is already done at the host HyperVisor on behalf of the local virtual machines. This design reduces SDN edge traffic pressures and uses "free" processing based on each host spare core capacity. In a NetworkCentric design a clearer demarcation is made between network edge and end points. Such an SDN edge is associated with the access of Top of Rack device and outside the host endpoints. This is a more traditional approach to networking that does not count on end-points to perform any routing function.
Some of the lines between these design models may not be completely sharp. For example in data-centers using compute fabrics "Big" hosts with lots of CPU cards perform also some of the TopOfRack access functions and can concentrate SDN Edge functions on behalf of all the CPU cards in a chassis. This would be both HostBased and NetworkCentric design.There may also be dependency between these design variants, for example a HostBased implementation will typically mandate an Asymmetric centralized Lookup or Orchestration service to help organize a large distribution. Symmetric and FloodLess implementation model would typically mandate in-network SDN aggregation to enable lookup distribution to a reasonable amount of Edge points. Such concentration relies on local OpenFlow interfaces in order to sustain traffic encapsulation pressures.


Market applications
One of the most talked about applications of SDN is the consolidated data-center. The first use-case example has been Infrastructure as a Service (IaaS). In this example organizations and individuals are buying virtual machines (VM) whenever they need to. This dynamic pattern creates a complete shuffle of where these VMs are located in the IaaS provider data-center, yet these need to function as if they were neatly organized in groups per IaaS customer is spite of the random order by which they were allocated.

The above basic use of SDN can be extended to almost any application, carrier or enterprise, in a private cloud or Application as a Service cloud. This extension means that SDN virtual networking combined with virtual compute (VMs) and virtual storage can emulate elastic resource allocation as if each such enterprise application was written like a Google or Facebook application. In the vast majority of these applications resource allocation is statically mapped in inter process communication (IPC). However if such mapping can be expanded or reduced to large (many cores) or small VMs the behavior would be much like one of the purpose built large Internet applications. Such behavior spells movement of resources while retaining original IPC identity.

Other uses in the consolidated data-center include consolidation of spare capacity stranded in static partition of racks to pods. These partitions are put up mostly in order to control and scale connectivity based on traditional networking. Spare capacity in each one is used for software upgrades, broken gear, and temporary growth. Pooling these spare capacities results in significant reduction of compute resources. Pooling the active resources increases average utilization.

The use of SDN distributed and global edge control also includes the ability to balance load on lots of links leading from the racks to the switching spine of the data-center. Without SDN this task is done using traditional link-state updates that update all locations upon change in any location. Distributed global SDN measurements may extend the cap on the scale of physical clusters. Other data-center uses being listed are distributed application load balancing, distributed fire-walls, and similar adaptations to original networking functions that arise from dynamic, any location or rack allocation of compute resources.

Key uses of SDN are emerging in the carrier space, specifically in access services. Carriers support public access by millions of subscribers. A need that inherently has a large degree of mobility, movement, and change. A considerable amount of in-line processing, that makes public network access controlled, safe, and economically viable, is placed based on anticipated capacity of where subscribers would "show-up". Such static mapping requires complex planning and creates a slow rollout process, and is typically expensive and built for anticipated peak usage in each location. An SDN design can steer traffic based on subscriber and application to the right in-line processing using global overlays that share these resources between locations. This reduces the costs and expedites the roll-out of fixed and mobile access services.

Other anticipated carrier access use of SDN relate to what has been coined as the Internet of Things (IoT) or Machine to Machine (M2M). Under this vision the amount of end-points accessing the Internet will grow to include "things" such as home-appliances, cars, doors, lights, personal health monitors etc. This will increase significantly the amount of addressable identities connected to the net, but it has to be done in extreme efficiency and low cost. In this scenario traditional networking is still used to reach the existing access locations but the complexity of increase in the number of identities and end-to-end polices applied to these identities will be handled by the distributed global software abilities of SDN.

Other uses of SDN in enterprise or carrier managed network services (MNS) address the traditional and geo-distributed campus network. These environments were always challenged by the complexities of moves-adds-changes, mergers & acquisitions, and movement of users. Based on SDN principles, it expected that these identity and policy management challenges could be addressed using global definitions and decoupled from the physical interfaces of the network infrastructure. In place infrastructure on the other hand of potentially thousands of switches and routers can remain intact.

Access Control in SDN

Remote access to the control plane is made available to administrators or users of the network, typically with a role-based access system (RBAC) in order to provide security.

Decoupling between data plane access and control plane access

In one configuration of SDN, the network control plane hardware can be physically decoupled from the data forwarding plane hardware, i.e. a network switch can forward packets and a separate server can run the network control plane.

The rationale for this approach is twofold. First, the decoupling allows for the control plane to be implemented using a different distribution model than the data plane. Second, it allows the control plane development and runtime environment to be on a different platform than the traditionally low-powered management CPUs found on hardware switches and routers.

SDN requires some method for the control plane to communicate with the data plane. One such mechanism is OpenFlow which is a standard interface for controlling computer networking switches. OpenFlow is often misunderstood to be equivalent to SDN, but there is no requirement for the use of OpenFlow within an SDN.

Definition and marketing of SDN and OpenFlow is managed by the Open Networking Foundation.[1]

The term was coined by Kate Greene[2].

See also

References

  1. ^ "Open Networking Foundation".
  2. ^ Kate Greene (March/April 2009). "TR10: Software-Defined Networking". Technology Review (MIT). Retrieved November 20, 2011.

External links


<think>嗯,用户之前已经问过关于SDN的详细介绍,现在他们想知道有哪些软件可以实操SDN。我需要先理解他们的需求。他们可能对SDN的理论有一定了解,现在想动手实践,可能是学生、研究人员或者网络工程师。 首先,我要考虑用户的实际操作需求。SDN的实操软件通常包括仿真工具、控制器、虚拟交换机等。用户可能需要开源工具,因为这些更容易获取和使用,适合学习和实验环境。 接下来,我需要回忆常见的SDN软件。比如Mininet是一个常用的网络仿真工具,可以快速创建虚拟网络拓扑。OpenDaylight和ONOS是开源的控制器,适合控制层的学习。还有Ryu,一个轻量级的控制器,用Python写的,可能适合初学者。 用户可能需要分门别类地介绍,比如仿真工具、控制器、虚拟交换机、测试工具等。这样结构更清晰,方便他们选择。同时,要提到每个工具的特点和适用场景,比如Mininet适合快速搭建测试环境,Open vSwitch支持OpenFlow协议,适合数据平面实验。 另外,用户可能对如何开始使用这些工具感兴趣,可能需要简要的入门指引,比如安装步骤或基本命令。例如,Mininet的安装可以通过源码或包管理器,运行一个简单的拓扑生成命令。 还要考虑用户可能的进阶需求,比如自动化部署工具如Ansible,或者网络测试工具如Postman,这些在开发SDN应用时会用到。此外,商业工具如Cisco ACI或VMware NSX虽然不开源,但在企业环境中应用广泛,值得提及但需要说明可能需要许可证。 需要确保信息准确,比如各软件的最新版本和兼容性。例如,OpenDaylight的最新版本是否支持特定功能,或者Ryu是否兼容最新的Python版本。如果有不确定的地方,可能需要建议用户查阅官方文档。 最后,总结一下如何选择工具,根据用户的具体需求,比如学习、研究还是生产环境,以及是否需要图形界面或命令行操作。这样用户可以根据自身情况选择合适的工具组合。</think>### 当前主流的SDN实操软件与工具 以下是可用于学习和实践SDN的常用开源工具及平台,涵盖网络仿真、控制器、虚拟交换机和开发框架等类别: --- #### **1. 网络仿真与实验平台** | 工具名称 | 特点与用途 | |----------------|--------------------------------------------------------------------------| | **Mininet** | - **最流行的SDN仿真工具**,基于Linux容器技术,支持快速创建虚拟网络拓扑。 <br>- 支持OpenFlow协议,可连接真实控制器(如OpenDaylight、Ryu)。 <br>- **入门示例**: <br> `$ sudo mn --topo single,3 --controller=remote,ip=127.0.0.1,port=6653` | | **GNS3** | - 图形化网络仿真工具,支持混合虚拟设备(如Cisco IOS)与SDN组件(Open vSwitch)。 | | **ONOS Emulator** | - 专为ONOS控制器设计的仿真环境,支持大规模网络场景测试。 | --- #### **2. SDN控制器** | 工具名称 | 特点与用途 | |--------------------|--------------------------------------------------------------------------| | **OpenDaylight** | - **企业级开源控制器**(Java开发),支持多协议(OpenFlow、NETCONF)。 <br>- 提供REST API,适合复杂网络管理场景。 <br>- 集成模块:DLUX(Web UI)、L2 Switch等。 | | **ONOS** | - 面向运营商网络的开源控制器,注重高可用性和性能,支持分布式部署。 | | **Ryu** | - **轻量级Python控制器**,适合快速开发和实验。 <br>- 内置OpenFlow 1.0-1.5协议栈,支持自定义应用开发。 <br>- **示例代码**: <br> ```python <br> from ryu.base import app_manager <br> class MyApp(app_manager.RyuApp): <br> def __init__(self, *args, **kwargs): <br> super(MyApp, self).__init__(*args, **kwargs) ``` | | **Floodlight** | - 基于Java的轻量控制器,适合学术研究和小规模实验。 | --- #### **3. 虚拟交换机与数据平面工具** | 工具名称 | 特点与用途 | |--------------------|--------------------------------------------------------------------------| | **Open vSwitch** | - **开源虚拟交换机**,支持OpenFlow协议,广泛用于云计算(如OpenStack)。 <br>- 支持VXLAN、GRE等隧道技术。 <br>- **常用命令**: <br> `$ ovs-vsctl add-br br0`(创建虚拟网桥) | | **P4** | - **可编程数据平面语言**,允许自定义数据包处理逻辑(如定义包头解析、匹配动作)。 <br>- 工具链:P4编译器(`p4c`)、BMv2软件交换机。 | --- #### **4. 开发与测试工具** | 工具名称 | 特点与用途 | |--------------------|--------------------------------------------------------------------------| | **Wireshark** | - 网络协议分析工具,支持OpenFlow协议抓包和解码,用于调试控制器与交换机通信。 | | **Postman** | - 测试控制器的北向REST API(如查询网络拓扑、下发流表规则)。 | | **Pox** | - 基于Python的早期SDN控制器框架,适合教学和简单实验。 | --- #### **5. 综合学习平台** | 工具名称 | 特点与用途 | |--------------------|--------------------------------------------------------------------------| | **Open Networking Lab** | - 提供在线SDN实验环境(如https://onlsdn.com/),无需本地部署即可实践。 | | **Coursera/EDX课程** | - 配套实验平台(如“SDN and OpenFlow”课程)。 | --- #### **6. 企业级商用工具** | 工具名称 | 特点与用途 | |--------------------|--------------------------------------------------------------------------| | **Cisco ACI** | - 基于策略的SDN解决方案,集成硬件(Nexus交换机)与软件(APIC控制器)。 | | **VMware NSX** | - 网络虚拟化平台,支持微服务架构和多云环境。 | --- ### **实操建议** 1. **入门路径**: - 从Mininet + Ryu/OpenDaylight开始,搭建简单拓扑(如树形、线形)。 - 使用Wireshark分析OpenFlow协议交互过程。 2. **进阶实验**: - 用P4实现自定义数据平面逻辑(如负载均衡)。 - 结合OpenStack或Kubernetes部署SDN网络插件(如OVN、Calico)。 3. **资源推荐**: - GitHub仓库:https://github.com/mininet/mininet(Mininet示例) - 官方文档:OpenDaylight Wiki、ONOS Developer Guide --- 通过以上工具,您可以从仿真实验逐步过渡到真实网络环境,深入理解SDN的实现原理与应用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值