ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

【环境】 Windows Route管理

2021-04-08 11:03:29  阅读:213  来源: 互联网

标签:网关 网段 Windows 0.0 Route 环境 172.20 route 路由


Windows Route 管理

引子

还是一个老场景,需要让一台windows 电脑同时访问内网和外网。很多年前win7上折腾过,后来在win10 下几乎没遇到过问题,也就没再深究。
但是近期的场景下,老方案并没有生效,于是做了更深一点的探索。

场景

内网是一台核心交换机下连一个二层交换机,核心给这个下联口的地址是 172.20.1.x,二层交换机并没有直连服务器,要从核心转一圈,并且服务器网段为 172.20.11.x。
电脑直接插二层,会通过DHCP直接获取内网地址 172.20.1.x;可以正常访问服务器。
需要外网提供远程环境,这台电脑做内网跳板。外网的wifi用手机热点,所以外网网段常换。

现象是,wifi热点连接后,外网正常,但内网走不了,连内网自己的172.20.1.1都不可达。

排查问题

首先还是检查路由表

# 显示当前路由
route print -4 

检查的要点是,是否有多条 0.0.0.0 的路由,且最后的网关地址不一样。
如果说网关地址不同,但访问网段都是 0.0.0.0 ,代表所有网段的流量都要分别在这两个网关上走,显然是会影响访问速度,且会导致内网无法访问。

其次,需要检查外网的网关地址,是否和内网地址冲突。因为内网地址通常不可更改,所以如果冲突,需要外网网关做变更。手机热点通常还是192.168.0.0/24, 这次也有见到给 172.20.0.0/24的情况。

所以处理的思路很清晰,解决网段流量 和 网关的对应关系,并且确保外网网关没有和内网冲突.

解决过程

Step 1

首先删除多余的 0.0.0.0 路由。
注意,如果是远程操作,千万不要直接执行

route delete 0.0.0.0 

而是写内网路由的完整route:

route delete 0.0.0.0 mask 0.0.0.0 172.20.1.x

Step 2

  • 先查看路由表,确认删除的冲突条目已经处理完毕

  • 然后添加内网路由

route add 172.20.1.0 mask 255.255.255.0 172.20.1.1 -p

测试内网ping。

新问题

一般情况下,到这里就可以收工了,但我遇到相对复杂点的情况,就是既不能访问服务器,又不能ping通网关。这问题也卡了很久,多方查资料发现,route上还有个参数值叫 metric,中文为跃点数。
这个参数在【网络共享中心/网络适配器设置】 里是可以进行更改的,当然已经在操作route的情况下,直接设置也是有效的。

Step 3

metric值指定的是优先级,顾名思义,值越大优先级越高。再次查看配置好的路由表,发现两个条目的优先级一样。那么处理方式也简单了。
再次重复 step 1 ~ 2, 重建route,但是这次add的路由要增加 metric 参数,并且数值要大于0.0.0.0 条目最后的数值。

route add 172.20.1.0 mask 255.255.255.0 172.20.1.1 metric 50 -p

再次测试路由,172.20.1.1 可达了。

Step 4

但是此时我们仍然无法访问内网服务器,原因是服务器使用的网段并不是172.20.1.x/24。

参考route的各个参数值意义,除了metric值外,其他参数中 0 代表的总是所有值。所以为了让172.20.1.x/24 和 172.20.11.x/24互通,有两种解决思路。

Plan A

  • 通过修改子网掩码,让整个网络自行实现互通。

可以使用ip计算器工具,计算出合适的掩码范围。但是这样事实上需要路由设备(此处是核心交换机)彻底修改路由逻辑来支持,且不能利用它的路由功能实现网段的隔离,显然不符合我们的业务要求。

Plan B

  • 通过给本机的route上增加一条 172.20.11.x/24 ,网卡172.20.1.x 的路由不就好了?

当然这样是会报错的。

Plan C

  • 至少服务器和二层交换机的网段都在 172.20.x.x上,按照路由的编写规则,我只要考虑写成 172.20.0.0 不就ok了?

以上正解。

所以最终执行:

route add 172.20.0.0 mask 255.255.255.0 172.20.1.1 metric 50 -p

【但是!】如果你的热点给的网关也是172.20.x.x开头,这样就一样会冲突,或者导致外网不可达

标签:网关,网段,Windows,0.0,Route,环境,172.20,route,路由
来源: https://www.cnblogs.com/DannielZhang/p/14631220.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有