Netplan,两个子网的两个网关

Netplan,两个子网的两个网关

我正在尝试进行以下工作:

有 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 当然不在该范围内,所以它也是错误的。

希望这足够清楚,但除此之外一切都还好。

相关内容