route命令
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
route命令
route命令详解
route命令⽤于显⽰和操作IP静态路由表。
路由表,指的是路由器或者其他互联⽹⽹络设备上存储的表,该表中存有到达特定⽹络终端的路径,在某些情况下,还有⼀些与这些路径相关的度量。
路由器的主要⼯作就是为经过路由器的每个数据包寻找⼀条最佳的传输路径,并将该数据有效地传送到⽬的站点。
由此可见,选择最佳路径的策略即路由算法是路由器的关键所在。
为了完成这项⼯作,在路由器中保存着各种传输路径的相关数据——路由表(Routing Table),供路由选择时使⽤,表中包含的信息决定了数据转发的策略。
route命令从/proc/net/route⽂件中取数据,设备名不变、⽬的地址从右到左每两位⼗六进制显⽰,标志位有1、3两种,分别是U和UG,掩码和⽬的地
命令格式:
route [-CFvnee]
route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I][reject] [mod] [dyn] [reinstate] [[dev] If]
route [-v] [-A family] del [-net|-host] target [gw Gw][netmask Nm] [metric N] [[dev] If]
route [-V] [--version] [-h] [--help]
option:
-v:显⽰详细的处理信息
-A family:⽤指定的地址族(如inet,inet6)
-n:以数字形式代替解释主机名形式来显⽰地址
-e:⽤netstat(8)的格式来显⽰选路表
-ee:使⽤更详细的资讯来显⽰
-net:到⼀个⽹络的路由表
-host:到⼀个主机的路由表
-F:显⽰内核的FIB选路表。
其格式可以⽤-e 和 -ee选项改变
-C:显⽰内核的路由缓存
del :删除⼀条路由
add:添加⼀条路由
target:指定⽬标⽹络或主机。
可以⽤点分⼗进制形式的IP地址或主机/⽹络名
netmask Nm:为添加的路由指定⽹络掩码
gw Gw:为发往⽬标⽹络/主机的任何分组指定⽹关。
注意:指定的⽹关⾸先必须是可达的。
也就是说必须为该⽹关预先指
定⼀条静态路由。
如果你为本地接⼝之⼀指定这个⽹关地址的话,那么此⽹关地址将⽤于决定此接⼝上的分组将如何进⾏
路由
metric M:把选路表中的路由值字段(由选路进程使⽤)设为M
mss M:把基于此路由之上的连接的TCP最⼤报⽂段长度设为M字节。
这通常只⽤于优化选路设置。
默认值为536
window W:把基于此路由之上的连接的TCP窗⼝长度设为W字节。
这通常只⽤于AX.25⽹络和不能处理背对背形式的帧的
设备
irtt I:把基于此路由之上的TCP连接的初始往返时间设为I毫秒(1-12000)。
这通常也只⽤于AX.25⽹络。
如果省略此选项,
则使⽤RFC1122的缺省值300ms
reject:设置⼀条阻塞路由以使⼀条路由查找失败。
这⽤于在使⽤缺省路由前先屏蔽掉⼀些⽹络。
但这并不起到防⽕墙的作
⽤
mod, dyn, reinstate:设置⼀条动态的或更改过的路由。
这些标志通常只由选路进程来设置。
这只⽤于诊断⽬的
dev If:强制使路由与指定的设备关联,因为否则内核会⾃⼰来试图检测相应的设备(通常检查已存在的路由和加⼊路由的设
备的规格)。
在多数正常的⽹络上⽆需使⽤
命令⽰例解释
route add -net 192.56.76.0
netmask 255.255.255.0 dev eth0向"eth0"添加⼀条指向⽹络192.56.76.x的路由
route add -
host 10.60.60.143 gw 10.20.30.40添加到主机的路由
route add default gw mango-gw添加⼀条缺省路由(如果⽆法匹配其它路由则⽤它)。
使⽤此路由的所有分组将通过⽹关"mango-gw"进⾏
传输。
实际使⽤此路由的设备取决于如何到达"mango-gw" - 先前必须设好到"mango-gw"的静态路由。
route add 10.0.0.0 netmask
此命令为私有⽹络"10.x.x.x."设置⼀条阻塞路由
255.0.0.0 reject
route del -net 192.56.76.0
netmask 255.255.255.0 dev eth0删除192.56.76.0的路由
route del default gw 192.168.1.1
eth0删除默认路由
eth0
命令⽰例解释
route 输出结果解析:
Destination:⽬标⽹络或⽬标主机
Gateway:⽹关地址或 '*' (如未设置)
Genmask:⽬标⽹络的⼦⽹掩码;'255.255.255.255'为主机,'0.0.0.0'为缺省路由
Flags:路由标志
U (route is up) :路由正常
H (target is a host) :主机路由
G (use gateway) :使⽤⽹关的间接路由
R (reinstate route for dynamic routing) :为动态选路恢复路由
D (dynamically installed by daemon or redirect) :该路由由选路进程或重定向动态创建
M (modified from routing daemon or rederict) :该路由已由选路进程或重定向修改
! (reject route) :阻塞路由
Metric:通向⽬标的距离(通常以跳来计算)
Ref:使⽤此路由的活动进程个数(Linux内核并不使⽤)
Use:查找此路由的次数。
根据-F 和 -C的使⽤,此数值是路由缓存的损失数或采样数
Iface:使⽤此路由发送分组的接⼝(⽹卡名字)
MSS:基于此路由的TCP连接的缺省最⼤报⽂段长度
Window:基于此路由的TCP连接的缺省窗⼝长度
irtt:初始往返时间。
内核⽤它来猜测最佳TCP协议参数⽽⽆须等待(可能很慢的)应答
HH (cached only):为缓存过的路由⽽访问硬件报头缓存的ARP记录和缓存路由的数量。
如果缓存过路由的接⼝(如lo)⽆须硬件地址则值为-1
Arp (cached only):⽆论缓存路由所⽤的硬件地址情况如何都进⾏更新
[root@izwz91quxhnlkan8kjak5hz proc]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.18.31.253 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.16.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-f572ccdc289a
[root@izwz91quxhnlkan8kjak5hz proc]# route -e
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default gateway 0.0.0.0 UG 0 0 0 eth0
link-local 0.0.0.0 255.255.0.0 U 0 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.16.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-f572ccdc289a
[root@izwz91quxhnlkan8kjak5hz proc]# route -ee
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface MSS Window irtt
default gateway 0.0.0.0 UG 0 0 0 eth0 0 0 0
link-local 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 0 0 0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker 0 0 0
172.18.16.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0 0 0 0
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-f57 0 0 0
永久修改路由:
直接执⾏route命令来添加路由,是不会永久保存的,当⽹卡重启或者机器重启之后,该路由就失效了。
要想永久保存,可以保存到配置⽂件。
linux 默认只⽀持⼀条默认路由,当重新启动⽹⼝时,会把其他默认路由去掉,只剩下⼀条该⽹⼝⽣成的默认路由。
1. /etc/sysconfig/static-routes⽂件为路由固化⽂件,但是linux系统⼀般不会⾃动⽣成,需要⼿动创建。
2. 在⽂件内编辑路由,路由格式是固定的:
添加默认路由:any net 0.0.0.0 netmask 0.0.0.0 gw 10.60.60.1
添加⽹络路由:any net 1.1.1.0 netmask 255.255.255.0 gw 10.60.60.1
route 和 ip route的区别:
1. ip route以其最简单的形式可⽤于显⽰输出主路由表。
该命令的输出与route的输出明显不同。
2. 可以通过ip route show table local命令查看本地路由表,⽽route命令⽆法查看。
3. ip route add与route add⼀样,可以⽤于添加路由,但是ip route add提供了更多route命令⽆法实现的选项,如prohibit、from、src。