一、前言
日常维护工作中,有时候会遇到单台主机多张网卡的情况,尤其云上环境,云主机多张网卡是一种常见网络配置场景,那如何让多网卡正常工作呢,本期基于此北京,回顾下Linux策略路由的相关知识;
策略路由PBR:(Policy-Based-Route),也称为源路由,它是一种比基于目标网络进行路由更加灵活的数据包路由转发机制。该技术打破了路由表的传统选路规则,可以根据管理维护人员自定义的策略条件(如源 IP 地址、源端口和协议类型)来选择性的转发数据包。Linux 使用 “路由策略数据库” RPDB (Routing Policy DataBase) 来实现基于策略的路由系统(policy based routing system)。RPDB 支持多个路由表RHEL 中,默认情况下的内核决定使用路由表是根据目标地址转发网络数据包,而基于策略的路由允许我们可以配置复杂的路由场景,比如当代系统网络服务NetworkManager,systemd管理的OS,比如:多网卡的情况,比如更自由灵活的网络策略需要场景,比如基于管理目的QoS需求或VPN拓扑结构中要求某些路由必须经过特定的路径的场景;但应用策略路由,须指定策略路由使用的路由图,这个路由图/表要事先定义号。
路由表/图存储关于网络的路由表信息。它们通过数值或名称标识,从Linux-2.2开始,内核把路由归纳到许多路由表中,这些表的编号数字的范围是1到255,可在 /etc/iproute2/rt_tables
文件中配置,默认情况下,所有的路由都会被插入到表main(编号254)中。在进行路由查询时,内核只使用默认路由表main。其中,一个路由图由很多条策略组成,每个策略都定义了1 个或多个的匹配规则和对应操作,规则用于根据数据包的特定属性选择路由表。当一个接口应用策略路由后,将对该接口接收到的所有包进行检查,而不符合路由图/表任何策略的数据包将按照linux内默认的路由策略转发进行处理,符合路由图中某个策略的数据包则按照该策略中定义的操作进行处理。
相关资源:RHOSP 动态路由、基于策略的路由、