Перейти к содержимому
Калькуляторы

Juniper MX-80 балансировка исходящего трафика

Здравствуйте.

Прошу помощи, т.к. моих знаний немного не хватает, с протоколом BGP знаком довольно слабо. Есть пограничный маршрутизатор J-mx80, два вышестоящих провайдера, с ними поднят BGP, от обоих получаю фулвью. Провайдер А дает полосу 1,5Гб/с, провайдер Б - 200мб/с. С балансировкой входящего трафика разобрался (add as-prepend и анонсами сетей), а вот с исходящим беда. Большая часть трафика идет через провайдера Б (через него маршруты короче), соответственно забивается полоса пропускания в 200мб, другая часть трафика идет через провайдера А. Нужно чтобы весь трафик уходил через провайдера А, кроме сетей, указанных в пбр. Хотел поменять значение Local Pref, но не получилось. Прописал значение для конкретных нейборов, но после обновления маршрутов, значение Local Pref в них осталось дефолтное. Собственно вопрос, что я криво настроил, и так ли вообще сделал? Вот конфиг:

root@BR#show protocols bgp

path-selection cisco-non-deterministic;

advertise-inactive;

no-aggregator-id;

mtu-discovery;

out-delay 0;

log-updown;

local-as 12345;

group Uplink {

type external;

description "Uplink to inet";

multipath multiple-as;

neighbor x.x.x.x {

description "Провайдер А";

local-preference 200;

local-address x.x.x.1;

export AllNets;

peer-as XXX;

}

neighbor y.y.y.y {

description "Провайдер Б";

local-preference 150;

local-address y.y.y.1;

export SomeNets;

peer-as YYY;

 

Заранее спасибо!

Изменено пользователем Andy_999

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Прошу помощи, т.к. моих знаний немного не хватает, с протоколом BGP знаком довольно слабо.

 

Зачем же ты тогда понапрописывал команды, которые в твоем случае не будут использоваться?

 

Нужно чтобы весь трафик уходил через провайдера А, кроме сетей, указанных в пбр.

 

Это твои префиксы или те, на которые ты стучишься? Типо, "идем на гугл - значит сюды, яндыкс - сюды"

 

и роутмап выкладывай

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зачем же ты тогда понапрописывал команды, которые в твоем случае не будут использоваться?

хозяйство досталось по наследству, общее представление о протоколе имею, но многих ньюансов не знаю. сейчас довольно остро встал данный вопрос, увы нет времени читать доки, потому и беспокою. но не будем обсуждать вопрос моей безграмотности, я и сам не очень рад этому.

 

Это твои префиксы или те, на которые ты стучишься? Типо, "идем на гугл - значит сюды, яндыкс - сюды"

нужно чтобы трафик с определенных source ip, шел на конкретный next-hop. Типо, "префикс1 идем next-hop провайдер А, префикс 2 - next-hop пров Б"

вот роут мапы, если я правильно понял:

 

policy-statement AllNets {

term "Announce accept" {

from {

prefix-list-filter "77.94.162.0/23 tn" exact;

prefix-list-filter "77.94.178.0/23 tn" exact;

prefix-list-filter "77.94.184.0/23 tn" exact;

prefix-list-filter "77.94.188.0/24 tn" exact;

prefix-list-filter "77.94.190.0/23 tn" exact;

prefix-list-filter "84.47.128.0/23 IDC" exact;

prefix-list-filter "84.47.154.0/23 ns" exact;

prefix-list-filter "84.47.184.0/23 ns" exact;

prefix-list-filter "85.91.108.0/22 ns" exact;

prefix-list-filter "85.91.116.0/22 ns" exact;

prefix-list-filter "91.219.72.0/22 ns" exact;

prefix-list-filter "91.205.200.0/22 ITCentr" exact;

prefix-list-filter "213.208.160.0/24 ns" exact;

prefix-list-filter "213.208.176.0/24 STV" exact;

prefix-list-filter "213.208.184.0/23 ns" exact;

prefix-list-filter "213.208.161.0/24 STV" exact;

prefix-list-filter "95.215.12.0/22 Smarts" exact;

prefix-list-filter "77.94.172.0/23 ns" exact;

prefix-list-filter "188.0.192.0/19 tn" exact;

prefix-list-filter "81.162.0.0/20 tn" exact;

prefix-list-filter "81.162.16.0/21 tn" exact;

prefix-list-filter "91.233.28.0/22 ns" exact;

}

then accept;

}

term "Announce reject" {

then reject;

}

}

policy-statement SomeNets {

term "Announce accept" {

from {

prefix-list-filter "77.94.172.0/23 ns" exact;

prefix-list-filter "84.47.154.0/23 ns" exact;

prefix-list-filter "84.47.128.0/23 IDC" exact;

prefix-list-filter "84.47.184.0/23 ns" exact;

prefix-list-filter "85.91.108.0/22 ns" exact;

prefix-list-filter "85.91.116.0/22 ns" exact;

prefix-list-filter "91.219.72.0/22 ns" exact;

prefix-list-filter "91.205.200.0/22 ITCentr" exact;

prefix-list-filter "213.208.160.0/24 ns" exact;

prefix-list-filter "213.208.176.0/24 STV" exact;

prefix-list-filter "213.208.184.0/23 ns" exact;

prefix-list-filter "213.208.161.0/24 STV" exact;

prefix-list-filter "95.215.12.0/22 Smarts" exact;

prefix-list-filter "91.233.28.0/22 ns" exact;

}

then {

as-path-prepend "34829 34829 34829";

accept;

}

}

term "Announce reject" {

then reject;

}

}

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

нужно чтобы трафик с определенных source ip, шел на конкретный next-hop. Типо, "префикс1 идем next-hop провайдер А, префикс 2 - next-hop пров Б"

еще как вариант, исходящий трафик шел через провайдера А, но в случае падения последнего трафик шел через Провайдер Б. поэтому я и хочу использовать аттрибут Local Pref.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а загрузку интерфейсов смотрели?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Во входящие анонсы от провайдера Б вставь препенды (номер АС провайдера Б), чтобы маршруты получаемые через А стали приоритетнее.

Можно конечно весами попробовать, но будет или-или скорее всего.

Изменено пользователем anix

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а загрузку интерфейсов смотрели?

да, тот что на 200мб забит исходящим трафиком.

Во входящие анонсы от провайдера Б вставь препенды (номер АС провайдера Б), чтобы маршруты получаемые через А стали приоритетнее.

спасибо за совет, попробую так.

 

все же интересно насчет local pref. данный атрибут надо вешать на анонсы от других провайдеров? т.е. создаю политику импорта, в ней прописываю изменять аттрибут local pref? или это локальный аттрибут, добавляемый роутером в таблице маршрутизации?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Префикс-листы у вас сделаны предельно идиотски - это касается и имени префикс-листов (это ж надо додуматься использовать в них имена сетей и описание с пробелами!) и политики exact (очень будет смешно, когда апстрим захочет вместо указанных у вас "/23 exact" анонсировать две по /24) и общей их организации.

 

Чтобы было понятно, как это должно выглядеть (хоть и это у меня не идеал), вот пример взятого наугад пира:

 

dyr@rj39> show configuration protocols bgp group ebgp-spb-ix neighbor 194.226.102.79
description seanet-spb-ix;
import ebgp-import-seanet-spb-ix;
peer-as 31444;

dyr@rj39> show configuration policy-options policy-statement ebgp-import-seanet-spb-ix
term pass-filter {
   from {
       prefix-list pl-as-seanet;
   }
   then {
       metric 200;
       community set comm-ebgp-spb-ix;
       accept;
   }
}
term deny-any {
   then reject;
}


dyr@rj39> show configuration policy-options prefix-list pl-as-seanet
83.68.32.0/20;
83.68.60.0/22;
194.1.198.0/24;
212.113.103.0/24;

 

 

 

 

 

 

все же интересно насчет local pref. данный атрибут надо вешать на анонсы от других провайдеров? т.е. создаю политику импорта, в ней прописываю изменять аттрибут local pref? или это локальный аттрибут, добавляемый роутером в таблице маршрутизации?

Это локальный (распространяется только в пределах вашей AS) атрибут.

 

Quick start: http://xgu.ru/wiki/BGP#Well-known_discretionary

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Префикс-листы у вас сделаны предельно идиотски - это касается и имени префикс-листов

очень удобно управлять сетями, любую подсеть можно анонсировать в любой пир.

(это ж надо додуматься использовать в них имена сетей и описание с пробелами!)

а как мне их назвать? сеть1, сеть2, сеть побольше1, sdfgsdfg! ? :D

(очень будет смешно, когда апстрим захочет вместо указанных у вас "/23 exact" анонсировать две по /24)

такого не бывает.

Во входящие анонсы от провайдера Б вставь препенды (номер АС провайдера Б), чтобы маршруты получаемые через А стали приоритетнее.

Можно конечно весами попробовать, но будет или-или скорее всего.

спасибо за идею! все теперь как надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Andy_999, да я вас уговаривать-то не собираюсь. Верите, что анонсируют всегда aggregated-сети, продолжайте верить. Удобно пользоваться такими извращёнными префикс-листами - пользуйтесь. Посмотрим, что скажете где-нибудь через несколько месяцев. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

хм. А что будет если упадет провайдер которому вы анонсируете AllNets? Судя по вашим настройкам у вас часть сети останется без связи несмотря на то что второй провайдер работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

(очень будет смешно, когда апстрим захочет вместо указанных у вас "/23 exact" анонсировать две по /24)
такого не бывает.

бывает, к сожалению. и когда с аплинка прилетают свои же сети, но как more specific - это очень весело

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Andy_999, да я вас уговаривать-то не собираюсь. Верите, что анонсируют всегда aggregated-сети, продолжайте верить. Удобно пользоваться такими извращёнными префикс-листами - пользуйтесь. Посмотрим, что скажете где-нибудь через несколько месяцев. :)

мы наверное не поняли друг друга, это политики экспорта. эти сети я анонсирую, принимаю фулвью. вообще, любой пользователь обязан анонсировать сети в точности так, как они прописаны на райпе.

хм. А что будет если упадет провайдер которому вы анонсируете AllNets? Судя по вашим настройкам у вас часть сети останется без связи несмотря на то что второй провайдер работает.

увы это так. провайдер Б - резерв под особо важных клиентов. сделать норм резерв не получается по объективным причинам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вообще, любой пользователь обязан анонсировать сети в точности так, как они прописаны на райпе.

 

Гггг, спасибо, насмешили. В RIPE import и export прописывается в терминах as-num, а вовсе не в network address. И вы свои сети можете анонсировать хоть по /32 (хотя, конечно, столь мелкие сети никто вменяемый принимать у вас не будет).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Andy_999, вам нужно делать через import policy. Параметр local-preference в конфиге пира указывает на то какой localpref вы анонсируете сами. На ebgp сессии его ставить бесполезно. Пример импортной политики:

 

agr@rt> show configuration policy-options policy-statement uplink-in
term uplinlk1 {
   from protocol bgp;
   then {
       local-preference 200;
       accept;
   }
}

 

Dyr, а вы специально выставляете MED на входящем анонсе или перепутали с localpref? Если от другого пира придет тот же префикс с меньшим as-path, то метрика роли не сыграет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Гггг, спасибо, насмешили. В RIPE import и export прописывается в терминах as-num, а вовсе не в network address. И вы свои сети можете анонсировать хоть по /32 (хотя, конечно, столь мелкие сети никто вменяемый принимать у вас не будет).

А как же route object?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

agr, если правильно помню, то выставлял специально. Чтобы пир, с которым мы обмениваемся трафиком через Route Reflector и напрямую, на SPB-IX, шёл при прочих равных через прямой канал (AS-PATH в обоих случаях одинаков):

 


dyr@rj39> show route 46.231.208.0/21 exact

inet.0: 394997 destinations, 791338 routes (394996 active, 0 holddown, 313 hidden)
Restart Complete
+ = Active Route, - = Last Active, * = Both

46.231.208.0/21    *[bGP/170] 1w1d 07:19:32, MED 200, localpref 100
                     AS path: 8492 I
                   > to 194.226.102.81 via ge-2/0/3.4011
                   [bGP/170] 01:35:32, MED 250, localpref 100, from 194.226.100.100
                     AS path: 8492 I
                   > to 194.226.100.81 via ge-2/0/3.4011
                   [bGP/170] 01:35:48, MED 250, localpref 100, from 194.226.102.100
                     AS path: 8492 I
                   > to 194.226.102.81 via ge-2/0/3.4011
[ ...skipped...]

 

 

194.226.100.100 и 194.226.102.100 - адрес RR, 194.226.102.81 - прямой пир.

Изменено пользователем Dyr

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А как же route object?

 

В RFC 2622 не говорится ничего о том, что вы обязаны анонсировать в том же виде, в котором записана сеть. Более того, для точного описания сети с префиксами нужно в route object дописывать опциональные параметры : aggr-bndry, aggr-mtd, export-comps, inject и holes.

 

 

Кстати, в свежем RIPE'овском Resource Certification PKI можно и даже нужно (дефолтного значения нет) задавать вплоть до какой маски разрешается анонсировать сеть.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Andy_999, вам нужно делать через import policy. Параметр local-preference в конфиге пира указывает на то какой localpref вы анонсируете сами. На ebgp сессии его ставить бесполезно. Пример импортной политики:

 

agr@rt> show configuration policy-options policy-statement uplink-in
term uplinlk1 {
   from protocol bgp;
   then {
       local-preference 200;
       accept;
   }
}

 

Dyr, а вы специально выставляете MED на входящем анонсе или перепутали с localpref? Если от другого пира придет тот же префикс с меньшим as-path, то метрика роли не сыграет.

спасибо, я уже все сделал через as-path prepend. за инфу про local pref отдельное спасибо :)

Изменено пользователем Andy_999

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.