Answers:
路由度量标准是在具有相同特异性的路由之间设置优先级。一般而言,这是正确的路由(即Cisco,Windows等)。因此,模型的工作方式如下:
请注意,基于策略的路由可能还会发生其他事情,使您可以执行基于源IP地址的路由等操作。但是,我认为主要的三件事是路线的特殊性,管理距离和度量。
*之所以称为最长前缀匹配,是因为二进制的子网(例如/ 24)看起来像11111111.11111111.11111111.00000000
。因此,路由器可以只扫描前缀中的二进制1,并在到达零后停止并匹配该前缀。
zebra
守护程序内部实现AD ,并且仅将选定的路由发送到内核-因此内核无需处理AD。我需要检查,但我认为Quagga会将内核指标设置为恒定值。
Linux提供了许多用于灵活路由选择的工具。
在最简单的情况下,只有一个内核路由表,而没有带有SRC属性的路由。该表包含许多路由,这些路由是ip route add
由DHCP守护程序或路由守护程序手动放置在()处的。在这种情况下,内核选择:
注意,内核度量标准(由显示ip route show
)由路由守护程序选择,并且不一定与任何特定路由协议的度量标准相关。例如,Quagga对其安装在内核中的所有路由使用相同的度量标准,而与协议的度量标准无关。
Linux还支持具有SRC属性的路由,该路由仅匹配具有给定源地址的数据包。SRC仅适用于IPv6,直到最近才出现故障(如果有内存,则为3.11)。我不建议您使用它,除非您知道自己在做什么。
如果您需要的灵活性超出上述范围,则需要使用多个路由表,并编写规则为每个数据包选择一个特定的路由表。一种常见的技术是在源地址上调度,以模拟特定于源的路由。另一种技术是在其自己的路由表中运行每个路由守护程序,并模拟Cisco的“管理距离”。所有这些在LARTC的第4章中都有详细描述。
src
属性的作用。您将要阅读man ip-route
或其他文档。它确实适用于IPv4。我使用它来通过单个网到网IPSec隧道获取所有流量,包括路由器的流量。
RTA_SRC
属性与我所说的完全相同。可以使用命令from
选项进行访问ip
。该ip
命令的src
选项设置RTA_PREFSRC
属性,即您所描述的。