如何使用 Netplan 正确添加两个网络接口?

bur*_*lik 9 netplan

问题

请先检查这里的图片,我的网络计划的可视化。

网络规划图

我正在尝试在同一台 Ubuntu 18 服务器上添加两个网络,其中一个网络标记为 vlan。当我添加第二个网络时,内部用户无法从公共 IP 访问此服务器。但是外面的任何人都可以毫无问题地从公共 IP 访问。

我想做的事

  • 我有默认网络 192.168.10.0/24 和 VLAN 300 标记的网络 192.168.30.0/24。
  • 我想将 10.x 和 30.x 网络添加到一台服务器,因为我希望它访问两个网络。
  • 此服务器必须能够访问 192.168.10.0/24 和 192.168.30.0/24 网络。
  • 该服务器必须可以通过其公共 IP 从任何地方访问。

一步一步我做什么

  • 所有 wifi 用户都连接到 192.168.10.0/24 网络。
  • 所有服务器都使用 VLAN 300 网络 192.168.30.0/24。
  • 这些服务器可以通过 Internet 上的公共 IP 访问。内部 wifi 用户也可以通过这些公共 IP 访问。
  • 当我向此 ubuntu 服务器添加第二个网络时,用户无法通过其公共 IP 访问服务器。

我用 netplan 尝试了很多不同的东西,并检查了 netplan.io 上的所有示例。

这是我目前最简单的配置:

network:
    ethernets:
        ens18: # this one is vlan tagged on Proxmox. So it can get 30.x IP.
            dhcp4: false
            addresses: [192.168.30.101/24]
            gateway4: 192.168.30.1
            routes:
              - to: 192.168.30.0/24
                via: 192.168.30.1
            nameservers:
                addresses: [1.1.1.1, 8.8.8.8]
        ens19:
            dhcp4: false
            addresses: [192.168.10.101/24]
            # gateway4: 192.168.10.1
            routes:
              - to: 192.168.10.0/24
                via: 192.168.10.1
            nameservers:
                addresses: [1.1.1.1, 8.8.8.8]
    version: 2
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用 vlan 的东西:

network:
    ethernets:
        ens18:
            addresses: [192.168.10.101/24]
            # gateway4: 192.168.10.1
            routes:
              - to: 192.168.10.0/24
                via: 192.168.10.101
                table: 5
              - to: 0.0.0.0/0
                via: 192.168.10.1
                table: 5
            routing-policy:
              - to: 192.168.10.0/24
                table: 5
            nameservers:
              addresses: [1.1.1.1, 8.8.8.8]
    vlans:
        vlan30:
            id: 300
            link: ens18
            gateway4: 192.168.30.1
            addresses: [192.168.30.101/24]
            routes:
              - to: 192.168.30.0/24
                via: 192.168.30.101
                table: 6
              - to: 0.0.0.0/0
                via: 192.168.30.1
                table: 6
            routing-policy:
              - to: 192.168.30.0/24
                table: 6
            nameservers:
              addresses: [1.1.1.1, 8.8.8.8]
    version: 2
    renderer: networkd
Run Code Online (Sandbox Code Playgroud)

bur*_*lik 0

这个问题实际上与我们的 FortiGate 防火墙上的策略规则有关,我在最初的问题中没有提到这一点。我使用页面Policy Lookup中的工具IPv4 Policy检查问题并进行相应修改,然后就解决了。