内外网同时访问技术(全/终极篇)

内外网同时访问技术(全/终极篇)
本文转载自荷风的日志《内外网同时访问技术(全/终极篇)》

(注:此文已发表在国家级知名杂志《网管员世界》2011年3,4期合刊上。)

随着互联网的兴起,很多单位/企业都建立了自己的网络(简称内网),同时也能够访问互联网(简称外网)了。但是由于企业/单位领导担心安全问题,或是本身的技术问题,有好多单位/企业并不能同时访问内外网,而是频繁的换网线或者换IP地址在切换内外网之间切换,非常的不方便。其实,不必如此麻烦!同时访问内外网并非难事。

要同时访问内外网,不得不考虑网络的拓卜结构。最理想的拓卜结构如下:

route-internal-external-p01.jpg

说它最理想,是因为非常灵活,当增加外网时,无需改变内网结构和增加设备,只需直接入三层交换机,在三层交换机中加入相应的路由就可以了。同时具有强大的网络访问控制能力,在接出的路由器中,可以根据需要对网络访问进行控制。当然这个功能不在本文讨论范围,这里不作赘述。

以上图为例,PC机的IP地址为192.168.0.11,子网掩码为255.255.255.0,默认网关为192.168.0.1。假设内网均以10打头,既10.XXX。XXX。XXX,经由路由器Router3,缺省为访问Internet 经由路由器Router2。则三层交换机作如下设置:

Router(config)#Interface vlan1 (在没划分Vlan的情况下,默认全在Vlan1)

Router(config-if)#Ip address 192.168.0.1 255.255.255.0 (默认网关)

Router(config-if)#No shutdown (启动Vlan)

Router(config-if)#Exit (退出Vlan设置)

Router(config)#Ip routing (启用路由功能)

Router(config)#Ip route 10.0.0.0 255.0.0.0 192.168.0.3 (内网路由)

Router(config)#Ip route 0.0.0.0 0.0.0.0 192.168.0.2 (Internet/缺省路由)

经此设置后,当PC机访问内网时,三层交换机自动经由路由器Router3,否则经由路由器Router2。当然,路由器里要进行相应的路由设置。

在实际当中,有好多单位/企业并没有三层交换机,而是使用二层交换机,其拓朴结构如下图:
route-internal-external-p02.jpg

因为二层交换机没有路由功能,所以,路由功能必须由PC机实现。在每台PC机上进行如下设置:

点开始→运行,在打开里面输入CMD回车,进入DOS窗口,运行如下命令:

Route add 10.0.0.0 mask 255.0.0.0 192.168.0.3 –p

Route add 0.0.0.0 0.0.0.0 192.168.0.2 –p

在网卡IP设置了默认网关192.168.0.2时,第二句可以不要。至此,实现了二层交换机下同时访问内外网。但值得一提的是,如果内外网网关不在同一个网段时,比如访问内网网段是10.112.164.0/24,网关为10.112.164.1,而访问外网网段是192.168.0.0/24,外网网关为192.168.0.1时,则需要设置双IP。如图:先将外网IP、子网掩码设置好,默认网关设为外网网关,再点高级,添加内网IP地址和子网掩码。

route-internal-external-p03.jpg

记得别忘了在dos窗口下运行上面那两条加路由的命令:

Route add 10.0.0.0 mask 255.0.0.0 10.112.164.1 –P

Route add 0.0.0.0 mask 0.0.0.0 192.168.0.1 –P

还有一种情况,可能是出于安全考虑,内外网各用一个交换机,进行物理隔离,需要上外网的拉两颗网线。此种组网现实中确实存在,但并不多见。其拓卜结构如图:

route-internal-external-p04.jpg

此时,如想同时访问内外网,必需采用双网卡,一块网卡接内网网线,设置内网IP地址和子网掩码,默认网关不填(因为一台PC机,只能有一个默认网关)。另一块网卡接外网网线,设置外网IP地址和子网掩码,默认网关设为外网网关,需要注意的是,如果内/外网的IP地址一样,windows会弹出一个警告框,别理它,直接选否。接下来的事情就和上面的一样了,运行那两条加路由命令即可。

以上是我所遇见过的三种网络结构,使用这三种方法,都能很好的解决同时访问内外网的要求。三层交换机组网最好,二层交换机次之,双网线最不好,因此极为少见。

==============================================================================================

用route命令解决双网卡同时上内外网
如题。本来这个方法也是从网上学来的,本不值得一记。但是,在网上学的那篇文章有几处地方讲错了,或者是没讲述明白,所以有N多人照葫芦画瓢失败了!

利用双网卡同时上内外网,必须具备一个条件,那就是内外网的网关必须不同。如果内外网的网关相同的话,无论如何都搞不上的。比如,可以一个是192.168.1.1,一个是192.168.1.2。

以下是网上学到的配置方法:

首先,配置好两块网卡的IP地址,留一块网卡的网关不填。注意:必须留一块网卡的黙认网关不填,否则,两个黙认网关,会使系统混乱,这就是平常配置两块网卡不能同时使用的原因。一般而言,内网访问的地址是固定的,也比较少。应该让内网的网关空着。当然了,哪个牛人硬要把外网的网关留空也可以,只是接下来的路由配置就麻烦了。

