Andy_999 Опубликовано 20 декабря, 2011 (изменено) · Жалоба Здравствуйте. Прошу помощи, т.к. моих знаний немного не хватает, с протоколом 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; Заранее спасибо! Изменено 20 декабря, 2011 пользователем Andy_999 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
fomka31ru Опубликовано 20 декабря, 2011 · Жалоба Прошу помощи, т.к. моих знаний немного не хватает, с протоколом BGP знаком довольно слабо. Зачем же ты тогда понапрописывал команды, которые в твоем случае не будут использоваться? Нужно чтобы весь трафик уходил через провайдера А, кроме сетей, указанных в пбр. Это твои префиксы или те, на которые ты стучишься? Типо, "идем на гугл - значит сюды, яндыкс - сюды" и роутмап выкладывай Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andy_999 Опубликовано 20 декабря, 2011 · Жалоба Зачем же ты тогда понапрописывал команды, которые в твоем случае не будут использоваться? хозяйство досталось по наследству, общее представление о протоколе имею, но многих ньюансов не знаю. сейчас довольно остро встал данный вопрос, увы нет времени читать доки, потому и беспокою. но не будем обсуждать вопрос моей безграмотности, я и сам не очень рад этому. Это твои префиксы или те, на которые ты стучишься? Типо, "идем на гугл - значит сюды, яндыкс - сюды" нужно чтобы трафик с определенных 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; } } Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andy_999 Опубликовано 20 декабря, 2011 · Жалоба нужно чтобы трафик с определенных source ip, шел на конкретный next-hop. Типо, "префикс1 идем next-hop провайдер А, префикс 2 - next-hop пров Б" еще как вариант, исходящий трафик шел через провайдера А, но в случае падения последнего трафик шел через Провайдер Б. поэтому я и хочу использовать аттрибут Local Pref. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
fomka31ru Опубликовано 20 декабря, 2011 · Жалоба а загрузку интерфейсов смотрели? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
anix Опубликовано 20 декабря, 2011 (изменено) · Жалоба Во входящие анонсы от провайдера Б вставь препенды (номер АС провайдера Б), чтобы маршруты получаемые через А стали приоритетнее. Можно конечно весами попробовать, но будет или-или скорее всего. Изменено 20 декабря, 2011 пользователем anix Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andy_999 Опубликовано 20 декабря, 2011 · Жалоба а загрузку интерфейсов смотрели? да, тот что на 200мб забит исходящим трафиком. Во входящие анонсы от провайдера Б вставь препенды (номер АС провайдера Б), чтобы маршруты получаемые через А стали приоритетнее. спасибо за совет, попробую так. все же интересно насчет local pref. данный атрибут надо вешать на анонсы от других провайдеров? т.е. создаю политику импорта, в ней прописываю изменять аттрибут local pref? или это локальный аттрибут, добавляемый роутером в таблице маршрутизации? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dyr Опубликовано 20 декабря, 2011 · Жалоба Префикс-листы у вас сделаны предельно идиотски - это касается и имени префикс-листов (это ж надо додуматься использовать в них имена сетей и описание с пробелами!) и политики 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 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andy_999 Опубликовано 21 декабря, 2011 · Жалоба Префикс-листы у вас сделаны предельно идиотски - это касается и имени префикс-листов очень удобно управлять сетями, любую подсеть можно анонсировать в любой пир. (это ж надо додуматься использовать в них имена сетей и описание с пробелами!) а как мне их назвать? сеть1, сеть2, сеть побольше1, sdfgsdfg! ? :D (очень будет смешно, когда апстрим захочет вместо указанных у вас "/23 exact" анонсировать две по /24) такого не бывает. Во входящие анонсы от провайдера Б вставь препенды (номер АС провайдера Б), чтобы маршруты получаемые через А стали приоритетнее. Можно конечно весами попробовать, но будет или-или скорее всего. спасибо за идею! все теперь как надо. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dyr Опубликовано 21 декабря, 2011 · Жалоба Andy_999, да я вас уговаривать-то не собираюсь. Верите, что анонсируют всегда aggregated-сети, продолжайте верить. Удобно пользоваться такими извращёнными префикс-листами - пользуйтесь. Посмотрим, что скажете где-нибудь через несколько месяцев. :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
PooFF Опубликовано 21 декабря, 2011 · Жалоба хм. А что будет если упадет провайдер которому вы анонсируете AllNets? Судя по вашим настройкам у вас часть сети останется без связи несмотря на то что второй провайдер работает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Stak Опубликовано 21 декабря, 2011 · Жалоба (очень будет смешно, когда апстрим захочет вместо указанных у вас "/23 exact" анонсировать две по /24) такого не бывает. бывает, к сожалению. и когда с аплинка прилетают свои же сети, но как more specific - это очень весело Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andy_999 Опубликовано 22 декабря, 2011 · Жалоба Andy_999, да я вас уговаривать-то не собираюсь. Верите, что анонсируют всегда aggregated-сети, продолжайте верить. Удобно пользоваться такими извращёнными префикс-листами - пользуйтесь. Посмотрим, что скажете где-нибудь через несколько месяцев. :) мы наверное не поняли друг друга, это политики экспорта. эти сети я анонсирую, принимаю фулвью. вообще, любой пользователь обязан анонсировать сети в точности так, как они прописаны на райпе. хм. А что будет если упадет провайдер которому вы анонсируете AllNets? Судя по вашим настройкам у вас часть сети останется без связи несмотря на то что второй провайдер работает. увы это так. провайдер Б - резерв под особо важных клиентов. сделать норм резерв не получается по объективным причинам. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dyr Опубликовано 22 декабря, 2011 · Жалоба вообще, любой пользователь обязан анонсировать сети в точности так, как они прописаны на райпе. Гггг, спасибо, насмешили. В RIPE import и export прописывается в терминах as-num, а вовсе не в network address. И вы свои сети можете анонсировать хоть по /32 (хотя, конечно, столь мелкие сети никто вменяемый принимать у вас не будет). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
agr Опубликовано 22 декабря, 2011 · Жалоба 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, то метрика роли не сыграет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
PooFF Опубликовано 22 декабря, 2011 · Жалоба Гггг, спасибо, насмешили. В RIPE import и export прописывается в терминах as-num, а вовсе не в network address. И вы свои сети можете анонсировать хоть по /32 (хотя, конечно, столь мелкие сети никто вменяемый принимать у вас не будет). А как же route object? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dyr Опубликовано 22 декабря, 2011 (изменено) · Жалоба 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 - прямой пир. Изменено 22 декабря, 2011 пользователем Dyr Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dyr Опубликовано 22 декабря, 2011 · Жалоба А как же route object? В RFC 2622 не говорится ничего о том, что вы обязаны анонсировать в том же виде, в котором записана сеть. Более того, для точного описания сети с префиксами нужно в route object дописывать опциональные параметры : aggr-bndry, aggr-mtd, export-comps, inject и holes. Кстати, в свежем RIPE'овском Resource Certification PKI можно и даже нужно (дефолтного значения нет) задавать вплоть до какой маски разрешается анонсировать сеть. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andy_999 Опубликовано 22 декабря, 2011 (изменено) · Жалоба 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 отдельное спасибо :) Изменено 22 декабря, 2011 пользователем Andy_999 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...