网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。

Hello 我是不多BB的未命名,这期录个windows下非常有意义且实用的 route命令实战。早在2020年分享用群晖NAS实现办公室与家庭网络做异地组网时就提到过这个东西,但当时出于篇幅考虑没细说,日常断断续续收到不少观众提问,不少情况都能用route命令解决,所以本期科普的同时顺便填个坑,如果本期看的比较晕,建议先温习上一集。

https://itdog.one/153

说到很多问题都能用route命令解决说明它很重要,但观众一定在想为什么这么重要的东西似乎完全没听过,这不应该啊。因为只有PC处于多网络的背景下,route命令才有可能会用到。它的作用是规划多网络下的数据传输,俗称路由表,因此route命令的本质是围绕windows路由表做增删改查的命令。

什么是多网络环境

比如我家庭PC有2张网卡,1张千兆1张万兆。

图片[1]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog

千兆的接入互联网,万兆的和家庭服务器直连,因为直连数据是本端ip直达对端ip的,数据不过路由器,所以是完全独立于家庭路由器之外的网络,虽然是个微型局域网但同样属于PC接入了2个网络。现实极少有人多插一张网卡, 但有线+无线一样能做到分别加入2个局域网。不少运维到现场都是笔记本插甲方内网网线,然后WIFI连手机热点实现同时上内外网。

再比如我公司办公室PC虽然只有1张网卡,但是通过PPTP、L2TP等方式让windows生成一个虚拟网卡,也等同接入了2个网络。

图片[2]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog

以上两个例子为了表明一个道理,多网络环境并不一定是物理网卡组建的甚至很多第三方加速器软件,连虚拟网卡都不生成的。只要PC在链路上拥有访问多个局域网的权限,那么route命令就有用武之地,因为多网络下windows自己生成的路由表经常很蠢。比如前面举例的笔记本网线插内网,wifi连手机热点,时常出现只能上外网或只能上内网的情况。

这里我做个情景演示

录屏这台PC是我公司办公室电脑,目前WIFI没连,唯一工作的网络连接就是插了公司网线的物理网口。一般来说大公司网络都是内外网隔离的,要么只能上内网要么只能上外网,但我是管理员所以我这台106网段的电脑可以同时上内外网。比如我现在就能访问内网107网段下的海康监控平台。

图片[3]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog
图片[4]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog

接着通过互联网进行PPTP拨号,当连上家里的PPTP Server后就实现了远程异地组网,此时PPTP的网络连接就会让这台PC加入我的家庭局域网。

图片[5]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog

比如现在可以直接用内网IP打开家里的路由器页面,也可以用内网ip打开家里的NAS,可以看到我家是99网段。

图片[6]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog


虽然讲道理PC有两个网络连接,就理所应当该拥有同时访问这2个网络的能力。但现实是如果不维护路由表大概率只有糟心,稍后我会初始化路由表做案例演示,为方便对比先看看我维护好的路由表。

打开cmd 输入命令

route print -4

可以看到ipv4下的路由表规则还是比较多的。

图片[7]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog

重置ipv4网络

打开cmd 执行

netsh int ipv4 reset

我非常建议当路由表彻底搞坏后选择重置网络,而不是用-f命令去清空路由表。

route -f

如果路由表彻底清空是任何网络能力都没有的,而重置网络路由表会保留基本的上内外网规则。

重置后需要重启电脑,开机后再次查看路由表 route print -4 可以看到规则简化了很多。

图片[8]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog

再次确认一下网络背景

办公室PC的物理网口ip没有变还是106网段,并且访问公司107网段的海康威视监控平台毫无问题。然后连接PPTP让这台PC加入我家的局域网,用家里内网ip访问NAS也毫无问题。至此看上去毫无破绽,但回过头你会发现公司内网的访问权限没有了!

如果现在放弃家庭局域网,断开PPTP连接,公司内网秒恢复。这局面就是前文所述的情况,表面看2个网络都连接通常,但实际不能同时使用只能二选一。那为什么维护路由表能解决这问题呢,因为路由表核心参数是网关。

图片[9]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog

网关是什么

可以理解成流量代理人,流量代理人又意味着啥,意味着网关设置成106.1客户端流量的下一跳地址必然是106.1。因为客户端的网络请求可以有无数个目标,客户端自己也不知道怎么抵达目的地,有了网关的概念,客户端就不需要想那么长远只要无脑把请求甩给下一跳网关即可。

比如本机ip是1网关是什么92.168.106.118 同事可能是106.117 但相同点在于大家网关都是106.1 这就意味着我和同事电脑上的所有网络指令最终都由106.1这个设备处理,至于106.1怎么处理那是它的事客户端无权干事。

可能有疑问从公司墙里出来的网线插电脑上,墙后边这跟网线可能跳了好几个交换机,那这些交换机是什么角色。告诉大家一个很简单的理解方式,你就把交换机当导线,无论过多少交换机你都当没有这会事,因为交换机不受理你的流量请求,三层交换机除外。用这个知识点带入一下,那我公司的106.1是个什么设备?要么是路由器要么是三层交换机。当然跳出本阶段的知识点,其实也有可能是防火墙之类的其他网络设备。

回归主题捋一下逻辑,这台PC任何网络请求都会交给106.1来处理。所以什么网站能上什么网站不能上由106.1这个设备决定。这条逻辑怎么体现出来呢,打开路由表。

