It’s been a while since I posted something, but I was busy with university duties and to be honest I couldn’t spend time on publishing things but, here we are!

First, I am currently studying for the VCAP6 – DCV Deployment Exam (3V0-623) and I am learning a lot with it, so maybe I will post more topics related with.

Today I am going to talk about TCP/IP stacks in VMkernels (for vSphere 6). This is a thing that I didn’t care so much when I studied for the VCP6-DCV but now with the VCAP and all the time spent in the lab I thought that it was a great topic to talk!

So, get down to brass tacks.

Just as a reminder, a VMkernel port is a port you create in an ESXi host to connect with the “outside world” (outside the host), so when you want to communicate two hosts, each host will have a VMkernel port to communicate.

TCP/IP stacks

A TCP/IP stack is a set of networking protocols (Do you remember the OSI Model?) used to provide networking support for the services that it handles. So you can use different stacks to support in different ways a service within the stack.

A quick look at the services you can choose when creating a VMkernel port:

I am not going to explain each one because we are going to focus on vMotion and Provisioning traffic.

Continuing with TCP/IP stacks, when you create a new VMkernel in an ESXi host, you can choose which services do you want to enable: 

Regarding vMotion and Provisioning TCP/IP stacks you could do it in two ways:

  • For vMotion, for example, you can do the following (this is the most common configuration, Default TCP/IP stack with a service Enabled):
  • Or (Dedicated TCP/IP stack):

I must admit I always use the first one, the Default TCP/IP stack with the service enabled, so which should we use, the dedicated stack or the default one?

Dedicated TCP/IP stack options

  • vMotion: It provides better isolation (more security), a separate set of buffers and sockets and avoids routing table conflicts than using the same TCP/IP Stack.
  • Provisioning:  Used for cold VM migration (migrate power-off VMs), cloning and snapshot traffic.

So, I discussed with some people because I wanted to know which benefit could give you to use the dedicated TCP/IP stacks and this is what I gathered:

  • For vMotion: As a short answer, I would say, that if you need to do Cross vCenter vMotion you will need it because the dedicated stack gives you a  Layer 3 VMkernel, meaning routing. With a dedicated stack, you can change the Gateway and DNS used in the default TCP/IP stack, meaning that you don’t have to use the same stack options that other
  • For Provisioning traffic: If you have massive data coming from snapshots or cloning, is better that you use this dedicated stack instead of the default one.

In the end, this is my recap and I hope it can help someone that is not familiar with it. Obviously, you could use the dedicated TCP/IP stack whenever you want but bear in mind that it will disable that service in the rest of the VMkernels.

Anyway, if you think that I missed or want to discuss something, let me know in the comments!