ITPub博客

首页 > 应用开发 > IT综合 > Docker network namespace

Docker network namespace

原创 IT综合 作者:百联达 时间:2017-10-24 17:50:09 0 删除 编辑

一:Linux namespace



Linux内核实现namespace的一个主要目的,就是实现轻量级虚拟化(容器)服务。在同一个namespace下的进程可以感知彼此的变化,而对外界的进程一无所知,仿佛置身于一个独立的系统环境中,以达到独立和隔离的目的。

 

二:network namespace

Network namespace主要提供了关于网络资源的隔离,包括网络设备,IPv4和IPv6协议栈,IP路由表,防火墙,/proc/net目录,/sys/class/net目录,套接字(socket)等。一个物理的网络设备最多存在于一个network namespace中,可以通过创建veth pair(虚拟网络设备对:有两端,类似管道,如果数据从一端传入另一端也能接收到,反之依然)在不同的network namespace间创建通道,以达到通信目的。

一般情况下,物理网络设备都分配在最初的root namespace(系统默认的namespace)中,但是如果有多块物流网卡,也可以把其中一块或多块分配给新创建的network namespace.

当说到network namespace时,指的是把网络独立出来,给外部用户一种透明的感觉,仿佛在与一个独立网络实体进行通信。 容器的经典做法就是创建一个veth pair,一端放置在新的namespace中,通常命名为eth0;一端放在原先的namespace中连接物理网络设备,再通过把多个设备接入网桥或者进行路由转发,来实现通信的目的。

三:ip netns命令


1. 创建一个network namespace

ip netns add nstest

2. 列出系统中已存在的network namespace

Ip netns list

3. 删除一个network namespace

Ip netns delete nstest

4. 在network namespace中执行一条命令:ip netns exec

如:ip netns exec nstest ip addr

5. 启动network namespace中的回环设备

ip netns exec nstest ip link set dev lo up

6. 在主机上创建两张虚拟网卡veth-a和veth-b

ip link add veth-a type veth peer name veth-b

7. 将veth-b设备添加到nstest这个network namespace中,veth-a留在主机中。

ip link set veth-b netns nstest  此时nstest就有了两块网卡lo和veth-b



8.  在主机上为veth-a配置IP并启动

ip addr add 10.0.0.1/24 dev veth-a

ip link set dev veth-a up

9.  为nstest中的veth-b配置IP并启动

ip netns exec nstest ip addr add 10.0.0.2/24 dev veth-b

ip netns exec nstest ip link set dev veth-b up

10.  在主机中查看路由: ip route


11.在 nstest中查看路由信息:ip netns exec nstest ip route

这两条路由表明的意义是目的地址为10.0.0.0/24网络的IP分别从veth-a和veth-b发出。

12.  测试连通性:现在nstest这个network namespace有了自己的网卡,IP地址,路由表等信息:

Ping 10.0.0.2


ip netns exec nstest ping 10.0.0.1


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28624388/viewspace-2146319/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Docker 网络管理
下一篇: Docker监控Prometheus
请登录后发表评论 登录
全部评论
15年以上互联网经验,先后从事过制造业,证券业,物业行业和物流行业信息系统和互联网产品的设计落地实施,8年系统架构经验。最近关注企业数字化转型、财务数字化服务共享、大语言模型、Kubernetes微服务架构和Istio微服务治理框架。

注册时间:2013-02-05

  • 博文量
    332
  • 访问量
    1265618