Linux网络知识——路由表

server/2025/1/18 3:00:32/

路由

1 定义与作用

  • Linux路由表是一个内核数据结构,用于描述Linux主机与其他网络设备之间的路径,以及如何将数据包从源地址路由到目标地址。
  • 路由表的主要作用是指导数据包在网络中的传输路径,确保数据包能够准确、高效地到达目标地址。

2 主要组成部分

  • 目的网络:一个或多个IP地址段,指示要路由到的网络
  • 下一跳:数据包要经过的下一个路由器的地址。
  • 子网掩码:用于将IP地址分为网络地址和主机地址两部分,帮助路由器进行路由选择。
  • 接口:连接Linux主机和网络的物理设备或虚拟设备,每个接口都有一个唯一的标识符。

3 配置与管理

  • 可以使用route命令或ip route命令来显示、添加、删除和修改Linux路由表中的路由信息。
  • 通过设置路由的优先级(度量值)和缺省路由,可以优化路由表的性能和数据传输效率。

4. 应用

4.1 使用ip route命令添加路由
# ip route add default via <网关地址>
ip route add default via 192.168.1.1# ip route add <目标网络>/<子网前缀长度> via <网关IP地址> dev <网络接口>
ip route add 192.168.0.0/24 via 192.168.1.1 dev eth0
4.2 使用ip route命令删除路由
# 删除默认路由
ip route del default# 删除网络路由
# ip route del <目标网络>/<子网前缀长度>
ip route del 192.168.0.0/24

5. 实例

172.18.0.0/20 dev eth0 proto kernel scope link src 172.18.9.28

目的网络172.18.0.0/20

  • 这部分指定了数据包的目的地是一个IP地址范围,从172.18.0.0到172.18.15.255(因为/20表示前20位是网络地址,剩下的12位是主机地址,所以总共可以表示4096个IP地址,但要从0开始算,并且要减去网络地址和广播地址,所以实际可用的IP地址范围是从1到4094,但在这个例子中我们关注的是整个子网)。

接口dev eth0

  • 这部分指明了数据包应该通过哪个网络接口发送出去。在这个例子中,eth0是第一个以太网接口。这意味着,如果数据包的目的地址匹配这个规则,它应该通过eth0接口发送。

协议proto kernel

  • 这部分说明了路由条目是如何被添加到路由表中的。proto kernel意味着这个路由条目是由内核自动添加的,通常是因为网络接口的配置(如IP地址的分配)导致的。与之相对的是用户空间程序(如ip route命令)添加的路由,它们通常会显示为proto static

作用域scope link

  • 这部分定义了路由条目的作用域。scope link意味着这个路由条目仅适用于直接连接的网络,也就是说,它不会通过路由器转发到其他网络。这是本地网络(也称为链路层网络)的路由

源地址src 172.18.9.28

  • 这部分指定了当数据包从这个路由条目指定的接口发送出去时,应该使用的源IP地址。在这个例子中,源IP地址是172.18.9.28。需要注意的是,源地址通常不是路由决策的一部分(路由决策是基于目的地址的),但在某些情况下(如策略路由),可以基于源地址来选择路由。然而,在这个特定的路由条目中,src字段的存在可能意味着这是一个更复杂的路由规则的一部分,或者是用于确保从特定接口发送的数据包具有正确的源IP地址(尽管这通常是通过网络接口的IP配置来处理的)

http://www.ppmy.cn/server/159240.html

相关文章

【新教程】Ubuntu 24.04 单节点安装slurm

背景 网上教程老旧&#xff0c;不适用。 详细步骤 1、安装slurm sudo apt install slurm-wlm slurm-wlm-doc -y检查是否安装成功&#xff1a; slurmd --version如果得到slurm-wlm 23.11.4&#xff0c;表明安装成功。 2、配置slurm。 使用命令&#xff1a; sudo vi /etc/s…

如何通过 Nginx 实现 CouchDB 集群的负载均衡并监控请求分发

在现代分布式系统中&#xff0c;负载均衡是确保高可用性和性能的关键组件。CouchDB 是一个强大的分布式数据库&#xff0c;而 Nginx 是一个高性能的反向代理和负载均衡器。本文将详细介绍如何通过 Nginx 实现 CouchDB 集群的负载均衡&#xff0c;并监控请求被分发到哪一台 Couc…

踏上 C++ 编程之旅:开篇之作

踏上 C 编程之旅&#xff1a;开篇之作 在计算机编程的广袤天地中&#xff0c;C 宛如一座巍峨的高峰&#xff0c;吸引着无数开发者攀登探索。今天&#xff0c;就让我们一同开启这段充满挑战与惊喜的 C 编程之旅&#xff0c;在代码的世界里开辟属于自己的道路。 一、为什么选择…

闲谭SpringBoot--ShardingSphere分布式事务探究

文章目录 0. 背景1. 未分库分表时2. 仅分表时3. 分库分表时3.1 不涉及分库表3.2 涉及分库表&#xff0c;且分库表处于一个库3.3 涉及分库表&#xff0c;且分库表处于多个库3.4 涉及分库表&#xff0c;且运行中某库停机 4. 小结 0. 背景 接上篇文章《闲谭SpringBoot–ShardingS…

算法竞赛(蓝桥杯)贪心算法1——数塔问题

题目描述 有如下所示的数塔&#xff0c;要求从底层走到顶层&#xff0c;若每一步只能走到相邻的结点&#xff0c;则经过的结点的数字之和最大是多少&#xff1f; 输入 输入数据首先包括一个整数整数 N (1≤N≤100)&#xff0c;表示数塔的高度&#xff0c;接下来用 N 行数字表示…

C++实现设计模式---代理模式 (Proxy)

代理模式 (Proxy) 代理模式 是一种结构型设计模式&#xff0c;它为其他对象提供一个代理以控制对该对象的访问。代理模式常用于延迟加载、访问控制、智能引用等场景。 意图 提供对某对象的控制。控制对目标对象的访问&#xff0c;通常用于在不改变目标对象的情况下&#xff0…

【Flink系列】1.概述

1. Flink概述 1.1 Flink是什么 1.1.1 Flink是什么 Flink的官网主页地址&#xff1a;https://flink.apache.org/ 1.1.2 有界流和无界流 1.1.2 有状态流处理 1.1.3 Flink 的发展历史 1.2 Flink特点 1.3 Flink vs SparkStreaming 1.4 Flink 的应用场景 1.5 Flink 分层 API

深度学习camp-第J7周:对于ResNeXt-50算法的思考

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 &#x1f4cc;你需要解决的疑问&#xff1a;这个代码是否有错&#xff1f;对错与否都请给出你的思考 &#x1f4cc;打卡要求&#xff1a;请查找相关资料、逐步…