新版内核查看路由缓存
随着家庭设备的增多,路由器的管理变得越来越重要。本文新版内核查看路由缓存将为您介绍如何正确设置路由器,保障网络安全。
本文内容目录一览:
- 1、如何使用route命令查看 Linux内核路由表
- 2、linux如何查看路由表?
- 3、如何使用route命令查看 Linux内核路由表
- 4、win7 route 命令
- 5、linux疑问:route 命令查看 Linux 内核路由表 UG是何意?
如何使用route命令查看 Linux内核路由表
路由表内容说明:
查看路由
#
route
-n
Kernel
IP
routing
table
Destination
Gateway
Genmask
Flags
Metric
Ref
Use
Iface
192.57.66.200
192.168.1.1
255.255.255.255
UGH
eth0
192.168.1.0
0.0.0.0
255.255.255.0
U
eth0
169.254.0.0
0.0.0.0
255.255.0.0
U
eth0
0.0.0.0
192.168.1.1
0.0.0.0
UG
eth0
Destination:目标网络或主机。
Gateway:网关地址。
Genmask:目标网络的网络掩码。"255.255.255.255"表示一个主机。"0.0.0.0"表示网关。
Flags:标记。
U、路由被启用。
H、目标是一个主机
G、使用网关。
linux如何查看路由表?
使用 route 命令可以查看 Linux 内核路由表。
Route命令是用于操作基于内核ip路由表,它的主要作用是创建一个静态路由让指定一个主机或者一个网络通过一个网络接口,如eth0。当使用"add"或者"del"参数时,路由表被修改,如果没有参数,则显示路由表当前的内容。
设置内核路由表的命令格式是:
# route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
扩展资料
route命令参数介绍:
-c 显示更多信息
-n 不解析名字
-v 显示详细的处理信息
-F 显示发送信息
-C 显示路由缓存
-f 清除所有网关入口的路由表。
-p 与 add 命令一起使用时使路由具有永久性。
如何使用route命令查看 Linux内核路由表
使用下面的 route 命令可以查看 Linux 内核路由表。
# route
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth0
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
route 命令的输出项说明
输出项
说明
Destination
目标网段或者主机
Gateway
网关地址,”*” 表示目标是本主机所属的网络,不需要路由
Genmask
网络掩码
Flags
标记。一些可能的标记如下:
U — 路由是活动的
H — 目标是一个主机
G — 路由指向网关
R — 恢复动态路由产生的表项
D — 由路由的后台程序动态地安装
M — 由路由的后台程序修改
! — 拒绝路由
Metric
路由距离,到达指定网络所需的中转数(linux 内核中没有使用)
Ref
路由项引用次数(linux 内核中没有使用)
Use
此路由项被路由软件查找的次数
Iface
该路由表项对应的输出接口
3 种路由类型
主机路由
主机路由是路由选择表中指向单个IP地址或主机名的路由记录。主机路由的Flags字段为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 网络路由
网络路由是代表主机可以到达的网络。网络路由的Flags字段为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地址或网络路由时,数据包就被发送到默认路由(默认网关)上。默认路由的Flags字段为G。例如,在下面的示例中,默认路由是IP地址为192.168.1.1的路由器。
Destination Gateway Genmask Flags Metric Ref Use Iface----------- ------- ------- ----- ------ --- --- -----default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
配置静态路由
route 命令
设置和查看路由表都可以用 route 命令,设置内核路由表的命令格式是:
# route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If] 其中:
add : 添加一条路由规则
del : 删除一条路由规则
-net : 目的地址是一个网络
-host : 目的地址是一个主机
target : 目的网络或主机
netmask : 目的地址的网络掩码
gw : 路由数据包通过的网关
dev : 为路由指定的网络接口
route 命令使用举例
添加到主机的路由
# route add -host 192.168.1.2 dev eth0:0# route add -host 10.20.30.148 gw 10.20.30.40
添加到网络的路由
# route add -net 10.20.30.40 netmask 255.255.255.248 eth0
# route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41# route add -net 192.168.1.0/24 eth1 添加默认路由
# route add default gw 192.168.1.1
删除路由
# route del -host 192.168.1.2 dev eth0:0
# route del -host 10.20.30.148 gw 10.20.30.40
# route del -net 10.20.30.40 netmask 255.255.255.248 eth0
# route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
# route del -net 192.168.1.0/24 eth1# route del default gw 192.168.1.1
设置包转发
在 CentOS 中默认的内核配置已经包含了路由功能,但默认并没有在系统启动时启用此功能。开启 Linux 的路由功能可以通过调整内核的网络参数来实现。要配置和调整内核参数可以使用 sysctl 命令。例如:要开启 Linux 内核的数据包转发功能可以使用如下的命令。
# sysctl -w net.ipv4.ip_forward=1 这样设置之后,当前系统就能实现包转发,但下次启动计算机时将失效。为了使在下次启动计算机时仍然有效,需要将下面的行写入配置文件/etc/sysctl.conf。
# vi /etc/sysctl.confnet.ipv4.ip_forward = 1 用户还可以使用如下的命令查看当前系统是否支持包转发。
# sysctl net.ipv4.ip_forward
win7 route 命令
Route 命令是linux下设置网络和调试网络的主要工具,是在本地 IP 路由表中显示和修改条目网络命令。
命令的使用方法:
1、命令说明:
route命令用来显示和操作IP路由表,用来通过一个已经利用ifconfig命令配置好的网络接口为指定主机或网络设置静态路由。当使用add或del选项时,route命令修改路由表,否则显示路由表当前内容。
2、使用说明:
1)查看路由表信息 route [-CFvnee]
选项说明:
-F 显示核心的FIB(转发信息库)路由表信息。此为默认选项。
-C 显示内核路由缓存信息
-v 显示详细信息
-n 采用数字IP地址以代替试图去确定主机名。
在查看路由表时,最好采用此参数避免域名解析以提高查询速度。
-e 使用netstat格式显示路由表
-ee将产生一个包含所有路由表参数的输出列表。
2)增加和删除路由
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 add default gw {IP-ADDRESS} {INTERFACE-NAME}
增加默认网关
IP-ADDRESS: 路由IP地址
INTERFACE-NAME: 网络接口名,如eth0
default 是 target的一种特殊取值。
选项说明:
-A family 指定地址系列(例如‘inet’;使用 route --help 查看取值的全部列表)
del 删除一个路由
add 增加一个新的路由
target 目标网络或主机,可以是IP地址或主机/网络名的形式。
-net 目标为网络,如192.168.1.0
-host 目标为主机
netmask NM 当增加网络路由时,指定网络掩码
gw GW 路由数据包通过一个网关。
注意:指定的网关必须首先要可达。这意味路由到网关前要设置一个静路由。如果指定的地址是一个本地网络接口,它将被用来确定那些数据包可以被路由到此接
metric M 设置路由表中的代价域(metric field)为M。
mss M 设置最大传输单位(MTU)值,单位为字节。注意:路由命令当前的实现 不运行利用此项设置最大段大小(MSS)。
window W 设置基于此路由连接的TCP 窗口大小,单位为字节。这个选项典型只应 用在AX.25网络并且驱动不能处理连续帧。
irtt I 设置基于此路由的连接的初始往返时间(irtt),单位为毫秒(1-12000).这 个选项典型应用在AX.25网络。如果忽略此项,使用RFC1122默认值(300ms).
reject 安装一个阻塞路由,这将迫使一个路由查找失败。这可在使用默认路由前作 为屏蔽网络的例子。
mod, dyn, reinstate 安装一个动态或修改的路由。这些标志应用于诊断目的,通常 有路由守护进程来设置。
dev If 强制路由与指定的设备关联。如果dev是命令行最后一个选项,则dev可以 忽略
3)显示版本或帮助
route [-V] [--version] [-h] [--help]
3、命令例子:
1)增加到192.168.1.0网络的路由
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
route add -net 192.168.1.0/24 dev eth0
2)增加默认网关
route add default gw mango-gw
备注:默认网关可以有多个。
3)增加到主机ipx4的路由
route add ipx4 sl0
增加基于SLIP(Serial Line Internet Protocol)接口到主机ipx4的路由。
这里假设ipx4是SLIP主机
4)增加基于前一个例子建立的路由到SLIP接口的网络路由
route add -net 192.168.2.0 netmask 255.255.255.0 gw ipx4
5)设置拒绝路由
route add -net 10.0.0.0 netmask 255.0.0.0 reject
6)删除路由
route del -net 192.168.1.0 netmask 255.255.255.0 dev eth0
route del default gw 192.168.1.3 --删除默认网关
4、输出信息
通过route命令输出的内核路由表包含以下列:
1)Destination 目标(网络或主机)目标网络或主机,用IP网络地址的形式显示
2)Gateway 网关地址,如果没有指定,显示为‘*’
3)Genmask 网络掩码
目标网络的掩码;如果目标为主机,则显示’255.255.255.255’
如果目标为网关,则显示 ’0.0.0.0’
4)Flags 标识
可能的取值包括:
U 路由已经启动
H 路由目标为主机
G 使用网关
R 为动态路由复原路由表
D 由守护进程或间接动态安装
M 被路由守护进程或间接修改
A 通过addrconf修改
C 缓存条目
! 拒绝路由
5)Metric 到目标的‘距离’(通常基于跳数统计)。
6)Ref 参考此路由的数量。
7)Use 路由查找计数。依赖与使用-F 还是-C选项
8)Iface 此路由数据包发送到的网络接口。
9)MSS 基于此路由的TCP连接默认最大段大小
10)Window 基于此路由的TCP连接默认窗口大小
11)irtt 初始往返时间。内核使用此值在不需要等待响应的情况下推测最佳TCP协议参数
linux疑问:route 命令查看 Linux 内核路由表 UG是何意?
1、下载一个Linux内核源代码文件,将它保存到虚拟机上新安装的系统中去。并解压到/usr/src目录。
2、修改/usr/src/linux-2.6.36/kernel/sys.c文件,在文件末尾增加一个系统调用函数。自行编写一个简单的程序即可,只为测试用。
3、修改/usr/src/linux-2.6.36/arch/x86/kernel/syscall_table_32.S,为新添加的程序配置系统调用号。
4、在/usr/src/linux-2.6.36/arch/x86/include/asm/unistd_32.h中配置系统调用表。
5、首先配置编译信息,使其生成适合当前机器的Makefile,输入make oldconf ig。
6、按回车键进入我们编译的目标内核中,用关键词搜索查看新增加的系统调用“my call”是否已在内核中。
随着您不断练习和学习,您的路由器技能将不断提高,并且您将能够更轻松地处理网络问题。