这是对原始问题的完全重写,主要是因为我最初的无知造成了巨大的混乱。这种混乱是如此严重,我决定原始问题必须消失,以免误导未来的搜索者。
盒子“OUT1”和“OUT2”想要互相通信。这就是我对它们的了解,除了它们需要 GigE Cat5e 插孔,并且它们不会使用超过 50Mbps(单向,全双工)之外。我不知道它们运行什么操作系统(据我所知,它们可能是 Arduinos 或 Crays)。我不知道它们是使用 IPv4 还是 IPv6(或两者兼有),也不知道它们使用什么地址范围,也不知道它们可能使用什么高级协议。OUT1 和 OUT2 可以以任何所需的方式相互通信。
据我所知,OUT1 和 OUT2 可能是交换机上的端口,数十台机器都连接在上面,所有机器都想以任何想要的方式相互通信。
唯一可用的连接是我的网络上的 Linux 盒“A”和“B”,其中已添加专用接口供 OUT1 和 OUT2 插入。
我需要在 OUT1 和 OUT2 之间路由所有流量,并且默认情况下,我的两个接口都不应该有 IP 地址(看起来像一个简单的交换机)。
到目前为止,这听起来像是一座桥(brctl
未设置 IP 地址)与 A 和 B 之间某种形式的隧道相结合的工作,但我不确定哪种隧道是最简单的。
这是一张很漂亮的图片:
+------+ +---+ /\/\/\/\/\/\/\/\/\/\ +---+ +------+
| OUT1 |---| A |---<My Internal network >---| B |---| OUT2 |
+------+ +---+ \/\/\/\/\/\/\/\/\/\/ +---+ +------+
\ /
\_____ Looks like a cable _____/
为了便于以后讨论,我们假设 A 和 B 上的向内接口为eth0
,而向外接口(到 OUT1 和 OUT2)为eth1
。
但等一下,还有更多!
OUT1 和 OUT2 的所有者希望调整 A 和 B 的行为以及它们之间的路径,以实现 QoS 等功能。当收到请求时(通过自动解析的电子邮件),我们需要在 A 和 B 上临时公开一个 Web 服务器(在另一台机器上运行),该服务器具有 OUT1 和 OUT2 都可以与之通信的 IPv4 IP 地址。请求电子邮件将指定要使用的 IPv4 地址。对于 OUT1 和 OUT2 来说,Web 服务器似乎正在“交换机”上运行。
另一张美丽的图片:
+------+ +---+ /\/\/\/\/\/\/\/\/\/\ +---+ +------+
| OUT1 |---| A |---<My Internal network >---| B |---| OUT2 |
+------+ +---+ \/\/\/\/\/\/\/\/\/\/ +---+ +------+
|
+---+
| C | webserver
+---+
网络服务器和电子邮件解析本身工作正常,但让它在需要时出现在 A 和 B 然后消失是一个问题。
我的直觉是它brctl
不能胜任这项任务(至少不能单独完成)。搜索告诉我,我们可能需要使用类似于ip
命令macvlan
功能的东西来作为补充或替代。但这只是基于相当无知的搜索得出的猜测。
两个问题:
我应该如何实现 A 和 B 上向外的接口之间的类似交换机的功能?
我应该如何让网络服务器在 A 和 B 的向外界面上出现和消失?
答案1
您没有描述您的外部连接,但我猜您需要使用 VPN,而不是 VLAN 或 MPLS。我没有使用过 MPLS,但我知道它们和 VLAN 一样存在于 TCP/IP 层以下,您的 ISP 不太可能在您不付费的情况下承载该流量。
我很确定使用带有 TAP 驱动程序的 OpenVPN将会完成您想要做的事情(但我之前没有使用过这个)。