Home > Useful Tools > Scripting Broadcom Team

Scripting Broadcom Team

I am working on a project using Microsoft Virtual Machine Manager 2010 which has a great new feature that will enable Administrators to deploy virtual machine hosts from bare metal. I love the concept slot in a new blade, click go in VMM and 15 minutes later you have a new host ready for deployment.

But….. right at the beginning of my project I have hit an issue configuring the host network adapters, I have three mezzanine cards, giving me eight network adapters some of which will be teamed others like iSCSI not, see the table below.

 

Network Card

NIC ID

NIC NAME

NETWORK

2 x 1GbE

Fabric A

NET1a

NET1b

DP1GbE1-MAN
DP1GbE2-

Management network (Team1)
iSCSI1

4 x 1 GbE

Fabric B

NET3a
NET3b
NET3c
NET3d

QP1GbE1-
QP1GbE2-
QP1GbE3-
QP1GbE4-

iSCSI2
MIGRATION (Team 3)
MIGRATION (Team 3)
Management network (Team1)

2 x 10GbE

Fabric C

NET2a

NET2b

DP10GbE1-

DP10GbE2-

VMN1 / CSV (Team 2)
VMN2 / CSV (Team 2)

Maybe overkill considering we have redundant switches built into the chassis but I want to be as redundant as possible, if I loose a mezzanine card on a blade the blade is still running instead of having to fail over to another.

currently when I build the server as normal I am presented with a clean installation I see eight network connections however there is no way to tell what is what and no way to tell which should be in which network team, I first got around this by running the below script which renamed the network adapter to their respective MAC addresses this then allowed me (a human) to work out which network adapters belonged to which mezzanine card and build the teams and vlans which is no good for a automatic deployment model.

@echo off&Title=Set Adapter Names &MODE CON: COLS=100 LINES=20

powershell -nologo -command “Write-Host ‘Attempting to rename adapters named Local Area Connection* to their MAC address’; $Shell = New-Object -com shell.application; $NetCons = $Shell.Namespace(0x31); $NetCons.Items() | where {$_.Name -like ‘Local Area Connection*’} | foreach{$AdapName=$_.Name; get-WmiObject -class Win32_NetworkAdapter| where-Object {$_.NetConnectionID -eq $AdapName} | foreach {$MAC=$_.MacAddress}; Write-Host Renaming $_.Name to $MAC; $_.Name=$MAC.replace(‘:’,’.’)}” | more

pause

note: If anyone has a good addin for code snippets for WordPress/live writer please let me know!

This solution is no good for me so digging around further, I came up with this solution.

What I found was if you have the same identical blades and mezzanine configuration you seem to always get the same PCI settings on the physical network devices, below I am displaying the properties of a 10GB Ethernet adapter on two different blades. note the PCI bus is the same.

imageimage

Using the Broadcom Advanced Control Suite, I configured one server with all the teams and vlans as I required, shown below.

image

Once I had the teams configured the way I wanted them I then used the command line options for the Broadcom suite to export the configuration.

To do this:

1. open a command prompt

2. change directory to the Broadcom installation directory containing a cli tool called “BACScli.exe”, in my case this was “C:\program Files\Broadcom\BACS”

3. Run the command BACScli –t team “save –f BDF c:\Network-Config.bcg”

image

 

The file created looks like this when opened in notepad

image

Now copy the file to the other server and import the configuration as follows:

1. open a command prompt

2. change directory to the Broadcom installation directory containing a cli tool called “BACScli.exe”, in my case this was “C:\program Files\Broadcom\BACS”

3. Run the command BACScli –t team “restore c:\Network-Config.bcg”

 

image

Looking in the Broadcom Advanced Control Suite I can confirm by looking at the MAC address that I have everything where I want it and all the vlans have been created

image

 

I have a few more test to do as I would like to confirm if other settings will carry over like team configurations, advanced NIC settings but it is looking good I can now carry on with the project knowing this can be built into my provisioning system.

Happy Days.

Advertisements
Categories: Useful Tools Tags:
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: