"); //-->
策略路由
我们不仅要根据目的地地址,还要根据其他数据包字段(源地址、IP 协议、传输协议端口甚至
数据包有效负载)来不同地路由数据包。此任务称为策略路由。Linux 策略路由是一种基于
策略的路由机制,相对于传统的基于目的地址的路由机制,它可以提供更灵活和强大的路由
控制能力。
在 Linux 中,策略路由通过使用路由策略数据库(RPDB)来实现,它可以根据不同的源地址、
传输层端口和 payload 等条件进行更细致的路由控制。
每条策略路由的规则由一个选择器和一个动作组成,RPDB 按照优先级顺序进行规则匹配,
优先级数字越小越优先。被选择器匹配的报文会执行对应的操作,操作如果成功,
则根据指定的路由转发数据,之后终止 RPDB 匹配;如果执行失败,则报错并且终止
RPDB 匹配。否则 RPDB 将继续执行下一条规则。
在启动时,内核配置默认的 RPDB,包括三个规则:
优先级:0,选择器:匹配任何内容,操作:查找路由表本地(ID 255)。
本地表是一种特殊的路由表,包含本地和广播地址的高优先级控制路由
优先级:32766,选择器:匹配任何内容,操作:查找路由表main(ID 254)。
主表是包含所有非策略路由的常规路由表。此规则可以被删除和/或由其他规则覆盖管理员
优先级:32767,选择器:匹配任何内容,操作:查找路由表default(ID 253)。
默认表为空。如果没有先前的默认规则选择数据包,则它将保留用于某些后处理。
这条规则也可能将被删除
**注:**不要混淆路由表和策略:规则指向路由表,多个规则可以引用一个路由表,
而且某些路由表可以策略指向它。如果系统管理员删除了指向某个路由表的所有规则,
这个表没有用了,但是仍然存在,直到里面的所有路由都被删除,它才会消失。
linux 系统中,可以自定义从 1-252个路由表,其中,linux 系统维护了4个路由表:
0#表: 系统保留表
253#表: default table 没特别指定的默认路由都放在该表
254#表: main table 没指明路由表的所有路由放在该表
255#表: local table 保存本地接口地址,广播地址、NAT地址 由系统维护,
用户不得更改
每个 RPDB 条目都有附加属性。每个规则都有一个指向某个路由表的指针。
NAT 和伪装规则有一个属性来选择要翻译/伪装的新 IP 地址。除此之外,
规则还有一些可选的路由拥有的属性,即领域。这些值不会覆盖路由表中包含的值。
它们仅在路由未选择任何属性时使用。
RPDB 可能包含以下类型的规则:
unicast:规则规定返回在规则引用的路由表中找到的路由
blackhole:规则规定悄悄地丢弃数据包
unreachable:规则规定生成“网络不可达”错误
prohibit:规则规定生成“管理禁止通信”错误
nat:规则规定将IP数据包的源地址转换为其他值
————————————————
原文链接:https://blog.csdn.net/qq_36803941/article/details/135534711
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。
相关推荐
uClinux系统分析
U-BOOT 与 MontaVista Linux 的移植
基于ARM-Linux的MiniGUI的仿真与移植
由于英特尔裁员和公司重组,主要的英特尔 Linux 驱动项目正在消亡
[转帖]NeuLinux嵌入式Linux开发平台
实时Linux技术:如何在嵌入式LINUX中应用实时特性
基于ARM的嵌入式Linux系统开发 上
Linux内核源代码的阅读和工具介绍(aqian转)
RK3506核心板SDK重磅升级,解锁三核A7实时控制新架构
Linus Torvalds 称谷歌工程师提交的 RISC-V 代码为“垃圾”,并表示它“让世界变得更糟糕”
一种嵌入式ARM-Linux GPS智能终端设计
Linux 今天 34 岁了
ARM 开发板使用手册 在三星 S3C2410开发板上烧写linux
基于ARM的嵌入式Linux系统开发 下
嵌入式LINUX开发套件常见问题解答
FFT公司9200的板子的资料
linux入门精华
GeForce 590 驱动分支是首个不支持 GTX 9 和 10 系列 GPU 的分支——Linux 版本标志着定义时代显卡的终结
嵌入式Linux优化:加快系统起动和应用起动的过程
基于Linux平台的温度传感器DS18B20驱动程序设计
英特尔为 Nova Lake CPU 准备新的 Linux 支持
[链接]Firefox_ 重新发现网络
Linux系统的DS18B20驱动程序源代码
Linux系统下USB摄像头驱动开发
Kontron与Congatec合作开发安全的嵌入式Linux平台
uClinux系统分析
53年后,惠普于1972年推出的总线标准获得了稳定的Linux驱动——通用接口总线拥有惊人的8 MB/s带宽
ASIL D Linux的首次基线安全评估
基于ARM的嵌入式Linux系统开发 中
Linux中的fork与exec系列函数分析