我在上一篇日志用unshare创建轻量级虚拟环境中介绍了如何用系统调用unshare创建一个虚拟机. 这一个方法正是参照了mininet的实现方式, 我将其用C语言实现, 达到了mininet中创建虚拟网络节点(包括主机和交换机)的效果. 这一篇文章中, 我想直接引用mininet的代码来阐述实现的方法. 除此之外, 我还会介绍mininet识别网络节点输出的结束, 以及中断进程,接收命令, 创建虚拟网卡等功能的实现.
Read morePox的框架及启动过程分析
Pox作为OpenFlow的一种控制器, 具有能将交换机送上来的协议包交给指定软件模块的功能. 使用过Pox的都知道, 组件和事件是Pox的两个重要概念, 它们两个共同撑起了Pox的大部分功能. Pox的事件和组件的协调工作机制可以参见伟辰同学的POX事件系统分析. 而这篇文章主要讲的是Pox的大体结构并简要介绍Pox是如何启动的.
Read morePox中recoco代码阅读笔记
位于/pox/lib/recoco中的recoco.py在Pox中起到是任务队列的作用. 也就是说, 除了常规的监听交换机送上来的事件这个任务外, Pox还提供了方法给用户添加自己的任务进Pox中. 对于什么时候需要添加自己的任务, 我还没得到一个合理准确的答案. 目前我觉得, 我们的"任务"需要和监听交换机事件同等级. 在recoco/example.py中, 开发者给出的例子是收集与交换机连接的socket并对socket进行处理. 本文将分为两个部分. 第一个部分讲解如何将自己的任务添加入任务队列中, 第二个说明Pox实现该功能的方法. 一. 添加我们自己的任务
Read moreLinksys WRT54GS V.3 安装 Pantou
Pantou的任务是把OpenWRT的交换机配成一个支持OpenFlow协议的交换机. 我将Linksys WRT54GS V.3型交换机配成了Pantou, 下面是我的安装过程. Pantou 官方主页(主页里LinkSys WRT54GL的镜像可直接下载使用, 若使用主页的镜像, 请直接跳至步骤二. 8.): http://www.openflow.org/wk/index.php/Pantou_:_OpenFlow_1.0_for_OpenWRT Openwrt_WRT54GS官方主页: http://wiki.openwrt.org/toh/linksys/wrt54g
Read more