1、mininet安装与使用

1.1mininet安装

ubuntu 12.04/14.04/14.10      命令行  sudo apt-get install mininet

1.2 mininet基本命令

nodes:查看全部节点

net:查看链路信息

dump:查看各节点详细信息

mn –c:mininet退出后,清理

pingall:测试所有结点是否连通

网络调试命令:

格式:node cmd

举例: h1 ifconfig

h1 ping h2

h1 ping –c 3 h2

打开某结点控制终端:

格式:xterm node

举例:xterm h1

使用link命令,禁用或启用某条链路,格式为 link node1 node2 up/down,例如临时禁用s1跟h2之间的链路,可以用

link s1 h2 down

--mac   The --mac option is super-useful, and sets the switch MAC and host MAC and IP addrs to small, unique, easy-to-read IDs.

--switch ovsk   使用openvswitch交换机

--controller=remote --ip=[controller IP] --port=[controller listening port]

设置远端控制器

--topo   定义网络拓扑

1.单交换机

--topo single,n n表示主机数

2.线性拓仆

--topo linear,n n表示n个交换机直线连接

3.树状拓仆

--topo tree,depth=a,fanout=b depth表示树深度,fanout表示每个结点有几个子结点。所有叶子结点都为主机,非叶子结点为交换机

4自定义拓扑

启动

sudo mn --custom ~/mininet/custom/mytopo.py --topo=mytopo --controller=remote,ip=<>,port=6633

openflow协议设定

启动支持openflow1.3的交换机

sudo mn --controller=remote,ip=10.108.125.9,port=6633 --switch ovsk,protocols=OpenFlow13

设置链路属性

--link:链路属性可以是默认Link及TCLink。将链路类型指定为tc后,可以进一步指定具体参数。具体参数如下命令显示:

--link tc,bw=<>,delay=<>,loss=<>,max_que_size=<>

bw表示链路带宽,使用 Mb/s为单位表示;时延delay以字符串形式表示,如'5ms'、 '100us'、'1s';loss表示数据丢包率的百分比,用0到100之间的一个百分数表示;max_queue_size表示最大排队长度,使用数据包的数量表示。

修改虚拟的主机的ip以及mask地址

h1 ifconfig h1-eth0 10.108.126.3 netmask 255.255.255.01

2、OVS安装与使用

2.1 OVS安装

预先安装

apt-get install aptitude

aptitude install dh-autoreconf

编译

wget http://openvswitch.org/releases/openvswitch-2.1.2.tar.gz

tar zxvf openvswitch-2.1.2.tar.gz && cd openvswitch-2.1.2

./boot.sh

./configure --with-linux=/lib/modules/`uname -r`/build

make -j && sudo make install

sudo make modules_install

sudo modprobe gre

sudo modprobe openvswitch

sudo modprobe libcrc32c

  • 使用 lsmod |grep openvswitch 確認ovs正確地掛載起來
  • ./configure 部份其實還可以下一個 --prefix= 參數, 可以讓openvswitch 完全裝在該目錄底下而不會亂掉

配置数据库ovsdb

ovsdb-tool create /usr/local/etc/openvswitch/conf.db /usr/local/share/openvswitch/vswitch.ovsschema

  • 建立一次即可, 如果設定有問題的話可以把conf.db砍掉重建

启动数据库 ovsdb-server (no ssl)

ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,Open_vSwitch,manager_options --pidfile --detach --log-file

  • cat /usr/local/var/log/openvswitch/ovsdb-server.log 可查到 ovsdb log

启动ovs-vsctl

ovs-vsctl --no-wait init

启动ovs-switchd 功能

ovs-vswitchd --pidfile --detach --log-file

  • /usr/local/var/log/openvswitch/ovs−vswitchd.log 可查到 ovs-vswitchd log
  • ps aux |grep ovs,检查进程

2.2OVS使用

添加网桥

添加名为br0的网桥

ovs-vsctl add-br br0

将网卡eth0挂接到网桥br0上

ovs-vsctl add-port br0 eth0

这个时候,如果挂的插着外网网线的网卡,将不能上网。删掉之后即恢复。

查看结果

ovs-vsctl show

配置QOS,比如队列和限速
  sudo ovs-vsctl -- set Port eth2 qos=@newqos  -- --id=@newqos create QoS type=linux-htb other-config:max-rate=1000000000 queues=0=@q0,1=@q1 -- --id=@q0 create  Queue dscp =1 other-config:min-rate=100000000 other-config:max-rate=100000000 -- --id=@q1 create Queue other-config:min-rate=500000000
  ovs-vsctl clear Port eth2 qos

