将桥接接口与未连接到它们的接口隔离

将桥接接口与未连接到它们的接口隔离

我正在尝试构建一个仿真平台,用于在单个真实主机内使用 ns-3 和 tap 接口来模拟 LTE 连接。我发现这非常复杂。我希望能够使用特定的 IoT 应用层协议创建客户端和服务器,并使用为它们创建的通用库(例如用于 AMQP 的 RabbitMQ Java 客户端),并且我希望它能够像我使用真实网络一样工作连接它们。

我遇到的一个问题是通过仿真在客户端和服务器程序之间路由流量,而不是直接相互路由。我的第一个想法是通过将客户端和服务器程序放入单独的 Docker 容器中来隔离它们,这些容器连接到单独的 docker 桥接网络,但在尝试此操作后,我很难让流量通过正确的分接接口进行路由。

我已将相应的 Tap 接口奴役到相应 docker 容器的网桥,但我无法让事情按照我想要的方式工作。我希望客户端docker容器使用其相应的tap接口作为所有流量(或至少是针对服务器的流量)的网关,但容器知道的唯一接口或IP地址是它所连接的docker桥接网络到,而不是连接到该网桥的分接接口,因此我无法使用该route命令设置网关。不过,我可以 ping 通同一个 Tap 接口,无论它是否连接到网桥。起初,我还可以从容器 ping Internet 主机,但我设法在iptables.

我的第二个希望是将分接接口设置为桥内所有流量的网关,这些流量发送到未连接到它的接口或主机,但我不知道该怎么做。

我应该如何进行才能实现我所追求的隔离?

编辑: 这是我想到的拓扑:

    +------------------------------------------------------------------+
    |                           Linux Host                             |
    |   +---------------------+              +---------------------+   |
    |   | Isolated network 1  |              | Isolated network 2  |   |
    |   | +--------+          |              |          +--------+ |   |
    |   | | Client |          |              |          | Server | |   |
    |   | |        |          |              |          |        | |   |
    |   | +--------+          |              |          +--------+ |   |
    |   |     ^               |              |               ^     |   |
    |   |     |               |              |               |     |   |
    |   | +---ˇ------+        |              |        +------ˇ---+ |   |
    |   | | Bridge 1 |        |              |        | Bridge 2 | |   |
    |   | +----------+        |              |        +----------+ |   |
    |   |     ^               |              |               ^     |   |
    |   +-----|---------------+              +---------------|-----+   |
    |         |                                              |         |
    |      +--ˇ----+                                    +----ˇ--+      |
    |   +--| Tap 1 |------------------------------------| Tap 2 |--+   |
    |   |  +-------+     NS-3 Emulated LTE Network      +-------+  |   |
    |   |                                                          |   |
    |   +----------------------------------------------------------+   |
    |                                                                  |
    +------------------------------------------------------------------+

相关内容