如何設定 2 個 NIC,每個 NIC 都有自己的網關?

如何設定 2 個 NIC,每個 NIC 都有自己的網關?

我將首先給出一個簡短的無關解釋來理解我的問題:

我有 3 個 Linux 盒子,每個盒子都有 2 個網路卡,1 個用於 WAN 接口,1 個用於 LAN 接口。每個 Linux 機器都有一個來自 ISP 在 WAN 介面上配置的完整公共子網,我可以使用所述介面成功存取「互聯網」。

至於每個盒子上的LAN接口,它們配置在192.168.50.0/24網路上。然而,他們與「網路」隔離,只能互相ping通。 ISP 不會為我的 LAN 網路提供 NAT/路由器功能。

為了解決第一個問題,我購買了第四個 Linux 盒子(有 2 個 NIC)並安裝了 OPNsense,現在我的 LAN 網路有了一個「網關」(192.168.50.1)。我透過 OPNsense 設定 OpenVPN,隧道網路設定為 192.168.10.0/24,我可以從遠端用戶端成功連接到它,並在其私人 IP 位址 (192.168.50.1) 上 ping 我的 OPNsense 伺服器。但是,我只能使用 OPNsense 伺服器的專用 IP (192.168.50.1) 對具有 1 個 LAN NIC 及其閘道設定的某些用戶端執行 ping 操作。

對於三個初始伺服器(帶有 2 個 NIC),我仍然無法 ping 通它們,唯一的區別是它們的 LAN NIC 沒有指定網關 IP (192.168.50.1)。但是,如果我嘗試添加它,就像它與其他客戶端一起工作一樣,那麼我的伺服器將完全無法訪問,我需要通過控制台重新連接以撤消網關更改。 Linux 似乎不喜歡有 2 個網關,我不太確定如何解決這個問題,因為我也需要存取這三個伺服器。

請注意,這個問題與 OPNsense 或 OpenVPN 無關,因為我可以聯繫到一些具有 LAN 網關的用戶端,事實上,配置具有兩個網關的 Linux 盒子會導致伺服器完全癱瘓。

我讀過,在這種情況下,我需要配置靜態路由,但對我來說,這沒有意義。 PS 所有三個 Linux 盒子都使用 Almalinux 8。

如果您對此事有任何意見,我將不勝感激,謝謝。

答案1

沒有系統喜歡多個活動的預設網關。根據定義,預設網關是到達所有未知網路的預設路徑。未知網路是指伺服器在路由表中沒有更直接的路徑的網路。

如果您有多個預設網關,則兩個網關都必須具有通往所有相同網路的路徑。在這種情況下,它們實際上不是,而是位於兩個完全獨立的網路上的兩個網關。這會導致網路封包傳出錯誤的網路介面。這不是實現這個的方法。

保留 WAN 介面上的預設網關,並刪除 LAN 介面上的網關。然後為 VPN 伺服器可存取的私人子網路範圍設定靜態路由,以使用 的下一跳192.168.50.1。此時,需要靜態路由的網路是192.168.10.0/24。這是在具有雙介面的三台伺服器上完成的。

3 個伺服器上的命令如下所示:

ip route add 192.168.10.0/24 via 192.168.50.1

這是暫時的,重啟後就會失去。如何新增永久靜態路由因 Linux 的不同版本而異,但透過 Google 應該很容易找到。

相關內容