多网络接入时,路由表的维护
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。

浙公网安备 33010602011771号