zoukankan      html  css  js  c++  java
  • network namespace连接的4种方法及性能

    veth pair

    # add the namespaces
    ip netns add ns1
    ip netns add ns2
    # create the veth pair
    ip link add tap1 type veth peer name tap2
    # move the interfaces to the namespaces
    ip link set tap1 netns ns1
    ip link set tap2 netns ns2
    # bring up the links
    ip netns exec ns1 ip link set dev tap1 up
    ip netns exec ns2 ip link set dev tap2 up
    # now assign the ip addresses

    linux bridge and two veth pairs

    # add the namespaces
    ip netns add ns1
    ip netns add ns2
    # create the switch
    BRIDGE=br-test
    brctl addbr $BRIDGE
    brctl stp   $BRIDGE off
    ip link set dev $BRIDGE up
    #
    #### PORT 1
    # create a port pair
    ip link add tap1 type veth peer name br-tap1
    # attach one side to linuxbridge
    brctl addif br-test br-tap1 
    # attach the other side to namespace
    ip link set tap1 netns ns1
    # set the ports to up
    ip netns exec ns1 ip link set dev tap1 up
    ip link set dev br-tap1 up
    #
    #### PORT 2
    # create a port pair
    ip link add tap2 type veth peer name br-tap2
    # attach one side to linuxbridge
    brctl addif br-test br-tap2
    # attach the other side to namespace
    ip link set tap2 netns ns2
    # set the ports to up
    ip netns exec ns2 ip link set dev tap2 up
    ip link set dev br-tap2 up
    #

    openvswitch and two veth pairs

    # add the namespaces
    ip netns add ns1
    ip netns add ns2
    # create the switch
    BRIDGE=ovs-test
    ovs-vsctl add-br $BRIDGE
    #
    #### PORT 1
    # create a port pair
    ip link add tap1 type veth peer name ovs-tap1
    # attach one side to ovs
    ovs-vsctl add-port $BRIDGE ovs-tap1 
    # attach the other side to namespace
    ip link set tap1 netns ns1
    # set the ports to up
    ip netns exec ns1 ip link set dev tap1 up
    ip link set dev ovs-tap1 up
    #
    #### PORT 2
    # create a port pair
    ip link add tap2 type veth peer name ovs-tap2
    # attach one side to ovs
    ovs-vsctl add-port $BRIDGE ovs-tap2 
    # attach the other side to namespace
    ip link set tap2 netns ns2
    # set the ports to up
    ip netns exec ns2 ip link set dev tap2 up
    ip link set dev ovs-tap2 up
    #

    openvswitch and two openvswitch ports

    # add the namespaces
    ip netns add ns1
    ip netns add ns2
    # create the switch
    BRIDGE=ovs-test
    ovs-vsctl add-br $BRIDGE
    #
    #### PORT 1
    # create an internal ovs port
    ovs-vsctl add-port $BRIDGE tap1 -- set Interface tap1 type=internal
    # attach it to namespace
    ip link set tap1 netns ns1
    # set the ports to up
    ip netns exec ns1 ip link set dev tap1 up
    #
    #### PORT 2
    # create an internal ovs port
    ovs-vsctl add-port $BRIDGE tap2 -- set Interface tap2 type=internal
    # attach it to namespace
    ip link set tap2 netns ns2
    # set the ports to up
    ip netns exec ns2 ip link set dev tap2 up

     性能测试:

    http://www.opencloudblog.com/?p=96

    http://www.opencloudblog.com/?p=386

    结论:

    The short summary is:

    • Use Openvswitch and Openvswitch internal ports – in the case of one iperf thread you get 6.9 GBit/s throughput per CPU Ghz. But this solution does not provide any iptables rules on the link.
    • If you like the old linuxbridge and veth pairs you get only 0.7 GBit/s per CPU Ghz throughput. With this solution it’s possible to filter the traffic on the network namespace links.

    Openstack

    If you are running Openstack Neutron, you should use the Openvswitch. Avoid linuxbridges. When connecting the Neutron networking Router/LBaas/DHCP namespaces DO NOT enable ovs_use_veth.

  • 相关阅读:
    jQuery 复选框全选反选
    Linux安装JDK详细步骤
    C++Primer>#include<iostream>与#include<iostream.h>以及#inclue<string> 和 #include<string.h>的区别
    OpenCV常见的几种背景消除的方法
    无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用
    #include<iostream>与#include<iostream.h>以及#inclue<string> 和 #include<string.h>的区别
    CEdit控件输入数字限制(转)
    将自己的博客转移,优化
    Window Style
    this指针基础介绍
  • 原文地址:https://www.cnblogs.com/allcloud/p/4919674.html
Copyright © 2011-2022 走看看