Linux的3.12内核支持6种Namespace:
UTS: hostname
IPC: 进程间通信
PID: "chroot"进程树
NS: 挂载点,首次登陆Linux
NET: 网络访问,包括接口
USER: 将本地的虚拟user-id映射到真实的user-id
虚拟化
NET:网络名称空间:
描述:主要是网络设备、协议栈等实现,假设物理机上有四块网卡,需要创建两个名称空间,这些设备可以单独关联给某个空间所使用的,如第一个网卡分配给第一个名称空间使用,其他就看不见这个设备了,一个设备一般只能授予一个空间,同样有四个网卡就可以使用四个名称空间,使得每个名称空间都可以配置IP地址与外界进行通信。
如果名称空间的数量超过物理网卡数量,每个名称空间内部的进程也是需要通过网络进行通信,应该如何上报,可以使用模拟技术,linux设备支持两种内核级的模拟,是二层设备和三层设备,网卡就是一个二层设备,工作在链路层,能够封装报文实现各设备之间报文转发的实现,这功能是完全可以在Linux之上利用内核中对二层虚拟设备的支持,创建虚拟网卡接口,而且这种虚拟网卡接口很独特,每个网络接口设备是成对出现的,可以模拟为一根网线的两头,其中一头可以插在主机之上,另一头插在交换机之上进行模拟,相当于一个主机连接到交换机上去了,而linux内核源生就支持模拟二层网络设备,使用软件来构建一个交换机。
如果有两个名称空间,那么两台主机就像连接到同一个交换机