Routing

Mikrotik 中的雙網關設置

  • May 7, 2022

我是 Mikrotik 環境的新手,在以下情況下我需要一些幫助:

  • 我有一個 IP 範圍為 的 ADSL 路由器(主要網際網路連接)192.168.1.0/24,連接到我的 Mikrotik 路由器的乙太網 1(WAN 埠)
  • 我有另一個 IP 範圍為 的 ADSL 路由器(連接到主分支的 VPN 連接)172.200.1.0/24,連接到我的 Mikrotik 路由器的乙太網 2
  • 我有啟用 WiFi 的 Mikrotik 作為 IP 範圍為的 Ap 橋接192.168.88.0/24器(每個人都使用 WiFi 和物理連接連接到此路由器)

我想要做的如下:

  • 當人們想要訪問 Internet 時,Mikrotik 路由器應該自動將數據包路由到乙太網 1介面(第一個 ADSL)。
  • 如果人們想去某些目的地(例如221.35.12.x),他們的數據包必須被路由到乙太網 2,這是連接到主分支的第二個 ADSL。

附加資訊

第一個ADSL的網關是192.168.1.1,第二個是172.200.1.17

到目前為止,我已經成功地訪問了第二個 ADSL 的網關,但是當我 ping 的實際目標地址時221.35.12.x,它會返回unreachable,當我到達tracert該地址時,它顯示數據包進出192.168.88.1那裡丟棄。

任何人都可以通過完整的解決方案來幫助解決上述情況嗎?

初步設置:您需要設置兩個 WAN 連接。假設IFC1是第一個 WAN 埠(例如ether1)介面,並且IFC2是第二個 WAN 埠(例如ether5)。

/interface list member add interface=IFC1 list=WAN
/interface list member add interface=IFC2 list=WAN
/ip dhcp-client add interface=IFC1 default-route-distance=1
/ip dhcp-client add interface=IFC2 default-route-distance=1

其中一些可能已經配置。如果使用不同類型的 WAN 連接,例如 PPPoE,則進行相應調整。

當 DHCP 客戶端連接時,應該添加路由,下面是一個範例。

[admin@mikrotik] > /ip route print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
#      DST-ADDRESS        PREF-SRC        GATEWAY            DISTANCE
0 ADS  0.0.0.0/0                          yyy.yy.yyy.1              1
1 ADS  0.0.0.0/0                          xxx.xxx.xxx.1             1
2 ADC  xxx.xxx.xxx.0/22   xxx.xxx.xxx.xxx IFC2                      0
...

如果您沒有看到兩個0.0.0.0/0具有正確網關的路由,您可以將它們創建為靜態路由 ( /ip route add ...)。這是超出此答案範圍的基本 Mikrotik 內容。

將使用策略路由來區分兩個 WAN 連接。在每個預設 WAN 路由上設置一個路由標記。

/ip route set 0 routing-mark=unid2rm
/ip route set 1 routing-mark=unid3rm

unid2rmunid3rm是任意文本字元串。這意味著 Mikrotik 將通過給定的網關 IP 發送標有給定路由標記的數據包。

二、配置防火牆。看FORWARD鍊子。此處的目標是排除輔助(非預設)WAN 的標記連接通過快速通道。

/ip firewall filter add 8 chain=forward action=fasttrack-connection connection-state=established,related connection-mark=!unid2cm
/ip firewall filter add 9 chain=forward action=accept connection-state=established,related

更改數字 8 和 9,使規則位於FORWARD鏈的開頭。

現在在PREROUTING鏈中,標記傳入連接。如果您只是控制出站連接,則可以跳過此步驟。

/ip firewall mangle add 3 chain=prerouting action=mark-connection new-connection-mark=unid2cm passthrough=no connection-mark=no-mark in-interface=IFC1
/ip firewall mangle add 4 chain=prerouting action=mark-connection new-connection-mark=unid3cm passthrough=no connection-mark=no-mark in-interface=IFC2

下一步涉及到MANGLE桌子,這就是魔法發生的地方。您可以在此處根據您設置的標準標記連接。

/ip firewall mangle add 5 chain=prerouting action=mark-connection new-connection-mark=unid2cm passthrough=yes dst-address=221.35.12.5 connection-mark=no-mark in-interface-list=LAN

這就是說“當有一個221.35.12.5尚未標記的連接時,用連接標記標記它unid2cm”。您可以根據源 IP、MAC 等進行設置,並根據需要添加任意數量的這些。那麼同伴是:

/ip firewall mangle add 6 chain=prerouting action=mark-routing new-routing-mark=unid2rm passthrough=no connection-mark=unid2cm in-interface-list=LAN
/ip firewall mangle add 7 chain=output action=mark-routing new-routing-mark=unid2rm passthrough=no connection-mark=unid2cm
/ip firewall mangle add 8 chain=prerouting action=mark-routing new-routing-mark=unid3rm passthrough=no connection-mark=unid3cm in-interface-list=LAN
/ip firewall mangle add 9 chain=output action=mark-routing new-routing-mark=unid3rm passthrough=no connection-mark=unid3cm

unid2rm注意和之間的區別unid2cm。這些規則從標記的連接中獲取數據包並給它們一個路由標記。如前所述,然後在 Mikrotik 的路由表中使用路由標記。

每個設置都有些不同,因此您可能需要嘗試使其適合您。


WAN補充: Mikrotik 通常會在介面列表中自動設置 NAT 。答案頂部的第一步確保兩個介面都在列表中。

[admin@mikrotik] > /ip firewall nat print
Flags: X - disabled, I - invalid, D - dynamic
0    ;;; defconf: masquerade
     chain=srcnat action=masquerade out-interface-list=WAN log=no
     log-prefix=""

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