Recently, I managed to replace my worn-out Lab with something that has a little more power, I changed the memory from 92GB to 1024 ?.
So, due to the greater computing power, I decided to set myself a solution that has been tempting me for a long time and I dealt with its part through my career. I’m talking about the VCF here. The choice fell on VMware Cloud Foundation version 4.5.
This solution includes the following products
As you can see, we have a lot of fun ahead of us, but some of it is already known to you / us, so I will focus here on the VCF
The new version does not yet have an official release date, so I focused on the latest available. However, before I devoted time to deployment, I decided to explore the topic a bit. However, if you want to set up a nested environment because I will put it in this article, you will not find too much material. Most of the articles that have been written refer to the VLC solution, which by the way is a super-prepared tool, we really have to specify a few variables and the whole environment is ready to work. However, I wanted to play/learn, so I decided to bet everything myself without automation.
- Host/vCenter
The element that I configured before I started any fun with VCF is a physical ESXI managed by vCenter (so that you can create a template, but it is not required at all)
On the host we create two portgroups or on vCenter we add VDS. I left Management on a regular vSwitch, and for the whole VCF integration I created a separate VDS that has two portgroups.
The first is the portgroup for Cloud Builder, unfortunately, with the OVF deployment, we do not have the option to set the VLAN, so I created Portgrupe vLAN, which adds the Management VLAN ID (1611) to the Cloud Builder frames. The second portgroup is already a trunk portgroup with the range 0-4094, i.e. allowing all VLANs. In addition, I increased the MTU to 9000 and changed all security options to Accept
- Hosts
The first element I prepared were ESXi hosts. I created a clean virtual machine template with the following parameters
The drives are Thin and I will mention network adapters later. An additional configuration that I made on the template is to add 3 parameters in Advanced Settings. As for the processors, at a later stage when you do a vra deployment in the Medium version, the machine does not start because they need 12 processors and we only have 8. However, this is a limitation of my physical equipment and we can’t help here.
featMask.vm.cpuid.PDPE1GB = Val:1
scsi1:0.virtualSSD = 1
scsi1:1.virtualSSD = 1
The first parameter concerns the support of hugepage by processors, my machine does not support it, so it was necessary to add such a value so that NSX-T Edge could be run in the nested environment. The next two parameters concern the marking of drives connected to esx as SSD (Flash)
There is one more element that I have not mentioned, more precisely in the processor, we must remember to select Expose hardware assisted virtualization to the guest OS. From such a template I built 4 machines that will work as my Management Domain
More specifically in the documentation
Management Domain
A cluster of physical hosts that contains the virtual machines of management components, such as vCenter Server, NSX-T Data Center, SDDC Manager, and so on.
After configuring 4 machines with ESX, i.e. the system installed on the smallest disk, I set
- IP address from my subnet
- I set the VLAN to 1611 because that’s what it uses (see diagram)
- I have disabled IPv6
- set DNS and hostname in the form of FQDN
- removed Custom DNS Suffix
After restarting the host (required if disabling IPv6) I generated a new certificate with the command
/sbin/generate-certificates
Here is the link to the documentation https://docs.vmware.com/en/VMware-Cloud-Foundation/4.5/vcf-deploy/GUID-20A4FD73-EB40-403A-99FF-DAD9E8F9E456.html
After this configuration you should login to GUI and on Portgroup VM Network also set VLAN 1611
The last element that needs to be configured here is NTP
- NTP must be configured to start with the host as well as point to a specific NTP host (in my environment it is pfSense, which I will describe in a moment)
- pfSense
pfSense is a virtual router that allows us to configure VLAN, Firewall, NAT, BGP and many other services that we can use in our environment. I used it for BGP and VLAN which it uses in the entire virtual infrastructure
The installation of pfSense from ISO itself is not complicated, so I will not write here how to do it. The machine I made for this router has the following parameters
Network Adapter 1 -> VM Network our WAN
Network Adapter 2 -> PG-allVLAN our LAN
After installing the machine, we have access to the console where we set the IP address
And then we can configure everything in a very friendly GUI
a) The first element that will actually be used at the very end but I “turned it on” at the beginning is to install the frr package which will later allow us to configure BGP
Go to the system tab and then package manager in available packages, look for frr and click install
When will the package be installed. We leave it alone until we get to the BGP configuration
b) The second thing I configured is the VLANs in the whole clean and simple VCF deployment we need 7 of them. We all create the same way.
Go to the Interfaces -> Assignments tab
And then to the VLANs tab
In the lower right corner, press Add and add additional VLANs as follows
In my environment, I have configured the VLANs as follows
With VLANs configured in this way, go to the first tab -> Interface Assignments and click Add to add all vlans as a new interface.
The interfaces added in this way must be configured, i.e. set the IP as Gateway and specify the MTU. All ports have Gateway set to 1. The first octet is 172. And 2 and 3 are the VLAN ID. For example, the first interface that will be my management VLAN
Having configured the interfaces in this way, I went to configure the Firewall, and more precisely, I passed all traffic through it as Allow, because it is a LAB, I do not need to wonder where my traffic is blocked.
c) We set the firewall in the Firewall Rules tab
Each port on the router has its own firewall, so on each port I added a rule using the Add button for any protocol, any source and any destination on any port Allow and on pfSense it looks like this
d) After configuring the firewall, I went to configure the DHC for our NSXs that will be deployed as part of the VCF
DHCP is configured in the Services -> DHCP Server tab
In my case, I fired DHCP on the OPT4 interface and it is VLAN 1614 for nsx-overlay. There is nothing complicated about the DHCP setting. We only need to do enable and specify the range
e) The element that I set to pfSense and is required for basic VCF deployment is NTP
In the services tab, go to NTP
What we need to do here is to enable NTP, choose which interface it will work on (I chose all available) and specify the Time Servers from which our Server will download the time
Such configured pfSense will allow us to deploy VCF from Cloud Builder. However, I want to have an environment where I will create various games from the vRA level, so I will show you how to configure two elements that will be useful in the future.
f) During the deployment of the EDGE cluster, we must choose the routing protocol, either we will create static routes or we will use the dynamic routing protocol, which is BGP (I will not tell you anything more about this because network matters are not my thing)
To configure BGP we need to have the package I showed you earlier installed. As we have the package installed, we go to the FRR Global Zebra tab available in the Services panel
Check Enable next to Enable FRR, set the Default router ID, I chose an ID that points to the 250th host in the subnet for which I will actually be routing.
As you can see, for more information on this topic, you can jump to Wikipedia
The next element is the master password which is mandatory
The last element that I configured here is Next hop Tracking where I set the IPv4 value for Resolve via default route
Nothing else for the Global tab so we can save and go to Route Maps. Here I added one RouteMap where I set it to permit and sequence value to 100
I didn’t change any other value from default. After pressing save and clicking on BGP we have a new bookmarks panel. This is where we configure BGP itself
We need to enable this routing protocol and set the local AS in my case it is 65001
At the bottom of this page in Network Distribution I set everything to be redistributed and the network and all possible networks by setting the subnet to 0.0.0.0/0 and selecting the previously created RouteMap
Once again, press Save and move on.
In the Neighbor tab, we add our neighbors, in my case, these are 4 interfaces that will be attached to EDGE when deploying Edge Cluster
When adding, in General options, we enter the Address and password with the appropriate option, which we will later provide when configuring Edge
Below, in Basic Options, we set Remote AS, which is something that will be on Edge in my case, it is 65003 and I selected the option Address Family -> Allow neighbor to advertise and receive routes for both IPv4 and IPv6
The last element that I have configured here is Peer Filtering. In the Route Map Filter tab for inbound and outbound traffic, I selected our previously created route map
Once configured, we can press save. Even though our neighbors haven’t been made yet. By going to the Services status tab, we can check if our BGP has started. If the daemon does not work, it means that we have something broken in the configuration
At this stage, we could once again say thank you, but I personally configured one more element, namely NAT, which in my network is required for xRegion which will be afforded by vRA, LCM, etc. Solutions.
g) Here is a simple matter. In the Firewall -> NAT tab
Go to Outbound and change the mode from Automatic (i.e. all vlans are automatically natated, good job pfsense, I don’t have to click it myself) to Hybrid which will allow us to add our own mappings
I added my xRegion subnet here so that I can access the Internet through all my routers
And now with a pure heart I can say that we have prepared and configured a router for VCF
- Cloud Builder.
Cloud Builder is a tool that does automagically ? deployment of the entire environment based on Excel which we fill with data. From what I’ve noticed, this version of Excel 4.5 is quite truncated.
However, before we move on to the Excel deployment, our Cloud Builder must be placed in our environment, but it is a regular deployment with OVF, so most of you can do it with your eyes closed. After launching the browser and entering the url of the cloud builder, of course logging in, the wizard appears
Regardless of whether we are doing a nested or physical environment, everything here works the same way.
We click Next
We accept that we have met all the requirements that are given
Of course, let’s not kid ourselves that there is a Validator because the first time we always forget something ?
We click next
Now we have the option to download excel or if we have it already prepared, we can upload it. According to the instructions, we can also use JSON, but I’ve never seen it, so I’ll focus on excel here
There are 3 tabs in the file in which we need to complete the data
Outside of Credentials, this is what my excel looks like. It’s almost default
After uploading the file to the wizard, Cloud Builder performs an environment check
Here we have, for example, checking if all gateways are reachable, if the hosts are configured correctly, if the thumbprints match, if the times are correct, etc. etc.
After fully validation
As you can see, I didn’t run it only once ? When we have everything green, we go to the installation process, which is cool that the validation went green, the installation process can fail.
In my case, however, this was not the case and after a few hours my deployment was over
And after pressing the finish button, a message appeared to my eyes
And here a new world appears to us ? where the fun has no end.
However, before we continue to play, I have configured the network. Therefore, we enter the tab on the left. Inventory -> Workload Domains
And click on our domain that Cloud Builder created
Here we have information about hosts, services and NSX access
In the Actions menu, select Add Edge Cluster
we provide all the parameters and Cloud builder on NSX creates an environment for T0 and T1 Routers
In these routers, the BGP that we configured earlier is used. Parameters we need to fill in
In the routing settings for T0, we create the ASN that we set on the pfSense side
And here is information about BGP for T0
The whole process of adding EDGA takes a while and has many tasks, so you can easily make a cup of coffee here
It remains to configure AVN
AVN or Application Virtual Network (Segments on NSX) in this case we create for the vRealize solution
We need to select our cluster and the router to which the Segments will be connected
I created an AVN with these parameters
Of course, if you make a mistake, AVN can be removed from the database with two commands by logging into SDDC Manager, but I will not reveal the details here and VMware provides us with a tool to remove the Edge Cluster https://kb.vmware.com/s/article/78635
For my part, that’s it, I hope this article will make it easier for you to have fun in your own labs and I’m going to use this environment for Aria Automation and in the future TANZU. So, to read in new articles and I hope that on a new server under a new domain, so stay tuned, changes are coming 😀
P.S. This is my IP configuration
This is what my DNS looks like
And if I haven’t forgotten anything, here’s a diagram of the whole solution
Great experience!
Thanks Lukasz