我有一个几周以来无法解决的问题......我向您介绍了以下配置以供理解:
我有一台 NAS Qnap,它可以进行虚拟化(qemy/kvm)。Qnap 的操作系统是 CentOS。Qnap 通过 VLAN 连接到交换机(Cisco)。在 Cisco 上,没有问题,运行良好(VLAN 或其他)... 在 Qnap 虚拟化上,我放置了一个 ESXi(嵌套)。也可以。
Qnap 上的默认配置:
Eth0 - vlan 100 - 192.168.100.253
我在接口eth0
(192.168.100.253)上创建了一个 vSwitch1(Bridge),并放置了 ESXi 的 vNIC (vnet0)
。所以:
vswitch1 = qvs0.................Eth0 => 创建 Eth0.100
当我运行命令时brctl
,我有以下内容:
bridge name bridge id STP enabled interfaces
qvs0 8000.00089bfaa4e6 yes eth0.100
vnet0
好的,现在我想要的配置是:
QNAP (vlan).....Bridge.........Hypervisor (vnic)..............vlan
.........................................................| => vlan 20
Eth0 (100)......qvs0...........ESXI (vlan 10): vnet0.....| => vlan 30
.........................................................| => vlan 40
..........192.168.100.253......192.168.10.253............192.168.20.253
.........................................................192.168.30.253
.........................................................192.168.40.253
然后,我在 Qnap 启动时创建一个脚本:
# ----------------------------------#
# #
#!/bin/sh #
# #
# /etc/config/autorun.sh #
# #
# ----------------------------------#
ip link set eth0 txqueuelen 10000
echo 1 > /proc/sys/net/ipv4/tcp_rfc1337
echo 2 > /proc/sys/net/ipv4/tcp_frto
echo 1 > /proc/sys/net/ipv4/tcp_mtu_probing
echo 1 > /proc/sys/net/ipv4/tcp_window_scaling
echo 1 > /proc/sys/net/ipv4/tcp_workaround_signed_windows
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
echo 0 > /proc/sys/net/ipv4/tcp_tw_recycle
echo 1 > /proc/sys/net/ipv4/tcp_low_latency
echo 1 > /proc/sys/net/ipv4/tcp_ecn
# vlan 10 ********************
ip link add link eth0 name eth0.10 type vlan id 10
ip link set eth0.10 mtu 1500
# vlan 20 ********************
ip link add link eth0 name eth0.20 type vlan id 20
ip link set eth0.20 mtu 1500
# vlan 30 ********************
ip link add link eth0 name eth0.30 type vlan id 30
ip link set eth0.30 mtu 1500
# vlan 40 ********************
ip link add link eth0 name eth0.40 type vlan id 40
ip link set eth0.40 mtu 1500
ip link set dev eth0.10 up
ip link set dev eth0.20 up
ip link set dev eth0.30 up
ip link set dev eth0.40 up
/sbin/brctl addif qvs0 eth0.100 eth0.10 eth0.20 eth0.30 eth0.40 vnet0
问题是它不起作用。我无法访问 vlan 10、20、30 或 40...当 NAS 重新启动并运行该脚本时,我失去了一切(没有 ping,无法访问整个 NAS)...我根本不知道问题出在哪里....
我希望你清楚了……
非常感谢你的帮助
中断者
答案1
QNAP(可能)没有运行 CentOS,而是运行 QNAP 自己的 Linux 版本。QNAP 无法正确支持 VLAN 标记 - 官方支持,您只能标记或不标记,但子接口不起作用(这太荒谬了)。从控制台,您可以启用 VLAN,但在安装更新或甚至重新启动 NAS 时,这可能会中断。
嵌套 ESXi 主机及其虚拟 NIC 不具备使 VLAN 标记跨物理 NIC 工作所需的功能。您需要在正确支持 VLAN 的平台上运行 ESXi 或使 QNAP 与 VLAN 配合使用。此外,您需要配置 ESXi vNIC 以支持 VLAN。我的建议是使用更适合的平台。