01 上网场景
在办公室工位上,使用笔记本电脑的有线网络办公;在公司会议室,没有那么多有线网络接口,则打开笔记本电脑的无线网络办公;想上Internet网,则设置上网代理,使用有线和无线连接互联网。这是多数公司职员的上网方式。
毕竟,有线网络比无线网络更稳定和快速,会优先使用;浏览外网网站,如果通过公司代理,会有流量和网站限制,并且会记录上网痕迹。
有时不想通过公司代理上外网,则需要将笔记本电脑连接到自己手机的热点,浏览外网网站。
能否不切换网络连接,在办公室工位上,电脑的有线连接、无线连接、手机热点同时在线,访问公司内网时优先走有线网络,没有有线网络时走无线网络,访问Internet外网时使用手机热点?
本文就讨论这个问题。通过本地主机的路由设置,来确定哪些连接走主机的哪个网络接口。如下图所示。
上网:Intranet 和 Internet
02 通过调整路由要达到的技术目标
笔记本电脑的有线网卡、无线网卡、智能手机热点的连接同时在线,任何时候不需要做任何配置的调整,保证内网、外网正常使用。
笔记本有线网卡使用内网,并作为优先使用内网的网络设备;笔记本无线网卡使用内网,当笔记本有线网卡不能使用时作为备用网络设备使用内网。
智能手机通过4G连接互联网,笔记本连接智能手机热点使用外部网络。
03 路由设置原理
电脑启动时一般会为每块网卡启动一条目标网络为0.0.0.0的活动路由,当电脑发起的网络数据包中目标IP地址和路由表中的记录无法匹配,无法确认该数据包发往哪个网关时,使用目标网络0.0.0.0对应的网关,来决定下一跳的位置。
当有多条0.0.0.0活动路由时,系统读取跃点数,优先使用跃点数最小的那条记录,将数据包发往对应的网关。该跃点数是网络适配器IPV4中的属性,可以在属性设置界面中配置。电脑启动时会将信息加入到动态路由中。
公司内网的ip地址或IP地址段一般来说是确定的,可以在路由表中配置这些ip地址或IP段,网关字段使用公司的内部网关,并配置成静态路由。这样发往内部网的数据包走公司内部网关实现数据的正确传送,不走0.0.0.0的默认路由。
外网IP在本机路由表中不做配置,这样电脑发送的数据包中目标IP不在路由表中,该数据包将通过0.0.0.0路由到对应的网关;当有多个0.0.0.0路由时,使用网络适配器设置中跃点数最小的接口作为发送设备,发送到该设备对应的网关上,实现外网上网。
04 域名服务DNS特列
一个实例:多网卡同时在线,想使用有线网访问公司内部网的门户网站xxx.yyy.com,但访问失败。
查找原因竟然是:有线网卡使用公司的默认DNS:172.16.9.*, 解析 xxx.yyy.com域名得到IP为10.180.*.*, 是公司内部网的一个IP地址,使用该IP地址肯定能正常使用门户网站。
笔记本连接的智能手机热点使用的DNS是:172.20.10.*, 解析xxx.yyy.com域名时得到IP为60.219.*.* ,是一个公网IP网址。
本机浏览器居然是使用那个公网IP地址访问内部网的公司门户,当然访问不了。
可见,采用域名访问时需要访问域名服务器DNS,有时同一个域名使用不同DNS时得到的IP地址可能不同,一个DNS认为该域名对应的IP地址是内网,另一个DNS可能认为是外网,导致访问时出现问题,怎样解决呢?
可以设置DNS顺序,各网卡设置的DNS要有一定的顺序,各网卡的DNS要做一定的手工配置。
修改智能手机热点的DNS配置,使用公司内网使用的DNS为首选服务器,同时将智能手机默认的DNS服务器设置为备用DNS服务器。这样无论何时解析xxx.yyy.com时得到的IP地址都是10.180.*.*,都能上内部网。
设置DNS服务器和备用DNS服务器
05 路由表内网访问的具体设置
在IPV4的IP段中,192.168/172.16/10 开头的ip地址一般都是留给企业组建自己的内部网络使用的,本文就用这类IP为例进行示例。
假设内网IP地址为172.*.*.*.*和10.*.*.*.*, 所有发往这些地址的数据包都走内网,内网有线网络的网关为172.21.140.*,内网无线网络的网关为172.21.208.*
添加静态路由:
Route add 172.0.0.0 mask 255.0.0.0 172.21.140.* metric 5 if 13 -p
Route add 10.0.0.0 mask 255.0.0.0 172.21.140.* metric 5 if 13 -p
Route add 172.0.0.0 mask 255.0.0.0 172.21.208.* metric 40 if 15 -p
Route add 10.0.0.0 mask 255.0.0.0 172.21.208.* metric 40 if 15 -p
06 设置DNS和跃点数,保证外网访问优先走热点
设置三块网卡对应的DNS和跃点数,智能手机跃点数最小,有线次之,无线最大。
设置智能手机热点的DNS和跃点数
设置有线网络的DNS和跃点数
设置无线网络的DNS和跃点数
07 设置结果说明
该电脑有3块网卡,分别是智能手机,接口号为20(见下面的截图),用来访问外网;Gigabit Network 网卡,接口号为13,优先访问内网;6200 AGN无线网卡,接口号为15,用于访问内网,当13号接口无效时,使用15号访问内网。
内网访问,设置成静态路由。手工设置route add 增加4条静态的永久路由。172和10打头的数据包使用172.21.140.*和172.21.208.*两个网关。两个网关的跃点数分别为5和40。
当两个网关都正常在线时,优先使用第一个网关,之所以设置成跃点数为5,表示优先使用该网关,因为该网关是有线网卡接口对应的网关,速度较快。
若第一个网关不可用,第二个网关可用,则使用第二个网关。之所有设置为40,优先级低,是因为这是电脑无线网卡对应的网关,速度较第一个要慢。
若两个网关都不可用,则访问内网失败。
外网访问的实现。由于系统开机时每个网卡可能都会形成一条0.0.0.0的活动路由,接口13和15是不允许访问外网的,故将20号接口即智能手机热点的跃点数设置为20,有线网络适配器跃点数设置为200,无线网络适配器跃点数设置为400。
电脑形成的数据包中目标IP不在上述172和10打头的范围内时,会将数据包发往跃点数为20的接口对应的网关172.20.10.*,实现外网访问。
设置内网访问和公网访问后的路由表信息
08 其他说明
文档中部分地方的IP地址使用了“*”,没有给出具体值;并不是172和10开头的IP地址都是给企业组建内部网使用的,用10.*.*.*和172.*.*.*可能会过滤掉一部分公网地址,需要根据自己公司的具体使用情况具体配置。