The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Juniper MX204, проблема с  BGP communities"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Маршрутизаторы CISCO и др. оборудование. (Маршрутизация)
Изначальное сообщение [ Отслеживать ]

"Juniper MX204, проблема с  BGP communities"  +/
Сообщение от maxnetstat (ok), 31-Май-22, 13:21 
Привет!
На Juniper MX204 строю 3 eBGP соседства с вышестоящими операторами,
Куда и анонсирую свои сети.

Для балансировки входящего трафика используются communities, как приведено ниже:


My network:
# show routing-options

static {
    route yyy.yyy.0.0/16 {
        discard;
        community [ XXXXX:100 XXXXX:111 XXXXX:120 ];
    }

community UPSTREAM-1-EXP members XXXXX:100
community UPSTREAM-1-EXP-1 members XXXXX:101
community UPSTREAM-1-EXP-2 members XXXXX:102
community UPSTREAM-1-EXP-3 members XXXXX:103
community UPSTREAM-1-EXP-4 members XXXXX:104
community UPSTREAM-1-EXP-8 members XXXXX:108
community UPSTREAM-1-EXP-DENY members XXXXX:109

community UPSTREAM-2-EXP members XXXXX:110
community UPSTREAM-2-EXP-1 members XXXXX:111
community UPSTREAM-2-EXP-2 members XXXXX:112
community UPSTREAM-2-EXP-3 members XXXXX:113
community UPSTREAM-2-EXP-4 members XXXXX:114
community UPSTREAM-2-EXP-8 members XXXXX:118
community UPSTREAM-2-EXP-DENY members XXXXX:119

community UPSTREAM-3-EXP members XXXXX:120
community UPSTREAM-3-EXP-1 members XXXXX:121
community UPSTREAM-3-EXP-2 members XXXXX:122
community UPSTREAM-3-EXP-3 members XXXXX:123
community UPSTREAM-3-EXP-4 members XXXXX:124
community UPSTREAM-3-EXP-8 members XXXXX:128
community UPSTREAM-3-EXP-DENY members XXXXX:129

community CUSTOMER members XXXXX:700
community CUSTOMER-1 members XXXXX:701
community CUSTOMER-2 members XXXXX:702

В исходящей политике добавляются препенды в зависимости от community (на примере одного из апстримов. У других политики аналогичны):

# show policy-options policy-statement UPSTREAM-1-OUT-v4    

...
term 20 {
    from community [ UPSTREAM-1-EXP-DENY ];
    then reject;
}

term 30 {
    from community [ UPSTREAM-1-EXP CUSTOMER];
    then accept;
}
term 40 {
    from community [ UPSTREAM-1-EXP-1 CUSTOMER-1];
    then {
        as-path-prepend XXXXX;
        accept;
    }
}
term 50 {
    from community [ UPSTREAM-1-EXP-2 CUSTOMER-2];
    then {
        as-path-prepend "XXXXX XXXXX";    
        accept;
    }
}
term 60 {
    from community [ UPSTREAM-1-EXP-3 ];
    then {
        as-path-prepend "XXXXX XXXXX XXXXX";
        accept;
    }
}
term 70 {
    from community [ UPSTREAM-1-EXP-4 ];
    then {
        as-path-prepend "XXXXX XXXXX XXXXX XXXXX";
        accept;
    }
}
term 80 {
    from community [ UPSTREAM-1-EXP-8 ];
    then {
        as-path-prepend "XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX";
        accept;
    }
}
term 100 {
    then reject;
}

Для изменения количества препендов в сторону соседа необходимо изменить community в routing-options.
Данная схема работает нормально, как от неё и ожидается, но есть одна проблема, которую
мне пока не удалось решить.
Заключается она в том, что я также строю BGP соседство со своими клиентами.
Эти клиенты могут мне анонсировать как свои собственные сети, так и подсети из моего блока сетей.
И я бы хотел предоставить им возможность балансировать трафик с помощью communities.

Из конфига видно, что для клиентов BGP используется отдельный community (CUSTOMER, CUSTOMER-1...)
и таким образом их сети анонсируются. Назначается этот community вручную мною при построении BGP соседства.

Задача дать клиенту возможность самому использовать community.


Например, клиент хочет добавить препенды в сторону UPSTREAM-1.
Он может в мою сторону проанонсить мне XXXXX:103, но эффекта не будет, т.к.
этот community просто добавится к тем, которые я уже указал в routing-option:

run show route zz.zz.zz.0/22 detail

......
                Communities: XXXXX:100 XXXXX:111 XXXXX:120 XXXXX:103
                
А мне нужно:

run show route zz.zz.zz.0/22 detail

......
                Communities: XXXXX:103 XXXXX:111 XXXXX:120


Я не большой специалист по juniper, и возможно изначальный дизайн был построен не очень верно.
Буду рад советам и замечаниям.
Спасибо.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Juniper MX204, проблема с  BGP communities"  +/
Сообщение от maxnetstat (ok), 03-Июн-22, 12:55 
Решение проблемы оказалось очень простым.
Я создал дополнительные клиентские комьюнити:

community CUSTOMER-UPSTREAM-1-EXP members XXXXX:1100
community CUSTOMER-UPSTREAM-1-EXP-1 members XXXXX:1101
community CUSTOMER-UPSTREAM-1-EXP-2 members XXXXX:1102
community CUSTOMER-UPSTREAM-1-EXP-3 members XXXXX:1103
community CUSTOMER-UPSTREAM-1-EXP-4 members XXXXX:1104
community CUSTOMER-UPSTREAM-1-EXP-DENY members XXXXX:1109

community CUSTOMER-UPSTREAM-2-EXP members XXXXX:1110
community CUSTOMER-UPSTREAM-2-EXP-1 members XXXXX:1111
community CUSTOMER-UPSTREAM-2-EXP-2 members XXXXX:1112
community CUSTOMER-UPSTREAM-2-EXP-3 members XXXXX:1113
community CUSTOMER-UPSTREAM-2-EXP-4 members XXXXX:1114
community CUSTOMER-UPSTREAM-2-EXP-DENY members XXXXX:1119

community CUSTOMER-UPSTREAM-3-EXP members XXXXX:1120
community CUSTOMER-UPSTREAM-3-EXP-1 members XXXXX:1121
community CUSTOMER-UPSTREAM-3-EXP-2 members XXXXX:1122
community CUSTOMER-UPSTREAM-3-EXP-3 members XXXXX:1123
community CUSTOMER-UPSTREAM-3-EXP-4 members XXXXX:1124
community CUSTOMER-UPSTREAM-3-EXP-DENY members XXXXX:1129

И добавил их в исходящие политики ПЕРЕД старыми, т.к. политика работает таким образом, что после первого вхождения далее она не обрабатывается:

# show policy-options policy-statement UPSTREAM-1-OUT-v4

...
term 20 {
from community [ UPSTREAM-1-EXP-DENY CUSTOMER-UPSTREAM-1-EXP-DENY ];
then reject;
}

term 50 {
    from community CUSTOMER-UPSTREAM-1-EXP;
    then accept;
}
term 60 {
    from community CUSTOMER-UPSTREAM-1-EXP-1;
    then {
        as-path-prepend XXXXX;
        accept;
    }
}
term 70 {
    from community CUSTOMER-UPSTREAM-1-EXP-2;
    then {
        as-path-prepend "XXXXX XXXXX";
        accept;
    }
}
term 80 {
    from community CUSTOMER-UPSTREAM-1-EXP-2;
    then {                              
        as-path-prepend "XXXXX XXXXX XXXXX";
        accept;
    }
}
term 90 {
    from community CUSTOMER-UPSTREAM-1-EXP-4;
    then {
        as-path-prepend "XXXXX XXXXX XXXXX XXXXX";
        accept;
    }
}

term 100 {
    from community [ UPSTREAM-1-EXP ];
    then accept;
}
term 110 {
    from community [ UPSTREAM-1-EXP-1 ];
    then {
        as-path-prepend XXXXX;
        accept;
    }
}
...

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру