routeadd命令详解
route add命令的主要作⽤是添加静态路由,通常的格式是:
route ADD 157.0.0.0 MASK 255.0.0.0 157.55.80.1 METRIC 3 IF 2
参数含义:^destination ^mask ^gateway metric^ ^interface
destination【⽹段地址】
mask【⼦⽹掩码】
gateway【⽹关地址】
metric 【路由跳数】
if【端⼝号】
⼀般情况下,不涉及本机地址,除⾮你要做测试。
其中:
可以省略【路由跳数】参数;
当通往该⽹关地址的路径唯⼀时,【端⼝号】参数可以省略。(因为在多端⼝的路由交换设备上,可能存在通往同⼀个IP地址的多条备份路径。)
mask 是关键字,不能省略。
route add 134.105.0.0 mask 255.255.0.0 134.105.64.1
意思是:所有需要发往134.105.0.0/16地址段的IP数据包,全部由134.105.64.1路径转发。
这个命令在⼤型IP⽹络组建时经常⽤到,在不同⼚商的设备上命令格式可能不同,但原理是⼀样的。
如果有多条路由,根据不同的路由协议(⽐如rip, ospf等)的规定,⼀般优先选择⽹段地址⼩的路由。⽐如,当以下两条路由同时被添加的时候:
route add 134.105.0.0 mask 255.255.0.0 134.105.64.1
route add 134.105.128.0 mask 255.255.128.0 134.105.0.1
⽬标地址是134.105.128.1的IP包会优先选择第⼆条路由。
***************************************************
#! /bin/bash
sudo route add -net 192.168.2.0 netmask 255.255.255.0 gw 172.24.16.1 metric 5
多⽹卡
不久前,我单位通过光纤专⽤线路,以局域⽹⽅式接⼊了Internet。由于没有采⽤路由器,因此内部⽹络⽤户对Internet和内部城域⽹的所有访问均通过代理服务器完成,采⽤完全代理⽅式。在代理服务器上安装了三块⽹卡,两块⽹卡采⽤公⽹IP地址,接⼊Internet和城域⽹;另
⼀块⽹卡则采⽤私有IP地址,通过代理服务器实现内部⽹与Internet、城域⽹的连接。
⽹络基本情况
根据不同的使⽤需要,将不同部门、不同机房划分为若⼲⼦⽹,使⽤不同⽹段的私有IP地址。因此,⽹络中存在不同⽹段的信息包经过代理服务器的路由问题。
其中代理服务器对内部⽹卡的IP是192.168.4.9,连接城域⽹的⽹卡IP是10.99.2.2,连接Internet的⽹卡IP是211.167.148.150。另外机房也使⽤了代理,两块⽹卡的IP分别是192.168.4.96和192.168.0.1。
问题⼀
192.168.4.0这⼀⽹段的⼦⽹能正常访问外部⽹络,⽹段为192.168.0.0的机房能访问校园⽹,却不能连接外部⽹络。通过ping命令检查,能ping通192.168.4.1等主机,但是在ping代理服务器(192.168.4.9)时,得到“Request timed out”的反应,看来是
192.168.4.9这台主机的回应包未能被正确地路由到192.168.0.0⽹段。
⾸先将对内⽹卡设置默认⽹关192.168.4.96,这样设置以后,虽然机房的计算机能访问外部⽹络,但是速度很慢。同时,以前能正常访问外部⽹络的192.168.4.0⽹段,访问速度也变得出奇的慢。员⼯们也开始埋怨,这是什么宽带,⽐家⾥拨号的速度还要慢!
看来这种⽅法是不可⾏的。通过Route print命令,观察代理服务器的路由,有这么⼀条:
Network Destination Netmask Gateway 0.0.0.0 0.0.0.0 192.168.4.96 Interface Metric 192.168.4.96
通过分析我们可以知道,关键是上⾯那条路由有问题,它的⽬标地址是0.0.0.0,所以所有的回应包被
送到了⽹关192.168.4.96。⽽我们的要求是192.168.0.0⽹段的回应包发到192.168.4.96,其他的就直接发到对应的主机。这时笔者想到,如果将上⾯路由中的⽬标地址改为192.168.0.0,是不是可以实现这⼀⽬的呢?
路由配置⽅法
通过查相关资料,笔者发现只要把机房与当前代理服务器所在的⽹关地址做⼀下路由即可。当前的内⽹划分了两个VLAN,服务器所在VLAN的⽹关是192.168.4.9,机房⽹关接⼊内⽹⽹卡IP是192.168.4.96。需要运⾏的命令是:
route -p delete 0.0.0.0 mask 0.0.0.0 192.168.4.96 route -p add 192.168.0.0 mask 255.255.255.0 192.168.4.96
经过调试,将机房内部⽹卡的⽹关设置为192.168.0.1,⾄此,以前出现的⽹速慢的问题得到解决。
问题⼆
后来想想,其实这个问题也是⼀直存在的,只不过由于以前⼀直被⽹速慢的问题困扰,所以没有注意到。⽹络总是出现停顿,⽽QQ的使⽤却很正常。
⽐较了使⽤两块⽹卡和三块⽹卡⼯作时的路由情况,发现其实这个问题和上⾯的问题是类似的,都是因为⽹关的设置造成数据包路由信息发⽣混乱,通过禁⽤城域⽹⽹卡虽然解决了经常断⽹的问题,但是不能访问城域⽹,所以决定修改路由:
route -p delete 0.0.0.0 mask 0.0.0.0 10.99.2.1
经过这次实践,发现内部⽹卡的⽹络属性不能设置⽹关和DNS服务器,不然会造成数据包路由信息发⽣混乱。通过修改路由,采⽤三⽹卡代理时出现的⽹络问题得到解决。⽤Route命令⼿⼯修改路由简单实⽤,希望能够对⼴⼤中⼩企业⽤户有所启⽰。
route命令主要⽤于⼿动配置静态路由表
例:增加⼀条通过⽹关到达令⼀⼦⽹的路由
#route add net remote_net_ip gateway_ip 1
  其中add代表要增加路由,net表⽰路由到达的是⼀个⽹络⽽不是⼀台主机,1代表远端⽹络需通过⽹关才能到达
(直接通过⽹络接⼝相连时,该参数⽤0)
命令格式:
#route add -net remote_net_ip gateway_ip -netmask netmask
#route add -host host_ip local_interface_ip -interface
使⽤"delete","change"命令参数可以对路由表中的路由信息进⾏删除和修改
使⽤"netstat -rn"命令查看当前的路由信息
如果静态路由表配置错误的话,不管你的⽹卡参数在怎么设置的准确⽆误也⼀样⽆法连接⽹络
利⽤命令 netstat -r 或 route print 可以查看本机路由表(图1,2)
Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.78 20
第⼀个0.0.0.0表⽰⽬标IP
第⼆个0.0.0.0表⽰⼦掩码
192.168.1.1是本机⽹关
192.168.1.78是本机IP
那个20表⽰度量值
这个路由条⽬就表⽰本机对所有⽹段的访问都通过192.168.1.1这个⽹关
如果我们想定义路由条⽬的话(同时也想整下别⼈的话)
route delete 0.0.0.0 //⾸先对⽬标IP 0.0.0.0(也就表⽰所有⽹段)访问时指向的⽹关进⾏删除
route add 0.0.0.0 mask 0.0.0.0 192.168.1.254
//建⽴⼀组新的路由条⽬,重新建⽴对⽬标IP 0.0.0.0(也就表⽰所有⽹段)访问时指向的⽹关,注意这⾥的⽹关必须和本机IP同⼀个⽹段,⽐如我的本机IP是192.168.1.78,那么这⾥的⽹关就必须是192.168.1.X,不然回提⽰出错(图3),但是本次建⽴的路由条⽬会在下次重起时⾃动消失还原,如果想永久建⽴的话需要加上⼀个 -p 参数
其实 route 的最⼤魅⼒就在于可以跨⽹段访问,⽐如你所在在的⽹络存在两个⽹络,外⽹(192.168.1.1)内⽹(10.0.0.1)
route add命令实例
本机IP可以设置很多个,在TCP/IP属性⾥点⾼级添加(图4),但是默认的⽹关只能有⼀个,所以要想外⽹内⽹⼀起访问我们只能借助于route命令,由于默认的是访问外⽹的路由条⽬,所以我们只需要对10.0.0.0⽹段访问指向的⽹关进⾏永久建⽴
route add 10.0.0.0 mask 255.0.0.0 10.0.0.1 -p
转载:route命令详解
屏蔽IP地址
通常情况下,使⽤防⽕墙来阻断因特⽹交通是最好的办法。但是,低端防⽕墙,⽐如Internet Connection Firewall并不能过滤单个IP地址。有⼀个过滤单个IP地址的办法是调整电脑上的路由表。路由命令⾏⼯具可以解决这个问题。这是⼀个较难使⽤的⼯具。不懂路由知识⽽贸然调整可能会导致电脑与⽹络失去连接。下⾯这样的命令可以阻断与IP地址为220.189.126.2的通信:
route –p add 220.189.126.2 MASK 255.255.255.255 192.168.1.0 METRIC 1 IF 2
需要根据你的计算机调整接⼝号码,⽬的地IP应改为本地⽹络上以前不存在的⼀个地址。
Route命令详解
在本地 IP 路由表中显⽰和修改条⽬。
语法
route [-f] [-p] [Command [Destination] [mask Net mask] [Gateway] [metric Metric]] [if Interface]]
参数
-f:
清除所有不是主路由(⼦⽹掩码为 255.255.255.255 的路由)、环回⽹络路由(⽬标为 127.0.0.0,⽹掩码为 255.255.255.0 的路由)或多播路由(⽬标为 224.0.0.0,⽹掩码为 240.0.0.0 的路由)的条⽬的路由表。如果它与命令之⼀(例如 add、change 或
delete)结合使⽤,表会在运⾏命令之前清除。
-p:
与 add 命令共同使⽤时,指定路由被添加到注册表并在启动 TCP/IP 协议的时候初始化 IP 路由表。默认情况下,启动 TCP/IP 协议时不会保存添加的路由。与 print 命令⼀起使⽤时,则显⽰永久路由列表。
所有其它的命令都忽略此参数。永久路由存储在注册表中的位置是HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes。
下表列出了有效的命令:
Add:添加路由
Change:更改现存路由
Delete:删除路由
Print:打印路由
Destination:指定路由的⽹络⽬标地址。⽬标地址可以是⼀个 IP ⽹络地址(其中⽹络地址的主机地址位设置为 0),对于主机路由是 IP 地址,对于默认路由是 0.0.0.0。mask subnetmask指定与⽹络⽬标地址相关联的⽹掩码(⼜称之为⼦⽹掩码)。对于主机路由是
255.255.255.255 ,对于默认路由是 0.0.0.0。如果忽略,则使⽤⼦⽹掩码 255.255.255.255。定义路由时由于⽬标地址和⼦⽹掩码之间的关系,⽬标地址不能⽐它对应的⼦⽹掩码更为详细。换句话说,如果⼦⽹掩码的⼀位是 0,则⽬标地址中的对应位就不能设置为 1。Gateway:指定过由⽹络⽬标和⼦
⽹掩码定义的可达到的地址集的前⼀个或下⼀个跃点 IP 地址。对于本地连接的⼦⽹路由,⽹关地址是分配给连接⼦⽹接⼝的 IP 地址。对于要经过⼀个或多个路由器才可⽤到的远程路由,⽹关地址是⼀个分配给相邻路由器的、可直接达到的 IP 地址。
Metric:为路由指定所需跃点数的整数值(范围是 1 ~ 9999),它⽤来在路由表⾥的多个路由中选择与转发包中的⽬标地址最为匹配的路由。所选的路由具有最少的跃点数。跃点数能够反映跃点的数量、路径的速度、路径可靠性、路径吞吐量以及管理属性。
if Interface:指定⽬标可以到达的接⼝的接⼝索引。使⽤ route print 命令可以显⽰接⼝及其对应接⼝索引的列表。对于接⼝索引可以使⽤⼗进制或⼗六进制的值。对于⼗六进制值,要在⼗六进制数的前⾯加上 0x。忽略 if 参数时,接⼝由⽹关地址确定。
路由表中跃点数 ⼀列的值较⼤是由于允许 TCP/IP 根据每个 LAN接⼝的 IP 地址、⼦⽹掩码和默认⽹关的配置⾃动确定路由表中路由的跃点数造成的。默认启动的⾃动确定接⼝跃点数确定了每个接⼝的速度,调整了每个接⼝的路由跃点数,因此最快接⼝所创建的路由具有最低的跃点数。要删除⼤跃点数,请在每个 LAN 连接的 TCP/IP 协议的⾼级属性中禁⽤⾃动确定接⼝跃点数。
如果是 print 或 delete 命令,可以忽略 Gateway 参数,使⽤通配符来表⽰⽬标和⽹关。Destination 的值可以是由星号 (*) 指定的通配符。如果指定⽬标含有⼀个星号 (*) 或问号 (?),它被看作是通配符,
只打印或删除匹配的⽬标路由。星号代表任意⼀字符序列,问号代表任⼀字符。例如, 10.*.1, 192.168.*、 127.* 和 *224* 都是星号通配符的有效使⽤。
使⽤了⽆效的⽬标和⼦⽹掩码(⽹掩码)值的组合,会显⽰“Route:bad gateway address netmask”错误消息。⽬标中有⼀位或多位设置为 1,⽽其在⼦⽹掩码中的对应位设置为0时会发⽣这个错误。可以通过⼆进制表⽰法表⽰⽬标和⼦⽹掩码来检查这种情况。以⼆进制表⽰的⼦⽹掩码包括表⽰⽬标⽹络地址部分的⼀连串的 1 和表⽰⽬标主机地址部分的⼀连串的 0 两个部分。查看⽬标以确定⽬标的主机地址部分(由⼦⽹掩码所定义)是否有些位设置成了 1。
只有 Windows NT 4.0、Windows 2000、Windows Millennium Edition 和 Windows XP 的 route 命令⽀持 -p 参数。Windows 95或 Windows 98 的 route 命令不⽀持该参数。
只有当⽹际协议 (TCP/IP) 协议在 ⽹络连接中安装为⽹络适配器属性的组件时,该命令才可⽤。
route命令的常⽤举例:
要显⽰ IP 路由表的完整内容,请键⼊:Route print
要显⽰ IP 路由表中以 10. 开始的路由,请键⼊:Route print 10.*
要添加默认⽹关地址为 192.168.12.1 的默认路由,请键⼊:
route add 0.0.0.0 mask 0.0.0.0 192.168.12.1
要添加⽬标为 10.41.0.0,⼦⽹掩码为 255.255.0.0,下⼀个跃点地址为 10.27.0.1 的路由,请键⼊:
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1
要添加⽬标为 10.41.0.0,⼦⽹掩码为 255.255.0.0,下⼀个跃点地址为 10.27.0.1 的永久路由,请键⼊:
route -p add 10.41.0.0 mask 255.255.0.0 10.27.0.1
要添加⽬标为 10.41.0.0,⼦⽹掩码为 255.255.0.0,下⼀个跃点地址为 10.27.0.1,跃点数为 7 的路由,请键⼊:route add
10.41.0.0 mask 255.255.0.0 10.27.0.1 metric 7
要添加⽬标为 10.41.0.0,⼦⽹掩码为 255.255.0.0,下⼀个跃点地址为 10.27.0.1,接⼝索引为 0x3 的路由,请键⼊:route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 if 0x3
要删除⽬标为 10.41.0.0,⼦⽹掩码为 255.255.0.0 的路由,请键⼊:
route delete 10.41.0.0 mask 255.255.0.0
要删除 IP 路由表中以 10. 开始的所有路由,请键⼊:Route delete 10.*
要将⽬标为 10.41.0.0,⼦⽹掩码为 255.255.0.0 的路由的下⼀个跃点地址由 10.27.0.1 更改为 10.27.0.25,请键⼊:Route change 10.41.0.0 mask 255.255.0.0 10.27.0.25
过修改⽂件/etc/defaultrouter可以设置⼀些默认路由