VMware Cloud Community
DyJohnnY
Enthusiast
Enthusiast

Clarification on DVS port inheritance settings

Hi,

I am trying to build a script which will verify if the DVS standard security settings are being applied on all levels of vdswitch.

I started exploring the objects with powercli and i am llittle puzzled:

first I grabbed all the non uplink vds port groups

$All_pg_view = Get-View -ViewType Network | Where-Object { $_.gettype().Name -like 'DistributedVirtualPortgroup' -and $_.tag.key -notlike 'SYSTEM/DVS.UPLINKPG' }

By default, on a brand new switch with default settings, this is the output received:

$All_pg_view.Config.DefaultPortConfig.SecurityPolicy

AllowPromiscuous      MacChanges            ForgedTransmits       Inherited

----------------      ----------            ---------------       ---------

VMware.Vim.BoolPolicy VMware.Vim.BoolPolicy VMware.Vim.BoolPolicy     True

VMware.Vim.BoolPolicy VMware.Vim.BoolPolicy VMware.Vim.BoolPolicy     True

Notice the Inherited = true on all port groups

However, say you had a port group, for which you manually went in and changed a setting.

The output would become, something like

AllowPromiscuous      MacChanges            ForgedTransmits       Inherited

----------------      ----------            ---------------       ---------

VMware.Vim.BoolPolicy VMware.Vim.BoolPolicy VMware.Vim.BoolPolicy     True

VMware.Vim.BoolPolicy VMware.Vim.BoolPolicy VMware.Vim.BoolPolicy     False

Furthermore, if you dig into the AllowPromiscuous, MacChanges, ForgedTransmits property there is also a parameter there, called "inherited".

So, I went in, and manually modified the settings for a test portgroup (from reject to accept) for forged transmits

($All_pg_view | ? {$_.name -like 'ForgedTransmits-test'})[0].config.defaultportconfig.securitypolicy.ForgedTransmits

Value Inherited

----- ---------

True     False

Then i changed it back, the object became:

($All_pg_view | ? {$_.name -like 'ForgedTransmits-test'})[0].config.defaultportconfig.securitypolicy.ForgedTransmits

Value Inherited

----- ---------

False     False

Ok, so I made the setting as the default, but it still does not appear inherited, at either port group level, or at setting level. I guess this is normal.

Digging around I found a PowerCLI cmdlet to reset inheritance itself!

$pg_obj = Get-VDPortgroup -name ($All_pg_view | {$_.name -like 'ForgedTransmits-test'}).name

$pols = $pg_obj | Get-VDSecurityPolicy | ? {$_.AllowPromiscuousInherited -eq $False -or $_.ForgedTransmitsInherited -eq $False -or $_.MacChangesInherited -eq $False} | Set-VDSecurityPolicy -AllowPromiscuousInherited $true -ForgedTransmitsInherited $true -MacChangesInherited $true -Confirm:$false

After this, the "setting level" is updated to "inherited = true", but the "global" inherited, next to each individual setting appears as false.

($All_pg_view | ? {$_.name -like 'ForgedTransmits-test'})[0].config.defaultportconfig.securitypolicy.ForgedTransmits

Value Inherited

----- ---------

False      True

C:\> ($All_pg_view | ? {$_.name -like 'ForgedTransmits-test'})[0].config.defaultportconfig.securitypolicy

AllowPromiscuous      MacChanges            ForgedTransmits       Inherited

----------------      ----------            ---------------       ---------

VMware.Vim.BoolPolicy VMware.Vim.BoolPolicy VMware.Vim.BoolPolicy    False

I would like to understand what the "1st" inherited (under config.defaultportconfig.securitypolicy ) stands for, and how it can be set from false to true, if it is of any real use to do so.

I tried to enable inheritance at vds level but the commandlet does not allow this,so clearly it does not affect this particular option.

IonutN
Tags (1)
0 Kudos
0 Replies