You can now use PowerCLI to manipulate VMKernel networking and routing. There is a new functionality that supports setting a default gateway for VMKernel networks as well as creating, removing and updating of host routes.
Here is an example illustrating how to set a default gateway for VMKernel. All you need is to have a configured VMKernel adapter in the same subnet as the gateway you want to set to default. Let’s say you want to set a default gateway 10.21.84.1. First you should check which VMKernel adapter to use:
Get-VMHostNetworkAdapter -VMKernel | select ‘Ip’, ‘SubnetMask’, ‘DeviceName’
IP SubnetMask DeviceName
——————- ———- ———-
10.21.84.39 255.255.255.0 vmk1
10.21.113.249 255.255.252.0 vmk0
You should select the vmk1 network adapter which is in the same subnet as the default gateway:
# Example 1: Setting the default VMKernel gateway
$net = Get-VMHostNetwork
$net | Set-VMHostNetwork -VMKernelGateway ‘10.21.84.1’ -VMKernelGatewayDevice ‘vmk1’
The next example illustrates creating a VMKernel route that splits the VMKernel traffic. Looking at the previous example you can see that the vmk0 device is in a subnet with a host IP range (10.21.112.1 – 10.21.115.254). Below there is a sample code that splits the VMKernel traffic for the (10.21.113.0 – 10.21.113.255) and (10.21.114.0 – 10.21.114.255) subnets to different gateways:
# Example 2: Creating host routes
New-VMHostRoute -Destination ‘10.21.113.0’ -PrefixLength 24 -Gateway ‘10.21.113.1’
New-VMHostRoute -Destination ‘10.21.114.0’ -PrefixLength 24 -Gateway ‘10.21.114.1’
You can remove these routes using the Get-VMHostRoute and Remove-VMHostRoute cmdlets:
#Example 3: Removing host routes
Get-VMHostRoute | where { $_.Destination -eq “10.21.113.0”} | Remove-VMHostRoute
Get-VMHostRoute | where { $_.Destination -eq “10.21.114.0”} | Remove-VMHostRoute
For more details about host routing with PowerCLI 4.1, see the cmdlets help and the online documentation.
Regards,
Gospodin Gochkov