如果这是一个简单的问题,我很抱歉,但目前对我来说这是一个非常大的问题。我们有一个项目要在 Quagga 中对路由器网络进行编程,我这样做了(尽管有一些问题,因为我们只在课堂上使用了 OSPF),但我不知道如何将成本分配给 RIP 和 BGP。据我所知,从 nongnu 网站上的 quagga.pdf 来看,他们不只花费距离,我不确定这是否是同一回事。
如果可以使用成本,我将不胜感激如何做到这一点,因为我现在很难过。
如果这是一个简单的问题,我很抱歉,但目前对我来说这是一个非常大的问题。我们有一个项目要在 Quagga 中对路由器网络进行编程,我这样做了(尽管有一些问题,因为我们只在课堂上使用了 OSPF),但我不知道如何将成本分配给 RIP 和 BGP。据我所知,从 nongnu 网站上的 quagga.pdf 来看,他们不只花费距离,我不确定这是否是同一回事。
如果可以使用成本,我将不胜感激如何做到这一点,因为我现在很难过。
所以有一个决策树,几乎任何路由器在确定路由时都会经过。各自的路由协议(RIP、BGP、OSPF、IS-IS、静态)运行它们自己的算法来确定给定前缀的理想路径。如果路由器呈现相同的路由(即相同的网络和前缀长度),则查询管理距离。这是盒子上各种路由协议的相对优先级,在大多数实现中,最低值获胜。
所以 - 我从 Quagga 的理解是,它将 RIP 路由视为具有 120 的默认管理距离。如果您没有在静态路由上指定不同的 AD,它最终的值为 1。因此,静态路由通常会优先于 RIP 路由。反过来,如果您设置一个 AD 为 200 的静态路由(例如),它将仅在等效 RIP 路由离开表时使用(这称为浮动静态路由)。
在您的示例中,情况是通过 BGP 接收的路由可能具有两个不同的 AD 之一 - 一个用于内部 BGP 路由(在 Cisco 中默认为 200 - 假设 Quagga 类似),另一个用于外部(通常低得多 - 20在思科)。
您可以手动调整 Quagga 中的 AD。看一下手册,具体考虑distance
每个路由协议定义下的命令。当您查看路由表时,您可以看到这些规则生效,其格式通常类似于 xyzq/nn [AA/MMMM],其中 AA = 管理距离,MMMM = 协议内的度量。
顺便说一句 - 我希望这从我上面写的内容中很明显 - 最长的前缀匹配始终是最重要的因素。在 RIP 中接收到的 AD 为 120 的 /32 将胜过来自具有 20 AD 的 eBGP 的重叠 /24。不过,这只是基本路由。
此外 - 在几乎所有设计合理的网络场景中,都不需要调整 AD。如果这似乎是接近设计的唯一方法,我会强烈考虑完全重新接近设计,因为当没有一致地应用 AD 时,可能会出现很多操作问题、路由循环等。
希望这可以帮助。
您如何定义 Quagga 中 BGP 和 RIP 的成本?
简单地说,你没有。
您正在将苹果与橙子进行比较。OSPF 是一种链路状态路由协议,使用成本,但 RIP 和 BGP 均不使用成本。RIP 是一种使用跳数作为度量的距离矢量协议,而 BGP 使用各种属性来确定发送流量的方向。
我会礼貌地建议,因为你不得不问这个问题,你根本不具备正确配置 BGP 的技能。BGP 是一个非常复杂的协议,您确实需要了解它。它连接由不同实体管理的不同 AS(自治系统),每个实体都维护自己的路由策略。BGP 可以向不同的 AS 建议某些内容,但其他 AS 可以完全自由地忽略它并按照它想要的方式路由。