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
相关推荐
小马同学-41 分钟前
OpenStack 使用实战:Web 界面与 CLI 命令行实验
运维·云计算·openstack
GeW43 分钟前
RHCE备考别瞎学!按这个计划走,30天提高通过率,快速拿证
linux
Escalating_xu1 小时前
【System V 信号量】从 P/V 原语到 Builder 封装:写出可控、可清理的进程互斥组件
java·linux·开发语言·jvm
傲世仙尊1 小时前
System V 进程间通信详解:共享内存、消息队列与信号量(CSDN博客)
linux·开发语言·c++
码农小韩1 小时前
Linux应用开发(六)——进程间通信
linux·linux驱动·嵌入式软件开发·嵌入式操作系统·linux应用
网安老伯2 小时前
都2026年了,还在问网络安全怎么入门?看完这一篇你就懂了
运维·计算机网络·web安全·网络安全·wireshark·密码学·网络攻击模型
小祺先生2 小时前
mt7921 debian系统 如何安装驱动
运维·网络·debian
笨笨饿2 小时前
#138_解决Codex要五次回复的问题
linux·stm32·单片机·嵌入式硬件·mcu·物联网·嵌入式实时数据库
m0_459872922 小时前
Linux 系统基础
linux·运维·服务器
fb_123452 小时前
Docker入门-第3章-容器镜像深度解析
运维·docker·容器