Firewall

3 個獨立網路中的 3 個介面之間的路由

  • April 21, 2018

序幕

問候網路工程師!我將感謝您在以下情況下的幫助。我做了一些研究,我只找到了兩個解決方案。而且因為其中一個不適合我,我需要你的幫助來處理第二個。


環境

我有 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 只能在ether1上從 Internet 訪問。
  • 設備 DevA 和 DevB 僅通過專用介面(eth0ether2)相互通信。
  • DevA 上的服務只能通過 DevB 訪問,不能直接從 Internet 訪問。
  • 如果 DevA 想要訪問 Internet 中的某些內容(例如更新),則必須可以直接訪問。意思是,如果 DevA 發起連接,它會直接連接到 Internet。
  • DevA 上的服務必須通過 DevB 的ether1 IP 地址對公眾可見(如果可能)。
  • >

不允許在 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/偽裝?),也可能在 DevA 上。有任何想法嗎?如果我忘了提什麼,請問..

非常感謝。

您應該編寫一個 DNAT 規則來將流量從 DevB 轉發到 DevA,並且在 DevB 中編寫一個 SNAT/MASQUERADE 以使轉發的流量返回到 DevB 然後返回 Internet 也是一個好主意。像這樣:

脫氧核糖核酸:

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

順便說一句,明智的做法是將設備上應該相互連接的 2 個介面放在同一個 Vlan 上,並使用無效的 IP 地址使它們相互通信。(如果可能的話!)

引用自:https://serverfault.com/questions/908733