Sunday, May 17, 2015

Change the management vmkernel IP and DNS settings from DHCP to static without DCUI

This is in my home lab. I installed vsphere 6.0 on my non-HCL Asus MB and left it on DHCP, turned it off a few days, and then turned it on back again to see its DHCP address changed. 

Since I'm studying  for VCAP-DCA and will use this lab more, I figured might as well set it to static and not rely on chance and have to check the display to find the IP again. Part of VCAP-DCA is getting very comfortable using the command line, so I determined I would do it with esxcli.

Pic from DCUI before doing the change:

Notice in this command that both the address and DNS are being acquired from DHCP for the vmk0 interface.

[root@arielitox:~] esxcli network ip interface ipv4 get
Name  IPv4 Address  IPv4 Netmask   IPv4 Broadcast  Address Type  DHCP DNS
----  ------------  -------------  --------------  ------------  --------
vmk0   DHCP              true
vmk1   STATIC           false

A way to find out how to change it is to execute the command without parameters and get the help

[root@arielitox:~] esxcli network ip interface ipv4 set
Error: Missing required parameter -t|--type
       Missing required parameter -i|--interface-name

Usage: esxcli network ip interface ipv4 set [cmd options]

  set                   Configure IPv4 setting for a given VMkernel network interface.

Cmd options:
                        The name of the VMkernel network interface to set IPv4 settings for. This name must be an interface
                        listed in the interface list command. (required)
  -I|--ipv4=<str>       The static IPv4 address for this interface.
  -N|--netmask=<str>    The static IPv4 netmask for this interface.
  -P|--peer-dns         A boolean value to indicate if the system should use the DNS settings published via DHCP for this
  -t|--type=<str>       IPv4 Address type :
                            dhcp: Use DHCP to aquire IPv4 setting for this interface.
                            none: Remove IPv4 settings form this interface.
                            static: Set Static IPv4 information for this interface. Requires --ipv4 and --netmask options.

I'm setting the same IP but static:

[root@arielitox:~] esxcli network ip interface ipv4 set -i vmk0 -I -N -P false -t static

and we can now confirm the results

[root@arielitox:~] esxcli network ip interface ipv4 get
Name  IPv4 Address  IPv4 Netmask   IPv4 Broadcast  Address Type  DHCP DNS
----  ------------  -------------  --------------  ------------  --------
vmk0   STATIC           false
vmk1   STATIC           false

Now we just told ESXi not to get the DNS settings from DHCP, but, what settings will it use then? Let's dig.

[root@arielitox:~] esxcli network ip dns server list

That is in fact what I had through DHCP. I tested it survives a reboot; nonetheless I point this command out so that you also remember to check the DNS settings when you do this. I did these tests by changing the IP through the client, and in there the DNS option is in a separate location and must be changed manually.

So there you go. Once I checked back the DCUI, it indeed reports it as a static address

and it can be checked in the client as well.

Was there a gotcha here? Not sure. Things worked as expected; maybe the -P option is a bit of a gotcha, so that you don't leave DNS relying on DHCP, if you are doing this with the client.

No comments:

Post a Comment