创建一个网络名称空间:

相当于创建一个完全隔离的新网络环境,这个环境包括一个独立的网卡空间,路由表,ARP表,ip地址表,iptables,ebtables,等等。总之,与网络有关的组件都是独立的。

1,基础iproute2命令

*显示所有网络接口

ip link show
ip link
ip address
ip address show dev eth1

*对一个网络接口添加或者删除ip地址

sudo ip address add 10.0.1.1/24 dev veth0 #添加ip地址
sudo ip address add 10.0.1.2/24 dev veth0 #可以对一个接口添加多个ip地址
sudo ip address del 10.0.0.1/24 dev veth0 #删除IP地址

*停用和启用网络接口

sudo ip link set down eth1
sudo ip link set up eth1

*路由相关

sudo ip route add     default via 192.168.1.2 dev eth0     #添加默认路由
sudo ip route replace default via 192.168.1.2 dev eth0   #修改默认路由 sudo ip route add 172.16.32.0/24 via 192.168.1.1 dev eth0 #添加路由
sudo ip route del 172.16.32.0/24                #删除路由 sudo ip route show #列出当前路由

2,在centos下可以使用iproute2工具来创建一个网络名称空间

*创建网络名称空间

sudo ip netns add net0   # net0 表示名称,可以自定义,这里创建了一个名为net0的网络名称空间

*列出已经存在的网络名称空间

sudo ip netns list

*删除指定的网络名称空间

sudo ip netns delete net0 # net0 是一个已存在的网络名称空间

*在某个名称空间中执行一个命令

sudo ip netns exec net0 `command`

*添加一个veth

$ ip link add veth0 type veth peer name veth1

使用ip link命令输出如下结果:
8: veth0@veth1: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 1e:e4:20:df:5a:b3 brd ff:ff:ff:ff:ff:ff
9: veth1@veth0: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 8e:75:8a:75:b8:4a brd ff:ff:ff:ff:ff:ff

*设置网络接口所在的网络名称空间

$ ip link set veth1 netns net0 #将网络接口veth1放到net0名称空间中

使用ip link命令输出如下结果,可以发现veth1不见了:
8: veth0@if9: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
link/ether 1e:e4:20:df:5a:b3 brd ff:ff:ff:ff:ff:ff link-netnsid 2 $ ip netns exec net0 ip link 输出输出结果:
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
9: veth1@if8: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
link/ether 8e:75:8a:75:b8:4a brd ff:ff:ff:ff:ff:ff link-netnsid 0

参考链接:

http://www.cnblogs.com/taosim/articles/4444887.html

http://blog.csdn.net/vacing/article/details/69802394

https://yq.aliyun.com/articles/64855

iproute2使用及网络名称空间的更多相关文章

  1. 网络名称空间 实例研究 veth处于不同网络的路由问题

    相关命令详细介绍参见 http://www.cnblogs.com/Dream-Chaser/p/7077105.html .问题: 两个网络名称空间中的两个接口veth0和veth1,如何配置net ...

  2. 同一个POD中默认共享哪些名称空间

    如果通过POD的形式来启动多个容器那么它们的名称空间会是共享的么,所以我这里讨论是在默认情况下同一个POD的不同容器的哪些名称空间是打通的.这里先说一下结论,共享的是UTS.IPC.NET.USER. ...

  3. 网络虚拟化基础一:linux名称空间Namespaces

    一 介绍 如果把linux操作系统比作一个大房子,那命名空间指的就是这个房子中的一个个房间,住在每个房间里的人都自以为独享了整个房子的资源,但其实大家仅仅只是在共享的基础之上互相隔离,共享指的是共享全 ...

  4. k8s名称空间资源

    namespace是k8s集群级别的资源,用于将集群分隔为多个隔离的逻辑分区以配置给不同的用户.租户.环境或项目使用,例如,可以为development.qa.和production应用环境分别创建各 ...

  5. C++知识回顾(二)——名称空间

    随着工程的增大,名称相互冲突的肯能性增加,使用多个厂商的类库时,可能导致名称冲突.为了解决这些问题,需要用到名称空间. 为了将代码加入名称空间,可以使用namespae将其包含,例如,编写一段代码,其 ...

  6. 带名称空间的xml数据查询

    <gpx xmlns="http://www.topografix.com/GPX/1/1" creator="MapSource 6.5" versio ...

  7. WPF x名称空间

    X是映射XML名称空间时给他取的名字.X名称空间里面的成员是专门给XAML编译器看的.用来引导XAML编译器把XAML代码编译成CLR代码的,他是取的XAML的首字母X. XAML有自己的编译器,会吧 ...

  8. Spring使用p名称空间配置属性

    给XML配置文件"减肥"的另一个选择就是使用p名称空间,从 2.0开始,Spring支持使用名称空间的可扩展配置格式.这些名称空间都是基于一种XML Schema定义.事实上,我们 ...

  9. x名称空间

    XAML代码的WPF程序都需要通过语句:xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml",x就是用来映射xmlns:x= ...

随机推荐

  1. 爬虫之urllib库使用

    请求方法request import urllib.request url = "https://blog.csdn.net/fengxinlinux/article/details/772 ...

  2. 【记录】springboot项目的maven的pom.xml文件第一行报错 Unknown Error

    原因 : maven的插件版本的问题,造成与IDE的不兼容 解决办法 :在pom中加上 <maven-jar-plugin.version>3.1.1</maven-jar-plug ...

  3. docker下的images 保存和导出

    由于迁移测试环境,所以部署的的docker镜像某一些需要迁移到另外一台服务器上面去.. 我是用 docker save -o registry.tar registry 来把相应需要导出的images ...

  4. 利用Apache shiro SimpleHash 加密字符串

    1.导入包 import org.apache.shiro.crypto.hash.SimpleHash; 1 2.代码 import org.apache.shiro.crypto.hash.Sim ...

  5. spark MLlib的 pipeline方式

    spark mllib的pipeline,是指将多个机器学习的算法串联到一个工作链中,依次执行各种算法. 在Pipeline中的每个算法被称为"PipelineStage",表示其 ...

  6. 1.springAOP原理分析

    环境:jdk1.8 + spring boot 2.0.9.RELEASE Spring AOP的实现本质上就是代理Proxy + 一系列的拦截器 使用@Aspect,引入依赖 <depende ...

  7. 使用Jsp/Js/Ajax/Json/Jquery/Easyui + Servlet + JDBC + Lucene/Mysql/Oracle完成数据库分页

    package loaderman.action; import java.io.IOException; import java.io.PrintWriter; import java.util.L ...

  8. a lot of attention under the hood

    Because one of the original goals of the Node.js project was to allow developers to easily build app ...

  9. java基础内存基础详解

    堆区: 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息.(class的目的是得到操作指令) 2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对 ...

  10. 适用于hips ui的iPhoneX及以上适配方案

    版本信息: hips ui: 0.1.43 须知: 随着hips ui的迭代,可能会解决适配问题,所以下面的方案是有时效性的. 如果你项目上很紧急,可以直接看第三部分解决方案,复制粘贴代码即可. 一. ...