当前位置: 首页 > article >正文

Linux网络知识——路由表

路由表

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.kler.cn/a/505291.html

相关文章:

  • C#读取本地网络配置信息全攻略
  • Windows 环境下安装和启动 Redis 服务
  • 微信小程序在使用页面栈保存页面信息时,如何避免数据丢失?
  • MC1.12.2 macOS高清修复OptiFine运行崩溃
  • Flutter插件制作、本地/远程依赖及缓存机制深入剖析(原创-附源码)
  • Wireshark抓包教程(2024最新版个人笔记)
  • 少一点If/Else - 状态模式(State Pattern)
  • SQL记录
  • Spring Boot 3.x 整合 Logback 日志框架(支持异步写入)
  • 59_Redis键值设计
  • 音视频文件提供流式传输之HTTP Range 请求
  • 【PHP】双方接口通信校验服务
  • 永久免费不限速下载器支持市面上大部分BT链接
  • vue中 子组件在父组件中因为异步问题导致的的underfind报错问题
  • 通用仓库管理系统开发书 Pyside6 + Sqlite3
  • 工业界主流大语言模型后训练技术综述:偏好对齐与能力提升
  • 【Block总结】ELGCA模块,池化-转置(PT)注意力和深度卷积有效聚合局部和全局上下文信息
  • 2025-01-08 - 通用人工智能技术 - RAG - 双系统 GPU直通 - 流雨声
  • LeetCode 3066.超过阈值的最少操作数 II:模拟 - 原地建堆O(1)空间 / 优先队列O(n)空间
  • WEB 攻防-通用漏-XSS 跨站脚本攻击-反射型/存储型/DOMBEEF-XSS
  • 书生大模型基础岛第四关
  • 批量识别图片型PDF指定区域内容识别保存表格+PDF批量改名:技术难题与项目实战总结
  • 【Sql递归查询】Mysql、Oracle、SQL Server、PostgreSQL 实现递归查询的区别与案例(详解)
  • Mac操作系统zip压缩加密
  • 【Vim Masterclass 笔记10】S06L23:Vim 核心操作训练之 —— 文本的搜索、查找与替换操作(第二部分)
  • 【21天学习AI底层概念】day13 (kaggle新手入门教程)Exercise: Underfitting and Overfitting