route
route指令用于显示或者修改IP路由表。它的主要用途是在使用ifconfig(8)程序配置接口后,通过接口设置到特定主机或网络的静态路由。当使用add或del选项时,路由将修改路由表。如果没有这些选项,路由将显示路由表的当前内容。
此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、语法
route [-CFvnee]
route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mssM] [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]
2、选项列表
选项 |
说明 |
--help |
显示帮助文档 |
--version |
显示命令版本 |
-A family |
指定使用的地址类型 |
-F |
操作内核FIB |
-C |
管理内核路由缓存 |
-v |
显示详细过程 |
-n |
以数字的方式显示路由表中的主机 |
-e |
使用netstat的输出格式显示路由表 |
-net |
指定一个网络路由 |
-host |
指定一个主机路由 |
add |
增加一个路由 |
del |
删除一个路由 |
target |
指定目标网络或者主机 |
netmask mask |
添加一个路由时,使用这个子网掩码 |
gw ip |
指定数据包通过的网关IP地址 |
metric |
指定路由表的metric字段 |
window |
指定路由表的TCP连接串口 |
irtt I |
将此路由上的TCP连接的初始往返时间(Irtt)设置为I毫秒(1-12000)。这通常只在AX.25网络上使用。如果省略,则使用rfc 1122默认的300 ms。 |
reject |
安装阻塞路由,这将迫使路由查找失败。例如,这用于在使用默认路由之前屏蔽网络。这不是用来防火的 |
mod, dyn, reinstate |
安装动态或修改的路由。这些标志用于诊断,通常仅由路由守护进程设置。 |
dev eth |
指定路由的网络接口 |
3、输出
内核路由表的输出组织在以下列中
输出列 |
说明 |
Destination |
目标网络或目标主机。 |
Gateway |
网关地址或“*”(如果没有设置) |
Genmask |
目标网络的网络掩码;主机目的地为‘255.255.255.255’,默认路由为‘0.0.0.0’。 |
Flags |
可能的flag有 U,路由已经起来 H,目标是一个主机 G,使用网关 R,用于动态路由的恢复路由 D,由守护进程动态安装或重定向 M,从路由守护进程或重定向中修改 A,由addrconf安装 C,缓存项 !,拒绝路由 |
Metric |
与目标的距离(通常以啤酒花计)。它不是最近的内核使用的,而是路由守护进程所需要的。 |
Ref |
引用此路由的次数。(不在Linux内核中使用。) |
Use |
查找路线的数量。根据-F和-C的使用情况,这将是路由缓存丢失(-F)或命中(-C)。 |
Iface |
用于此路由的数据包将发送到该接口。 |
MSS |
此路由上TCP连接的默认最大分段大小 |
Window |
此路由上TCP连接的默认窗口大小 |
irtt |
初始RTT(往返时间)。内核使用它来猜测最佳的TCP协议参数,而无需等待(可能是缓慢的)答案。 |
HH |
引用缓存路由的硬件头缓存的ARP条目和缓存路由的数量。如果缓存路由的接口不需要硬件地址(例如lo),则为-1。 |
Arp |
缓存路由的硬件地址是否最新。 |
4、例子代码
|
5、实例
1)显示本机路由表
|
2)以netstat格式显示
|
3)添加一个路由
|
4)删除一个路由
|