我有一个 Netgear 交换机和一个 Unifi Seurity 网关,它们一起允许我将我的网络分成不同的 vlan。例如,我在 VLAN 10 上有服务器。
使用其他硬件,即我的 NAS,我只需告诉网络配置使用 VLAN 10,只要 netgear 交换机中的端口在 Vlan 10 上标记为标记,一切正常。
我真的在 Ubuntu 18.04 和 Vlans 上苦苦挣扎。除了将我的 Ubuntu 18 服务器放在 vlan10 上之外,我不想做任何花哨的事情
顺便说一句,我正在使用 Raspberry Pi 4 Model B
这是我当前在 /etc/netplan/50-cloud-init-.yaml 中的配置
network:
version: 2
renderer: networked
ethernets:
eth0:
addresses:
- 192.168.10.20/24
gateway4: 192.168.10.1
nameservers:
addresses: [192.168.10.3, 8.8.8.8]
vlans:
vlan10:
id: 10
link: eth0
addresses: [192.168.10.21/24]
使用上述配置,netplan apply 不会给我任何错误,并且当我运行 ip addr 时,一切都显示为正确。
然而问题是我可以从 Ubuntu 机器访问 vlan 10 之外的任何设备。但是,我可以通过 ssh 连接到 Vlan 10 上的 NAS,然后从那里通过 SSH 连接到 Ubuntu 服务器。
这几乎让我认为问题出在我的 netgear 交换机配置中,但是 ubuntu 服务器插入的端口配置与 NAS 相同,正如我所说的那样工作得很好。
由于遵循其他教程,我在问题中包含的示例代码变得有些混乱。
根据我提出的问题,@Frobozz 提供的答案是准确的,但最终我需要的实际代码就是这个。正是因为@Frobozz 的响应,我才开始了解我需要用谷歌搜索什么。
有两种使用 VLAN 的方法,或者在交换机上使用标记端口,或者使用未标记端口。在交换机上使用未标记端口更为常见,这样主机根本不必配置为了解该 VLAN,而只需看到由交换机分段到特定 VLAN 的普通以太网数据包。
根据您的配置,很明显您使用的是标记端口,这要求主机支持 vlan。
原始配置的问题在于,当需要在 VLAN 接口上时,您在以太网接口上配置了默认路由(网关)。以下配置应该足够了:
Netplan 需要一些时间来适应。这里缺少的部分是桥接:这是一个示例:
确保安装了 bridge-utils:
apt install bridge-utils