John Howard - Senior Program Manager in the Hyper-V team at Microsoft

Senior Program Manager, Hyper-V team, Windows Core Operating System Division.

Announcing NVSPBind

Announcing NVSPBind

  • Comments 21
  • Likes

 

A quick post to announce the availability of a new utility written by a colleague of mine in the Hyper-V team, Keith Mange. NVSPBind (Network Virtual Service Provider Bind) overcomes a shortfall that many people hit in server core installations of Windows Server 2008, Windows Server 2008 R2 and Microsoft Hyper-V Server.

In a full installation of Windows, it is possible to enable or disable protocols from a network adapter using the network connections applet in the control panel (aka ncpl.cpl) by simply checking or unchecking protocols as necessary.

LAN Properties

This applet isn't available in server core and there is no in-box utility to perform this action. Let's walk through a really simple example and say we want to disable File and Printer Sharing for Microsoft Networks on an adapter.

The first step is to obtain the GUID which uniquely identifies the adapter. This can be achieved by running nvspbind with no command line parameters. Here's the truncated output from a test machine showing the NIC I'm looking for:

{F93672D9-9085-4EEF-9669154AD4391ED7}
"pci\ven_8086&dev_10c9&subsys_a03c8086"
"Intel(R) Gigabit ET Dual Port Server Adapter":
   enabled:  ms_netbios       (NetBIOS Interface)
   enabled:  ms_server        (File and Printer Sharing for Microsoft Networks)
   enabled:  ms_pacer         (QoS Packet Scheduler)
   disabled: ms_ndiscap       (NDIS Capture LightWeight Filter)
   enabled:  ms_wfplwf        (WFP Lightweight Filter)
   enabled:  ms_msclient      (Client for Microsoft Networks)
   enabled:  ms_tcpip6        (Internet Protocol Version 6 (TCP/IPv6))
   enabled:  ms_netbt         (WINS Client(TCP/IP) Protocol)
   enabled:  ms_smb           (Microsoft NetbiosSmb)
   enabled:  ms_tcpip         (Internet Protocol Version 4 (TCP/IPv4))
   enabled:  ms_lltdio        (Link-Layer Topology Discovery Mapper I/O Driver)
   enabled:  ms_rspndr        (Link-Layer Topology Discovery Responder)
   enabled:  ms_pppoe         (Point to Point Protocol Over Ethernet)
   enabled:  ms_ndisuio       (NDIS Usermode I/O Protocol)
   disabled: vms_pp           (Microsoft Virtual Network Switch Protocol)

The GUID is right at the top of the output (starting "{F9367"). The protocol I want to unbind in this example is ms_server (the short name for File and Printer Sharing for Microsoft Networks).

This is achieved using the -d parameter as follows:

C:\>nvspbind -d {F93672D9-9085-4EEF-9669154AD4391ED7} ms_server
Hyper-V Network VSP Bind Application 6.1.7672.0.
Copyright (c) Microsoft Corporation. All rights reserved.
acquiring write lock...success

Adapters:
{F93672D9-9085-4EEF-9669154AD4391ED7}
"pci\ven_8086&dev_10c9&subsys_a03c8086"
"Intel(R) Gigabit ET Dual Port Server Adapter":
    unbinding ms_server from Intel(R) Gigabit ET Dual Port Server Adapter
    unbinding ms_server from Intel(R) Gigabit ET Dual Port Server Adapter
    unbinding ms_server from Intel(R) Gigabit ET Dual Port Server Adapter
    unbinding ms_server from Intel(R) Gigabit ET Dual Port Server Adapter
    unbinding ms_server from Intel(R) Gigabit ET Dual Port Server Adapter
    unbinding ms_server from Intel(R) Gigabit ET Dual Port Server Adapter
applying changes...
cleaning up...releasing write lock...success
finished
C:\>

NVSPBind also has the ability to enable bindings, bind or unbind the Hyper-V network switch protocol from a NIC and repair bindings on a NIC. More information on scenarios and usage is in the package which can be downloaded from http://code.msdn.microsoft.com/NVSPBind.

