首页 > 其他 > 详细

实验二、Open vSwitch 应用实践

时间:2020-07-24 10:12:32      阅读:116      评论:0      收藏:0      [点我收藏+]

实验环境

  • 虚拟机软件(vmware workstation)
  • 装有 mininet、python2、Floodlight 的 Ubuntu20.04

实验目的

  • 能够对 Open vSwitch 进行基本操作;
  • 能够运用交换机支持的OpenFlow命令对流表进行操作;
  • 能够使用 Floodlight 控制 OVS 交换机

实验内容

  • 基础技能
    • 创建一个不连接到任何控制器的 OVS 交换机,创建 OVS 交换机的端口 p0,设置端口 p0 的 OpenFlow 端口编号,设置端口类型为“internal”。为了避免网络接口上的地址和本机已有网络地址冲突,我们需要创建一个虚拟网络空间 ns0,把 p0 端口移入网络空间 ns0,并配置 IP 地址。按照上述步骤再创建虚拟网络空间 ns1 和端口 p1。
    • 使用 ovs-ofctl 创建并测试OpenFlow命令
  • 进阶技能
    • 通过创建拓扑,连接 floodlight 控制器,通过控制器的图像化界面,编辑交换机流表规则来控制数据转发。

实验步骤

  1. 交换机创建和端口 p0 的配置
    创建一个新的 OVS 交换机:

    sudo ovs-vsctl add-br ovs-switch
    

    创建一端口 p0,设置端口 p0 的 OpenFlow 端口编号为 100

    sudo ovs-vsctl add-port ovs-switch p0 -- set Interface p0 ofport_request=100
    

    注:由于Ubuntu并没有 p0 端口,给ovs-switch添加端口 p0会报一个错,这个不影响后续实验

    设置网络接口设备的类型为“internal”
    注:对于 internal 类型的的网络接口,OVS 会同时在 Linux 系统中创建一个可以用来收发数据的模拟网络设备。可以为这个网络设备配置 IP 地址、进行数据监听等等。

    sudo ovs-vsctl set Interface p0 type=internal
    

    查看结果

    sudo ethtool -i p0
    

    技术分享图片

  2. 虚拟网络空间的配置
    为了避免网络接口上的地址和本机已有网络地址冲突,我们可以创建一个虚拟网络空间 ns0,把 p0 接口移入网络空间 ns0,并配置 IP 地址为 192.168.1.100

    sudo ip netns add ns0
    sudo ip link set p0 netns ns0
    sudo ip netns exec ns0 ip addr add 192.168.1.100/24 dev p0
    sudo ip netns exec ns0 ifconfig p0 promisc up
    

    技术分享图片

    使用同样的方式创建端口p1

    技术分享图片

    端口 ip地址 网络名称空间 OpenFlow Port Number
    p0 192.168.1.100/24 ns0 100
    p1 192.168.1.101/24 ns1 101
  3. 查看 OVS 交换机
    通过sudo ovs-vsctl show命令查看 OVS 交换机的信息
    技术分享图片

  4. 使用 ovs-ofctl 创建并测试 OpenFlow 命令

    1. 查看交换机中的所有 Table:sudo ovs-ofctl dump-tables ovs-switch
      技术分享图片

    2. 查看交换机中的所有流表项:sudo ovs-ofctl dump-flows ovs-switch
      技术分享图片

    3. 查看交换机上的端口信息:sudo ovs-ofctl show ovs-switch
      技术分享图片

    4. 两个端口相互测试:sudo ip netns exec ns0 ping 192.168.1.101
      技术分享图片

  5. 进阶技能

    1. 在虚拟机环境下,打开终端运行 Floodlight
      技术分享图片

    2. 创建 1 个交换机连接 4 台主机的拓扑,并连接控制器
      技术分享图片

    3. 打开 floodlight 图像化界面并查看网页中的 topo
      技术分享图片

    4. 在 mininet 中执行 pingall 命令,在网页中查看交换机 s1 的流表
      技术分享图片
      技术分享图片
      不懂为什么这边看不到流表??????

    5. 在网页中给交换机中添加一条流表项,使得 h1 不能访问其他所有主机
      技术分享图片

    技术分享图片

    1. 删除之前添加的流表项,在 mininet 中进行 pingall 测试
      技术分享图片
      技术分享图片

实验二、Open vSwitch 应用实践

原文:https://www.cnblogs.com/cyquen/p/13363690.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!