linux路由表详解
文章目录
【注意】最后更新于 February 7, 2022,文中内容可能已过时,请谨慎使用。
下面几个命令都可以用来查看路由表
|
|
route -n
|
|
输出详解
route命令的各输出项:
Destination: 目标网络(network)或者目标主机(host), 为 default(0.0.0.0)时,表示这个是默认网关,当目标主机的 IP 地址或网络不在路由表中时,数据包就被发送到默认路由
Gateway: 网关地址, 表示并未设置网关地址,’0.0.0.0’用于无网关,即与本机同一ip段,不需要经过网关
Genmask: 掩码。其中’255.255.255’用于指示单一目标主机,’0.0.0.0’用于指示默认路由
Flags: 标记,可能的标记如下
U (route is up): 路由是活动的
H (target is a host): 目标是一个主机而非网络
G (use gateway): 需要透过外部的主机(gateway)来转递封包
R (reinstate route for dynamic routing): 使用动态路由时,对动态路由进行复位设置的标志
D (dynamically installed by daemon or redirect): 由后台程序或转发程序动态安装的路由
M (modified from routing daemon or redirect): 由后台程序或转发程序修改的路由
A (installed by addrconf): 由addrconf安装的路由
C (cache entry): 缓存的路由信息
! (reject route): 这个路由将不会被接受(主要用来抵御不安全的网络)
处理流程
如果目标ip为内网ip则会直接访问本地;否则查询路由表来判断
用route -n查看路由,如果路由条目里包含了目标ip的网段,则数据包就会从对应路由条目后面的网卡出去
如果没有对应网段的路由条目,则全部都走默认网关
如果网关也没有,则报错:网络不可达
文章作者 lialzm
上次更新 2022-02-07