As with all utilities which change network configurations, be extremely careful as you may disrupt or even lose network connectivity if you are managing a machine remotely. It may be handy to have Keith's other utility around just in case. http://code.msdn.microsoft.com/nvspscrub

Cheers,
John.

Comments
  • Very good Howard ... very long overdue! But isn't one thing still very much missing (one of the reasons we dumped core for full installs) NIC/connection ordering? That can be very useful and is hell to do in the registry when you have many NICS.

    Cheers

  • I'm also very interested in NIC/connection ordering!

  • Didier/Michael - Keith has your feedback. Can't promise anything though....

    Cheers,

    John.

  • Please can we have nic connection ordering yesterday !!!!

    Its a show stopper for many customers trying to deploy core

    Especially if you have 2 on board & 2Xquad nics in a server

    and a 16 server cluster farm

    Your looking a 16 weeks just to get the networking confirgured correctly

  • Steve/Michael/Didier - quick question just to get 100% clarification. You are referring to connection ordering as seen on a full installation from the network control panel (ncpa.cpl) then on the Advanced menu, select Advanced Settings. From the dialog, on the Adapters and Bindings, you are referring to the top scroll box listing the connections, not the bottom scroll box for chosing the binding order.

    Thanks,

    John.

  • Yes John,

    That's what I'm referring to. The top one indeed!

    Cheers & Thank You for trying :-)

  • I just added options for querying and changing the NIC connection order.  You will have to keep in mind that ncpa.cpl shows a combination of protocols whereas NVSPBIND treats the protocols separately.  For example, the NIC connection order in ncpa.cpl is a combination of IPv4 and IPv6 whereas NVSPBIND treats them separately so you will have to do the same operations a number of times to get the equivalent behavior in ncpa.cpl.  ncpa.cpl also hides some virtual NICs whereas NVSPBIND does not so you will see some interesting NIC names.

  • Keith, John,

    Thank You, Thank You, Thank You. This is really very much appreciated.

  • This is an awesome App.  Took me 10 minutes to figure it out and save me a lot of time on our Hyper-V core servers.  

  • This is a great tool!  Can this tool or some other allow the rename of a NIC from Server Core Win2008R2?

  • This is a great tool!  Can this tool or some other allow the rename of a NIC from Server Core Win2008R2?

  • Need some clarification with respect to NVSPBind vs ncpa.cpl --- Basically, the connection ordering in ncpa.cpl is not protocol-specific.  So, when following Hyper-V R2 best practices, as listed here from NetApp:  blogs.netapp.com/.../hyper-v-networking-best-practices-part-three.html, it's easy to do.

    However, in order to achieve the same thing with NVSPBind, do I need to manually adjust the binding order for every single protocol (i.e.  ms_tcpip, ms_tcpip6, ms_netbt, ms_smb, etc.)??

    If so, is there anyway do to this globally using NVSPBind, instead of having to manually re-adjust the settings for every protocol?

    As of now, I have only adjusted the connection ordering for ms_tcpip, because we unbind ms_tcpip6.  However, I want to ensure that this is the equivalent of setting the connection order via ncpa.cpl.

    Thanks in advance.

  • Need some clarification with respect to NVSPBind vs ncpa.cpl --- Basically, the connection ordering in ncpa.cpl is not protocol-specific.  So, when following Hyper-V R2 best practices, as listed here from NetApp:  blogs.netapp.com/.../hyper-v-networking-best-practices-part-three.html, it's easy to do.

    However, in order to achieve the same thing with NVSPBind, do I need to manually adjust the binding order for every single protocol (i.e.  ms_tcpip, ms_tcpip6, ms_netbt, ms_smb, etc.)??

    If so, is there anyway do to this globally using NVSPBind, instead of having to manually re-adjust the settings for every protocol?

    As of now, I have only adjusted the connection ordering for ms_tcpip, because we unbind ms_tcpip6.  However, I want to ensure that this is the equivalent of setting the connection order via ncpa.cpl.

    Thanks in advance.

  • The download link for NVSPBind is not working?

    code.msdn.microsoft.com/NVSPBind

  • Dave - looks like there's a problem on the site, I've reported it to support services. Try this direct link instead code.msdn.microsoft.com/.../ProjectReleases.aspx

    John.

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment