3 个独立网络中 3 个接口之间的路由

3 个独立网络中 3 个接口之间的路由

序幕

各位网络工程师们,大家好!非常感谢你们在以下情况下的帮助。我做了一些研究,只找到了两种解决方案。由于其中一种不适合我,所以我需要你们在第二种方案上提供帮助。


环境

我有 2 台设备,总共有 3 个接口。每个接口位于不同的 VLAN。以下是概述:

Name: DevA
Type: Red Hat Enterprise Linux (v7)
Interface #1: eth0
Interface #1: xxx.xxx.215.222

Name: DevB
Type: MikroTik RouterOS v6.42
Interface #1: ether1
Interface #1: zzz.zzz.214.128
Interface #2: ether2
Interface #2: yyy.yyy.216.92

下面我们来了解更多细节:

  • 3 个接口均有公共静态 IP 地址。
  • 这 3 个接口均可访问互联网。
  • DevA 上有服务正在运行(例如在端口 666 和 999 上)。

目标

  • DevB 仅可通过互联网访问以太1
  • 设备 DevA 和 DevB 仅通过专用接口相互通信(eth0以太2)。
  • DevA 上的服务只能通过 DevB 访问,不能直接从互联网访问。
  • 如果 DevA 想要访问互联网上的某些内容(例如更新),则必须能够直接访问。也就是说,如果 DevA 发起连接,它会直接连接到互联网。
  • DevA 上的服务必须对 DevB 的公共可见以太1IP 地址(如果可能)。
  • DevA 和 DevB 之间的 VPN 是不允许。这是我之前提到的解决方案,但不适合这种情况。只有在没有其他选择的情况下,我才会考虑这个。


我已经拥有什么

DevA - 防火墙配置

- allow all outgoing traffic on eth0
- allow all incoming traffic from ether2 to eth0
- allow all related and established connections
- drop everything else

DevA-路由配置

dst-address          pref-src            gateway           distance
0.0.0.0/0                                xxx.xxx.215.1     1
xxx.xxx.215.0/24     xxx.xxx.215.222     eth0              0

DevB - 防火墙配置

- allow all outgoing traffic on ether1 and ether2
- allow incoming traffic on ether1 for ports 666 and 999 
- allow all incoming traffic from eth0 to ether2
- allow all related and established connections
- drop everything else

DevB-路由配置

dst-address          pref-src            gateway           distance
0.0.0.0/0                                zzz.zzz.214.1     1
zzz.zzz.214.0/24     zzz.zzz.214.128     ether1            0
xxx.xxx.215.0/24                         yyy.yyy.216.1     1
yyy.yyy.216.0/24     yyy.yyy.216.92      ether2            0

那么,你能帮我解开这个谜题吗?

我预计必须在 DevB 上配置更多路由(也许还有 NAT/masquerade?),可能在 DevA 上也需要配置。有什么想法吗?如果我忘记提到什么,请直接询问。

多谢。

答案1

您应该编写一个 DNAT 规则来将流量从 DevB 转发到 DevA,同时最好在 DevB 中编写一个 SNAT/MASQUERADE 来使转发的流量返回到 DevB,然后再返回到 Internet。如下所示:

DNAT:

 ip firewall nat add chain=prerouting protocol=tcp dst-address=zzz.zzz.214.128 dst-port=666,999 action=dst-nat to-addresses=xxx.xxx.215.222

源地址转换(SNAT):

ip firewall nat add chain=srcnat dst-address=xxx.xxx.215.222 action=masquerade

顺便说一句,将设备上应该互相连接的两个接口放在同一个 Vlan 中并使用无效的 IP 地址使它们相互通信是明智的做法。(如果可能的话!)

相关内容