标签: openvswitch

带有Open vSwitch的LXC

我想尝试OVS(软件Linux交换机)http://openvswitch.org/和我的LXC容器,Ubuntu作为主机和访客.所以我安装了它:

# apt-get install openvswitch-switch
Run Code Online (Sandbox Code Playgroud)

根据此文档进行配置https://infologs.wordpress.com/2015/06/19/how-to-attach-lxc-container-to-ovs-openvswitch/

  1. 创建测试容器:

    # lxc-create -t ubuntu -n veth03-ovs -- -r trusty
    
    Run Code Online (Sandbox Code Playgroud)
  2. 创建ovs桥并为其分配IP:

    # ovs-vsctl add-br switch0
    # ip add add 192.168.100.1/24 dev switch0
    
    Run Code Online (Sandbox Code Playgroud)

让它成为新的网络192.168.100.0/24和switch0(根据我的理解)将是第一个地址(网关).

看起来很好:

# ip a
...
4: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default 
    link/ether 52:9d:e1:60:1d:56 brd ff:ff:ff:ff:ff:ff
5: switch0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default 
    link/ether 16:63:eb:47:13:41 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.1/24 scope global switch0
       valid_lft forever preferred_lft forever
Run Code Online (Sandbox Code Playgroud)

桥接接口状态:

# ovs-vsctl show …
Run Code Online (Sandbox Code Playgroud)

ubuntu containers lxc openvswitch

5
推荐指数
1
解决办法
3263
查看次数

ovs-vsctl和ovs-dpctl之间的区别

如果我要设置一个通过OpenFlow控制的开关设备,使用ovs-dpctlovs-vsctl的条件是什么?对于该名男子页OVS-dpctl说,使用OVS-vsctl如果OVS-vswitchd使用.

那么在什么情况下你会使用ovs-dpctl?你不能做什么呢?

一个后续问题是OF"数据路径"值的来源.这将是OF控制器用于识别OF开关的OF规范中的64位数字.是自动计算此值还是必须输入?

感谢您的帮助.

openflow openvswitch

4
推荐指数
2
解决办法
5496
查看次数

Mininet OVS-Controller无法加载和运行

当我尝试从主机终端登录到我的mininet VM时,它显示Permission denied 错误,甚至来自使用命令托管Mininet的 VM终端内:

sudo mn --topo single,3 --mac --switch ovsk --controller remote`
Run Code Online (Sandbox Code Playgroud)

它显示以下错误:

ubuntu@ubuntu:~$ sudo mn
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2
*** Adding links:
(h1, s1) (h2, s1)
*** Configuring hosts
h1 h2
*** Starting controller
Cannot find required executable ovs-controller.
Please make sure that it is installed and availabe in your $PATH:
(/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin/:/bin)
ubuntu@ubuntu:~$
Run Code Online (Sandbox Code Playgroud)

所以我无法继续使用SDN网络!如何手动修复以及为什么会发生此错误!

ubuntu networking mininet openvswitch

3
推荐指数
2
解决办法
9783
查看次数

使用 libvirt / openvswitch 在两台主机和两台虚拟机之间设置私有网络

我有两个节点和两个虚拟机

kvm01
-nic1 123.123.123.1

VM1 
-vnet1 123.123.123.2 (public) -vnet2 10.0.0.1 (private)

kvm02
-nic1 123.123.123.2

VM2
-vnet1 123.123.123.4 (public) -vnet2 10.0.0.2 (private)
Run Code Online (Sandbox Code Playgroud)

如何设置 openvswitch 网络,以便 VM1 和 VM2 位于专用网络上,但主机位于两个不同的位置?

编辑:

运行此命令:

# ovs-vsctl add-port br-private vxlan1 -- \
  set Interface vxlan1 type=vxlan options:remote_ip=123.123.123.2
Run Code Online (Sandbox Code Playgroud)

导致此 OVS 配置:

root@backup01:~# ovs-vsctl show
6276bd0a-920b-469d-a4e0-90d990dd8f94
    Bridge "br-private1"
        Port "vxlan1"
            Interface "vxlan1"
                type: vxlan
                options: {remote_host="107.150.29.72"}
        Port "br-private1"
            Interface "br-private1"
                type: internal
    ovs_version: "2.3.0"
root@kvmssd01:~# ovs-vsctl show
da6399d4-1435-437d-90d7-3e75c443389b
    Bridge br-private
        Port "vxlan1"
            Interface "vxlan1"
                type: vxlan
                options: …
Run Code Online (Sandbox Code Playgroud)

linux networking debian libvirt openvswitch

3
推荐指数
1
解决办法
5517
查看次数

从整数范围创建按位匹配的集合

OVS文档

...以下列格式描述填充规则:

范围匹配可以表示为按位匹配的集合.例如,假设目标是匹配TCP源端口1000到1999(包括端点).1000和1999的二进制表示是:

01111101000
11111001111
Run Code Online (Sandbox Code Playgroud)

以下一系列按位匹配将匹配1000和1999以及它们之间的所有值:

01111101xxx
0111111xxxx
10xxxxxxxxx
110xxxxxxxx
1110xxxxxxx
11110xxxxxx
1111100xxxx
Run Code Online (Sandbox Code Playgroud)

可以写成以下匹配:

tcp,tp_src=0x03e8/0xfff8
tcp,tp_src=0x03f0/0xfff0
tcp,tp_src=0x0400/0xfe00
tcp,tp_src=0x0600/0xff00
tcp,tp_src=0x0700/0xff80
tcp,tp_src=0x0780/0xffc0
tcp,tp_src=0x07c0/0xfff0
Run Code Online (Sandbox Code Playgroud)

我正在尝试根据perl中的最小和最大整数值来确定生成这些匹配的正确方法.我查看了模块Bit :: Vector,但我无法弄清楚如何有效地将它用于此目的.

binary perl openvswitch

3
推荐指数
1
解决办法
133
查看次数

Mininet 使用 openvSwitch?

我是 Mininet 和 openvSwitch 的新手。

我知道 mininet 使用我的电脑资源创建了一个虚拟网络。

而且我知道 openvSwitch 创建虚拟交换机。

但是我不明白 mininet 是否使用 openvSwitch 创建的虚拟交换机来创建虚拟网络。

mininet openvswitch

1
推荐指数
1
解决办法
8069
查看次数

如何连接Open vSwitch端口和虚拟以太网接口?

我要做的是通过裸机PC中的Open vSwitch将数据包发送到服务器,而不是在VM上。

为此,我正在考虑以下结构。

服务器电脑
 -----------------------------
| ------ |
| |服务器| |
| ------ |
| | veth2(192.168.0.152)|
| | |
| | veth1 |
| ----------- |
| | OVS(br0)| |
| ----------- |
| | eth0(192.168.0.157)|
 ------- | ---------------------
        |
 ------- | --------
| 客户端电脑|
 ----------------

用于制作上述环境


,我在下面的命令中做了。

  1. 创建ovs桥
ovs-vsctl add-br br0
  1. 使eth0作为ovs端口
ovs-vsctl add-port br0 eth0
  1. 创建veth链接
ip链接添加veth1类型veth对等名称veth2
ifconfig veth1向上
ifconfig veth2向上
  1. 最后,我静态设置了客户端ARP表,因为ovs端口(eth0)无法发送ARP回复

之后,我尝试在客户端和服务器之间建立TCP连接。

我检查了客户端的SYN数据包是否已发送到veth2。但是,服务器无法接收该数据包。

我无法猜测出什么问题以及如何在环境之上做出贡献。

linux networking openvswitch

1
推荐指数
1
解决办法
5209
查看次数

基于 tcp 端口匹配 TCP 流 Ryu 控制器

我正在尝试使用带有 RYU SDN 控制器的 tcp 源端口将 TCP 流重定向到特定服务器。这是我的拓扑(第一步很简单):

host -- ovs1 -- ovs2 -- server
Run Code Online (Sandbox Code Playgroud)

ovs1的匹配规则:

match = parse.OFPMatch(in_port=port,eth_type=0x0800, ipv4_dst=server_ip, tcp_src=tcp_pkt.src_port)
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误

EventOFPErrorMsg received.
version=0x4, msg_type=0x1, msg_len=0x4c, xid=0x370bf1bf
 `-- msg_type: OFPT_ERROR(1)
