zoukankan      html  css  js  c++  java
  • veth pair


    http://heychenbin.github.io/post/veth-pair/


    Virtual Ethernet Pair简称veth pair,是一个成对的端口,所有从这对端口一 端进入的数据包都将从另一端出来,反之也是一样.

    下面用例子说明veth pair的创建和使用:

    现在有这样一个环境,两个网桥,一个是Linux内核网桥br1,另一个是ovs网桥 br-eth1,现在想把两个网桥连接起来,就可以用veth pair.

    +------------------+              +------------------+
    |                  |              |                  |
    |   ovs bridge     |              |   Linux bridge   |
    |   br-eth1        |              |   br1            |
    |                  |              |                  |
    +------------------+              +------------------+
    

    首先创建一对veth pair:

    [root@compute-195 ~]# ip link add eth1-br1 type veth peer name phy-br1
    [root@compute-195 ~]# ip link list
    
    ...
    
    25: phy-br1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
        link/ether 22:83:01:db:37:b4 brd ff:ff:ff:ff:ff:ff
    26: eth1-br1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
        link/ether 32:b2:aa:1a:8a:13 brd ff:ff:ff:ff:ff:ff
    

    创建成功后,可以通过ip link看到一对端口,可以通过ethtool查看他们是否成 对:

    [root@compute-195 ~]# ethtool -S phy-br1
    NIC statistics:
         peer_ifindex: 26
    

    创建成功后,就可以分别将两个端口添加到不同的网桥上:

    Linux网桥

    [root@compute-195 ~]# brctl addif br1 phy-br1
    [root@compute-195 ~]# brctl show
    bridge name     bridge id               STP enabled     interfaces
    br0             8000.e41f136dc9f0       no              enp11s0f0
                                                            vnet0
                                                            vnet2
                                                            vnet3
    br1             8000.deef26d9c76a       no              phy-br1
                                                            vnet1
                                                            vnet4
    

    可以看到phy-br1添加到了br1网桥上.

    ovs网桥

    [root@compute-195 ~]# ovs-vsctl add-port br-eth1 eth1-br1
    [root@compute-195 ~]# ovs-vsctl show
    e61b93e6-a701-4b6e-86c2-05f883885ab8
        Bridge br-int
            fail_mode: secure
            Port "qvof01b51bf-71"
                tag: 1
                Interface "qvof01b51bf-71"
            Port "int-br-eth1"
                Interface "int-br-eth1"
            Port br-int
                Interface br-int
                    type: internal
        Bridge "br-eth1"
            Port "eth1-br1"
                Interface "eth1-br1"
            Port "eth1"
                Interface "eth1"
            Port "phy-br-eth1"
                Interface "phy-br-eth1"
            Port "br-eth1"
                Interface "br-eth1"
                    type: internal
        ovs_version: "2.3.0"
    

    可以看到eth1-br1也添加到了br-eth1网桥上了.这样整个网络就完成了网桥的 连接:

    +------------------+              +------------------+
    |  ovs bridge      |              |   Linux bridge   |
    |  br-eth1         |              |   br1            |
    |       +----------+              +----------+       |
    |       | eth1-br1 +--------------+ phy-br1  |       |
    +-------+----------+              +----------+-------+
    

  • 相关阅读:
    SQLite out of order error备忘
    SQLITE_TOOBIG
    Android CursorWindow问题备忘
    SQLite3神奇的UNION、UNION ALL与LIMIT组合
    Android Database(SQLite)参数绑定问题初探
    Android SQLite 加入自定义函数
    修改替换/system/framework/framework.jar后重启手机为何没有效果?
    手动调用NDK编译HelloWorld
    第一篇
    程序题
  • 原文地址:https://www.cnblogs.com/ztguang/p/12644974.html
Copyright © 2011-2022 走看看