Windwos Server 2008: 当网卡有多个IP地址时,如何指定缺省地址?

  这实际是一个当应用向外发起连接时,协议栈对源IP地址的选择问题。如果你的应用没有显式绑定一个本地地址,协议栈会选择一个"最佳"的本地地址来使用。

  从 Vista 之后这个选择策略发生了变化,不再有主IP地址的概念,而是参照 RFC 3484 来选择本地地址作为源IP地址来向外发起连接。在 Vista 之后要指定源IP地址,可以通过安装下面的补丁程序给netsh命令增加一个参数:

  • 975808 用于 Windows Server 2008 SP2 或 Windows Vista SP2
  • 2386184 用于 Windows 7 或 Windows Server 2008 R2
  • 这个修正在 Windows Server 2008 R2 SP1 中已经包含了。

  在安装补丁程序的基础上,使用 netsh 命令的新增参数 "skipassource" 来添加不需要作为向外发起连接的源地址的IP地址。

   例: netsh interface ipv4 add address "本地连接" 192.168.0.110 255.255.255.0 skipassource=true

  如果要查看IP地址"是否作为源"的状态可以使用 "level=verbose" 参数。
   例: netsh interface ipv4 show ipaddresses level=verbose

  需要注意的是,已经添加的IP地址需要删除后重新添加。

  在向外发起连接时使用哪个IP地址作为源地址,可以使用 pathping 命令来验证。

参考: http://blogs.technet.com/b/networking/archive/2009/04/24/source-ip-address-selection-on-a-multi-homed-windows-computer.aspx

上一篇:OpenStack核心组件-neutron网络服务


下一篇:java事件演示