使用GRE隧道连接VM - Openvswitch

时间:2016-07-07 18:41:15

标签: grep sdn tunneling openvswitch

大家好,我在网络方面真的很新,所以我有点失落,我希望有人能帮助我...

我在接口中有两个具有相同配置的物理节点:

# The primary network interface
#auto eth0
#iface eth0 inet dhcp

auto br0
    iface br0 inet dhcp
    bridge_ports eth0
    bridge_fd 9
    bridge_hello 2
    bridge_maxage 12
    bridge_stp off
  

我的节点有以下公共IP:
    ubuntu001:158.42.104.129
    ubuntu002:158.42.104.139

     

我使用libvirt的默认配置在每个节点中运行一个VM:
    umntu001中的Vm:10.1.1.189
    umntu002中的Vm:10.1.1.59

我想在虚拟机之间通过" gre隧道使用OVS"进行ping操作,所以我做了下一个但它没有工作:

  

首先我创建一个OVS桥:
   #ovs-vsctl add-br ovs-br0

     

其次我将我的桥连接到它的上行链路,在这种情况下是eth0
   #ovs-vsctl add-port ovs-br0 eth0

     

第三,我在每个节点运行一个虚拟机(分别为ubuntu001:10.1.1.189和ubuntu002:10.1.1.59)

     

第四,我为GRE隧道添加了一个端口:
   #ovs-vsctl add-port ovs-br0 gre0 - set interface gre0 type = gre options:remote_ip = 158.42.104.139    #ovs-vsctl add-port ovs-br0 gre0 - set interface gre0 type = gre options:remote_ip = 158.42.104.129

我在另一个节点做了同样的事情,当我使用ovs-vsctl show时显示:

root@ubuntu001:~# ovs-vsctl show
    41268e02-3996-4caa-b941-e4fe9c718e35
    Bridge "ovs-br0"
       Port "ovs-br0"
          Interface "ovs-br0"
              type: internal
       Port "gre0"
          Interface "gre0"
              type: gre
              options: {remote_ip="158.42.104.139"}
       Port "eth0"
          Interface "eth0"
       ovs_version: "2.0.2"

root@ubuntu002:~# ovs-vsctl show
    f0128df4-1a89-4999-8add-b5076ff055ee
    Bridge "ovs-br0"
       Port "ovs-br0"
          Interface "ovs-br0"
              type: internal
       Port "gre0"
          Interface "gre0"
              type: gre
              options: {remote_ip="158.42.104.129"}
       Port "eth0"
          Interface "eth0"
       ovs_version: "2.0.2"

我做错了什么或遗失了什么?

1 个答案:

答案 0 :(得分:2)

将此添加到/etc/network/interfaces

auto br-ovs=br-ovs
iface br-ovs inet manual
    ovs_type OVSBridge
    ovs_ports gre1 gre2
    ovs_extra set bridge ${IFACE} stp_enable=true
    mtu 1462

allow-br-ovs gre1
iface gre1 inet manual
    ovs_type OVSPort
    ovs_bridge br-ovs
    ovs_extra set interface ${IFACE} type=gre options:remote_ip=158.42.104.139 options:key=1

auto br1
iface br1 inet manual# (or static, or DHCP)
    mtu 1462   

我不知道如何使用命令执行此操作。

我认为eth0不应该在ovs-vsctl show的输出中。

stp_enable=true是可选的,我不认为在2个节点的情况下需要它。

设置mtu以满足您的需求。此示例适用于真实NIC mtu为1500的情况。

remote_ip=158.42.104.139应包含其他节点的IP。它在2个节点上有所不同。

options:key=1也是可选的,它可用于标记2个GRE网络(例如,第二个网格将具有key=2等。)

您可以将虚拟机添加到br1,然后他们就能互相ping。

别忘了设置虚拟机' mtu至1462。

本教程可能很有用:https://wiredcraft.com/blog/multi-host-docker-network/