介绍

本示例将创建两个OVS实例和两个主机,其中每个OVS上接入一个主机,OVS实例之间有链路连接,形成一个链状拓扑,如图。在OVS组网完成之后,再通过手动方式添加流表,实现网络通信,从而验证实验可行性。具体步骤如下。

创建交换机

root@mininet:~# ovs-vsctl add-br s1
root@mininet:~# ovs-vsctl add-br s2

添加端口

root@mininet:~# ovs-vsctl add-port s1 p1 #在交换机s1上添加port设置
root@mininet:~# ovs-vsctl set Interface p1 ofport_request=10
root@mininet:~# ovs-vsctl set Interface p1 type=internal

同理,创建交换机sl上的端口p2,s2上的端口p3、p4。

root@mininet:~# ovs-vsctl add-port s1 p2
root@mininet:~# ovs-vsctl set Interface p2 ofport_request=11
root@mininet:~# ovs-vsctl set Interface p2 type=internal
root@mininet:~# ovs-vsctl add-port s2 p3
root@mininet:~# ovs-vsctl set Interface p3 ofport_request=1
root@mininet:~# ovs-vsctl set Interface p3 type=internal
root@mininet:~# ovs-vsctl add-port s2 p4
root@mininet:~# ovs-vsctl set Interface p4 ofport_request=2
root@mininet:~# ovs-vsctl set Interface p4 type=internal

分别查看添加端口后的交换机

添加主机

为了不影响网络中已有地址发生冲突,需要创建Namespace作为实验的终端主机。创建主机之后,需要为其设置虚拟IP,最后将其连接到OVS的数据端口,完成主机接入工作。本实验中,我们创建了hl和h2两个虚拟主机,设置IP分别为192.168.10.10和192.168.10.11,并将这两个主机分别接入到两个OVS实例上。

root@mininet:~# ip link set p4 netns h2
root@mininet:~# ip netns exec h2 ip addr add 192.168.10.11/24 dev p4
root@mininet:~# ip netns exec h2 ifconfig p4 promisc up root@mininet:~# ip link set p1 netns h1
root@mininet:~# ip netns exec h1 ip addr add 192.168.10.10/24 dev p1
root@mininet:~# ip netns exec h1 ifconfig p1 promisc up

创建交换机链路

首先,需要将对应的端口设置为patch类型

root@mininet:~# ovs-vsctl set interface p2 type=patch
root@mininet:~# ovs-vsctl set interface p3 type=patch

创建p2到p3的内部链路,命令如下

root@mininet:~# ovs-vsctl set interface p2 options:peer=p3
root@mininet:~# ovs-vsctl set interface p3 options:peer=p2

最后,还需要向交换机添加对应的流表项,将交换机sl从10端口进入的数据转发到11端口,反向同理,s2操作同s1,具体操作如下。

root@mininet:~# ovs-ofctl add-flow s1 "in_port=10,actions=output:11"
root@mininet:~# ovs-ofctl add-flow s1 "in_port=11,actions=output:10"
root@mininet:~# ovs-ofctl add-flow s2 "in_port=2,actions=output:1"
root@mininet:~# ovs-ofctl add-flow s2 "in_port=1,actions=output:2"

创建完成之后,查看流表

在Network Namespace h1环境下执行ping 192.168.10.11的操作

ovs命令 https://blog.csdn.net/rocson001/article/details/73163041

