参考文章:
Grid Infrastructure on Windows: How to Set Bind Order of Network Adapters on Windows 2016 [2290811.1]
https://docs.microsoft.com/en-us/windows-server/networking/technologies/network-subsystem/net-sub-interface-metric
背景:在Windows下安装过rac的工程师都知道需要为public网卡和private网卡设置顺序:
在Windows Server 2016之前的版本中,可以通过如下的方式实现"public网卡在上面,private网卡在下面"
从Windows Server 开始,如上方式已经行不通了,也就是Windows Server 2016中根本没有设置网卡顺序的Tab页(即:如上的Tab页已经没有了) ,见下图:
从Windows Server 2016开始,需要通过设置每个网卡的InterfaceMetric来间接的"设置"网卡顺序.这一点,可以从如下网址中得到证实:
https://docs.microsoft.com/en-us/windows-server/networking/technologies/network-subsystem/net-sub-interface-metric
查看InterfaceMetric的命令,注意,如下的命令是在powershell中执行的:
C:\Users\Administrator>powershell
Windows PowerShell
版权所有 (C) 2016 Microsoft Corporation。保留所有权利。
PS C:\Users\Administrator> Get-NetIPInterface -------->>这是查询命令,请放心执行.
ifIndex InterfaceAlias AddressFamily NlMtu(Bytes) InterfaceMetric Dhcp ConnectionState PolicyStore
------- -------------- ------------- ------------ --------------- ---- --------------- -----------
13 isatap.{44BAE05F-EEF9-493A-A... IPv6 1280 75 Disabled Disconnected ActiveStore
8 private IPv6 1500 25 Enabled Connected ActiveStore
12 isatap.{B760AB27-2BA8-4136-A... IPv6 1280 75 Disabled Disconnected ActiveStore
3 public IPv6 1500 25 Enabled Connected ActiveStore
1 Loopback Pseudo-Interface 1 IPv6 4294967295 75 Disabled Connected ActiveStore
8 private IPv4 1500 25 Disabled Connected ActiveStore
3 public IPv4 1500 25 Disabled Connected ActiveStore
1 Loopback Pseudo-Interface 1 IPv4 4294967295 75 Disabled Connected ActiveStore
~~~~~~~~~~~~~--->此列就是InterfaceMetric
PS C:\Users\Administrator> Get-NetIPInterface -AddressFamily ipv4 | Sort-Object -Property InterfaceIndex -------->>这是查询命令,请放心执行.
ifIndex InterfaceAlias AddressFamily NlMtu(Bytes) InterfaceMetric Dhcp ConnectionState PolicyStore
------- -------------- ------------- ------------ --------------- ---- --------------- -----------
1 Loopback Pseudo-Interface 1 IPv4 4294967295 75 Disabled Connected ActiveStore
3 public IPv4 1500 25 Disabled Connected ActiveStore
8 private IPv4 1500 25 Disabled Connected ActiveStore
~~~~~~~~~~~~~--->此列就是InterfaceMetric
设置InterfaceMetric的命令:
PS C:\Users\Administrator> Set-NetIPInterface -InterfaceIndex 3 -InterfaceMetric 35 -------->>这是设置命令,请谨慎执行.
PS C:\Users\Administrator> Get-NetIPInterface -AddressFamily ipv4 | Sort-Object -Property InterfaceIndex
ifIndex InterfaceAlias AddressFamily NlMtu(Bytes) InterfaceMetric Dhcp ConnectionState PolicyStore
------- -------------- ------------- ------------ --------------- ---- --------------- -----------
1 Loopback Pseudo-Interface 1 IPv4 4294967295 75 Disabled Connected ActiveStore
3 public IPv4 1500 35 Disabled Connected ActiveStore
8 private IPv4 1500 25 Disabled Connected ActiveStore
------->>如上是查看设置的效果,ifIndex=3的InterfaceMetric已经变成35了.
PS C:\Users\Administrator> Set-NetIPInterface -InterfaceIndex 3 -InterfaceMetric 15 -------->>这是设置命令,请谨慎执行.
PS C:\Users\Administrator> Get-NetIPInterface -AddressFamily ipv4 | Sort-Object -Property InterfaceIndex
ifIndex InterfaceAlias AddressFamily NlMtu(Bytes) InterfaceMetric Dhcp ConnectionState PolicyStore
------- -------------- ------------- ------------ --------------- ---- --------------- -----------
1 Loopback Pseudo-Interface 1 IPv4 4294967295 75 Disabled Connected ActiveStore
3 public IPv4 1500 15 Disabled Connected ActiveStore
8 private IPv4 1500 25 Disabled Connected ActiveStore
------->>如上是查看设置的效果,ifIndex=3的InterfaceMetric已经变成15了.
PS C:\Users\Administrator>
值得注意的是, InterfaceMetric的值是小值优先还是大值优先,目前我还没有从微软的官方文档上看到,也没有找到可以证实的方法.
另外:
关于InterfaceMetric的解释如下:
https://technet.microsoft.com/zh-cn/library/hh826135.aspx
InterfaceMetric<UInt32[]>
Specifies an array of metrics of IP interfaces.
When routes are chosen, the overall metric used to determine the preference is the sum of the route metric and the interface metric.
Typically, the interface metric gives preference to a particular interface, such as using wired if both wired and wireless are available.
The default value is automatic.
参考另外一个工程师的进一步研究:
https://www.azurew.com/6529.html