我连接到两个BGP对等点;它们都给了我一个过滤表,其中包括一个默认的+ 30K前缀(不是一个完整的表)。对于我确实收到的前缀,我只是让BGP使用它的前缀长度算法来选择最佳路由。对于我没有接收到的前缀(即“默认”适用),我倾向于BGP对等点1。问题是,对于一个特定的前缀,我没有从任何一个BGP对等点(即:默认情况下适用),我想支持BGP对等点2,而不是通常的对等点1。我知道我可以很容易地使用静态路由来实现这一点,但听起来不太正确,因为如果我在对等点2's路由器上添加一个静态路由,那么静态路由就会“粘”,我将无法将任何流量推到该前缀。如果我能找到一个BGP机制来做同样的事情,我可以选择一个路由而不是BGP对等点2,但是如果该路由不可用,那么将使用到BGP对等点1的路由。
为了操作我的外部路由,我使用路由映射,将出站流量的相同本地偏好设置为接收到的前缀,因此使用BGP的默认前缀列表长度算法,并且我使用BGP对等端1的“默认”路由设置了更高的出站流量偏好。
不幸的是,我不知道如何为我的特殊前缀使用路由映射,因为系统中不存在带有该前缀的对象:就两个BGP对等点而言,它由“默认”路由处理。
我使用Quagga作为路由,所以BGP不是唯一可用的协议。思科风格的解决方案也会很好,因为我怀疑我缺乏一些基本知识,任何向正确方向的推进都会帮助我找到我的方向。
这是我的bgpd.conf文件,经过编辑以删除个人信息;希望我没有做过:
router bgp 12345
bgp router-id 10.0.0.1
network 10.0.0.0/24
redistribute connected
!
neighbor 10.0.1.1 remote-as 22222
neighbor 10.0.1.1 ebgp-multihop 3
neighbor 10.0.1.1 next-hop-self
neighbor 10.0.1.1 distribute-list distrib-out out
neighbor 10.0.1.1 route-map INBGP1 in
!
neighbor 10.0.2.1 remote-as 11111
neighbor 10.0.2.1 ebgp-multihop 10
neighbor 10.0.2.1 next-hop-self
neighbor 10.0.2.1 distribute-list distrib-out out
neighbor 10.0.2.1 route-map INBGP2 in
!
access-list distrib-out permit 10.0.0.0/24
!
access-list is-default permit 0.0.0.0/0 exact-match
!
route-map INBGP2 permit 10
set metric 2
set ip next-hop 89.121.231.73
on-match next
!
route-map INBGP2 permit 20
match ip address is-default
set local-preference 101
on-match goto 1000
!
route-map INRTC permit 30
set local-preference 110
set metric 1
!
route-map INBGP2 permit 10
set metric 1
on-match next
!
route-map INBGP1 permit 20
match ip address is-default
set local-preference 200
on-match goto 1000
!
route-map INBGP1 permit 30
set local-preference 110
set metric 1发布于 2012-01-11 07:12:56
添加一个静态路由,而下一个跳仅由于对等点2的路由而到达对等点2。这样,只要收到该路由,静态路由就会指向对等点2。但一旦丢失该路由,现有的故障转移就会翻转它。
选择任何到对等点2的路由,但是如果你不能到达对等点2,它就会消失。然后为您想要覆盖的流量添加一个静态路由,然后在您选择的路径所涵盖的下一个跳中添加一个静态路由。这将导致与第二条路线匹配的流量跟踪第一条路线。
例如,假设要控制流量的前缀是216.152.32.0/24。您可以创建一个到216.152.32.0/24的静态路由,然后选择它的下一个跳。因为这是一条静态的路由,到216.152.32.0/24的流量将被路由到下一跳(假设没有更多的特定路由,而不会有)。因此,这将问题减少到选择合适的下一跳。
当连接到对等点2的时候,你想让流量朝一个方向走,当那个链接不起作用的时候,你想要另一个方式。所以你需要选择下一个有这个属性的街舞。原则上,您从对等方2处动态接收到的路由内的任何IP都可以工作。当您拥有该路由时,该流量将转到对等方2,如果您没有使用该路由,则将遵循默认的对等点1。(假设您的默认设置为故障转移)。
理想情况下,选择一条“核心”到对等点2的路径,但不要太靠近你的连接点。你想让它成为第二同伴的“核心”,因为你不想让它永远翻到第一位。你不想让它离你太近,因为如果你的节点被隔离,你想要在第二个节点上失败。如果你对几个随机站点做了一个跟踪,你可能会在附近的一个城市找到一个核心路由器,在它们的骨干上。那个可以。
https://serverfault.com/questions/348733
复制相似问题