内核对路由表的操作

  • 更新

  • 插入

  • 删除

  • 查找

路由表种类

  • 网络路由表:ip_fib_main_table

  • 本地路由表:ip_fib_local_table

  • 路由缓存:rt_hash_table

  • 策略路由:根据策略支持多张路由表

表项

  • 路由缓存表项:rtable, 一般使用dst_entry,rtable是对dst_entry的包裹,另外rtable中还有协议相关的信息。

  • dst_entry:对一条路由缓存存储协议无关的信息

更新:

1. 路由缓存

rt_cache_flush()    安排刷新路由缓存

2. 路由表

fib_sync_down()     当一个设备被关闭或删除一个本地地址时更新路由表

fib_flush()         扫描路由表,删除路由项

插入:

1. 路由缓存

rt_intern_hash()    向路由缓存添加一条表项

2. 路由表,分为用户空间插入方法和内核方法,用户空间最终是通过调用内核方法实现。

删除:

1. 路由缓存

rt_free()           删除路由缓存中的一条表项

dst_free()          删除dst_entry

2. 路由表,分为用户空间插入方法和内核方法,用户空间最终是通过调用内核方法实现。

fib_del_ifaddr()    标记一个需要删除的路由项,然后调用fib_sync_down()或fib_flush()来清理路由表

查找:

1. 路由缓存

入口流量:ip_route_input()

出口流量:ip_route_output_key()

2. 路由表

入口流量:ip_route_input_slow()

出口流量:ip_route_output_slow()

Linux内核路由表介绍及相关函数相关推荐

  1. linux内核结构介绍

    参考:linux内核结构介绍.什么是shell 作者:丶PURSUING 发布时间: 2021-02-15 14:15:24 网址:https://blog.csdn.net/weixin_44742 ...

  2. linux内核结构介绍及驱动引入

    目录 一.Linux内核结构框图 二.图解linux系统架构 三.驱动认知 3.1 为什么要学习写驱动 3.2 文件名与设备号 3.3 open函数打通上层到底层硬件的详细过程 四.shell she ...

  3. 手机linux内核版本了解,Linux内核版本介绍与查询

    Linux内核版本命名在不同时期有着不同的规范,在涉及到Linux版本问题时经常容易混淆,主线版本/稳定版/长期支持版本经常搞不清楚,本文主要记录下内核版本命名的规则以及如何查看Linux系统版本信息 ...

  4. linux 内核 调试工具介绍

    1 内核调试以及工具总结 内核总是那么捉摸不透, 内核也会犯错, 但是调试却不能像用户空间程序那样, 为此内核开发者为我们提供了一系列的工具和系统来支持内核的调试. 内核的调试, 其本质是内核空间与用 ...

  5. 几个重要的RedHat Linux内核文件介绍 (1)

    From:http://tech.sina.com.cn/s/s/2006-06-27/061923370.shtml Linux服务器内核编译基础 mynix编译自www.linux.org之Lin ...

  6. Linux内核 scatterlist介绍

    scatterlist 物理内存的散列表.通俗讲,就是把一些分散的物理内存,以列表的形式组织起来 诞生背景 假设有三个模块可以访问memory:CPU.DMA控制器和某个外设. CPU通过MMU以虚拟 ...

  7. linux 内核路由表 U G H等含义

    使用 route命令查看内核路由表 可以看到flags下面有许多字母 组合,他们分别的含义是: U (route is up):该路由是有效的: H (target is a host):目标是一部主 ...

  8. Linux内核版本介绍与查询

    文章目录 Linux内核(Linux kernel)简介 Linux内核版本号 1.在CentOS下如: 2.在Ubuntu下如: 3.在ARM Cortex-A7内核的嵌入式Linux开发板下 内核 ...

  9. linux内核版本介绍

    Linux版本 linux版本分为两类: 内核版本:免费的,它只是操作系统的核心,负责控制硬件.管理文件系统.程序进程等,并不给用户提供各种工具和应用软件: 发行版本:不一定免费,出了操作系统核心外, ...

最新文章

  1. Codeforces Round #319 (Div. 1) B. Invariance of Tree 构造
  2. [力扣] 二叉树的层序遍历
  3. html input file 修改按钮文字_html单选按钮默认选中怎么做?input标签的单选按钮用法实例...
  4. Shell编程-控制结构 | 基础篇
  5. 十三、MySQL存储过程相关知识总结 + 案例讲解(强化)
  6. vue-cli目录结构解析
  7. virtualBox文件共享
  8. 从0开始构建一个属于你自己的PHP框架
  9. Yacc 和 Bison
  10. 基于javafx+sqlserver的仓库管理系统
  11. 经典多级时间轮定时器(C语言版)
  12. win7电脑怎么录屏?如何使用电脑录屏软件
  13. linux删除文件名的文件夹,Linux删除文件夹和修改文件名
  14. K线形态识别—K线反转形态之缺口
  15. python中while和for的运行顺序_详解python while 函数及while和for的区别
  16. 晚清十大武林高手(电视里常引用的真实人物)
  17. WPF UnhandledException
  18. 收银设备对接php,快速对接payjs的个人支付接口(收银台模式)
  19. 单细胞测序分析及单细胞转录组
  20. 洗牌一副n张牌,每一张牌都用字母顺序标记。

热门文章

  1. 《c++语言导学》——3.5 建议
  2. centos6.4 源码安装mysql5.5
  3. Asp.net2.0实现Word转换Html,同时分享系列笑话
  4. 安装oracle解压版,oracle11g压缩解压版图文安装详细教程
  5. Eclipse+jetty+maven+Struts2+Spring2+Hibernate3+annotation注册系统V1.0
  6. 计算机网络多元化媒体传达,【多媒体技术论文】视觉传达设计多媒体技术的应用(共4007字)...
  7. linux命令去除重复的值,学习linux的Split 命令-linux下去除重复的命令uniq用法...-linux下join与paste命令的用法_169IT.COM...
  8. keil debug如何在watch直接修改变量值_零基础学VBA:什么是VBA?如何编写和运行VBA代码?...
  9. 计算机系统结构教程卷子,计算机系统结构试卷试题.docx
  10. 大班科学认识电子计算机教案与反思,幼儿园大班科学教案:认识电子计算器.doc...