前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >windows 多 IP 时指定流量外访的出口 IP

windows 多 IP 时指定流量外访的出口 IP

原创
作者头像
腾讯云网络产品团队
修改2017-09-18 09:52:41
6K0
修改2017-09-18 09:52:41
举报

问题描述:

在window环境下(windows server2008/vista及以上版本)中,绑定了辅助IP后,主动外访时有可能不再走主IP。

导致后果:往往表现为主机绑了辅助IP后主动外访不通,但外网IP被访问时是通的。

因为外网IP经常是绑在主内网IP上,如果当对外发送流量不再选择走主内网IP,而是选择没有绑外网IP的辅助IP的时候,网络当然不通。

这与我们的期望不符,我们往往认为网络流量会默认从主IP出去。

示例案例:

primary IP:10.10.20.163 -> 绑定了外网IP:123.206.21.201

secondary IP:10.10.20.30 (后来绑上去的)

gateway:10.10.20.1

问题原因

微软官方镜像的IP选择策略发生了变化:windows server08/Vista之前的版本,会默认从第一个add到网卡的IP出去。

而windows server2008/Vista 及其之后的版本(包括windows server2008、windows server2012、windows server2016、windows 7等),会遵循以下方式:

  • Rule 1: Prefer same address (applies)
  • Rule 2: Prefer appropriate scope (applies)
  • Rule 3: Avoid deprecated addresses (applies)
  • Rule 4: Prefer home addresses - does not apply to IP v4
  • Rule 5: Prefer outgoing Interfaces (applies)
  • Rule 6: Prefer matching label - does not apply to IP v4
  • Rule 7: Prefer public addresses - does not apply to IP v4
  • Rule 8: Use longest matching prefix with the next hop IP address.

根据规则8,如果主IP与下一跳IP的 matching prefix(前缀匹配) 短于辅助IP与下一跳的 matching prefix ,那辅助IP的优先级会高于主IP,packet 就会由辅助IP发送。

本示例案例中,辅助IP(10.10.20.30)与下一条(即网关10.10.20.1)的 matching prefix 更长,因此流量不再走主IP。

规避方法

使用标志位skipAsSource:用 netsh 命令添加IP时,把skipAsSource标为true。

设置方法

server 2008:

netsh int ipv4 add address < Interface Name > < ip address > < subnet mask > skipassource=true

server 2012:

netsh int ipv4 add address < Interface Name > < ip address > skipassource=true

本示例案例中,对应的命令为:

netsh int ipv4 add address "以太网" 10.10.20.30/24 skipassource=true

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题描述:
  • 问题原因
  • 规避方法
  • 设置方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档