sudo ovs-vsctl list qos
  sudo ovs-vsctl destroy qos _uuid
  sudo ovs-vsctl list qos
  sudo ovs-vsctl destroy queue _uuid

配置流镜像

sudo ovs-vsctl -- set Bridge br-int mirrors=@m -- --id=@tap6a094914-cd get Port tap6a094914-cd -- --id=@tap73e945b4-79 get Port tap73e945b4-79 -- --id=@tapa6cd1168-a2 get Port tapa6cd1168-a2 -- --id=@m create Mirror name=mymirror select-dst-port=@tap6a094914-cd,@tap73e945b4-79 select-src-port=@tap6a094914-cd,@tap73e945b4-79 output-port=@tapa6cd1168-a2

sudo ovs-vsctl remove Bridge br0 mirrors mymirror
sudo ovs-vsctl clear Bridge br-int mirrors

配置流监控sflow
   sudo ovs-vsctl -- --id=@s create sFlow agent=eth2 target=\"10.0.0.1:6343\" header=128 sampling=64 polling=10  -- set Bridge br-int sflow=@s
   sudo ovs-vsctl -- clear Bridge br-int sflow
配置流规则
    sudo ovs-ofctl add-flow br-int idle_timeout=0,in_port=2,dl_type=0x0800,dl_src=00:88:77:66:55:44,dl_dst=11:22:33:44:55:66,nw_src=1.2.3.4,nw_dst=5.6.7.8,nw_proto=1,tp_src=1,tp_dst=2,actions=drop
    sudo ovs-ofctl del-flows br-int in_port=2 //in_port=2的所有流规则被删除
    sudo ovs-ofctl  dump-ports br-int
    sudo ovs-ofctl  dump-flows br-int
    sudo ovs-ofctl show br-int //查看端口号
    支持字段还有nw_tos,nw_ecn,nw_ttl,dl_vlan,dl_vlan_pcp,ip_frag,arp_sha,arp_tha,ipv6_src,ipv6_dst等;
    支持流动作还有output:port,mod_dl_src/mod_dl_dst,set field等;

配置vxlan gre和ip address

ovs-vsctl add-port br-ex port -- set interface port type=vxlan options:remote_ip=192.168.100.3

ovs−vsctladd−port br-ex port −− set Interface port type=gre options:remote_ip=192.168.100.3

ovs−vsctladd−port br-ex port tag=10 −− set Interface port type=internal//默认为access

ifconfig port 192.168.100.1

显示并学习MAC

ovs-appctl fdb/show br-ex

控制器地址

ovs-vsctl set-controller br-ex tcp:192.168.100.1:6633

ovs-vsctl get-controller br0

ovs-controller ptcp:6633:192.100.100.1

查看OVS上的流表:

ovs-ofctl dump-flows br0

For OpenFlow1.3 you should use "ovs-ofctl -O OpenFlow13 dump-flows s1(switch name)" to view Flow tables.

设置OVS支持的openflow协议版本

sudo ovs-vsctl set Bridge br0 protocols=OpenFlow13

sudo ovs-vsctl clear Bridge br-int protocols

3、ryu安装与使用

1.安裝Ryu 之前需要安装 python 的套件库

sudo apt-get install python-pip python-dev build-essential

2.安装ryu依赖的套件

sudo apt-get install python-eventlet python-routes python-webob python-paramiko

3.six版本不够,卸载再更新

pip uninstall six

pip install six

3.正式安装ryu

pip install ryu

4.如何测试安装成功

在命令行输入 ryu-manager 输出如下图所示,即代表安装成功

转载于:https://www.cnblogs.com/likailiche/p/4383933.html