OFPErrorMsg(type=0x4, code=0x9, data=b'\x04\x0e\x00\x70\x37\x0b\xf1\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x28\x80\x00\x00\x04\x00\x00\x00\x01\x80\x00\x0a\x02')
 |-- type: OFPET_BAD_MATCH(4)
 |-- code: OFPBMC_BAD_PREREQ(9)
 `-- data: version=0x4, msg_type=0xe, msg_len=0x70, xid=0x370bf1bf
     `-- msg_type: OFPT_FLOW_MOD(14)
Run Code Online (Sandbox Code Playgroud)

关键是,如果我删除 tcp_src 选项,一切正常,这就是为什么我认为问题与我传递端口的方式有关。

有任何想法吗?

提前致谢!

tcp openflow openvswitch sdn ryu

1
推荐指数
1
解决办法
2719
查看次数

了解 openvswitch 中的端口号

我正在使用一个 openvswitch 和真实的 sdn 交换机在真实环境中运行交换机测试Switch Test 。

我在 openvswitch 上创建了一个网桥并添加了端口(例如 eth0、eht1)。但我想知道逻辑端口号(如 1、2)哪个命令给我正确的信息。ovs-ofctl show bridge s1节目

1(eth3): mac address etc
2(eth4):
5(eth5):
Run Code Online (Sandbox Code Playgroud)

ovs-dpctl show

port 2: eth3
port 3: eth4
port 4: eth5
Run Code Online (Sandbox Code Playgroud)

但结果并未显示物理端口到逻辑端口的正确映射。观察者eth5在这两种情况下ofctl给出 5 和dpctl4。有没有办法获得正确的端口 ID。

我个人认为这两个命令都没有给出正确的端口 ID。为了隔离这种情况。在 Mininet 上,我创建了 2 个 openvswitch 并运行dpctl上面的命令,它给了我 1,2,3,4,5,6 作为端口号,但我无法使用这些端口号运行测试。对于这两个开关我使用了 1,2,3 测试执行成功。我的意思是,如果我为一台交换机提供 1,2,3 端口号,为另一台交换机提供 4,5,6 端口号,则测试不会执行。任何帮助深表感谢。

mininet openvswitch sdn ryu

1
推荐指数
1
解决办法
5966
查看次数

了解 Mininet、OpenFlow 和 OVS 之间的区别

我很困惑下列条款之间:OpenFlowOpen vSwitch,和Mininet。我想了解他们之间的关系。请问,有人可以提供何时以及如何使用它们中的每一个吗?

谢谢你。

openflow mininet openvswitch sdn

0
推荐指数
1
解决办法
2161
查看次数

标签 统计

openvswitch ×10

mininet ×4

networking ×3

openflow ×3

sdn ×3

linux ×2

ryu ×2

ubuntu ×2

binary ×1

containers ×1

debian ×1

libvirt ×1

lxc ×1

perl ×1

tcp ×1