As of vCenter 6.7u1, you cannot install vCenter without working DNS (forward and reverse lookup) unless you complete a scripted install. If you attempt to deploy vCenter 6.7u1 in a lab using an IP address, it will deploy the VM in stage one but then fail the install/config in stage two. When stage two fails, you will need to delete the VM to start the GUI/VAMI style install again.
VMWare KB to show that DNS is required! – https://kb.vmware.com/s/article/57126

Example of a scripted install can be found here. (William Lam )
https://www.virtuallyghetto.com/2016/12/how-to-automate-the-deployment-of-an-un-configured-vcsa-6-5-stage-1-only.html
Additional information and examples here: (Seth Crosby)
https://vcrosby.com/2018/06/22/vcsa-deployed-with-no-external-dns/

While we can play with scripted installs all day, if we don’t already have working DNS in the home lab, we might as well get one deployed. There are tons of ways to complete this. I’ll cover what I did using a small Linux VM. Using SSH, Copy and Paste, you should be able to deploy the VM and configure DNS in under ten minutes. (Unless you are still running spinning media in your home lab…)

Start by downloading your flavor of Linux. I went with Ubuntu Server. You can download that here: https://www.ubuntu.com/download/server/

While the ISO is downloading, log into your ESXi host, create a VM with 1vCPU, 2GB ram and 5GB (or larger but thin..) hard drive. Be sure to select your flavor of linux in the OS selection so the devices are correctly selected for your OS. I selected Ubuntu 64-bit. Once the VM is created, select edit settings on the virtual machine, click the CD ROM drop down and select your ISO. I always upload the ISO to my local datastore then mount the ISO via datastore ISO file within the VM settings. Be sure to select the connect check box before clicking save.

Boot your VM to the Linux ISO, install the OS using the minimum settings you feel is required. We will need network and internet connectivity so we can download updates and the BIND package so be sure to configure an IP address that can reach the internet. Once the VM OS is installed and running, launch an SSH session to your VM. You can attempt the following configuration via VM Console but you will be doing a lot of typing which can result in errors in the BIND config.

Within your SSH session, Run the following to update your OS and test internet connectivity:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

When those complete successfully, pull down BIND.
sudo apt-get install bind9 bind9utils bind9-doc

Now we need to configure BIND for our lab DNS Server.
Here are some quick Assumptions:
– Your local network is 192.168.1.X / 24 (If yours is different, you must edit below for reverse lookup to work)
– DNSServer (VM you are making now) IP address is 192.168.1.10
– vCenter IP address is 192.168.1.20
– We will use an IP address instead of a “name” to install vCenter server. You can edit this part of the script and use a name. I have better luck in my home lab if I use simple IP addresses.

Below I will be using Nano. Be sure to Control+X to exit and Save after each file edit. If you want to use VI instead, be sure to :wq! to exist and save.
*** Edit the “vmnick0.local” parts below if you want to use your own local domain name.

sudo nano /etc/bind/named.conf
###Paste the following into the file:
include “/etc/bind/named.conf.options”;
include “/etc/bind/named.conf.local”;
include “/etc/bind/named.conf.default-zones”;

sudo nano /etc/bind/named.conf.local
###Paste the following into the file:
zone “vmnick0.local”{
type master;
file “/etc/bind/for.vmnick0.local”;
};
zone “1.168.192.in-addr.arpa”{
type master;
file “/etc/bind/rev.vmnick0.local”;
};

sudo nano /etc/bind/for.vmnick0.local
###Paste the following into the file:
$TTL 86400
@ IN SOA pri.vmnick0.local. root.vmnick0.local. (
2011071001 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
@ IN NS pri.vmnick0.local.
@ IN A 192.168.1.10
@ IN A 192.168.1.20
pri IN A 192.168.1.10
192.168.1.20 IN A 192.168.1.20

sudo nano /etc/bind/rev.vmnick0.local
###Paste the following into the file:
$TTL 86400
@ IN SOA pri.vmnick0.local. root.vmnick0.local. (
2011071002 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
@ IN NS pri.vmnick0.local.
@ IN PTR vmnick0.local.
pri IN A 192.168.1.10
192.168.1.20 IN A 192.168.1.20
20 IN PTR 192.168.1.20

Now we need to validate and update the permissions of the files we created:
sudo chmod -R 755 /etc/bind
sudo chown -R bind:bind /etc/bind
sudo named-checkconf /etc/bind/named.conf
sudo named-checkconf /etc/bind/named.conf.local

Next, lets check if our Config files were created correctly. Run the following BIND commands and if it exits with an “OK” then you are good to move forward. If you have errors, be sure to correct them before moving forward.

sudo named-checkzone vmnick0.local /etc/bind/for.vmnick0.local
sudo named-checkzone vmnick0.local /etc/bind/rev.vmnick0.local

Lastly, we need to restart the BIND service so everything starts working:
sudo systemctl restart bind9
*** The above service restart command may depend on the flavor of Linux you used.

Now you can test from another server/desktop on your local network to see if DNS is working. You will need to update your IP configs to point to this new server for DNS. If you want to go even further with a DNS server that can reach the internet and service DNS for other devices on your local network, you can check out this blog for detailed config that includes creating a primary and secondary DNS server.

https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-private-network-dns-server-on-ubuntu-14-04

For me, I just power on the DNS server when I need to use vCenter then power them both off. A requirement for DNS to work before it can power on/boot vCenter is a bit silly but at least we have a quick work around.