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.

  • 相关阅读:
    settings.xml的配置
    查看Linux防火墙状态
    Linux系统安装jdk并配置环境变量
    Windows系统与虚拟机CentOS之间文件复制
    搭建公司后台服务架构(1)
    09-http.ts配置了全局的http拦截器,单独某个组件不想要这个拦截器,如何设置
    17- vue自定义指令-操作DOM的
    15-keep-alive
    14-观察者模式和发布订阅的区别/vue响应式是发布订阅模式和观察者模式
    13.每个vue文件都是一个私有作用域/css的私有性原理
  • 原文地址:https://www.cnblogs.com/allcloud/p/4919674.html
Copyright © 2011-2022 走看看