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

问题描述:

在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

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

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

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏difcareer的技术笔记

Android6.0 DeviceIdle服务分析状态切换总结

Android6.0以后引入了Doze和Standby省电模式,看了下源码,主要体现在DeviceIdle服务中。

1196
来自专栏PHP在线

Apache配置

文件系统和网络空间 最常用的配置段是针对文件系统和网络空间特定位置的配置段。首先必须理解文件系统和网络空间这两个概念的区别,文件系统是指操作系统所看见的磁盘视...

49210
来自专栏tiane12

无需使用UC tools直接重置Ucenter创始人密码

3223
来自专栏嵌入式程序猿

快速配置无线模块连入家庭Wifi

近日玩了下microchip的无线wifi模块,配置相当简单,可以与单片机进行串口连接,今天分享给大家 如何快速配置这款模块,使其可以连入家庭Wifi ? ? ...

62912
来自专栏WD学习记录

ASP.NET MVC4 配置逻辑

842
来自专栏FreeBuf

【思路分享】如何在Win下查杀Linux恶意文件

在对linux系统应急处理时,常需要查杀系统中是否存在恶意文件,但纯手工检查的话,难免会有遗漏,虽然在linux系统中也有一些专门门的查杀工具,但终究维护的人少...

2358
来自专栏更流畅、简洁的软件开发方式

【自然框架】——自然框架的命名空间

  为什么要有命名空间?类多了不便于管理,把他们给他分个类整理一下,便于管理。   那么命名空间就有了两个使命,分类和标识。其实标识也是一种分类。 我们打开Re...

2156
来自专栏老码农专栏

AAA - ActFramework的安全框架 I - 概念及简介

1353
来自专栏黑白安全

罗克韦尔 Allen Bradley MicroLogix 1400 系列工控设备曝多项严重漏洞

罗克韦尔自动化公司的 Allen-Bradley MicroLogix 1400 可编程逻辑控制器( PLCs )被用于各种不同的工业控制系统(ICS)的应用和...

1042
来自专栏信安之路

如何优雅的绕过杀软获取系统权限

特征库扫描法:检查文件中是否存在与常见病毒相同的代码。如果匹配,则说明存在病毒。由于该方法较慢,因此现在一般使用通配符扫描法进行代替。

920

扫码关注云+社区