网络相关的命令工具研究报告-route命令

元气小坏坏 提交于 2019-12-05 20:20:34

1. route命令功能介绍

route命令用于显示和操作IP路由表。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是 为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为 Linux机器的默认路由。

要注意的是,直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;要想永久保存,可以保存到配置文件。linux 默认只支持一条默认路由,当重新启动网口时,会把其他默认路由去掉,只剩下一条该网口生成的默认路由。当然可以通过 route 命令手动添加多条默认路由,如果多条路由一样,则选择最开始找到的路由(排在前面的路由)。

2. route命令使用手册

2.1 命令格式

以下是Linux下route使用手册。

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]

2.2 常用选项

选项名  说明

-C    显示路由缓存

-F    显示发送信息

-v    显示详细的处理信息

-n      不解析名字

-V      显示版本信息

-net   到一个网络的路由表

-host    到一个主机的路由表 

2.3 常用参数

add     增加路由记录

del       删除路由记录

target  目的网络或主机

gw          默认网关

mss     设置TCP的最大报文长度
dev   如果只是要指定由那一块网路卡连线出去,则使用这个设定
window  指定通过路由表的TCP连接的TCP窗口大小

reject  设置到指定网络为不可达,避免在连接到这个网络的地址时程序过长时间的等待,直接就知道该网络不可达。

3. 显示操作路由表

3.1 显示路由表

在lUbuntu下打开终端,输入以下命令(命令提示符已省略):

~# route -ee
内核 IP 路由表
Destination Gateway Genmask Flags Metric Ref Use Iface MSS Window irtt
default 10.0.3.2 0.0.0.0 UG 100 0 0 enp0s8 0 0 0
default CloudGW.lan 0.0.0.0 UG 101 0 0 enp0s3 0 0 0
10.0.3.0 * 255.255.255.0 U 100 0 0 enp0s8 0 0 0
link-local * 255.255.0.0 U 1000 0 0 enp0s8 0 0 0
172.16.96.0 * 255.255.224.0 U 100 0 0 enp0s3 0 0 0


route命令的参数含义:

-n :不要使用通讯协定或主机名称,直接使用 IP 或 port number;
-ee :使用更详细的资讯来显示

显示路由表的主要字段的含义:

Destination  目标网络或目标主机。Destination 为 default(0.0.0.0)时,表示这个是默认网关,所有数据都发到这个网关。

Gateway      网关地址,0.0.0.0 表示当前记录对应的 Destination 跟本机在同一个网段,通信时不需要经过网关。如果没有就显示星号(*)。

Genmask     Destination 字段的网络掩码,Destination 是主机时需要设为 255.255.255.255,是默认路由时会设置为 0.0.0.0

Flags      标记

         ● U 该路由可以使用。

            ● H 该路由是到一个主机,如果没有设置该标志,说明该路由是到一个网络。

            ● G 该路由是到一个网关(路由器)。如果没有设置该标志,说明目的地 是直接相连的。

            ● R 恢复动态路由产生的表项。

            ● D 该路由是由改变路由(redirect)报文创建的。

            ● M 该路由已被改变路由报文修改。

            ● ! 这个路由将不会被接受。

Metric          路由距离,到达指定网络所需的中转数,是大型局域网和广域网设置所必需的。

Ref           由项引用次数 。

Use          此路由项被路由软件查找的次数。

Iface         网卡名。

MSS           TCP的最大报文长度。

Window      通过路由表的TCP连接的TCP窗口大小。

irtt               TCP连接的最初往返时间。

3.2 操作路由

3.2.1 添加路由

 route add [-net|-host] [网域或主机] netmask [mask] [gw|dev]

添加到主机172.16.10.2的路由,显示路由表。

~# route add -host 172.16.10.2 dev enp0s8
~# route
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
default 10.0.3.2 0.0.0.0 UG 100 0 0 enp0s8
default 172.16.96.254 0.0.0.0 UG 101 0 0 enp0s3
10.0.3.0 * 255.255.255.0 U 100 0 0 enp0s8
link-local * 255.255.0.0 U 1000 0 0 enp0s8
172.16.10.2 * 255.255.255.255 UH 0 0 0 enp0s8
172.16.96.0 * 255.255.224.0 U 100 0 0 enp0s3


 ping上面添加的主机,-c count指定ECHO数据包的个数。

