本文章介绍了作者首次使用Floodlight控制器与Mininet仿真器进行SDN(软件定义网络)实验的经历,分享了配置、调试过程中的心得及遇到的问题。
### Floodlight与Mininet安装及初步使用指南
#### 一、环境搭建
##### 1. 安装所需软件包
为了实现Floodlight与Mininet的安装与使用,首先需要准备以下工具:
- **虚拟机软件**: 使用的是VMware10或VMware11版本。
- **操作系统**: Ubuntu 14.10 (32位或64位均可)。
**下载资源**:
- 下载VMware 10和VMware 11版本。
- 下载Ubuntu 14.10 镜像文件(官方下载或提供者提供的镜像)。
##### 2. 安装VMware
- 双击安装文件开始安装过程。
- 按照提示操作, 选择“自定义”安装选项。
- 可以更改安装目录,但本段落中使用默认设置。
- 安装完成后,桌面上会出现VMware的图标。
##### 3. 创建Ubuntu虚拟机
- 打开VMware并选择“新建虚拟机”。
- 选择“典型”安装模式,然后选择Ubuntu镜像文件。
- 设置安装路径。
- 完成虚拟机创建。
#### 二、安装Floodlight
Floodlight是一款开源的SDN控制器,用于管理网络中的数据流。
##### 1. 网络连接确认
确保虚拟机能够访问互联网,可以通过命令`ifconfig`检查网络接口的状态。
##### 2. 安装步骤
- 更新系统: `sudo apt-get update`
- 安装必要的开发工具: `sudo apt-get install build-essential default-jdk ant python-dev`
- 安装Git: `sudo apt-get install git`
- 克隆Floodlight仓库: `git clone https://github.com/floodlight/floodlight.git` (注意此处应为正确的GitHub地址)
- 安装Ant: `sudo apt-get install ant`
- 进入Floodlight目录: `cd floodlight`
- 构建项目: `ant`
- 启动Floodlight: `java -jar target/floodlight.jar`
**注意事项**:
- 部分安装步骤可能需要重复执行才能成功。
- 安装过程中可能会遇到一些问题,需要耐心调试。
##### 3. 访问Floodlight界面
通过浏览器访问`http://localhost:8080/ui/index.html`来查看控制器的状态。
#### 三、安装Mininet
Mininet是一个轻量级的网络模拟器,可以用来测试Floodlight的功能。
##### 1. 安装Mininet
- 克隆Mininet仓库: `git clone https://github.com/mininet/mininet.git`
- 进入Mininet目录: `cd mininet/util`
- 执行安装脚本: `. ./install.sh -a`
**注意**:
- 安装过程可能较为耗时。
##### 2. 使用Mininet
- 启动Floodlight: 在Home目录下创建脚本`startFloodlight.sh`,内容为`cd floodlight && java -jar target/floodlight.jar`,然后执行`source startFloodlight.sh`
- 启动Mininet: 创建脚本`startMininet.sh`,内容为 `sudo mn --controller=remote,192.168.248.128,port=6653`. 这里的IP地址是 Floodlight的 IP 地址,通常可以通过命令`ifconfig`获取。
- 查看Floodlight的状态: 访问`http://localhost:8080/ui/index.html`
#### 四、Mininet常用命令
- 显示所有节点: `mininet> nodes`
- 显示当前网络状态: `mininet> dump`
- 执行主机间的Ping测试: `mininet> pingall`
#### 五、自建拓扑与流表管理
默认情况下,Floodlight启动时会启用二层转发模块,使得主机间可以直接通信。 若要手动管理流表,需要禁用该模块,并重新构建 Floodlight。
**步骤**:
- 在Floodlight目录下的`floodlight/default.properties`文件中注释掉二层转发模块。
- 执行 `ant` 命令重新构建项目
- 重启Floodlight
示例:
在Mininet 中创建拓扑,手动触发流表项更新。例如执行命令:`h1 ping -c 5 h2`
通过上述步骤,您可以成功安装并初步使用 Floodlight与 Mininet,为进一步的研究和实验奠定基础。