当 ESX 主机打开电源时,启动过程中显示以下错误消息:
Unable to set VMkernel gateway as there are no VMkernel interfaces on the same network
免责声明:本文为 ESX/ESXi power on error: Unable to set VMkernel gateway as there are no VMkernel interfaces on the same network (1002662) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。
VMkernel 接口由 ESX 主机的内部 TCP/IP 堆栈使用,用于以下三个目的:
与传统的 TCP/IP 堆栈相似,VMkernel TCP/IP 堆栈能够将 IP 数据报路由到远程子网。尽管 VMware 不建议路由 vMotion 通信,但 iSCSI 和 NFS 通信均可通过网关路由,到达不同子网中的存储服务器。
此路由网关称为 VMkernel 网关,它是路由器或 VMkernel 接口本身所在子网的第 3 层交换机的 IP 地址。此路由器(或 L3 交换机)随后负责沿着目标子网的方向转发 VMkernel 的 IP 数据报。
如果指定 VMkernel 网关时使用的 IP 地址不存在于任何已定义的 VMkernel 接口的子网中,则系统启动时将显示 Unable to set VMkernel gateway 错误消息。例如,考虑以下输出:
[root@ESX1 root]# esxcfg-vmknic -l
Port Group IP Address Netmask Broadcast MAC Address MTU Enabled
iSCSI_SAN 192.168.1.100 255.255.255.0 192.168.1.255 xx:xx:xx:xx:xx:xx 1514 true
VMotion 192.168.2.100 255.255.255.0 192.168.2.255 xx:xx:xx:xx:xx:xy 1514 true
esxcfg-vmknic -l 命令可提供 ESX 主机上定义的所有 VMkernel 接口的列表。在上例中,有两个 VMkernel 接口:
但是,如果我们对已分配给 VMkernel 网关地址的 IP 地址进行验证,则会发现一个问题:
[root@ESX1 root]# esxcfg-route -lVM Kernel Routes:
Network Netmask Gateway
192.168.1.0 255.255.255.0 Local Subnet
192.168.2.0 255.255.255.0 Local Subnet
default 0.0.0.0 192.168.0.254
esxcfg-route -l 命令提供 VMkernel TCP/IP 堆栈内的所有路由表条目的列表。在上例中,default 条目(对应于 VMkernel 网关地址)显示网关地址 192.168.0.254。由于 192.168.0.254 存在于网络 192.168.0.0/24 中,而在此网络中未定义 VMkernel 接口,ESX 主机将其视为配置错误,并在启动时生成 Unable to set VMkernel gateway as there are not VMkernel interfaces on the same network 错误。
如果各个 VMkernel 接口都不需要路由,则可以放心忽略此错误消息。但是,如果需要使用 VMkernel 网关来到达远程 iSCSI 或 NFS 存储服务器,则必须配置该网关,且该网关必须有效。
VMkernel 网关的配置很简单,如下所示:
要使用命令行配置 VMkernel 网关,请执行以下操作:
例如:
esxcfg-route 192.168.0.1
或
esxcfg-route -a default 192.168.0.1注意:可以为 VMkernel 适配器指定其他 IP 和子网,但只能有一个默认网关。
有关详细信息,请参见用来获得紧急支持的技术支持模式 (1003677) (Tech Support Mode for Emergency Support (1003677))。