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

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.lryc.cn/news/521769.html

相关文章:

  • 浅谈云计算14 | 云存储技术
  • AI 编程工具—Cursor进阶使用 阅读开源项目
  • 使用 WPF 和 C# 将纹理应用于三角形
  • Elasticsearch搜索引擎(二)
  • unity学习17:unity里的旋转学习,欧拉角,四元数等
  • 走出实验室的人形机器人,将复刻ChatGPT之路?
  • 如何使用wireshark 解密TLS-SSL报文
  • 电脑有两张网卡,如何实现同时访问外网和内网?
  • 定义:除了Vue内置指令以外的其他 v-开头的指令(需要程序员自行扩展定义)作用:自己定义的指令, 可以封装一些 dom 操作, 扩展
  • SpringBoot错误码国际化
  • LeetCode 3066.超过阈值的最少操作数 II:模拟 - 原地建堆O(1)空间 / 优先队列O(n)空间
  • 深度学习中的模块复用原则(定义一次还是多次)
  • Mac——Cpolar内网穿透实战
  • 安全测评主要标准
  • qBittorent访问webui时提示unauthorized解决方法
  • 504 Gateway Timeout:网关超时解决方法
  • Vue 实现当前页面刷新的几种方法
  • MCP Server开发的入门教程(python和pip)
  • 手撕Transformer -- Day7 -- Decoder
  • C#异步和多线程,Thread,Task和async/await关键字--12
  • 使用分割 Mask 和 K-means 聚类获取天空的颜色
  • 145.《redis原生超详细使用》
  • Pytorch基础教程:从零实现手写数字分类
  • 【SH】Xiaomi9刷Windows10系统研发记录 、手机刷Windows系统教程、小米9重装win10系统
  • excel仅复制可见单元格,仅复制筛选后内容
  • HBASE学习(一)
  • element select 绑定一个对象{}
  • Sprint Boot教程之五十八:动态启动/停止 Kafka 监听器
  • C:JSON-C简介
  • 业务幂等性技术架构体系之消息幂等深入剖析