Moh*_*din 4 networking ethernet openvpn bridge docker
在这里,我有一些(可能略有不同)的问题,但彼此相关,因此我更愿意在一个问题中提出问题。
我一直在尝试允许我的 OpenVPN 客户端(OpenVPN 设置为桥接模式)连接到 Docker 容器。
众所周知,Docker 容器都通过桥(docker0
桥或其他任何东西)相互连接。
我总是br0
在我的家庭服务器上使用我自己的网桥 ( ),在那里我设置 Docker 以使用该网桥 ( br0
),并tap0
在该网桥上桥接 OpenVPN 接口 ( ) 和我的物理接口 ( eth0
),它通过 LAN 连接到我的家用路由器。这总是对我有用,所有 OpenVPN 客户端总是能够访问桥接的每个 Docker 容器br0
(OpenVPN 客户端和 Docker 容器在我的 LAN 范围内都有 IP)。
几天前我租了一个 VPS,我的物理接口直接连接到互联网(它有唯一的公共 IP)。
我和以前一样(将 Docker 设置br0
为对所有容器使用我的),并tap0
在br0
.
我面临的问题是,我的 OpenVPN 客户端无法 ping 或访问任何 Docker 的容器(容器能够 ping 并访问其他 Docker 的容器,但不能访问 OpenVPN 客户端),并且客户端无法 ping 每个其他也一样。
这与我没有桥接物理接口有什么关系吗?如果是的话,我想知道为什么除了 OpenVPN TAP 接口之外,我还应该桥接服务器的接口(可能通过 LAN 连接到任何路由器)以获得桥接模式下的功能性 OpenVPN?
这个问题在我脑海中引发了另一个相关问题:只要客户端无论如何都是tap0
接口的一部分,为什么它们不能简单地相互访问而不出于某种原因离开 TAP 接口。我的物理接口扮演什么角色?
如果我的问题真的是因为没有桥接的物理接口,我怎样才能让 OpenVPN 在没有该物理接口的桥接模式下完全正常运行(或者至少可能是任何解决方案,只要我的物理接口直接连接到没有任何局域网的互联网)?
我希望有人可以帮助我让 OpenVPN 工作
看了一些视频后我仍然有这个问题,如果我有两个TAP
接口,每个接口都映射到一个virtualbox
系统。tap0 -> vb0
, tap1 -> vb1
, 和都tap0 and tap1
连接了一个网桥br0
(它没有连接到任何物理接口),只有tap0
和tap1
是桥接在一起,vb0 and vb1
才能互相ping通吗?(我现在对任何类型的外部连接都不感兴趣)。根据@shodanshok 的回答,不,他们不会,对吧?到目前为止,我无法完全理解他们为什么不能理解,您能否更详细地解释这一点?
OpenVPNtap
接口在 ISO/OSI 模型的第 2 层运行,因此它需要一个到主要真实接口的第 2 层(读取:桥接/交换机)连接。
我强烈建议您重新配置 OpenVPN 连接以使用tun
接口,通过在堆栈的更高级别(级别 3)运行,不需要到主接口的桥接连接(相反,它们按照路由表中的指定路由数据包)。
有关更多信息,请查看openvpn 手册页上的“服务器桥接”部分。
好的,经过大量实验,现在我可以回答我的问题并分享我的经验:
br0
在Linux上)才能OpenVPN
在桥接模式下运行?不!我一直认为相反,但现在我可以确认,只要OpenVPN
正确配置,您就可以直接连接所有OpenVPN
客户端,并且它们将位于自己的隔离网络中。即tap0
接口不是任何桥的一部分。因此,也不需要桥接任何物理接口tap0
,只有tap0
正确配置OpenVPN
才能完成这项工作!
问题实际上出在客户端!我总是使用,OpenVPN
客户端都在我的 LAN IP 范围内,因此不需要额外的防火墙设置,但现在,IP 范围不同(网络是一个新的隔离网络),因此所有客户端的 Windows 防火墙只是简单地丢弃所有来自其他客户端的 ping,当我禁用它(或允许我的OpenVPN
IP 池范围)连接时,一切工作正常!
tap0
连接到客户端的容器OpenVPN
?是的!我只是使用了一个非常简单的配置(网络掩码和 IP 范围相同),网络掩码/24
,一切都非常基本,只是为了确保一切正常,并且一切都真正正常!
归档时间: |
|
查看次数: |
1742 次 |
最近记录: |