添加veth-pair对

# 查看此时网络设备
[root@boy ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000link/ether 00:0c:29:4c:30:4e brd ff:ff:ff:ff:ff:ff#  添加网桥设备br0
[root@boy ~]# ip link add br0 type bridge# 添加veth设备对
[root@boy ~]# ip link add veth1 type veth peer name veth2# 将veth1绑定到br0
[root@boy ~]# ip link set veth1 master br0
  • 通过下面可以发现,在未将veth2添加到namespace时,veth1@veth2表示:veth1接口的对端接口名称为:veth2
[root@boy ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000link/ether 00:0c:29:4c:30:4e brd ff:ff:ff:ff:ff:ff
3: br0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/ether 82:65:dc:57:ed:39 brd ff:ff:ff:ff:ff:ff
4: veth2@veth1: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/ether 2a:ce:91:42:45:66 brd ff:ff:ff:ff:ff:ff
5: veth1@veth2: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop master br0 state DOWN mode DEFAULT group default qlen 1000link/ether 82:65:dc:57:ed:39 brd ff:ff:ff:ff:ff:ff
  • 通过下面可以发现,当我们把veth2加入test namespace后,veth2对主机不可见,宿主机内veth1@veth2 -> veth1@if4,test namespace内 veth2@if5
# 将veth2 添加到一个namespace
[root@boy ~]# ip netns add test
[root@boy ~]# ip link set veth2 netns test# 查看网络设备
[root@boy ~]# ip link show type veth
5: veth1@if4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master br0 state DOWN mode DEFAULT group default qlen 1000link/ether 82:65:dc:57:ed:39 brd ff:ff:ff:ff:ff:ff link-netnsid 0# test命名空间查看网络设备
[root@boy ~]# ip netns exec test ip link show
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
4: veth2@if5: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000link/ether 2a:ce:91:42:45:66 brd ff:ff:ff:ff:ff:ff link-netnsid 0

那么在容器内或者宿主机如何确定veth对端接口?

# 方法一, x: 网卡名  x表示index5: veth1@if4   # 表示当前网卡index为5,其对端index为44: veth2@if5   # 表示当前网卡index为4,其对端index为5# 方法二查看网卡index: /sys/class/net/<interface>/ifindex查看对端网卡index:/sys/class/net/<interface>/iflink

Docker环境

# 查看网卡设备
root@Y7000P:~# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000link/ether 00:0c:29:c0:67:c4 brd ff:ff:ff:ff:ff:ffaltname enp2s1
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default link/ether 02:42:fd:3d:e8:0a brd ff:ff:ff:ff:ff:ff# 运行busybox,默认使用bridge网络模式
root@Y7000P:~# docker run -d --name busybox busybox:1.28 sleep 10000
eb8ddff7153f8af7431f35d674a2047b0b7e2375161608701acccb1fef2915e0# 宿主机查看网络设备
root@Y7000P:~# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000link/ether 00:0c:29:c0:67:c4 brd ff:ff:ff:ff:ff:ffaltname enp2s1
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default link/ether 02:42:fd:3d:e8:0a brd ff:ff:ff:ff:ff:ff
15: vethe120a64@if14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP mode DEFAULT group default link/ether d2:32:50:64:e7:bc brd ff:ff:ff:ff:ff:ff link-netnsid 0root@Y7000P:~# docker exec busybox ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
14: eth0@if15: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
  • 可以发现在容器内只需要找到宿主机index 15的网卡(即为容器的对端网卡)

Docker容器网卡eth0@ifx浅析相关推荐

  1. 浅析Docker容器的应用场景

    本文来自网易云社区 作者:娄超 过去几年开源界以openstack为代表的云计算持续火了好久,这两年突然又冒出一个叫Docker的容器技术,其发展之迅猛远超预料.网上介绍Docker容器的文章已经很多 ...

  2. docker CE on Linux示例浅析(四)swam群集配置

    概述 github项目地址:https://github.com/superwujc 尊重原创,欢迎转载,注明出处:https://my.oschina.net/superwjc/blog/30534 ...

  3. 静茹docker容器的几种方法_Docker介绍及使用

    什么是容器? 容器就是在隔离的环境运行的一个进程,如果进程停止,容器就会销毁.隔离的环境拥有自己的系统文件,ip地址,主机名等,kvm虚拟机,linux,系统文件 程序:代码,命令 进程:正在运行的程 ...

  4. 手工模拟实现 Docker 容器网络!

    大家好,我是飞哥! 如今服务器虚拟化技术已经发展到了深水区.现在业界已经有很多公司都迁移到容器上了.我们的开发写出来的代码大概率是要运行在容器上的.因此深刻理解容器网络的工作原理非常的重要.只有这样将 ...

  5. Docker 容器的网络连接

    2019独角兽企业重金招聘Python工程师标准>>> 文章首发于公众号<程序员果果> 地址:https://mp.weixin.qq.com/s/DzF-ZwaY4Qt ...

  6. docker 容器互访三种方式

    我们都知道docker容器之间是互相隔离的,不能互相访问,但如果有些依赖关系的服务要怎么办呢.下面介绍三种方法解决容器互访问题. 方式一.虚拟ip访问 安装docker时,docker会默认创建一个内 ...

  7. Docker容器通过独立IP暴露给局域网的方法

    Docker容器非常轻量,系统开销非常少,比VMware或者VirtualBox用起来方便,部署起来也非常容易.官方推荐我们通过端口映射的方式把Docker容器的服务提供给宿主机或者局域网其他容器使用 ...

  8. 技术选型之Docker容器引擎

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | huashiou 来源 | https://s ...

  9. Docker容器固定IP分配

    我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: host模式,使用--net=host指定. container模式,使 ...

最新文章

  1. 7-6 混合类型数据格式化输入 (C语言)
  2. 一行代码都不用写,教你如何快速搭建Github博客!!!
  3. mxnet基础到提高(7)--卷积神经网络基础(2)
  4. 项目中的一个JQuery ajax实现案例
  5. php入门和常用类的使用,php入门教程之常用数据类型和基本语法
  6. 【程序员眼中的统计学(12)】相关与回归:我的线条如何?
  7. 盐池元宵转九曲【山乡元夕】
  8. 个别省通知!研究生推迟开学不停学!毕业答辩可采用远程视频方式
  9. 数据中心201812-4
  10. 微信公众平台开发,图文回复、access_token生成调用、以及微信SDK的实现(2)
  11. CSRF跨站点伪造请求攻击——脱库及密码修改
  12. linux打开cap文件,cap/pcap类文件无法用wireshark打开
  13. 打字速度测试php源码,打字练习-打字速度测试-在线工具
  14. 使用Kettle从国家统计局下载行政区划代码数据
  15. flutter 接入微信客服
  16. 多功能Python键盘记录工具Radium
  17. 折腾家里的龟速网络有感
  18. 关于gluster分布式哈希研究
  19. R6-1 Python人民币美元双向兑换 (10 分)习题解答
  20. C++之字符串大小写转换

热门文章

  1. 干货 | 正确引用参考文献的6大技巧
  2. 了解 ArcGIS 编辑器,从标准、高级到拓扑,从此不求人
  3. V神透露以太坊发展规划 未来十年,zkS将与区块链一样重要
  4. Modo教程合集44部
  5. SAS:掘墓FC-AL 期待新的未来
  6. 使用insmod安装内核模块失败
  7. 浅析http协议、cookies和session机制、浏览器缓存
  8. 【金阳光測试】大话Android自己主动化測试--Android自己主动化系列(1)--金阳光于2013年4月份...
  9. 2022-2028年全球与中国玻璃奶瓶行业市场深度调研及投资预测分析
  10. 假冒公安骗取钱财会涉及什么罪名