首页 > 其他分享 >容器网络

容器网络

时间:2024-03-14 16:00:33浏览次数:15  
标签:容器 network 网络 Veth 网卡 网桥 数据包

容器网络

docker 默认创建一个网桥docker0,连接在docker0上的容器,都可以互相通信。实际上是通过Veth Pair设备 + 宿主机网桥的方式,实现了容器间的数据交换。

容器间的互相调用,本质上,就是数据包先由Veth Pair创建出来的虚拟网卡,然后因为虚拟网卡是挂在网桥docker0的从设备,降级为网桥上的一个端口,数据包转由网桥进行处理。此时网桥扮演交换机角色,将ARP广播到其它被作为从设备的虚拟网卡,这样,请求的目标容器网卡就可以接收到对应的信息,同时返回自己的MAC地址信息给源容器,源容器就知道目标容器的地址,就可以将数据包发出。

网桥是一个工作在数据链路层(Data Link)的设备,主要功能是根据 MAC 地址学习来将数据包转发到网桥的不同端口(Port)上。

Veth Pair 设备的特点是:它被创建出来后,总是以两张虚拟网卡(Veth Peer)的形式成对出现的。并且,从其中一个“网卡”发出的数据包,可以直接出现在与它对应的另一张“网卡”上,哪怕这两个“网卡”在不同的 Network Namespace 里。

network namespace 是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自的网络栈信息。不管是虚拟机还是容器,运行的时候仿佛自己就在独立的网络中。这篇文章介绍 network namespace 的基本概念和用法,network namespace 是 linux 内核提供的功能,这篇文章借助 ip 命令来完成各种操作。ip 命令来自于 iproute2 安装包,一般系统会默认安装,如果没有的话,请读者自行安装。

参考: linux 网络虚拟化: network namespace 简介

容器间调用的示意图:

img

外部调用容器的示意图:

img

容器调用宿主机示意图:

img

标签:容器,network,网络,Veth,网卡,网桥,数据包
From: https://www.cnblogs.com/bloodcolding/p/18073071

相关文章

  • ESP32-Cam 初步使用:网络摄像头示例
    此片意在教会你如何初步使用ESP32-cam阅读本文,你将学会:一.学会安装Arduino二.学会使用相关例程一、Arduino的下载安装及汉化1.下载Arduino(Arduino软件下载官网)2.Arduino的安装3.Arduino的汉化:左上角File-->Preferences(Ctrl+逗号也能进入)-->Settings-->Lang......
  • 配置 HTTP/HTTPS 网络代理
    使用Docker的过程中,因为网络原因,通常需要使用HTTP/HTTPS代理来加速镜像拉取、构建和使用。下面是常见的三种场景。 为dockerd设置网络代理"dockerpull"命令是由dockerd守护进程执行。而dockerd守护进程是由systemd管理。因此,如果需要在执行"dockerpull"命令时......
  • 网络架构层_怎么判断IP地址是否在同一个网络
    网络架构层_怎么判断IP地址是否在同一个网络基础的应该是知道差不多了,这儿补充一个几个容易忽略的知识点:子网掩码控制局域网不同IP地址数量:通过查看WindowsIP配置信息可以知道当前连接的局域网内最多有多少个不同的IP地址。子网掩码默认为255.255.255.0掩码,意思就是前面......
  • 【计算机网络】数据链路层——无线局域网与VLAN
    IEEE802.11:无线局域网通用标准IEEE802.11是无线局域网通用的标准,它是由IEEE所定义的无线网络通信的标准。MAC帧头格式目的地址源地址:实际通信中的两个设备的地址接收端发送端:两个基站有很多帧头格式:刚才讲的是WDS。无线局域网1.有固定基础设施无线局域网2.无固定基......
  • 孪生网络(Siamese Network)和数字孪生的区别?
    1.孪生网络孪生网络是一种特殊的网络框架,基于两个人工神经网络建立的耦合构架,通过比较两个样本在高维度空间的表征来判断它们的相似程度。它包含两个相同结构的神经网络,一个用于学习,一个用于验证学习效果。在训练过程中,两个网络同步更新参数,但验证网络的参数更新较慢,这有......
  • 使用Python检测贝叶斯网络的因果关系检测
    在机器学任务中,确定变量间的因果关系(causality)可能是一个具有挑战性的步骤,但它对于建模工作非常重要。本文将总结有关贝叶斯概率(Bayesianprobabilistic)因果模型(causalmodels)的概念,然后提供一个Python实践教程,演示如何使用贝叶斯结构学习来检测因果关系。背景在许多领域,......
  • 使用Python检测贝叶斯网络的因果关系检测
    在机器学任务中,确定变量间的因果关系(causality)可能是一个具有挑战性的步骤,但它对于建模工作非常重要。本文将总结有关贝叶斯概率(Bayesianprobabilistic)因果模型(causalmodels)的概念,然后提供一个Python实践教程,演示如何使用贝叶斯结构学习来检测因果关系。背景在许多领域,......
  • 网络安全AI智能体公司「云起无垠」获数千万元天使+轮融资,致力于大模型与网络安全深度
    「云起无垠」致力于打造最懂安全的AI智能体,通过持续运营的工具、知识以及记忆引擎,不断提升智能体对用户安全场景的理解,以达到易于使用、自我学习、自主行动的特性,助力企业自动化执行各类安全任务,让软件更安全,让安全更智能。近年来,随着我国互联网的普及以及数字化程度逐渐加深,......
  • Unity3D 客户端网络角色的操作与行为分离设计详解
    在网络游戏中,客户端网络角色的操作与行为分离设计是非常重要的,它可以提高游戏的可维护性和扩展性,同时也可以提升游戏的性能和用户体验。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。在本文中,我们......
  • iftop监视网络接口的实时流量
    iftop监视网络接口的实时流量iftop-B是一个命令行工具,用于实时监控网络流量。在执行该命令时,-B参数用于以字节为单位显示流量信息。具体来说,iftop工具可以用来监视网络接口的实时流量情况,包括每个连接的源地址、目标地址、传输速率、传输量等信息。它以交互式的方式显示流......