问题
请先查看此处的图片,这是我的网络规划的可视化。
我正在尝试在同一台 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
。 - 这些服务器可通过其公共 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
检查了这个问题,并做了相应的修改,然后问题就解决了。