Перейти до

BGP и балансировка каналов


Рекомендованные сообщения

Доброго времени суток!

На бордер заведено 2 канала одинковой ширины. Поднял quagga (когда был еще один канал), спасибо всем за помощь.

Теперь перестроил ее на работу по двум каналам. Но в ЧНН один из каналов загружается только на 30-50% :(

Вопрос к знатокам: что можно или нужно изменить в конфиге что-бы более точно распределить нагрузку по каналам ?

А то канал простаивает на половину, а клиенты чувствуют себя не комфортно :(

 

файл bgpd.conf

!
! Zebra configuration saved from vty
! 2012/11/22 01:36:28
!
hostname AS578XX
password test
enable password test
log file /var/log/quagga/bgpd.log
!
router bgp 578XX
bgp router-id 91.235.224.1
bgp log-neighbor-changes
network 91.235.ZZZ.0/22
neighbor 91.236.XXX.X remote-as 579YY
neighbor 91.236.XXX.X description IPC
neighbor 91.236.XXX.X ebgp-multihop 5
neighbor 91.236.XXX.X disable-connected-check
neighbor 91.236.XXX.X update-source 91.236.XXX.50
neighbor 91.236.XXX.X timers 5 20
neighbor 91.236.XXX.X timers connect 30
neighbor 91.236.XXX.X next-hop-self
neighbor 91.236.XXX.X soft-reconfiguration inbound
neighbor 91.236.XXX.X prefix-list MIR-in in
neighbor 91.236.XXX.X prefix-list MIR-out out
neighbor 91.236.XXX.X route-map map-IPC-in in
neighbor 91.236.XXX.X route-map map-IPC-out out
neighbor 212.1.YYY.YY remote-as 68ZZ
neighbor 212.1.YYY.YY description INFREM
neighbor 212.1.YYY.YY prefix-list MIR-in in
neighbor 212.1.YYY.YY prefix-list MIR-out out
neighbor 212.1.YYY.YY route-map map-INFREM-in in
neighbor 212.1.YYY.YY route-map map-INFREM-out out
!
ip prefix-list IPC-in description accepted_from_IPC_routes
ip prefix-list IPC-in seq 10 deny 192.168.0.0/16 le 32
ip prefix-list IPC-in seq 20 deny 127.0.0.0/8 le 32
ip prefix-list IPC-in seq 30 deny 10.0.0.0/8 le 32
ip prefix-list IPC-in seq 40 deny 172.16.0.0/12 le 32
ip prefix-list IPC-in seq 50 deny 169.254.0.0/16 le 32
ip prefix-list IPC-in seq 60 deny 220.0.0.0/4 le 32
ip prefix-list IPC-in seq 70 deny 224.0.0.0/4 le 32
ip prefix-list IPC-in seq 1000 permit 91.236.DDD.0/23 le 32
ip prefix-list IPC-in seq 10000 permit any
ip prefix-list IPC-out description Pushed_to_IPC_from_me
ip prefix-list IPC-out seq 10 deny 192.168.0.0/16 le 32
ip prefix-list IPC-out seq 20 deny 127.0.0.0/8 le 32
ip prefix-list IPC-out seq 30 deny 10.0.0.0/8 le 32
ip prefix-list IPC-out seq 40 deny 172.16.0.0/12 le 32
ip prefix-list IPC-out seq 50 deny 169.254.0.0/16 le 32
ip prefix-list IPC-out seq 60 deny 220.0.0.0/4 le 32
ip prefix-list IPC-out seq 70 deny 224.0.0.0/4 le 32
ip prefix-list IPC-out seq 1000 permit 91.235.ZZZ.0/22 le 32
ip prefix-list IPC-out seq 10000 deny any
ip prefix-list MIR-in description accepted_from_MIR_routes
ip prefix-list MIR-in seq 10 deny 192.168.0.0/16 le 32
ip prefix-list MIR-in seq 20 deny 127.0.0.0/8 le 32
ip prefix-list MIR-in seq 30 deny 10.0.0.0/8 le 32
ip prefix-list MIR-in seq 40 deny 172.16.0.0/12 le 32
ip prefix-list MIR-in seq 50 deny 169.254.0.0/16 le 32
ip prefix-list MIR-in seq 60 deny 220.0.0.0/4 le 32
ip prefix-list MIR-in seq 70 deny 224.0.0.0/4 le 32
ip prefix-list MIR-in seq 100 deny 91.235.ZZZ.0/22 le 32
ip prefix-list MIR-in seq 10000 permit any
ip prefix-list MIR-out description Pushed_to_MIR_from_me
ip prefix-list MIR-out seq 100 permit 91.235.ZZZ.0/22
ip prefix-list MIR-out seq 10000 deny any
ip prefix-list bogons description bogus nets
ip prefix-list bogons seq 15 permit 0.0.0.0/8 le 32
ip prefix-list bogons seq 20 permit 127.0.0.0/8 le 32
ip prefix-list bogons seq 30 permit 10.0.0.0/8 le 32
ip prefix-list bogons seq 35 permit 172.16.0.0/12 le 32
ip prefix-list bogons seq 40 permit 192.168.0.0/16 le 32
ip prefix-list bogons seq 45 permit 169.254.0.0/16 le 32
ip prefix-list bogons seq 50 permit 224.0.0.0/4 le 32
ip prefix-list bogons seq 55 permit 240.0.0.0/4 le 32
ip prefix-list default description default route
ip prefix-list default seq 10 permit 0.0.0.0/0
ip prefix-list our-CIDR-blocks seq 5 permit 91.235.ZZZ.0/22 le 32
ip prefix-list upstream-out seq 10 permit 91.235.ZZZ.0/22
!
ip as-path access-list 1 permit _6451[2-9]_
ip as-path access-list 1 permit _645[2-9][0-9]_
ip as-path access-list 1 permit _64[6-9][0-9][0-9]_
ip as-path access-list 1 permit _65[0-9][0-9][0-9]_
!
route-map MY-RM-in deny 100
match as-path 1
!
route-map MY-RM-in deny 110
match ip address prefix-list bogons
!
route-map MY-RM-in deny 120
match ip address prefix-list our-CIDR-blocks
!
route-map MY-RM-in permit 200
set local-preference 57836
!
route-map MY-RM-out permit 100
match ip address prefix-list upstream-out
!
route-map MY-RM-out deny 200
!
route-map map-INFREM-out permit 100
set as-path prepend 578XX
!
route-map map-INFREM-in permit 100
set local-preference 578XX
!
route-map map-IPC-out permit 100
!
route-map map-IPC-in permit 100
set local-preference 578XX
!
line vty
!

 

Заранее спасибо за помощь.

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

я слаб в практике, но однозначно понимаю что BGP регулирует исходящий трафик, а ТС вероятно спрашивает о входящем трафике.

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

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

 

Еще можно играться с анонсами сетей. Часть одному часть другому.

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

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

 

Еще можно играться с анонсами сетей. Часть одному часть другому.

 

С анонсами сетей наверное не получится, тарифные планы от 2 до 20 и выдаются из одного пула. Точно разбросать по подсетям таких клиентов на грани фантастики. :)

А о комюнити узнаю.

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

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

Большая часть конфига не нужна, мусор.

Проблемы с балансировкой из-за строчки

route-map map-INFREM-out permit 100
set as-path prepend 578XX

Вы ж своими руками на один из каналов добавляете препенд - удлиняете маршрут и смещаете баланc.

Вместо set prepend нужно вписать match ip address prefix-list upstream-out

Для входящих префиксов тоже что-то хитрое.

set local-preference 578XX

Никто так не делает, хоть конструкция и имеет право на жизнь. Сделайте для обоих аплинков set local-preference 100 к примеру.

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

Топикстартеру следует понять, что BGP ни коим образом не предназначен для балансировки, это только протокол динамической маршрутизации. Но, поскольку BGP имеет инструменты влияния на маршрутизацию, используя их, можно несколько перераспредилить потоки трафика РУКАМИ. Но такое перераспределение не точное и не постоянное.

 

Для регулировки исходящего трафика наиболее простой способ - распредилить равномерно исходящие пакеты по нескольким интерфейсам (аплинкам). Если у топикстартера програмный маршрутизатор, распредилить трафик можно, например, некоторыми файерволами или нетграфом (FreeBSD). На апаратных маршрутизаторах у каждого вендора есть свои механизмы балансировки исхода.

 

Полноценно автоматически балансировать входной траффик у вас не получится, ибо трафик идёт к Вам так, как ему более всего удобно. Рулить им можно опять таки только вручную: жёстко - припендами, мягко - комюнити. Но только в том случае, если аплинки Вам это позволят.

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

Топикстартеру следует понять, что BGP ни коим образом не предназначен для балансировки, это только протокол динамической маршрутизации. Но, поскольку BGP имеет инструменты влияния на маршрутизацию, используя их, можно несколько перераспредилить потоки трафика РУКАМИ. Но такое перераспределение не точное и не постоянное.

 

Для регулировки исходящего трафика наиболее простой способ - распредилить равномерно исходящие пакеты по нескольким интерфейсам (аплинкам). Если у топикстартера програмный маршрутизатор, распредилить трафик можно, например, некоторыми файерволами или нетграфом (FreeBSD). На апаратных маршрутизаторах у каждого вендора есть свои механизмы балансировки исхода.

 

Полноценно автоматически балансировать входной траффик у вас не получится, ибо трафик идёт к Вам так, как ему более всего удобно. Рулить им можно опять таки только вручную: жёстко - припендами, мягко - комюнити. Но только в том случае, если аплинки Вам это позволят.

 

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

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

вникать в мануалы

 

кейворды - as-path prepend, local preference

1. Из конфига сетка /22, значит можно ее разбить на мелкие, и анонсировать мелкие на ровне с большими, по разным каналам.

Например 2 сетки по каналу IPC+/22, вторые 2 по IPC +/22. на основании этого, можно потом подобрать ручками и экспериментами, кому лучше какую сетку анонсировать. Те у кого режутся сетки меньше /23 - ничего не поменяется, те которые принимают /24 - они будут лучшим путем.

2. + если поддерживают коммьюнити, то можно таким же образом анонсировать скажем сетку через один аплинк только с комьюнити - Украина, или все пиры. А вторую анонсировать всем.

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

вникать в мануалы

 

кейворды - as-path prepend, local preference

Спасибо, ща перечитаю.

 

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

Большая часть конфига не нужна, мусор.

Проблемы с балансировкой из-за строчки

route-map map-INFREM-out permit 100
set as-path prepend 578XX

Вы ж своими руками на один из каналов добавляете препенд - удлиняете маршрут и смещаете баланc.

Вместо set prepend нужно вписать match ip address prefix-list upstream-out

Для входящих префиксов тоже что-то хитрое.

set local-preference 578XX

Никто так не делает, хоть конструкция и имеет право на жизнь. Сделайте для обоих аплинков set local-preference 100 к примеру.

 

Спс, понял.

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

вникать в мануалы

 

кейворды - as-path prepend, local preference

1. Из конфига сетка /22, значит можно ее разбить на мелкие, и анонсировать мелкие на ровне с большими, по разным каналам.

Например 2 сетки по каналу IPC+/22, вторые 2 по IPC +/22. на основании этого, можно потом подобрать ручками и экспериментами, кому лучше какую сетку анонсировать. Те у кого режутся сетки меньше /23 - ничего не поменяется, те которые принимают /24 - они будут лучшим путем.

2. + если поддерживают коммьюнити, то можно таким же образом анонсировать скажем сетку через один аплинк только с комьюнити - Украина, или все пиры. А вторую анонсировать всем.

 

если я Вас правильно понял, то сделать анонс /22 на IPC & IFREM и плюс к этому например по две подсети /24 на каждого аплинка, а потом тестовым путем подобрать какую /24 на кого будет лучше анонсировать.

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

если я Вас правильно понял, то сделать анонс /22 на IPC & IFREM и плюс к этому например по две подсети /24 на каждого аплинка, а потом тестовым путем подобрать какую /24 на кого будет лучше анонсировать.

 

Да все правильно.

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

вникать в мануалы

 

кейворды - as-path prepend, local preference

Спасибо, ща перечитаю.

 

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

Большая часть конфига не нужна, мусор.

Проблемы с балансировкой из-за строчки

route-map map-INFREM-out permit 100
set as-path prepend 578XX

Вы ж своими руками на один из каналов добавляете препенд - удлиняете маршрут и смещаете баланc.

Вместо set prepend нужно вписать match ip address prefix-list upstream-out

Для входящих префиксов тоже что-то хитрое.

set local-preference 578XX

Никто так не делает, хоть конструкция и имеет право на жизнь. Сделайте для обоих аплинков set local-preference 100 к примеру.

 

Спс, понял.

 

Изменил по Вашей подсказке, сейчас буду проверять загрузку по каналах.

А пока буду тестить то переделаю конфиг и выложу на Ваш суд

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

Вот что получилось. Выкладываю новый конфиг quagga до установки на бордер

может кто будет иметь время и глянет опытным глазом.

 

bgpd.conf

!
! Zebra configuration saved from vty
!   2012/11/22 01:36:28
!
hostname AS578AA
password test
enable password test
log file /var/log/quagga/bgpd.log
!
router bgp 578AA
bgp router-id 91.XXX.XX4.1
bgp log-neighbor-changes
!
ip prefix-list TO_IPC seq 1 permit 91.XXX.XX6.0/24
ip prefix-list TO_INF seq 1 permit 91.XXX.XX7.0/24
!
!
no synchronization
network 91.XXX.XX4.0/24
network 91.XXX.XX5.0/24
network 91.XXX.XX6.0/24
network 91.XXX.XX7.0/24
network 91.XXX.XX6.0/23
!
neighbor 91.YYY.YYY.1 remote-as 579BB
neighbor 91.YYY.YYY.1 description IPC
neighbor 91.YYY.YYY.1 ebgp-multihop 5
neighbor 91.YYY.YYY.1 disable-connected-check
neighbor 91.YYY.YYY.1 update-source 91.YYY.YYY.50
neighbor 91.YYY.YYY.1 timers 5 20
neighbor 91.YYY.YYY.1 timers connect 30
neighbor 91.YYY.YYY.1 next-hop-self
neighbor 91.YYY.YYY.1 route-map IPC-out out
!
neighbor 212.Z.ZZZ.73 remote-as 68CC
neighbor 212.Z.ZZZ.73 description INF
neighbor 212.Z.ZZZ.73 update-source 212.Z.ZZZ.74
neighbor 212.Z.ZZZ.73 next-hop-self
neighbor 212.Z.ZZZ.73 route-map INF-out out
!
!
ip as-path access-list 1 permit _6451[2-9]_
ip as-path access-list 1 permit _645[2-9][0-9]_
ip as-path access-list 1 permit _64[6-9][0-9][0-9]_
ip as-path access-list 1 permit _65[0-9][0-9][0-9]_
!
!
route-map IPC-out permit 10
match ip address prefix-list TO_INF
!
! если необходимо изменить пропорцию ширины канала
set as-path prepend 578AA 578AA
route-map IPC-out permit 20
match ip address prefix-list TO_IPC
!
!
route-map INF-out permit 10
match ip address prefix-list TO_IPC
!
! если необходимо изменить пропорцию ширины канала
set as-path prepend 578AA 578AA
route-map INF-out permit 20
match ip address prefix-list TO_INF
!
!

 

Заранее благодарен.

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

И еще возник попутно один вопрос:

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

Может кто подскажет из-за чего такое бывает?

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

Во, этот конфиг похож на стандартный quagga-BGP для 2 аплинкеров.

Хинт 1: вы выкосили ненужную секцию route-map MY-RM-in, так убейте и

ip as-path access-list 1 permit _6451[2-9]_
ip as-path access-list 1 permit _645[2-9][0-9]_
ip as-path access-list 1 permit _64[6-9][0-9][0-9]_
ip as-path access-list 1 permit _65[0-9][0-9][0-9]_

 

Хинт 2: route-map для входящих префиксов нормальный сделать тоже не помешает, мало ли что. Аплинки дают вам дефолт и свои префиксы? Сделайте префикс-лист с их описанием и добавьте в входящий роут мап разрешение только для них.

 

Хинт 3: С разбиением своей сети вы явно погорячились.

/22 в итоге должна быть описана как /22, пара /23 и при желании нужное число /24. Анонсировать только /24 нельзя! У вас сейчас получается анонс только двух /24 из 4, оно вообще работает?

Да и кроме самой разбивки вы должны уведомить об этом аплинкеров(иначе вероятно не примут префиксы) + нарисовать нужные объекты в ripe(иначе сети эти сдохнут на ближайшейм крупном операторе).

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

Во, этот конфиг похож на стандартный quagga-BGP для 2 аплинкеров.

Хинт 1: вы выкосили ненужную секцию route-map MY-RM-in, так убейте и

ip as-path access-list 1 permit _6451[2-9]_
ip as-path access-list 1 permit _645[2-9][0-9]_
ip as-path access-list 1 permit _64[6-9][0-9][0-9]_
ip as-path access-list 1 permit _65[0-9][0-9][0-9]_

 

Хинт 2: route-map для входящих префиксов нормальный сделать тоже не помешает, мало ли что. Аплинки дают вам дефолт и свои префиксы? Сделайте префикс-лист с их описанием и добавьте в входящий роут мап разрешение только для них.

 

Хинт 3: С разбиением своей сети вы явно погорячились.

/22 в итоге должна быть описана как /22, пара /23 и при желании нужное число /24. Анонсировать только /24 нельзя! У вас сейчас получается анонс только двух /24 из 4, оно вообще работает?

Да и кроме самой разбивки вы должны уведомить об этом аплинкеров(иначе вероятно не примут префиксы) + нарисовать нужные объекты в ripe(иначе сети эти сдохнут на ближайшейм крупном операторе).

 

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

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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...