其次,配置路由。在命令模式下,输入以下命令:route add xxx.xxx.xxx.xxx mask yyy.yyy.yyy.yyy zzz.zzz.zzz.zzz metric 2 if zzz.zzz.zzz.zzz 其中:xxx.xxx.xxx.xxx是你没填网关的那个网的网络地址(目标地址),可以用0表示任意地址,比如192.0.0.0就表示192开头的所有地址。但需要注意的是,千万别来个0.0.0.0(任意地址),如果那样的话,你的另一个网,将不能用,因为所有的目标都走这块网卡。切记!yyy.yyy.yyy.yyy是你没填网关的那个网的掩码,同样也可以用0表示任意。zzz.zzz.zzz.zzz是你没填网关的那张网卡的网关。这条命令的意思是增加一条路由,它的作用是,当要访问xxx.xxx.xxx.xxx时,明确告诉系统由zzz.zzz.zzz.zzz这个网关出去。如果你的内网有访问多个不同的段,你可以加多条不同这样的命令。

以我的配置为例。我的外网是自动获取IP地址与网关,我的内网IP地址是10.112.164.58,子网掩码是255.255.255.0,网关是10.112.164.3(不填),我的内网访问的是以10和135开头的IP地址,所以,我的路由配置如下:

route add 10.0.0.0 mask 255.0.0.0 10.112.164.3 metric 2 -p

route add 135.0.0.0 mask 255.0.0.0 10.112.164.3 metric 2 -p

"-p"这个参数的意思是永久写入路由表,这样,就不用每次开机后运行这两条命令了。

至此,大功告成。但是很明显,这样做有漏洞:如果某个外网的IP地址是10或者135开头的话,那将访问不了,因为10和135开头的IP地址都由内网网关出去。解决的办法是精确配置每个内网的IP路由而不是用0来通配。但是,这样配置显然太费事,你得把你所有可能访问到的内网IP都得加上去,效率可想而知。这也是为什么不把外网的网关空着来配路由的原因,除非你想控制只能访问指定的几个外网地址。

==============================================================================================

用Route命令同时上内外网的补充
-----单网卡也同时上内外网

上一篇《用Route命令解决同时上内外网》的文章,适用有两块网卡的情况。如果只有一块网卡就不行了,这时,如果内网外网是混合的,即用的同一个交换机,那么就可以用下面的办法解决。但如果是内外分开的,即内外网各用各的交换机,则无论如何是没办法用一块网卡同时上内外网的。

因为是混合组网的,内外网都是通过同一颗网线实现的,只不过,内外网的IP地址跟默认网关不同罢了。这就为实现一块网卡同时上内外网提供了可能。原理跟上一篇文章是一样的,只不过因为是内外网混合的,把两个IP地址都加到一块网卡上了而已。

要实现一块网卡同时上内外网,除了具备内外网混合组网的条件外,你还必须知道内外网的IP地址和DNS,因为好多外网是自动获取IP地址和自动获取DNS的,一般用户是不知道IP地址跟DNS的。这就需要问网管了。准备就绪,开始!

同上一篇文章一样,缺省网关和dns用外网的,路由加内网的。如果缺省网关和DNS用内网的,路由加外网的也一样,只是费事而已。还是以我的网络为例:我的外网IP为192.168.1.2/254,外网网关为192.168.1.1,外网DNS为:211.139.2.17,为了方便已设为自动获取IP地址和自动获取DNS。内网IP为10.112.164.58,内网网关为10.112.164.3。设置如图。首先将IP地址设为192.168.1.101,子网掩码为:255.255.255.0,默认网关为:192.168.1.1,DNS为:211.139.2.17。关键在于第二步:点高级,再添加一个内网IP地址:10.112.164.58,子网掩码为255.255.255.0。默认网关加不加内网网关是一样的,我实验过。IP设置完毕!

route-internal-external-p05.jpg

最后一步,加路由:route add 10.0.0.0 mask 255.0.0.0 10.112.164.3 -p

route add 135.0.0.0 mask 255.0.0.0 10.112.164.3 -p

原理、命令、缺陷和解决方法跟上一篇完全一样,不再啰索。OK,搞定!

补充:经过实验,此方法对于两个以上的IP地址和网络一样适用.

还有.子网掩码的格式要和网络目标地址的格式一致,主要是0的个数,比如route add 10.110.0.0 mask 255.255.0.0 .....如果不是,写成route add 10.110.0.0 mask 255.0.0.0 .... 会出错,提示子网掩码不对!这是我在设置三个IP地址跟网络的时候出现的.

此方法在winXP,win2003,winVista,win7中均通过,98/95以及更早的windiws版本没试过,估计不行。另外注意,在vista和win7中,要有足够的权限,如果当前用户为非管理员权限,那么,在运行cmd的时候,要右击以管理员身份运行,否则运行上面的命令的时候会因为权限不够而操作不成功!

标签: none

添加新评论

18luck 365bet 888zhenren aomenduchang aomenjinshayule baijiale bbin beplay bet007 betvictor betway bifa bst hg0088 bwin fenghuangyule jinbobao lebaijia long8 manbet quanxunwang shenbotaiyangcheng tengbohui ule vwin w88 wellbet WilliamHill yulepingtai laohuji