ovs之组网实验的更多相关文章

  1. IP组网实验(使用Cisco Packet Tracer路由器模拟软件)

    最近计网课讲到了以太网,第二个计网实验就是IP组网实验.这个实验主要使用了netsim这个路由器模拟软件.怎奈mac上没有,于是用Cisco Packet Tracer进行了一次模拟(其实就是实验中的 ...

  2. H3C AR28-31路由器组网实验

    接线图 可以发现PC1和PC2不在一个网段上,如果不靠路由器就不可能ping,所以要用路由器组网 接线步骤 串行线连接路由器1与路由器2 以太网线连路由器以太网口 与 交换机接口 计算机网线连交换机口 ...

  3. sdn测量论文简介

    Prelude: Ensuring Inter-Domain Loop-Freedom in SDN-Enabled Networks 来源:APNet: The Asia-Pacific Works ...

  4. eNSP V100R002C00B500 Setup模拟CE6800

    本人操作系统:Windows7  64 下载需要的安装包: eNSP V100R002C00B500    官网下载地址:点击这里 CE6800 官网下载地址:点击这里 USG6000V        ...

  5. [原] 利用 OVS 建立 VxLAN 虚拟网络实验

    OVS 配置 VxLAN HOST A ------------------------------------------ | zh-veth0(10.1.1.1) VM A | | ---|--- ...

  6. OVS + dpdk 安装与实验环境配置

    ***DPDK datapath的OVS的安装与实验环境配置 首先肯定是DPDK的安装       0:安装必要的工具            make            gcc           ...

  7. ovs flow 原理及实验

    OpenFlow概述 在支持OpenFlow的交换机中包含了若干个Flow table,Flow table可以用来控制数据包的处理,交换机会执行与flow相匹配的表项中所罗列的动作. OpenFlo ...

  8. 实验报告8 AC+Fit AP组网通过三层网络注册(DHCP Option 43)

    实验报告8 课程名称 无线网络与安全技术 实验名称 AC+Fit AP组网通过三层网络注册(DHCP Option 43) 姓名 学号 班级 实 验 目 的   [实验目的] 了解AC+Fit AP跨 ...

  9. 软件定义网络实验记录④--Open vSwitch 实验——Mininet 中使用 OVS 命令

    一.实验目的 Mininet 安装之后,会连带安装 Open vSwitch,可以直接通过 Python 脚本调用 Open vSwitch 命令,从而直接控制 Open vSwitch,通过实验了解 ...

随机推荐

  1. 从.Net到Java学习第六篇——SpringBoot+mongodb&Thymeleaf&模型验证

    SpringBoot系列目录 SpringBoot整合mongodb MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.如果你没用过Mong ...

  2. 日志管理工具之logrotate

    Logrotate配置和测试 logrotate软件是一个日志管理工具,用于非分隔日志,删除旧的日志文件,并创建新的日志文件,起到“转储作用”,可以为系统节省磁盘空间.logrotate是基于cron ...

  3. arcgis for js开发之路径分析

    arcgis for js开发之路径分析 //方法封装 function routeplan(x1, x2, y1, y2, barrierPathArray, isDraw, callback) { ...

  4. 使用 WeihanLi.Npoi 操作 CSV

    使用 WeihanLi.Npoi 操作 CSV Intro 最近发现 csv 文件在很多情况下都在使用,而且经过大致了解,csv 格式简单,相比 excel 文件要小很多,读取也很是方便,而且也很通用 ...

  5. 多层json的构造,取值,还有使用bootstrap的tree view在前端展示的相关问题

    bootstrap-tree view是一款非常好用的插件,它可以添加任意多层节点,效果如下所示: 使用之前需要在HTML页面添加依赖文件: <link href="bootstrap ...

  6. Java - String 的字面量、常量池、构造函数和intern()函数

    一.内存中的 String 对象 Java 的堆和栈 对于基本数据类型变量和对象的引用,也就是局部变量表属于栈内存: 而通过 new 关键字和 constructor 创建的对象存放在堆内存: 直接的 ...

  7. Cs231n课堂内容记录-Lecture 8 深度学习框架

    Lecture 8  Deep Learning Software 课堂笔记参见:https://blog.csdn.net/u012554092/article/details/78159316 今 ...

  8. 用人类社会工程学对C语言中的一些基本概念的剖析与理解

    最近在学C语言程序设计时总是遇到一些概念理解上的不清晰与混乱的地方,在一次偶然间想到了以前看过的一部电影<我是谁,没有一个系统是安全的>,里面的主角用社会工程学的想法结合黑客知识化险为夷, ...

  9. hashCode()方法对HashMap的性能影响

    HashMap的put()方法会比较key的hash值,key的hash值获取方式如下: //HashMap的put方法 public V put(K key, V value) { return p ...

  10. centos7下kubernetes(18。kubernetes-健康检查)

    自愈能力是容器的重要特性.自愈的默认方式是自动重启发生故障的容器. 用户还可以通过liveness和readiness探测机制设置更精细的健康检查,进而实现: 1.零停机部署 2.避免部署无效的镜像 ...