多网络接入时,路由表的维护

16:01 2014/9/10

客户有一台服务器,需要连接2网络,网络A(192.168.67.X gateway 192.168.67.254),

医院内网;网络B(10.8.X.X gateway 11.8.17.68),医院专网。

把两根网线都插上,却发现总是只能访问到一个网络,要么网络A,要么网路B。

这时,就需要维护一下操作系统的路由表。

告诉操作系统,哪一个作为默认的网络,并且为不同的网段IP指定不同的网关。

例如:当访问10.8.X.X时候,走网络B,其他默认走网络A。

 

以Windows为例:

Windows上维护路由表需要,使用到route命令

 

首先,执行 route print 查看一下当前的路由表信息

Windows 的路由表分为两种,动态路由表和静态路由表

 

Microsoft Windows XP [版本 5.1.2600]

(C) 版权所有 1985-2001 Microsoft Corp.

 

C:\Documents and Settings\Administrator>route print

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

Interface List

0x1 ........................... MS TCP Loopback interface

0x2 ...00 36 76 0b c8 85 ...... 802.11n USB Wireless LAN Card - 360 Wifi QHNAT M

iniport

0x3 ...00 1e 90 a7 83 9d ...... Realtek RTL8139 Family PCI Fast Ethernet NIC -

数据包计划程序微型端口

0x4 ...00 00 1c d0 5b 3b ...... Realtek RTL8139/810x Family Fast Ethernet NIC -

数据包计划程序微型端口

0x5 ...00 ff 18 18 8f a0 ...... VENUS SSLVPN Adapter - 数据包计划程序微型端口

0x6 ...00 ff c5 82 bd 9f ...... TAP-Windows Adapter V9 - 数据包计划程序微型端口

0xc0008 ...00 53 45 00 00 00 ...... WAN (PPP/SLIP) Interface

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

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

Active Routes:<-----动态路由表

Network Destination Netmask Gateway Interface Metric

0.0.0.0 0.0.0.0 11.8.17.68 11.8.17.68 1

0.0.0.0 0.0.0.0 192.168.67.254 192.168.67.100 1

10.8.0.0 255.255.0.0 11.8.17.68 11.8.17.68 1

11.8.17.68 255.255.255.255 127.0.0.1 127.0.0.1 50

11.255.255.255 255.255.255.255 11.8.17.68 11.8.17.68 50

127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1

172.27.0.0 255.255.0.0 172.27.35.1 172.27.35.1 20

172.27.35.1 255.255.255.255 127.0.0.1 127.0.0.1 20

172.27.255.255 255.255.255.255 172.27.35.1 172.27.35.1 20

192.168.67.0 255.255.255.0 192.168.67.100 192.168.67.100 20

192.168.67.100 255.255.255.255 127.0.0.1 127.0.0.1 20

192.168.67.255 255.255.255.255 192.168.67.100 192.168.67.100 20

222.143.36.252 255.255.255.255 192.168.67.254 192.168.67.100 1

224.0.0.0 240.0.0.0 172.27.35.1 172.27.35.1 20

224.0.0.0 240.0.0.0 192.168.67.100 192.168.67.100 20

224.0.0.0 240.0.0.0 11.8.17.68 11.8.17.68 1

255.255.255.255 255.255.255.255 11.8.17.68 5 1

255.255.255.255 255.255.255.255 11.8.17.68 4 1

255.255.255.255 255.255.255.255 11.8.17.68 6 1

255.255.255.255 255.255.255.255 11.8.17.68 11.8.17.68 1

255.255.255.255 255.255.255.255 172.27.35.1 172.27.35.1 1

255.255.255.255 255.255.255.255 192.168.67.100 192.168.67.100 1

Default Gateway: 192.168.67.254

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

Persistent Routes:<-----静态路由表

Network Address Netmask Gateway Address Metric

 

 

获取到的路由表信息可能会很长,没关系,之关注动态路由表的静态路由表中的前两行就行。

大家知道,IP的规则中,0代表全部,掩码用来还分子网。

Network Destination Netmask Gateway Interface Metric

0.0.0.0 0.0.0.0 11.8.17.68 11.8.17.68 1

0.0.0.0 0.0.0.0 192.168.67.254 192.168.67.100 1

Network Destination和Netmask全部是0,代表所有的IP都会走这条路由指定的网关,也就是默认网关

但是操作系统只允许有一个默认网关,那么谁排在第一位,谁就有效,所以当前这台电脑其实只能访问

192.168.67.254这个网关所在的A网,B网是访问到的。

那么我想让10.8.开头的所有IP都去找11.8.17.68这个网关,那么路由信息就应该是这样的

Network Destination Netmask Gateway Interface Metric

10.8.0.0 255.255.0.0 11.8.17.68 11.8.17.68 1

默认其他所有的IP都走192.168.67.254这个网关,路由规则就是

Network Destination Netmask Gateway Interface Metric

0.0.0.0 0.0.0.0 192.168.67.254 192.168.67.100 1

最终前两条路由规则应该是

Network Destination Netmask Gateway Interface Metric

0.0.0.0 0.0.0.0 192.168.67.254 192.168.67.100 1

10.8.0.0 255.255.0.0 11.8.17.68 11.8.17.68 1

 

下面就是如果使用route命令来修改路由表

route命令分的很细,我们实际过程中,主要会用的就是

route add,route delete,route change这三个命令

首先我们需要修改一下默认路由

route change 0.0.0.0 mask 0.0.0.0 192.168.67.254

然后再添加一条新路由

route add 10.8.0.0 mask 255.255.0.0 11.8.17.68

这样就可以了。

 

但是这种修改在断网或者重启之后,失效了,系统会根据插入网线的顺序,重新制定路由表。

如果想要保留这种路由信息需要在命令的末尾添加-P参数,这个只能和route add配合

route add 10.8.0.0 mask 255.255.0.0 11.8.17.68 -P

 

如果网络总是时断时续,我又不想老是修改默认路由的话,我这里倒是有个笨方法

使用bat,新建个txt,写入下面内容,然后把后缀名修改为bat,双击执行

 

@echo off

:reping

ping -l 1 -n 3 192.168.67.12 && goto reping || goto shut

:shut

route change 0.0.0.0 mask 0.0.0.0 192.168.67.254

ping -l 1 -n 3 192.168.67.12 && goto reping || goto shut

 

 

这段代码的意思就是,我ping 192.168.67.12,ping3次,看能不能ping通,如果不能ping通,

就执行route change 0.0.0.0 mask 0.0.0.0 192.168.67.254,然后继续ping 192.168.67.12

这个过程会一直重复执行,确保默认网关始终是192.168.67.254。

posted @ 2014-09-11 11:08  影映山河  阅读(735)  评论(0)    收藏  举报