首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将Docker网络接口与Linux主机上的Linux网络接口(eth5)相关联?

如何将Docker网络接口与Linux主机上的Linux网络接口(eth5)相关联?
EN

Server Fault用户
提问于 2015-12-17 04:58:59
回答 1查看 3.1K关注 0票数 3

我的Linux主机有8个以太网接口,eth0 - eth7.我正在这个Linux主机上运行三个Docker1.9容器。

如何将一个Docker容器内的网络接口与主机上第三层(IP层)上的特定Linux物理网络接口(例如eth5)相关联?

在第三层连接的原因是:

  1. 能够使用DHCP配置Docker网络接口

  1. 对于主机物理接口(eth5)上的所有传入IP通信量,都要转发到相关的Docker接口(我不想使用NAT进行端口映射,这只会将特定TCP/UDP端口的流量定向到Docker接口)。

基本上,如何将Docker网络接口连接到第3层/第2层的特定Linux(主机)网络设备(例如eth5)?

EN

回答 1

Server Fault用户

发布于 2016-06-01 22:50:57

有多种方法可以做到这一点:

  1. 使用Linux桥(brctl)
  2. 使用开放式vSwitch (Ovs)
  3. 使用MACVLAN
  4. 使用IPVLAN (在3.19内核中引入,但不稳定到4.2或更高版本)

MACVLAN和IPVLAN都支持Linux内核模块。

MACVLAN:这使得创建“紧抓”物理网络接口的虚拟网络接口成为可能(eth5在上面的问题中)。每个虚拟接口都有自己的MAC地址--与物理接口的MAC地址不同。发送到或从虚拟接口发送的帧被映射到物理接口。

虽然在Linux下,接口可以有多个地址,但MACVLAN允许进一步隔离在这种接口上可以看到的通信量。MACVLAN将只能看到具有与该接口匹配的MAC地址的通信量,从而防止其他接口上的进程/容器侦听发送到另一个MACVLAN的通信量。

IPVLAN:概念上非常类似于macvlan驱动程序,但有一个主要的例外,就是使用L3在从站之间复制/demuxing。主设备与其从设备共享L2 MAC。这允许在主接口之外创建虚拟设备,并且包是基于分组上的L3 IP地址传送的。所有接口(包括主接口)共享L2,使其对连接的L2交换机透明。

对于IPVLAN,规范文档是:https://github.com/torvalds/linux/blob/master/Documentation/networking/ipvlan.txt

目前,Docker在实验版本中同时支持MACVLAN和IPVLAN,它们很快就会进入GA。

有关MACVLAN和IPVLAN (包括特定命令)的更多信息,请参阅布伦特·索尔兹伯里的优秀博客:http://networkstatic.net/configuring-macvlan-ipvlan-linux-networking/

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/743621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档