Eu não usei openbgpd em anos, então, eu vou te dar uma teoria que você pode aplicar à sua configuração.
Um provedor pode enviar rotas para você. Normalmente, eles enviam 'default', 'customers' ou 'full'. Uma rota padrão é justamente isso, 0.0.0.0/0 é anunciado para você e você sabe que chega a 0.0.0.0/0 (qualquer IP) através deles. Sua situação faz parecer que ambos os provedores estão entregando a você uma rota padrão e, provavelmente, aquele com o ASN mais baixo está recebendo todo o tráfego (ASN sendo o desempatador quando um pacote pode ir para vários destinos e os caminhos AS são iguais comprimento, etc.).
Um feed de "clientes" permite que eles anunciem todas as rotas diretamente conectadas a eles. Se você tem um provedor como Level3, provavelmente veria metade da internet por meio desse feed. Se o seu outro provedor tiver um ASN mais baixo, ele receberia qualquer tráfego que não estivesse diretamente conectado ao peer anunciando as rotas dos clientes para você.
Um feed "completo" terá anúncios de rota para todos os sites que um provedor sabe como acessar - não apenas aqueles que estão conectados diretamente.
Você deve ser capaz de fazer algo como:
show ip resumo do bgp (comando IOS)
que deve listar o número de prefixos recebidos em algum lugar.
Se os dois provedores existentes estiverem enviando uma rota padrão, a conexão está configurada para failover. O Provedor A desce, você encaminharia para o Provedor B. Se você receber feeds de cliente de ambos junto com a rota padrão, o tráfego fluiria para o provedor que possui o caminho mais curto para alcançar um determinado endereço e retornaria ao padrão rota se não conseguir encontrar o endereço. Se você obtivesse um feed completo de ambos, dependendo da sobreposição entre os provedores, você enviaria o tráfego para o caminho "melhor" para cada um.
Em um dos nossos roteadores de borda, eu mostro 310540 rotas ativas, verifique se você tem RAM suficiente e configurei a máquina para lidar com as rotas de ambos os provedores se você tomar rotas completas. Você pode experimentar fazer rotas de clientes de ambas até se sentir mais confortável. Ou pegue as rotas dos clientes do provedor menor dos dois e veja como as coisas mudam.
Isso ainda não faz "balanceamento de carga" ou divide o tráfego de maneira uniforme e depende do tráfego. Você pode descobrir que um provedor ainda recebe a maior parte do tráfego. Neste ponto, você precisaria fazer alguns mapas de prefixo / rota para ajustar o tráfego para preferir um ponto ou outro.
Depois de configurar mapas de rotas ou uma correspondência de ASN para alterar seu tráfego, se o site de destino cair e sua rota for removida desse provedor, o roteador ainda enviará o tráfego para a outra conexão. O BGP é um pouco auto-reparador.
O que fizemos foi ter alguns mapas definidos que combinam com base no ASN.
PROVIDER_A_TO PROVIDER_A_THROUGH PROVIDER_B_TO PROVIDER_B_THROUGH
O Juniper torna isso mais fácil do que usar as comunidades, no entanto, você pode fazer isso.
Nosso prefixo lista ver se o destino é um ASN em particular, e se for, ele passa pelo mapa _TO. Se o ASN estiver listado em _THROUGH, ele preferirá esse provedor. Como um de nossos provedores tem uma conexão direta com AT & T, PROVIDER_B_THROUGH corresponde a 7018 | 7019 (e a alguns outros ASNs) para que o tráfego de AT & T seja padronizado como Provedor B. Embora AT & T seja acessível de ambos, preferimos para enviá-lo embora Provedor B.
Tenho certeza de que o openbgpd tem métodos semelhantes.