当前位置: 首页 > 知识库问答 >
问题:

单个macvlan接口上的多个LXD容器

东方华晖
2023-03-14

对于下面的场景是如何工作的,我有点困惑。这是一个非常简单的设置,所以我希望解释很简单。

我有一个单一的物理网卡主机。我创建了一个单一的macvlan子接口在桥接模式关闭这个物理网卡。然后我启动两个LXD/LXC容器。每个都有自己独特的MAC和IP,但是在配置文件中,我指定了与每个容器的父接口相同的单个macvlan子接口。

两个容器都可以毫无问题地访问网络。我还能够使用每个容器的唯一IP地址SSH到每个容器中。这是让我困惑的一点:

所有这些在引擎盖下是如何工作的?当访问外部世界时,两个容器都使用单个macvlan MAC/IP。会不会发生某种碰撞?这不应该奏效吗?我不应该每个容器都需要一个macvlan子接口吗?这里有什么NAT吗?

macvlan没有太多的文档记录,希望有人能帮上忙。

共有1个答案

云令
2023-03-14

没有像在IP层那样的本机(NATing-per-say)——Mac是链路层——但这是一个类似的结果。

所有的MAC(NIC和macvlan)将通过与NIC相同的链路路由。然后,NIC设备驱动程序将流量路由到正确的接口(虚拟或非虚拟),该接口将流量发送给其中一个来宾或主机。你可以把macvlan看作是虚拟开关。

 类似资料:
  • 我有一个接口,它的实现包括单链表、Doubly、Circular等。我为Singly编写的单元测试应该对该接口的大部分Doubly以及Circular和任何其他新实现都有好处。因此,JUnit是否提供了一些内置的东西,让我有一个JUnit测试,并针对不同的实现运行它,而不是对每个实现重复单元测试? 使用JUnit参数化测试,我可以提供不同的实现,如Singly、doubly、circular等,但

  • 问题内容: 我在一台机器上有多个docker容器。在每个容器上运行一个进程和一个为该进程提供API的Web服务器。 我的问题是,当默认端口为80时,如何从浏览器访问API?为了能够访问docker容器内的Web服务器,请执行以下操作: 这样,我可以在计算机终端上执行以下操作: 但是如何使用多个容器和多个Web服务器来处理呢? 问题答案: 您可以公开多个端口,例如 或在您的API容器前面放置一个代理

  • 问题内容: 问题背景 这是情况。我们正在从战争中运行模拟器servlet。我们要模拟的servlet在单台机器上有许多实例,这些实例通过端口号来区分。我们只想部署一次战争,许多港口都可以访问。 到目前为止我们所拥有的 使用Java Filter(有关web.xml,请参见下文),我们能够根据端口号转发到每个Servlet实现(端口是通过向添加额外的连接器来添加的deploy/jbossweb.sa

  • 问题内容: 是否可以在node.js中创建单个http服务器,该服务器将接受多个主机名上的连接?例如:我有多个绑定到IP地址的子域(x1.domain.com,x2.domain.com,… xn.domain.com),并且我希望node.js程序仅接受x1上的连接。 domain.com和x2.domain.com。 问题答案: 使用ConnectJS的“ vhost”中间件应该可以实现: h

  • 问题内容: 单个主机上的多个glibc库 我的Linux(SLES-8)服务器当前具有glibc-2.2.5-235,但是我有一个无法在该版本上运行的程序,并且需要glibc-2.3.3。 是否可以在同一主机上安装多个glibcs​​? 这是我在旧glibc上运行程序时遇到的错误: 因此,我创建了一个名为newglibc的新目录,并将以下文件复制到其中: 和 但是我得到一个错误: 如此看来,它们仍

  • 问题内容: 是否可以实现这样的代码:- 我有两个数组,我想在单行中显示它们。 PS:我不要求语法。我正在寻找实现这一目标的逻辑 谢谢 就像:-“ http://jsfiddle.net/6ob5bkcx/1/ ” 问题答案: 您应该在控制器中而不是在视图中执行此操作。将dataValues映射到键/值对对象,并使用索引引用values数组。假定每个数据键都有一个对应的值键。 控制器: 视图: