Я не использовал openbgpd в течение многих лет, поэтому я дам вам теорию, которую вы можете применить к своей конфигурации.
Провайдер может отправлять вам маршруты. Обычно они отправляют «по умолчанию», «клиенты» или «полный». Маршрут по умолчанию таков: вам объявлено 0.0.0.0/0, и вы знаете, что через него будет проходить 0.0.0.0/0 (любой IP). В вашей ситуации звучит так, будто оба провайдера передают вам маршрут по умолчанию, и, скорее всего, тот, у кого более низкий ASN, получает весь трафик (ASN является прерывателем связей, когда пакет может идти по нескольким получателям, а пути AS равны длина и т. д.).
В ленте «клиентов» они будут объявлять каждый маршрут, который напрямую связан с ними. Если у вас есть провайдер, такой как Level3, вы, вероятно, увидите половину интернета через этот канал. Если у вашего другого провайдера более низкий ASN, он получит любой трафик, который не был напрямую связан с партнером, объявляя вам маршруты своих клиентов.
«Полный» фид будет содержать объявления о маршрутах для каждого сайта, к которому провайдер знает, как добраться, а не только тех, которые напрямую связаны.
Вы должны быть в состоянии сделать что-то вроде:
show ip bgp summary (команда IOS)
который должен перечислить количество префиксов, полученных где-то.
Если оба ваших существующих провайдера отправляют вам маршрут по умолчанию, то ваше соединение в настоящее время настроено на отработку отказа. Провайдер A выходит из строя, после чего вы будете перенаправлять его к провайдеру B. Если вы берете фиды клиентов с обоих вместе с маршрутом по умолчанию, трафик будет перенаправляться провайдеру, у которого самый короткий путь ASpath для достижения заданного адреса, и будет возвращаться к значению по умолчанию маршрут, если он не может найти адрес. Если вы получили полный канал от обоих, в зависимости от совпадения между провайдерами, вы бы отправили трафик по «лучшему» пути к каждому.
На одном из наших пограничных маршрутизаторов я показываю 310540 активных маршрутов, убедитесь, что у вас достаточно ОЗУ и настроил машину для обработки маршрутов от обоих провайдеров, если вы используете полные маршруты. Вы можете экспериментировать с маршрутами клиентов от обоих, пока не почувствуете себя более комфортно. Или возьмите маршруты клиентов у меньшего поставщика из двух и посмотрите, как все меняется.
Это все еще не «балансирует нагрузку» и не разделяет трафик равномерно и в зависимости от вашего трафика. Вы можете обнаружить, что один провайдер по-прежнему получает львиную долю трафика. На этом этапе вам нужно будет сделать некоторые префиксы / карты маршрутов, чтобы скорректировать трафик, чтобы он предпочитал одного пира или другого.
Как только вы настроите карты маршрутов или соответствие ASN для смещения вашего трафика, если сайт назначения отключится и их маршрут будет удален от этого провайдера, ваш маршрутизатор все равно будет отправлять трафик через другое соединение. BGP несколько самовосстанавливающийся.
Мы сделали несколько карт, которые соответствуют ASN.
PROVIDER_A_TO PROVIDER_A_THROUGH PROVIDER_B_TO PROVIDER_B_THROUGH
Juniper делает это проще, чем использование сообществ, но вы можете сделать и то и другое.
Наши списки префиксов показывают, является ли пункт назначения конкретным ASN, и если это так, он проходит через карту _TO. Если ASN указан в _THROUGH, он предпочтет этого провайдера. Поскольку один из наших провайдеров имеет прямое соединение с AT & T, PROVIDER_B_THROUGH соответствует 7018 | 7019 (и нескольким другим ASN), так что трафик AT & T по умолчанию используется провайдером B. Даже если AT & T доступен из обоих, мы предпочитаем отправлять его через провайдера B ,
Я уверен, что openbgpd имеет аналогичные методы.