IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 2021-10-03 -> 正文阅读

[Python知识库]2021-10-03

一、Mininet安装

apt-get -y install git

git clone http://github.com/mininet/mininet.git

cd mininet/util/

#查看所有的命令选项

./install.sh -h

Detected Linux distribution: Ubuntu 21.04 hirsute amd64
sys.version_info(major=3, minor=9, micro=4, releaselevel=‘final’, serial=0)
Detected Python (python3) version 3

Usage: install.sh [-abcdfhikmnprtvVwxy03]

This install script attempts to install useful packages
for Mininet. It should (hopefully) work on Ubuntu 11.10+
If you run into trouble, try
installing one thing at a time, and looking at the
specific installation function in this script.

options:
-a: (default) install (A)ll packages - good luck!
-b: install controller (B)enchmark (oflops)
-c: ?lean up after kernel install
-d: (D)elete some sensitive files from a VM image
-e: install Mininet documentation/LaT(e)X dependencies
-f: install Open(F)low
-h: print this (H)elp message
-i: install (I)ndigo Virtual Switch
-k: install new (K)ernel
-m: install Open vSwitch kernel (M)odule from source dir
-n: install Mini(N)et dependencies + core files
-p: install §OX OpenFlow Controller
-r: remove existing Open vSwitch packages
-s

: place dependency (S)ource/build trees in
-t: complete o(T)her Mininet VM setup tasks
-v: install Open (V)switch
-V : install a particular version of Open (V)switch on Ubuntu
-w: install OpenFlow (W)ireshark dissector
-y: install R(y)u Controller
-x: install NO(X) Classic OpenFlow controller
-0: (default) -0[fx] installs OpenFlow 1.0 versions
-3: -3[fx] installs OpenFlow 1.3 versions
#完整安装(默认安装在home目录,安装到其他目录可用-s参数指定)
root@mumi-virtual-machine:~/mininet/util# ./install.sh -a
#安装完成以后,执行命令测试Mininet的基本功能并查看版本。

#5.1.4
#添加Python2环境

apt-get -y install python2

#设置替代方案
root@mumi-virtual-machine:~ # update-alternatives --install /usr/bin/python python /usr/bin/python2 1
root@mumi-virtual-machine:~ # update-alternatives --install /usr/bin/python python /usr/bin/python3 2
#选择可选pytho版本
root@mumi-virtual-machine:~ # update-alternatives --config python

#命令使用
二、ovs安装

5.2.4示例
1.创建OVS交换机

2.添加端口
命令格式:ovs-vsctl <交换机名称> <端口名称>

ovs-vsctl add-port s1 p1

ovs-vsctl set Interface p1 type=internal

ovs-vsctl set Interface p1 ofport_request=10

ovs-vsctl add-port s1 p2

ovs-vsctl set Interface p2 ofport_request=11

ovs-vsctl set Interface p2 type=internal

ovs-vsctl add-port s2 p3

ovs-vsctl set Interface p3 ofport_request=1

ovs-vsctl set Interface p3 type=internal

ethtool -i p3 # ethtool -i p3

ovs-vsctl add-port s2 p4

ovs-vsctl set Interface p4 ofport_request=2

ovs-vsctl set Interface p4 type=internal

3.查看端口详情
命令:# ovs-ofctl show s1

命令:# ovs-ofctl show s2

4.创建h1和h2两个虚拟主机,设置IP分别为192.168.100.10和192.168.100.11,并接入OVS示例。
命令:

ip netns add h1

ip link set p1 netns h1

ip netns exec h1 ip addr add 192.168.10.10/24 dev p1

ip netns exec h1 ifconfig p1 promisc up

ip netns add h2

ip link set p4 netns h2

ip netns exec h2 ip addr add 192.168.10.11/24 dev p4

ip netns exec h2 ifconfig p4 promisc up

ovs-vsctl set interface p2 type=patch

ovs-vsctl set interface p3 type=patch

5.创建p2到p3的内部链路,并向交换机添加对应的流表项。

命令:

ovs-vsctl set interface p2 options:peer=p3

ovs-vsctl set interface p3 options:peer=p2

ovs-ofctl add-flow s1 “in_port=10, actions=output:11”

ovs-ofctl add-flow s1 “in_port=11, actions=output:10”

ovs-ofctl add-flow s2 “in_port=2, actions=output:1”

ovs-ofctl add-flow s2 “in_port=1, actions=output:2”

6.创建完成,在Network Namespce h1环境检查结果:running。

Qos配置
1.在交换机s1的端口1上创建qos策略newqqos,并在策略中创建类型为linux-htb的队列q0和q1,两者最大带宽分别为10G和5G.
命令:

ovs-vsctl – set port s1-eth1 qos=@newqos – --id=@newqos create qos type=linux-htb queues=0=@q0,1=@q1 \

– --id=@q0 create queue other-config:max-rate=10000000
– --id=@q1 create queue other-config:max-rate=5000000

2.S1上添加流表,使OVS能正确转发数据,实现和h1和h2通信。

ovs-ofctl add-flow s1 “in_port=2, actions=output:1”

测试截图:

3.修改流表项,将h2发往h1的数据导入队列0,队列0的最大限速为10Gbit/s。

ovs-ofctl add-flow s1 “in_port=2, actions=enqueue:1:0”

测试截图:

4.再次修改流表项,将数据导入到队列1中,此时最大限速5Gbit/s。

ovs-ofctl add-flow s1 “in_port=2, actions=enqueue:1:1”

测试截图:

实验完成!
三、Ryu
#官方参考地址:
https://github.com/faucetsdn/ryu
https://ryu-sdn.org/
#安装步骤(任选其一)
1.源码安装方式
git clone https://github.com/faucetsdn/ryu.git
cd ryu; pip install .

Optional Requirements

root@mumi-virtual-machine:~/ryu# pip install -r tools/optional-requires
安装完成如图所示:

root@mumi-virtual-machine:~/ryu# python setup.py install

2.快速安装
root@mumi-virtual-machine:~# pip install ryu
5.3.4实验一:
开发二层MAC自学习交换应用和基于端口及流表项统计信息的流量监控应用。
源码及解读:
#进入ryu顶级目录重新编译安装
root@mumi-virtual-machine:~# cd ryu/
root@mumi-virtual-machine:~/ryu# python setup.py install
#启动ryu控制器并加载新写的应用
截图:(同时开启两个终端验证)
第一个终端:(创建拓扑后发现会不断下发流表)

第二个终端:
创建树形拓扑,执行pingall验证所有主机间通信并查看结果。

命令:# mn --topo=tree,depth=2,fanout=2 --controller=remote –mac
参数depth为2和fanout为2表示交换机深度即层数为2,每个交换机下挂2个设备。
查看链接信息

查看节点信息:

查看链路健壮性信息:

拓展1:使用线性拓扑验证。

拓展2:使用单一拓扑验证(发现流表下发速度明显变缓)

实验二—流量监控应用
源码及解读
截图(同时开启两个终端验证)
第一个终端:树型拓扑

第二个终端:(查看到了周期的流量统计信息)

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-04 12:48:17  更:2021-10-04 12:49:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:48:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码