【51CTO.com 独家特稿】公司用的服务器种类繁多,有FreeBSD8.1-64bit、windows2003_R2-64bit和cetnos5.5-64bit,而规划的网段不少,有192.168.4.0、192.168.10.0、192.168.20.0、192.168.21.0,还有10.1.0.0,其中192.168.4.0属于办公网络;还有192.168.20.0和192.168.21.0属于开发环境,192.168.10.0和10.1.0.0属于线上环境(对外提供服务),but很多时候路由器及防火墙都做了严格控制(因权限方面的原因不能随便更改其rule规则),这时需要手动在服务器或客户机上手动添加路由,我这里就简单归纳一下,希望对大家的工作有所帮助。附注:
这里的服务器系统均以64bit的windows2003、FreeBSD8.1及Centos5.5说明。
一、这里先说下最简单的windows2003和windowsxp、windows7下静态路由配置,这个比较简单:
route add 192.168.4.0 mask 255.255.255.0 192.168.4.2
route add 是windows下route添加网段的特定语法(非route add -net),192.168.4.0是你需要路由的网段,mask后面是此网段的子网掩码,192.168.4.2是下一跳地址,这里详细注明下,要注意与centos和FreeBSD的区别,不然很容易混淆
如果要永久添加路由呢?
ROUTE命令可以在XP、2K/2003、WIN7等操作系统下手工的静态路由配置,但是重启之后路由便丢失了,还要重新增加,那么怎样能让路由一直保待,重启后仍然存在呢?其实很简单,在增加路由的命令后加上-P开关就可以了。例如
route -p add 10.10.0.0 mask 255.255.0.0 192.168.4.222
-p参数详解
与Add命令共同使用时,指定路由被添加到注册表并在启动TCP/IP协议的时候初始化IP路由表。默认情况下,启动TCP/IP协议时不会保存添加的路 由,与Print命令一起使用时,则显示永久路由列表。所有其他的命令都忽略此参数。永久路由存储在注册表中的位置是,注意最后一副图画红线的部分,它也可以验证我们新增的命令会永久的增加静态路由。(注意最下面一副图画红线部分)
HKEY_LOCAL_MACHSYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes
 
但很多时候,我们只是临时需要增加路由呢?如果这个过程比较重复,其实可以写一个批处理,要用时双击即可,
例如edit c:\windows\route.bat
@echo off
route add 192.168.4.0 mask 255.255.255.0 192.168.21.3
route add 192.168.10.0 mask 255.255.255.0 192.168.21.3
route add 192.168.21.0 mask 255.255.255.0 192.168.21.3
route add 10.1.0.0 mask 255.255.0.0 192.168.21.3
添加永久路由看需求了,有时如果仅仅只是open×××需求,就没必要用route add -p添加进路由表,只用bat处理下即可;顺便提下windows下查看本地路由表的命令是route print,注意不要与Linux/FreeBSD发生混乱。

二、再说下比较常见的Centos5.5 下的永久添加静由方法,手动添加路由的方式为:
route add -net 172.16.6.0 netmask 255.255.255.0 gw 172.16.2.25
route add -net是centos下的添加静态路由网络的方式,netmask是网络段的子网掩,gw表示下一跳的地址,其实就是指172.16.6.0此网段的路由通过172.16.2.25出去,这只是临时的效果,如果服务器重启则失败,如何能让其永久生效呢?其实可能将其写进文件中,如下:
vim /etc/sysconifg/network-scripts/route-eth0
127.16.6.0/24 via 172.16.2.25
服务器重启也不需要担心了,它会一直生效的
Centos下查看路由表的方式蛮多的,netstat -rn或route -n均可;linux下的相关资料也比较多,我这里也不作重点说明了
三、FreeBSD下较之上面二种服务器较少,所以在其下添加路由不常见,有时还很容易混淆,注意与centos等系列的linux区分,即如果要添加一条网段为172.16.6.0,下一跳地址为172.16.2.25的路由,即
route add -net 172.16.0.0/24 172.16.2.25
这里注意与centos5和windows2003下的区别,它后面是不接子网掩码这个参数,即172.16.0.0/24,如果硬要接上mask参数的话,shell会产生报错信息
bad netmask
如果要添加永久路由呢,其实也很简单,即在/etc/rc.conf最后添加,如下命令行可以为你的FreeBSD机器添加4条永久静态路由
static_routes="net1 net2 net3 net4"
route_net1="-net 192.168.4.0/24 192.168.21.3"
route_net2="-net 192.168.10.0/24 192.168.21.3"
route_net3="-net 192.168.20.0/24 192.168.21.3"
route_net4="-net 10.1.0.0/16 192.168.21.3"
顺便提下FreeBSD下的查看路由的命令为netstat -rn,如下: