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

如何使用 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/24192.168.30.0/24网络。
  • 该服务器必须可以通过其公共 IP 从任何地方访问。

我一步步做的

  • 所有 wifi 用户都已连接到192.168.10.0/24网络。
  • 所有服务器都使用VLAN 300网络192.168.30.0/24
  • 这些服务器可通过其公共 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

我也尝试使用 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

答案1

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

相关内容