SDN 岗位轮换实验报告

本次实验在SDN环境下,通过floodlight控制器和mininet虚拟网络,实现服务器h2和h3的定时轮换服务。利用Python脚本动态更新交换机流表,使得PC机虽然持续访问h2,实际由h3提供服务。实验包括环境配置、拓扑构建、控制器启动、Web服务器部署以及流表动态更新,展示了SDN在服务切换中的应用。

一、实验环境:
笔记本电脑1台,操作系统:ubuntu13.10桌面版。
控制器使用floodlight,在eclipse中加载启动。
在笔记本电脑上安装Virtualbox,在Virtualbox中源码安装linux操作系统与mininet虚拟网络环境的集成文件。
二、实验方案:
本实验采用在控制层定时更新静态流表的方法完成。PC机一直访问WEB服务器h2,定时时间到WEB服务器A的服务工作由WEB服务器h3替代,服务器h2做系统还原工作。在控制层上使用Python脚本定时切换WEB服务器h2、h3所在交换机上的流表,完成尽管PC机一直访问服务器h2,但实际上是由WEB服务器h3在提供服务的工作。
三、构建网络拓扑
本题中的网络拓扑结构如图1所示
(1).floodlight中的拓扑图

这里写图片描述

(2).拓扑图中各接口详细图
这里写图片描述

四、实验主要步骤:
1 、在mininet中创建如图1所示的 网络拓扑,并连接到本地floodlight控制器。
在mininet的 /mininet/examples 目录下创建test3.py文件,在其中写入代码如下:

#!/usr/bin/python

import re
from mininet.cli import CLI
from mininet.log import setLogLevel, info,error,lg
from mininet.net import Mininet
from mininet.link import Intf,Link
from mininet.topolib import TreeTopo
from mininet.util import quietRun
from mininet.node import RemoteController, OVSKernelSwitch,Node
def abc():

    net = Mininet(listenPort = 6633)
    mycontroller = RemoteController("helinming",   ip = "172.27.35.5")
    host1=net.addHost('h1')
    host2=net.addHost('h2')
    host3=net.addHost('h3')
    switch_1 = net.addSwitch('s1')
    switch_2 = net.addSwitch('s2')
    net.controllers = [mycontroller]

    net.addLink(host1, switch_1, 0, 1)
    net.addLink(switch_1, switch_2, 2, 1)
    net.addLink(host2, switch_2, 0, 2) net.addLink(host3, switch_2, 0, 3)
    net.start()
    CLI(net)
    #sshd( net)
    #net.stop()
if __name__ 
### SDN网桥管理实验教程与配置指南 #### 实验目标 通过本实验,学习者能够掌握基于OpenFlow协议的SDN控制器操作以及网桥的基本管理和配置方法。这包括但不限于创建虚拟环境、配置网络命名空间、实现基本Hub功能并逐步升级至L2 Learning Switch。 #### 虚拟环境搭建 为了模拟真实的SDN场景,在本地环境中可以通过Linux系统的`ip netns`工具来构建多个独立的网络命名空间,并配合veth pair设备完成节点间的互联[^2]。具体步骤如下: 1. **创建Veth Pair** 使用以下命令创建一对相连的虚拟以太网设备: ```bash ip link add veth0 type veth peer name veth1 ``` 2. **分配到不同Namespace** 将上述两个端口分别移动到不同的命名空间中去: ```bash ip link set veth0 netns ns1 ip link set veth1 netns ns2 ``` 3. **设置IP地址** 接下来给这些接口指定各自的IPv4地址以便后续测试连通性: ```bash ip netns exec ns1 ip addr add 192.168.56.1/24 dev veth0 ip netns exec ns2 ip addr add 192.168.56.2/24 dev veth1 ``` 4. **启动Interface** 启动刚才添加好的所有interface使其处于UP状态: ```bash ip netns exec ns1 ip link set veth0 up ip netns exec ns2 ip link set veth1 up ``` #### 控制器安装与连接 对于初学者来说推荐使用Mininet作为拓扑生成平台,而Ryu或者POX则是轻量级Python编写的支持OpenFlow标准的开源控制器软件之一[^1]。下面简单介绍如何部署一个最基础的学习型交换机实例: - 安装依赖库之后克隆项目源码仓库; - 修改对应脚本来适配个人需求比如增加流表项匹配条件等逻辑处理部分; - 运行服务监听来自switch的消息请求; 当一切准备就绪后就可以尝试发送ping包验证两台主机之间能否正常通讯了! 另外值得注意的是如果是在真实物理硬件上面做开发的话还需要考虑更多因素例如DPDK加速框架支持情况等等[^4]. #### OSPF路由协议应用案例分享 假设现在有一个小型园区内部署了一套三层架构的数据中心网络结构图,则可以采用OSPF动态路由算法来进行广域网链路优化工作流程设计思路如下所示: - 明确划分Area范围界限位置关系; - 对于核心层路由器启用Stub Area特性从而简化边界处的信息交互过程降低整体复杂度提升转发效率同时减少不必要的外部干扰影响程度达到最佳性能表现效果.[^3] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值