Linux中路由route

bash 复制代码
route 显示当前路由表信息
route add -net 192.168.10.0 netmask 255.255.255.0 dev ens160
 去往192.168.10.0/24网段的路由通过ens160网卡出去
 add    添加路由(del表示删除路由)
 -A     设置地址类型(默认ipv4  配置ipv6地址时:-A inet6)
 -net    到一个网段的路由(到目的网段)
 -host   到一个主机的路由(到目的主机)
 gw     设置默认网关
 dev    去此目的地址的出接口
 metric  设置路由跳数

一、Linux路由表

Linux路由表是一个内核数据结构,用来描述Linux主机与其它网络设备之间的路径,以及如何将数据包从源地址路由到目标地址。Linux路由表的主要组成部分包括:目的网络、下一跳、子网掩码和接口等信息。

(一)目的网络 目的网络是一个或多个的IP地址段,用来指示要路由到的网络。Linux路由表中可以有多个目的网络,并且每一个目的网络都有一个与之对应的路由。

(二)下一跳 下一跳表示数据包要经过的下一个路由器的地址。如果目的地址是一个局域网地址,下一跳将指向一个与目的局域网相连的路由器,以便将数据包转发到目的主机。

(三)子网掩码 子网掩码是一个32位二进制数,用于将IP地址分为网络地址和主机地址两部分。子网掩码的作用是帮助路由器区分网络地址和主机地址,以便进行路由选择和数据包路由。

(四)接口 接口是一个用于连接Linux主机和网络的物理设备或虚拟设备。每个接口都有一个唯一的标识符,用于标识该接口。在Linux路由表中,每个路由都与一个接口相关联,以便将数据包从源地址发送到目标地址。

二、Linux路由表的配置

在Linux中,可以使用route命令配置路由表。route命令用于显示、添加、删除、修改Linux路由表中的路由信息。

(一)显示路由表 要显示Linux路由表中的路由信息,可以使用"route"命令。例如,要显示系统中的所有路由信息,可以输入以下命令:

bash 复制代码
route

输出结果会显示每个目的网络的路由信息,包括目的地址、网关、接口和路由类型等信息。此外,还可以使用"netstat -r"命令来显示Linux路由表中的路由信息。

(二)添加路由 要添加一个路由,可以使用"route add"命令。例如,要将数据包路由到目的地址为192.168.1.0/24的网络,网关为192.168.0.1,可以输入以下命令:

bash 复制代码
route add -net 192.168.1.0/24 gw 192.168.0.1

其中,"-net"选项表示目标网络,"gw"表示网关地址。要添加的路由将被添加到Linux路由表中,并在下次系统启动时自动加载。

(三)删除路由 要删除一个路由,可以使用"route del"命令。例如,要删除Linux路由表中的一条路由,可以输入以下命令:

bash 复制代码
route del -net 192.168.1.0/24

此命令将修改Linux路由表中指定的路由信息。

三、Linux路由表的优先级

Linux路由表中的每个路由都有一个优先级。优先级用于决定数据包应去往哪个网关。当有两个或多个路由指向同一个目的网络时,可以使用优先级来确定数据包应走哪个路由。每个路由的优先级是由它的度量值决定的,度量值越小,优先级越高。

在Linux中,可以使用metric选项设置路由的度量值。例如,要将路由的度量值设置为100,可以输入以下命令:

复制代码
route add -net 192.168.1.0/24 gw 192.168.0.1 metric 100

Linux路由表还可以使用源地址和目标地址的匹配规则来设置路由的优先级。例如,要将数据包从地址为192.168.0.2的主机路由到目的地址为192.168.1.0/24的网络,可以使用"ip rule"命令添加一条规则,如下所示:

复制代码
ip rule add from 192.168.0.2 to 192.168.1.0/24 pref 2000 lookup 1

其中,"pref 2000"表示优先级,值越大,优先级越低。

四、Linux路由表的缺省路由

在Linux路由表中,缺省路由通常用于指示没有指定路由的数据将被发送到哪个网关。如果没有指定路由,数据包将被发送到缺省路由所指示的网关。缺省路由的作用是提高路由效率和加速数据传输。

要设置Linux主机的缺省路由,可以使用"route add default"命令。例如,要将缺省路由设置为192.168.0.1,可以输入以下命令:

复制代码
route add default gw 192.168.0.1

在Linux中,还可以使用"ip route"命令来添加、删除和修改路由表中的缺省路由。

五、总结

Linux路由表是一个内核数据结构,用来描述Linux主机与其它网络设备之间的路径,以及如何将数据包从源地址路由到目标地址。Linux路由表的主要组成部分包括目的网络、下一跳、子网掩码和接口等信息。

要配置Linux路由表,可以使用"route"命令。要优化Linux路由表的性能,可以使用优先级和度量值来设置路由的优先级和路由的选取策略。此外,还可以使用"ip route"命令来添加、删除和修改路由表中的缺省路由。

  1. route add:该命令用于添加一个新的路由表项。语法如下:
bash 复制代码
route add -net 目标网络地址 netmask 子网掩码 gw 网关地址
例如,要将目标网络地址为192.168.1.0/24的数据包通过网关地址为192.168.0.1的网关进行转发,可以使用以下命令:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1
  1. route del:该命令用于删除一个已存在的路由表项。语法如下:
bash 复制代码
route del -net 目标网络地址 netmask 子网掩码 gw 网关地址
例如,要删除目标网络地址为192.168.1.0/24的路由表项,可以使用以下命令:
route del -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1
  1. ip route add:该命令是较新版本的Linux系统中推荐使用的路由命令。语法如下:
bash 复制代码
ip route add 目标网络地址/子网掩码 via 网关地址
例如,要将目标网络地址为192.168.2.0/24的数据包通过网关地址为192.168.0.1的网关进行转发,可以使用以下命令:
ip route add 192.168.2.0/24 via 192.168.0.1
  1. ip route del:该命令用于删除一个已存在的路由表项。语法如下:
bash 复制代码
ip route del 目标网络地址/子网掩码 via 网关地址
例如,要删除目标网络地址为192.168.2.0/24的路由表项,可以使用以下命令:
ip route del 192.168.2.0/24 via 192.168.0.1
相关推荐
豆是浪个30 分钟前
Linux(Centos 7.6)命令详解:usermod
linux·运维·centos
极地星光1 小时前
网络检测:Linux下实时获取WiFi与热点状态
linux·网络
189228048613 小时前
NW728NW733美光固态闪存NW745NW746
大数据·服务器·网络·人工智能·性能优化
Continue_with4 小时前
docker设置代理
运维·docker·容器
彭泽布衣4 小时前
远程登录docker执行shell报错input is not a terminal问题
运维·docker·容器
我是苏苏4 小时前
Edge浏览器:报告不安全的站点的解决方案
服务器
霖004 小时前
FPGA通信设计十问
运维·人工智能·经验分享·vscode·fpga开发·编辑器
还是奇怪4 小时前
Linux - 安全排查 3
android·linux·安全
NUZGNAW4 小时前
VMware安装Centos 7
linux·运维·centos
Another Iso5 小时前
CentOs 7 MySql8.0.23之前的版本主从复制
linux·mysql·centos