Я использую openbgpd во FreeBSD с двумя подключениями к Интернет-провайдеру. У меня есть собственный номер AS и сеть / 22. В настоящее время я рекламирую всю / 22 в обеих сетях. Входящий трафик входит, но мой исходящий трафик идет по одной ссылке.
Я хотел бы либо распределить свой исходящий трафик по обоим каналам, чтобы исходящий трафик также был сбалансирован по нагрузке.
Как это настроить с помощью openbgpd во freebsd?
Моя текущая конфигурация openbgpd прилагается для справки.
AS 00my-as
listen on xx.xx.xx.x
router-id xx.xx.xx.x
network aa.aa.aa.0/22
group "ISP1" {
remote-as 11remoteas-1
neighbor bb.bb.bb.1 {
descr "ISP1"
announce all
}
}
group "ISP2" {
remote-as 22remoteas-2
neighbor cc.cc.cc.37 {
descr "ISP2"
announce all
}
}
deny from any
deny to any
allow from bb.bb.bb.1
allow to bb.bb.bb.1
allow from cc.cc.cc.37
allow to cc.cc.cc.37
BGP не является протоколом балансировки нагрузки.
Повторяю, BGP - это НЕ протокол балансировки нагрузки.
Если ВСЕ трафик проходит через одно соединение, я предполагаю, что вы не получаете полный канал от игнорируемого провайдера. Маршрутизация такова, что приоритет отдается более конкретным маршрутам, поэтому, если у вас есть маршрут 192.168.0.0/23, идущий к провайдеру a, и два маршрута 192.168.0.0/24 и 192.168.1.0/24, идущие к провайдеру b, поставщику a будет полностью проигнорирован. Я не знаком с OpenBGP. Поэтому я не могу рассказать вам о том, как проверить некоторые вещи, не глядя. Но первое, что вам нужно сделать, это подтвердить, что ОБЕ провайдеры предоставляют вам полный канал, а не только маршрут по умолчанию.
Если это так, то вам необходимо изучить предпочтения маршрута для исходящего трафика и заполнение пути для входящего трафика. Обязательно подождите двадцать четыре - сорок восемь часов между изменениями конфигурации, чтобы убедиться, что у вас достаточно большой набор данных для определения эффективности ваших изменений.
Я не использовал openbgpd много лет, поэтому дам вам некоторую теорию, которую вы можете применить к вашей конфигурации.
Провайдер может отправлять вам маршруты. Обычно они отправляют «по умолчанию», «клиенты» или «полный». Маршрут по умолчанию - это просто то, что вам объявляется 0.0.0.0/0, и вы знаете, что через них можно достичь 0,0.0.0/0 (любой IP). В вашей ситуации создается впечатление, что оба провайдера передают вам маршрут по умолчанию, и, скорее всего, тот, у кого ASN ниже, получает весь трафик (ASN является средством разрешения конфликтов, когда пакет может идти в несколько пунктов назначения, а пути AS равны. длина и т. д.).
Лента «клиентов» заставит их объявлять каждый маршрут, который напрямую связан с ними. Если у вас есть такой провайдер, как Level3, вы, вероятно, увидите половину Интернета через этот канал. Если ваш другой провайдер имеет более низкий ASN, он получит любой трафик, который не был напрямую подключен к одноранговому узлу, объявляющему вам свои маршруты клиентов.
В «полном» фиде будут объявления о маршруте для каждого сайта, к которому провайдер знает, как добраться, а не только для тех, которые напрямую подключены.
Вы должны уметь делать что-то вроде:
показать сводку ip bgp (команда 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 есть похожие методы.
Постройте мост. Freebsd фактически будет балансировать нагрузку на восходящие функции текущих префиксов и довольно хорошо сбалансирует нагрузку. BGP не будет. Вы можете установить обоих вышестоящих ISP и объявить обоим ISP для вашего / 22, и они, скорее всего, отклонят ваши префиксы WAN / 30, но iBGP подберет это. iBGP будет хорошо работать на мосту, и тогда нет реальной необходимости в OSPF. Теперь у вас есть балансировщик нагрузки и полностью избыточная настройка BGP. У нас есть несколько и мы любим их по ссылкам на концерты в Интернете.
Первое, что нужно проверить, - действительно ли работают оба сеанса BGP. использовать
bgpctl показать сводку
И посмотрите, есть ли у вас обмен сообщениями с обоими узлами.
И вам следует удалить «объявлять все», если только вы не хотите, чтобы одноранговый узел маршрутизировал свой трафик через вас, что, как правило, противоположно;
Просто удалите объявление все, и все будет в порядке.