zoukankan      html  css  js  c++  java
  • Linux Network Namespace

    Linux Network Namespaces

      Linux kernel在2.6.29中加入了namespaces,用于支持网络的隔离,我们看一下namespace是如何使用的

    创建与配置

      创建一个名为blue的namespace

        ip netns add blue

      列出所有的namespace

        ip netns list

    分配网络接口到namespace上

      我们可以将一对veth中的一个分配到namespace上,将另一个分配到另一个上。

      veth的创建如下:

        ip link add veth0 type veth peer name veth1

      这样就创建了一对veth,veth0 和veth1。 veth的作用就像一根网线一样,从一端进入的数据会从另一端出来。 使用 ip link list 查看创建的veth设备。

      如果我们想把刚创建的namaespace与global/default namespace连接,我们可以这样做: ip link set veth1 netns blue veth1 从global从消失了,因为这对veth的另一端veth0在default中,这样我们就可以将两个 namespace联系起来了。

      使用如下命令查看blue namespace中的连接

        ip netns exec blue ip link list

      如何配置namespace中的接口呢?可以使用如下命令:

        ip netns exec <network namespace> <command to run against that namespace>

    连接到物理网络

      可以使用linux bridge 或者 openvswith bridge。将物理接口和veth的一个加入到同一个bridge就可以了。

  • 相关阅读:
    重构之重新组织函数(ExTract Method)
    设计模式之桥接模式
    设计模式原则之里氏替换原则
    设计模式原则之依赖倒置原则
    设计模式原则之接口隔离原则
    设计模式原则之单一职责原则
    编译php5.6
    wireshark总结
    Blu-Ray BRRip 和 BDRip 的区别
    openwrt虚拟机的network unreachable
  • 原文地址:https://www.cnblogs.com/vincenshen/p/8443479.html
Copyright © 2011-2022 走看看