Yesterday, I noticed an interesting error when trying to connect directly to the vSphere MOB on an ESXi 6.0 host. The following error message was displayed on the browser:
503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http20NamedPipeServiceSpecE:0x4bf02038] _serverNamespace = /mob _isRedirect = false _pipeName =/var/run/vmware/proxy-mob)
This was the first time I had noticed this as I normally use the vSphere MOB for debugging purposes or exploring the vSphere API. The vSphere MOB is also a quick an handy way to unregister vSphere Plugins when connecting to vCenter Server.
I did some further investigation and it turns out that in vSphere 6.0, the vSphere MOB will be disabled by default on an ESXi 6.0 host. The reason for this is to provide security hardening out of the box for ESXi versus having an administrator harden after the fact. If you are familiar with the vSphere Security Hardening Guides, you will recall one of the guidelines is to disable the vSphere MOB on an ESXi host and with vSphere 6.0, this is now done automatically for you. This information will also be documented as part of the vSphere 6.0 documentation when it GAs.
If you still need to access the vSphere MOB on an ESXi how, this of course can be re-enabled from the default. There is also a new ESXi Advanced Setting called Config.HostAgent.plugins.solo.enableMob which easily controls whether the vSphere MOB is enabled or disabled as seen in the screenshot below.
You have the option of using either the vSphere C# Client as shown in the screenshot above or the vSphere Web Client to configure the ESXi Advanced Setting:
You can also configure this property using the vim-cmd in the ESXi Shell.
Listing the ESXi Advanced Setting using vim-cmd:
vim-cmd hostsvc/advopt/view Config.HostAgent.plugins.solo.enableMob
Configuring the ESXi Advanced Setting to true:
vim-cmd hostsvc/advopt/update Config.HostAgent.plugins.solo.enableMob bool true
If you prefer to automate this using PowerCLI or vSphere API, this can also be done. Below are two examples using the Get-VmHostAdvancedConfiguration and Set-VMHostAdvancedConfiguration PowerCLI cmdlets.
Listing the ESXi Advanced Setting using PowerCLI:
Get-VMHost 192.168.1.200 | Get-VmHostAdvancedConfiguration -Name Config.HostAgent.plugins.solo.enableMob | Format-List
Configuring the ESXi Advanced Setting to true:
Get-VMHost 192.168.1.200 | Set-VMHostAdvancedConfiguration -Name Config.HostAgent.plugins.solo.enableMob -Value True
If you rely on using the vSphere MOB on ESXi and would like this to be your default, I would recommend you update either your ESXi Kickstart or Host Profile to include this additional configuration so that you do not get like I did 🙂 If you only need to use the vSphere MOB on occasion or do not have a use for it at all, then leaving the default is sufficient.
David Chung says
Thanks. This is very helpful.
ysrathore says
Great tip. Thanks!!
Chris Chua says
Was just going through the hardening guide and saw the MOB item. One thing thing to worry about in 6. The PowerCLI that you show, I'm assuming that only works in 6?
William Lam says
That's correct.
rdronov says
Hi William,
After updating PSC to the latest patch, I've got this error when I try to access this node using HTTPS protocol:
503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http20NamedPipeServiceSpecE:0x7f326a5f8920] serverNamespace = / isRedirect = false _pipeName =/var/run/vmware/vpxd-webserver-pipe)
It somehow looks similar to what you have here. Could you suggest how to troubleshoot this issue please?
Rogerio Carvalho says
Thanks by your article, it's small and fully functional!
Vittal M says
We need to harden 100's of ESXi. I wish the power CLI had worked on 5.5 🙁
Luis says
I got error
"Failed to login: Invalid response code: 503 Service Unavailable"
when I execute
vim-cmd hostsvc/advopt/update Config.HostAgent.plugins.solo.enableMob bool true
command from direct SSH connection.
Please, any help will be appreciated
Merle says
PowerCLI C:\> Get-VMHost 192.168.1.10 | Get-VmHostAdvancedConfiguration -Name config.HostAgent.plugins.solo.enableMob | Format-List
WARNING: Use Get-AdvancedSetting cmdlet instead.
Name : Config.HostAgent.plugins.solo.enableMob
Value : False
Do you know what the correct syntax would be using the newer cmdlet?