概述
混合IP-SDN环境的仿真实验
- 混合IP-SDN环境的仿真实验
- 实验室名称
- 实验名称
- 实验原理
- 实验目的
- 实验设备
- 实验步骤
- 1.在mininet中搭建如下拓扑图
- 3.配置Controller如图:
- 4.配置交换机如下图:
- 5.配置主机
- 6.在新的终端里打开ryu-manager远程控制器
- 7.测试链路的连通性pingall
- 8.打开wireshark,能看到对于的openflow协议,如图
- 实验总结
- 运行一个简单的 Web 服务器和客户端仿真
- 学习中碰到的小问题
申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址 全文共计5277字,阅读大概需要2分钟
欢迎关注我的个人公众号:不懂开发的程序猿
混合IP-SDN环境的仿真实验
实验室名称
网络安全与管理实验室
实验名称
混合IP-SDN环境的仿真实验
实验原理
软件定义网络将网络的控制层与数据转发层分离,控制平面在逻辑上集中,能够实现资源的灵活调度,更多的开放接口能够实现网络的可编程控制。标准化的南向接口将底层硬件对网络管理者透明化。作为一种全新的网络架构和管理形式,SDN网络在应用过程中如何与传统网络相结合受到业内的广泛讨论。由于SDN逻辑集中于控制层面,其如何与传统IP网络中的标准路由设备通信进行网络信息的更新、维护以及路由转发信息计算是一个关键问题;对于SDN自身实现方式,处于对整个网络集中式控制健壮性和延时性的风险考虑,一些研究认为网络中大部分流量利用传统控制方式其可满足转发需求,只需对其他少部分流量实现SDN控制即可满足其灵活动态需求
实验目的
从拓扑混合和流量混合两种角度出发,针对混合IP/SDN场景进行仿真, 对每一种混合模式进行了场景描述和路由实现。利用开源控制器POX路由平台,使用WireShark实现对路由协议消息的解析,并针对各拓扑混合和流量混合两种场景分析
实验设备
VMware16 pro + Ubuntu 18.0.2 LTS + Mininet 2.1.7 + WireShark 3.0.1
实验步骤
1.在mininet中搭建如下拓扑图
终端显示如图:
2.配置Mininet如下图:
【edit】—>【Preference】,勾选【Start CLI】,【OpenFlow1.3】,【Default Switch 】选【Open vSwitch Kernel Mode】
3.配置Controller如图:
【Controller Type】选【Remote Controller】
4.配置交换机如下图:
DPID为0000000000000001
5.配置主机
host1为10.0.0.1
和host2为10.0.0.2
6.在新的终端里打开ryu-manager远程控制器
7.测试链路的连通性pingall
8.打开wireshark,能看到对于的openflow协议,如图
协议的具体信息含义如下:
信息 | 类型 | 描述 |
---|---|---|
Hello | 控制器->开关 | 在 TCP 握手之后,控制器将其版本号发送到交换机 |
Hello | 开关->控制器 | 交换机回复其支持的版本号 |
功能请求 | 控制器->开关 | 控制器要求查看哪些端口可用 |
设置配置 | 控制器->开关 | 在这种情况下,控制器要求交换机发送流到期 |
特色回复 | 开关->控制器 | 交换机回复端口列表、端口速度以及支持的表和操作 |
端口状态 | 开关->控制器 | 使交换机能够通知该控制器端口速度或连接的变化 |
附上代码:
#!/usr/bin/env python
from mininet.net import Mininet
from mininet.node import Controller, RemoteController, OVSController
from mininet.node import CPULimitedHost, Host, Node
from mininet.node import OVSKernelSwitch, UserSwitch
from mininet.node import IVSSwitch
from mininet.cli import CLI
from mininet.log import setLogLevel, info
from mininet.link import TCLink, Intf
from subprocess import call
def myNetwork():
net = Mininet( topo=None,
build=False,
ipBase='10.0.0.0/8')
info( '*** Adding controllern' )
c0=net.addController(name='c0',
controller=RemoteController,
ip='127.0.0.1',
protocol='tcp',
port=6633)
info( '*** Add switchesn')
s1 = net.addSwitch('s1', cls=OVSKernelSwitch, dpid='0000000000000001')
s2 = net.addSwitch('s2', cls=OVSKernelSwitch, failMode='standalone')
info( '*** Add hostsn')
h1 = net.addHost('h1', cls=Host, ip='10.0.0.1', defaultRoute=None)
h2 = net.addHost('h2', cls=Host, ip='10.0.0.2', defaultRoute=None)
info( '*** Add linksn')
net.addLink(h1, s1)
net.addLink(s1, s2)
net.addLink(s2, h2)
info( '*** Starting networkn')
net.build()
info( '*** Starting controllersn')
for controller in net.controllers:
controller.start()
info( '*** Starting switchesn')
net.get('s1').start([c0])
net.get('s2').start([])
info( '*** Post configure switches and hostsn')
CLI(net)
net.stop()
if __name__ == '__main__':
setLogLevel( 'info' )
myNetwork()
实验总结
熟练掌握混合SDN网络环境的搭建,为以后从事相关SDN研究以及论文实验的设计打下基础
运行一个简单的 Web 服务器和客户端仿真
Mininet 主机可以运行任何可用于底层 Linux 系统(或 VM)及其文件系统的命令或应用程序。也可以输入任何bash命令,包括作业控制(&,jobs,kill,等。)
启动一个简单的 HTTP 服务器h1,从 发出请求h2,然后关闭 Web 服务器:
h1 python -m http.server 80 &
h2 wget -O - h1
对于 Python 3,HTTP 服务器被称为http.server
; 对于 Python 2,它被称为SimpleHTTPServer
. 确保使用的是适合您正在运行的 Mininet 版本的正确版本。要找出 Mininet 使用的 Python 版本,可以输入
py sys.version
退出 CLI:exit
清理
如果 Mininet 由于某种原因崩溃,请清理它:
sudo mn -c
学习中碰到的小问题
Ubuntu中切换python版本的问题
在使用Ubuntu的过程中,会遇到编译.py文件报错SyntaxError: Missing parentheses in call to 'print'.
这是因为源码是用python2.X 的版本写的,在用python3.X编译会有语法上的不兼容,因此我们需要手动切换系统的默认python版本
输入:whereis python
,会提示你系统里安装的python路径
输入:python
是查看当前系统指定的哪一版本
输入:update-alternatives --list python
是指定:你当前可以轮流切换的python版本,我这里还没设定,因此也就没有版本可选
输入:sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
是指:安装多个版本供切换,最后面的数字1,是指优先级
这里我指定了2个可选的pthon版本,最后面的数字2,是指优先级
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2
输入:
sudo update-alternatives --config python
是指让你选择你当前想要指定的python版本,使用键盘,输入数字:1,按回车确认,即选定成功!
此时你可以输入:python
系统提示为:Python2.7.18
说明更改成功
–end–
最后
以上就是迅速烤鸡为你收集整理的混合IP-SDN环境的仿真实验混合IP-SDN环境的仿真实验运行一个简单的 Web 服务器和客户端仿真的全部内容,希望文章能够帮你解决混合IP-SDN环境的仿真实验混合IP-SDN环境的仿真实验运行一个简单的 Web 服务器和客户端仿真所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复