route初探
使用linux 下的route命令来显示和编辑路由表
一.使用route命令查看路由表
在ubuntu系统下输入route -n命令
route命令的输出项及含义如下
目标 | 目标网段或者主机 |
网关 | 网关地址,”*” 表示目标是本主机所属的网络,不需要路由 |
子网掩码 | 网络掩码 |
标志 | 些主要标记如下: |
U | 路由是活动的 |
H | 目标是一个主机 |
G | 路由指向网关 |
R | 恢复动态路由产生的表项 |
D | 由路由的后台程序动态地安装 |
M | 由路由的后台程序修改 |
! | 拒绝路由 |
跃点 | 路由距离,到达指定网络所需的中转数 |
引用 | 路由项引用次数(linux 内核中没有使用) |
使用 | 此路由项被路由软件查找的次数 |
接口 | 该路由表项对应的输出接口 |
例如本输出的第一项:
代表含义即为默认路由的网关为192.168.1.1。子网掩码0.0.0.0 。标志UG含义 路由是活动的,目标指向网关(其实就是默认路由)。接口为wlp3s0
根据路由表的目标不同,可以将路由类型分为3类
主要是根据标志里面的不同来区分,可以区分为主机路由,网络路由,默认路由
主机路由
主机路由是路由选择表中指向单个主机的路由记录。主机路由的标志字段为H。例如,在下面的示例中,本地主机通过IP地址192.168.1.1的路由器到达IP地址为10.0.0.10的主机。
Destination Gateway Genmask Flags Metric Ref Use Iface ----------- ------- ------- ----- ------ --- --- ----- 10.0.0.10 192.168.1.1 255.255.255.255 UH 0 0 0 eth0
网络路由
网络路由是代表主机可以到达的网络。网络路由的标记字段为N。例如,在下面的示例中,本地主机将发送到网络192.19.12的数据包转发到IP地址为192.168.1.1的路由器。
Destination Gateway Genmask Flags Metric Ref Use Iface ----------- ------- ------- ----- ----- --- --- ----- 192.19.12 192.168.1.1 255.255.255.0 UN 0 0 0 eth0
默认路由
当主机不能在路由表中查找到目标主机的IP地址或网络路由时,数据包就被发送到默认路由(默认网关)上。默认路由的标志字段为G。例如:
默认路由为192.168.1.1
二.使用route命令编辑路由表
设置内核路由表的命令格式是:
route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
其中:
add : 添加一条路由规则
del : 删除一条路由规则
-net : 目的地址是一个网络
-host : 目的地址是一个主机
target : 目的网络或主机
netmask : 目的地址的网络掩码
gw : 路由数据包通过的网关
dev : 为路由指定的网络接口
添加路由
1.添加默认路由
添加默认网关地址为 192.168.1.1 的默认路由,请键入:
route add default gw 192.168.1.1
2.添加到主机的路由
添加到 192.168.1.2 主机的路由,请键入:
route add -host 192.168.1.2 dev wlp3s0
3.添加到网络的路由
添加目标为 10.41.0.0,子网掩码为 255.255.0.0 的路由,请键入:
route add -net 10.41.0.0 netmask 255.255.0.0 wlp3s0
删除路由
route del -host 192.168.1.2 dev wlp3s0
route del -net 10.41.0.0 netmask 255.255.0.0 wlp3s0
屏蔽路由
我们先建立一条路由项用于测试屏蔽
route add -net 192.168.20.0 netmask 255.255.255.0 dev wlp3s0
通过使用命令
route add -net 192.168.20.0 netmask 255.255.255.0 reject
可以看到相应项的flag标记为已经为!表示不可达
总结:
我们在案例里简单探讨了route用于显示路由表,增加 删除 屏蔽路由项的相关用法。