是linux下的一种类似pipe的网卡设备
创建之后会创建2个虚拟网卡, 他们像pipe的两端.

将一端挂在root ns, 将另外一端挂在另外一个ns里(假设ip是 192.168.5.11), 就能实现跨越2个ns的通信.
假设root ns的这端还挂在一个网桥(linux bridge)上(给网桥一个ip地址 比如 192.168.5.1), 就类似本机的docker0是一个bridge.
此时该bridge可以作为gateway使用, 转发给192.168.5.11 的包就可以通过该bridge来转.

从而实现了本机与虚拟IP的通信.

一些命令

  1. # 创建命名空间
  2. ip nets add subns1
  3. # 在命名空间里执行命令, 此后在这个bash里执行的一切都是在这个subns1下的
  4. ip nets exec subns1 bash
  1. ethtool -k eth0
  2. 网咖有个 netns-local 属性, 如果为on, 表示不能移动到别的命名空间
  1. # 创建veth设备对
  2. ip link add v1 type veth peer name v11
  3. # 一端叫v1, 另一端叫v11
  4. # 查询所有的网络接口
  5. ip link show
  6. # 设置v11到subns1空间
  7. ip link set v11 setns subns1
  8. # 此时再次查看已经看不到v11了
  9. ip link show
  10. # 只有进入 subns1 才能看到它
  11. ip netns exec subns1 ip link show
  12. # TODO 如何修改名字