我正在尝试进行以下工作:
有 2 个子网(即 192.168.15.0/24 和 192.168.19.0/24)和两个网关(192.168.105.1/24、192.168.109.1/24),以及使用 netplan 作为路由器的 Ubuntu 18.04 服务器(子网中为 .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 的 IP 为 192.168.15.whatever,NM 为 255.255.255.0,DG 为 192.168.15.1(或其他任何名称,顺便说一下,它必须在子网内,而 192.168.105.1 不在子网内),然后在 NIC 2 上设置 192.168.19.whatever,NM 相同,但这个没有 DG。然后,您创建静态路由,因为 192.168.19.0/24 中的任何内容都必须通过您分配给 NIC 2 的 IP,该 IP 充当网关,但不是默认网关,仅针对该 IP 范围,没有其他内容。哦,192.168.109.1 当然不在该范围内,所以它也是错误的。
希望这足够清楚,但除此之外一切都还好。