~# ping -c 4 172.16.10.2
PING 172.16.10.2 (172.16.10.2) 56(84) bytes of data.
From 10.0.3.15 icmp_seq=1 Destination Host Unreachable
From 10.0.3.15 icmp_seq=2 Destination Host Unreachable
From 10.0.3.15 icmp_seq=3 Destination Host Unreachable
From 10.0.3.15 icmp_seq=4 Destination Host Unreachable

--- 172.16.10.2 ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3051ms
pipe 4


 可以看到icmp差错报告信息——主机不可达,说明要ping的主机不存在,现在试试ping www.alipay.com。

~# ping -c 4 www.alipay.com
PING rz-lb2.internet.v6.spanner.alipaydns.com (110.76.15.34) 56(84) bytes of data.
64 bytes from 110.76.15.34: icmp_seq=1 ttl=36 time=1135 ms
64 bytes from 110.76.15.34: icmp_seq=2 ttl=36 time=111 ms
64 bytes from 110.76.15.34: icmp_seq=3 ttl=36 time=3194 ms
64 bytes from 110.76.15.34: icmp_seq=4 ttl=36 time=2178 ms

--- rz-lb2.internet.v6.spanner.alipaydns.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3040ms
rtt min/avg/max/mdev = 111.137/1654.978/3194.183/1150.741 ms, pipe 2


 最后一行是往返时间的最小值/平均值/最大值/算术平均值,单位ms。

 3.2.2 删除路由

 route del [-net|-host] [网域或主机] netmask [mask] [gw|dev]

删除上面添加的到主机172.16.10.2的路由,显示路由表。

~# route del -host 172.16.10.2 dev enp0s8
~# route
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
default 10.0.3.2 0.0.0.0 UG 100 0 0 enp0s8
default CloudGW.lan 0.0.0.0 UG 101 0 0 enp0s3
10.0.3.0 * 255.255.255.0 U 100 0 0 enp0s8
link-local * 255.255.0.0 U 1000 0 0 enp0s8
172.16.96.0 * 255.255.224.0 U 100 0 0 enp0s3

3.2.3 设置默认路由

~#route add default gw  172.16.96.254 

~# traceroute www.baidu.com

root@elijah-VirtualBox:~# traceroute www.baidu.com
traceroute to www.baidu.com (180.101.49.12), 30 hops max, 60 byte packets
1 CloudGW.lan (172.16.96.254) 33.737 ms 33.587 ms 33.544 ms
2 58.210.35.225 (58.210.35.225) 33.508 ms 33.468 ms 33.432 ms
3 221.224.227.9 (221.224.227.9) 33.039 ms 32.861 ms 32.816 ms
4 * * *
5 * * *
6 58.213.94.2 (58.213.94.2) 31.810 ms 544.424 ms 58.213.94.106 (58.213.94.106) 544.265 ms
7 58.213.94.134 (58.213.94.134) 544.218 ms 58.213.94.86 (58.213.94.86) 544.113 ms *
8 58.213.96.90 (58.213.96.90) 543.813 ms 58.213.96.58 (58.213.96.58) 543.625 ms 543.580 ms
9 * * *
10 * * *

3.2.4 设定指定的网段不可到达

 route add -net 10.0.0.0 netmask 255.0.0.0 reject

~# route add -net 224.0.0.0 netmask 240.0.0.0 reject

~# route
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
default 10.0.3.2 0.0.0.0 UG 100 0 0 enp0s8
default 172.16.96.254 0.0.0.0 UG 101 0 0 enp0s3
10.0.3.0 * 255.255.255.0 U 100 0 0 enp0s8
link-local * 255.255.0.0 U 1000 0 0 enp0s8
172.16.96.0 * 255.255.224.0 U 100 0 0 enp0s3
224.0.0.0 - 240.0.0.0 ! 0 - 0 -

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!