SDN环境搭建(mininet,OVS,ryu安装及命令)相关推荐

  1. SDN环境搭建和基本功能验证

    sdn环境搭建及基本功能验证 1. 控制器和网络仿真器选择- 3 2. 基本硬件要求- 3 3. 环境和软件要求- 3 4. onos安装说明- 3 4.1. 安装步骤如下- 3 4.1.1. 更新源 ...

  2. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(九)安装kafka_2.11-1.1.0

    如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...

  3. appium 环境搭建(不推荐安装此版本appium,推荐安装appium desktop)

    一:安装node.js 1.双击这个软件 2.一键安装,全都下一步,不要私自更改安装路径 3.打开cmd,输入npm,出现如下截图表示成功 二:安装appium 1.双击appium-installe ...

  4. CentOS6.x 下 LNMP环境搭建(二、安装 Nginx)

    为什么80%的码农都做不了架构师?>>>    CentOS6.x 下 LNMP环境搭建(准备篇) CentOS6.x 下 LNMP环境搭建(一.安装 MySQL) CentOS6. ...

  5. 数据分析——1.环境搭建(Jupyter Lab安装教程)

    数据分析--1.环境搭建(Jupyter Lab安装教程) 1. 安装Jupyter Lab pip install jupyterlab 2. 运行Jupyter Lab 打开cmd,运行命令,浏览 ...

  6. 腾讯云主机Ubuntu之服务器环境搭建以及宝塔面板安装

    腾讯云主机Ubuntu之服务器环境搭建以及宝塔面板安装 我也是第一次使用Ubuntu服务器,所以遇到很多问题,在这里记录一下 1.云服务器购买 建议新手选择快速配置,因为自定义配置里面有自己选择很多参 ...

  7. 【安卓开发系列 -- 开发环境】Unbuntu 下 Android 持续集成打包环境搭建 -- Jenkins 构建工具安装(gradle + git + android 工具)

    [安卓开发系列 -- 开发环境]Unbuntu 下 Android 持续集成打包环境搭建 -- Jenkins 构建工具安装(gradle + git + android 工具) [1]Unbuntu ...

  8. python环境搭建和pycharm的安装配置及汉化(零基础小白版)

    前言:写这篇文章主要是介绍一下python的环境搭建和pycharm的安装配置,适合零基础的同学观看.这篇文章你会学到python的环境搭建和python比较好用的IDE pycharm的安装与基础配 ...

  9. VUE前段开发-开发环境搭建和开发工具安装

    一 VUE介绍 (1)VUE,也就是vue.js,官方的介绍是是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅易于上 ...

  10. 【Linux Mint 深度学习开发环境搭建】开发软件安装

    系列文章目录 第一章 Linux mint 深度学习开发环境搭建之Nvidia显卡相关软件安装 第二章 Linux mint 深度学习开发环境搭建之开发软件安装 第三章 Linux mint 深度学习 ...

最新文章

  1. android实现分类搜索功能,android应用中的搜索功能怎么实现的
  2. php7.3 安装详解,php7.3.20以及常用拓展安装
  3. Scala,Spark和IDEA学习笔记
  4. [云炬创业学笔记]第二章决定成为创业者测试3
  5. 小白的Python之路 day5 configparser模块的特点和用法
  6. 面向对象三大特性: 封装
  7. 云南计算机专业知识真题,2014年云南省事业单位考试专计算机专业知识模拟真题.doc...
  8. php 判断 单选按钮事件,jquery如何判断单选按钮是否选中
  9. Eclipse+JBoss+Seam我实在难以忍受
  10. 达“超人”水平?强化学习得这么用!
  11. SpringCloud核心技术 | 初识SpringCloud微服务解决方案
  12. Silverlight+WCF 新手实例 象棋 棋子移动-规则补充(三十七)
  13. JAVA项目实战开发电商项目案例(一)前后端项目分离
  14. 兼容pmbus的降压DC/DC模块提供更高的输出电流
  15. qam映射c程序_DVB-C系统中QAM调制与解调仿真
  16. linux ssd 4k对齐工具下载,4k对齐检测工具(as ssd benchmark)
  17. 【高等教育6年+工作5年】的个人阶段性自述
  18. 新年计划(2018)
  19. 美国信用评估机构遭黑客入侵,半数美国人受影响!
  20. 【数据去噪】SG-多项式平滑算法

热门文章

  1. day023 常用模块02
  2. 11.Axis客户端接收不同参数类型
  3. linux centos java 应用服务器配置
  4. Linux环境Eclipse + Tomcat + MySQL 构造J2EE方法开发环境
  5. webstorm license key
  6. Android菜鸟的成长笔记(16)——Service简介
  7. Linux内核入门-如何获取Linux内核源代码、生成配置内核
  8. Windows XP Mode安装配置
  9. Powerset:超越Google的搜索引擎?
  10. Linux 命令(58)—— readelf 命令