我正在嘗試按照以下方式工作:
有2 個子網路(即192.168.15.0/24 和192.168.19.0/24)和兩個網關(192.168.105.1/24、192.168.109.1/24),以及使用netplan 作為路由器的Ubuntuplan .1/24) 、網關子網路中的 .2/24)。目標是對一個子網路使用一個網關,對第二個子網路使用另一個網關。即使我像 netplan 文件中那樣使用基於來源的路由,以兩個網關(隨機順序)結束,並且只有一個子網路可以存取互聯網。
請問我怎樣才能讓它發揮作用?
謝謝
編輯:-新增設定
使用此設置,可以從 192.168.105.xx 到互聯網工作,但從 192.168.109.xx 無法工作。
透過路由,有兩個 0.0.0.0/0 的網關
/etc/iptables/rules.v4
# Generated by iptables-save v1.6.1 on Sat Aug 22 10:38:15 2020
*nat
:PREROUTING ACCEPT [386:180180]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [1:76]
:POSTROUTING ACCEPT [1:76]
-A POSTROUTING -s 192.168.15.0/24 -o br105 -j MASQUERADE
-A POSTROUTING -s 192.168.19.0/24 -o br109 -j MASQUERADE
COMMIT
# Completed on Sat Aug 22 10:38:15 2020
# Generated by iptables-save v1.6.1 on Sat Aug 22 10:38:15 2020
*filter
:INPUT ACCEPT [4:1760]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [28:2536]
-A INPUT -i br105 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i br109 -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Sat Aug 22 10:38:15 2020
/etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
enp7s0:
dhcp4: no
enp7s1:
dhcp4: no
enp1s0f0:
dhcp4: no
enp1s0f1:
dhcp4: no
bridges:
br15:
dhcp4: no
interfaces: [ enp7s0 ]
addresses: [ 192.168.15.1/24 ]
br19:
dhcp4: no
interfaces: [ enp7s1 ]
addresses: [ 192.168.19.1/24 ]
br105:
dhcp4: no
interfaces: [ enp1s0f0 ]
addresses: [ 192.168.105.2/24 ]
nameservers:
addresses: [ 8.8.8.8 ]
gateway4: 192.168.105.1
br109:
dhcp4: no
interfaces: [ enp1s0f1 ]
addresses: [ 192.168.109.2/24 ]
routes:
- to: 0.0.0.0/0
from: 192.168.109.2
via: 192.168.109.1
on-link: true
答案1
雖然每個子網路都有一個網關,但每個子網路只能有一個預設網關,解決這個問題的方法實際上非常簡單 - 建立一個「靜態路由」。
因此,您需要選擇哪個子網路作為預設子網路並將其設定為預設閘道(DG),然後您要做的就是將第二個IP 位址新增至第二個適配器/VLAN,然後只需新增靜態路由。
因此,在該範例中,您再次將 NIC 1 指定為 192.168.15。 .105.1 不是),然後在NIC 2 上設定192.168.19.whatever,相同的NM,但這個沒有獲得DG。然後,您建立靜態路由,因為 192.168.19.0/24 中的任何內容都必須經過您指派給 NIC 2 的 IP,NIC 2 會充當該 IP 範圍的網關,但不是預設閘道。哦,192.168.109.1 當然不在這個範圍內,所以它也是錯誤的。
希望這夠清楚,但否則就可以了。