SDN的实现思路—Vecloud微云

在这里插入图片描述
SDN的实现思路是不改变传统网络的实现机制和工作方式,通过对网络设备的操作系统进行升级改造,在网络设备上开发出专用的API接口,管理人员可以通过API接口实现网络设备的统一配置管理和下发,改变原先需要一台台设备登录配置的手工操作方式,同时这些接口也可供用户开发网络应用,实现网络设备的可编程。
实现思路是以现行的IP网络为基础,在其上建立叠加的逻辑网络,屏蔽掉底层物理网络差异,实现网络资源的虚拟化,使得多个逻辑上彼此隔离的网络分区,以及多种异构的虚拟网络可以在同一共享网络基础设施上共存。
当前SDN实现的主流方案,该类解决方案基于开放的网络协议,实现控制平面与转发平面分离,支持控制全局化,获得了最多的产业支持,相关技术进展很快,产业规模发展迅速,业界影响力最大。
“交换”即完成数据信息从设备入端口到出端口的转发。由此可见,当它被用来描述数据网络第二层的设备时,实际指的是交换机;而当它被用来描述数据网络第三层的设备时,通常指的是路由器或者三层交换机。
直通(Cut-Through):交换机仅对数据帧(二层网络对数据包的特有称呼)的前6个字节的信息进行接收和分析,并将数据帧的其余部分直接剪切(即所谓的Cut)到出端口上。这是因为数据帧的前6个字节包含了该数据帧的目的MAC地址,这已经足以供交换机做出转发决策。直通模式具有最小的转发延迟,但是它并不检查数据的完整性,因此可能会把能够导致以太网冲突的“坏包”转发出去,从而产生网络可靠性问题。
零碎片(Fragment-Free):交换机首先对数据帧的前64个字节进行接收和解析,再进行转发。之所以选择64个字节的长度,是因为经验表明在以太网络中,绝大多数的“坏包”都能在这些字节的处理过程中被检测到。这种模式虽然有可能造成极少量的“坏包”漏检,但是它对网络的整体性能影响不大,因此在很多应用场景中又被称为“快速转发(Fast-Forwarding)”。
存储转发(Store-and-Forward):交换机需要对整个数据帧的内容进行接受和解析,并开展数据帧的完整性检验等操作,以有效地避免出现错误。虽然该模式增加了转发延迟,但是考虑到当前的处理器或者ASIC已经具有足够的性能,因此,在SDN交换机的设计与实现中,仍旧建议其采用这种模式用于数据交换。
Vecloud是一家面向企业提供云交换网络服务为核心业务的技术创新企业,公司有24*7专业运维团队支撑,可以快速定位客户使用中遇到的问题,最快解决问题。

### 使用 Mininet 实现 SDN #### 创建简单的 SDN 拓扑结构 Mininet 是一种用于创建可自定义的虚拟网络环境的强大工具,能够模拟多个主机、交换机以及链路之间的交互。对于实现 SDN 来说,可以通过 Python API 或命令行来构建不同的拓扑结构。 下面是一个基本的例子,展示如何利用 Mininet 和 Ryu 控制器建立一个最基础的 SDN 网络: ```python from mininet.net import Mininet from mininet.node import RemoteController, OVSKernelSwitch from mininet.cli import CLI from mininet.log import setLogLevel def simple_topology(): net = Mininet(controller=RemoteController, switch=OVSKernelSwitch) c0 = net.addController('c0', controller=RemoteController, ip='127.0.0.1', port=6633) s1 = net.addSwitch('s1') h1 = net.addHost('h1') h2 = net.addHost('h2') net.addLink(h1, s1) net.addLink(s2, h2) net.build() c0.start() s1.start([c0]) print("Testing network connectivity...") net.pingAll() CLI(net) net.stop() if __name__ == '__main__': setLogLevel('info') # 设置日志级别为 info simple_topology() ``` 这段代码展示了怎样设置远程控制器并连接 Open vSwitch 开关与两台主机形成简单拓扑[^4]。需要注意的是,在实际环境中应当确保外部 Ryu 控制器已经启动并且监听指定 IP 地址和端口号。 当尝试运行上述程序之前,请先确认已按照官方指南完成 Mininet 及其依赖项(如 OpenFlow 协议库)的成功部署,并且安装了所需的控制器软件包,例如 Ryu[^2]。 #### 启动 Ryu 控制器 为了让上面编写的 Mininet 脚本能正常工作,还需要单独开启 Ryu 控制器服务。这通常是在另一个终端窗口执行如下指令完成: ```bash cd ~/ryu/ryu/app/ ryu-manager simple_switch_13.py ``` 此操作将会激活名为 `simple_switch_13` 的应用程序作为 SDN 控制平面的一部分,负责处理来自数据平面上报的数据流表项更新请求等任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值