图片[10]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog

0.0.0.0 代表全体网络目标,意思也就是所有默认的网络请求都会交给106.1处理。这条命令也碰巧解释了为什么路由表这么重要的东西似乎不维护也不影响使用,因为当电脑只有一个网络连接的时候,windows本机的路由表几乎没有意义因为这台电脑所有网络请求只能交给106.1处理。

但现在连接上PPTP后,能不能访问家里局域网由谁决定,由PPTP的网关决定。

图片[11]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog

不显示网关因为是虚拟连接,有点超纲,但这个连接的实质网关和ip相同。本机IP和网关相同的场景非常少见,一般只有在路由器上会出现,所以这个PPTP的连接你可以理解为接入了一个虚拟路由器,所有流量交给虚拟路由器PPTP处理了。

当PC拥有2个网络连接后,流量请求到底是交给106.1处理还是交给 PPTP 处理就成了Windows的难题。在路由表中的体现就是有2条0.0.0.0的全局网络规则,解决办法是告诉电脑XXXX网段是公司内网,这些流量应该由106.1处理。XXXX网段是家庭局域网,这些流量应该交给 PPTP 处理。而这个分配操作就叫维护路由表。

图片[12]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog

所以现在视线移回路由表,网络目标和子网掩码 指的是你流量访问的目的地。

图片[13]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog


网关指访问目标的流量由那个网关处理

图片[14]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog


可以看到接口就刚好代表了本机在这个网关下的ip地址

图片[15]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog


跃点数越小优先级越高,所以相同规则实际执行的是跃点数小的哪个,目前PPTP的跃点数小,说明我连上PPTP后,流量默认是由PPTP处理而非106.1处理。

图片[16]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog


这顺带就解答了,为什么连上PPTP后公司内网上不了。因为默认流量全由PPTP处理,而PPTP走的家庭局域网,在家庭局域网里访问公司内网地址自然是无法抵达的。

所以现在需要把公司内网的路由维护上。

route add -p 192.168.107.0 mask 255.255.255.0 192.168.106.1
图片[17]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog



route add 是添加路由的命令
-p 代表这条路由永久有效
-p后面跟上要访问的目标地址107.0代表107网段下的全部地址
接着输入掩码
最后用核心参数网关结尾

执行成功后,客户但所有访问107网段的流量就都会由106.1这个网关处理。

多网络规划思路

聪明的小伙伴至此可能会发现一个问题,凭什么连上PPTP后所有流量默认走PPTP。既然在公司正确路子就应该是默认流量从公司走,特殊的家庭局域网流量才走PPTP。
这样理解确实没错,因为这样网络效率最高,并且家里网段少用route add维护一两个网段就齐活。
但我这么做有2个原因:

①互联网请求走家里网络虽然流量绕圈子了,效率低,但绕回家后我的流量就能上谷歌了。

②走PPTP顺带流量就做了加密,可以保护自己的浏览记录不被公司的网络审计软件扒光。

最后拓展内容

如果你就是要默认流量走公司,最简单的办法直接改跃点数。

图片[18]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog

对于虚拟连接改跃点数是可能没用,因为还有一个强制优先级的设置。勾上这个选项意味着强制本机默认流量走PPTP,如果不勾则默认流量走本地连接。

图片[19]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog

实测一下网关切换选项

首先删掉刚添加的107网段路由将路由表恢复成默认状态。

route delete 192.168.107.0
图片[20]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog

应用设置并重启PPTP连接,然后测试连接公司内网无问题,连接家里NAS出现无法访问。

现象表明目前默认路由全指向了106.1导致访问家庭局域网的流量没指对网关,所以在路由表中把家庭局域网流量甩给PPTP的网关即可。

route add -p 192.168.99.0 mask 255.255.255.0 192.168.98.1
图片[21]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog

至此成功将默认流量从PPTP切换到106.1处理,并且实现同时上公司内网与家庭局域网。

图片[22]-网络基础认知:网关 + 实战维护路由表!利用route命令,VPN完美异地组网。-itdog

网关的网关

本期内容理解后就对基础网络结构有了认知,简单概述客户端流量的下一跳永远都是网关设备,而网关设备接收到客户端的流量请求后又会在自己的路由表中查询数据包下一跳该传给谁,比如内网跨网段的数据应该甩给那个网关,而通向互联网的数据又该甩给那个网关。而下一个网关接收到数据后也依靠路由表执行着相同的操作,直到数据包抵达目的地则访问成功或彻底找不到下一跳网关访问失败。

命令整理

查看全部路由表:route print
查看IPV4路由表:route print -4
重置IPV4网络:netsh int ipv4 reset
清空路由表:route -f
添加路由:route add -p [目标网络地址] mask [子网掩码] [指定的网关]
添加路由示例①:route add -p 0.0.0.0 mask 0.0.0.0 192.168.1.1
添加路由示例②:route add -p 192.168.107.0 mask 255.255.255.0 192.168.106.1
删除路由:route delete [目标网络地址]
删除路由示例:route delete 192.168.107.0



© 版权声明
THE END
原创不易,且珍惜。
点赞7赞赏 分享
评论 抢沙发
头像
欢迎留下宝贵见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容