...
В обычных сценариях BGP анонсирует все лучшие маршруты из своей BGP RIB. Иногда необходимо более гибкое управление анонсируемой маршрутной информацией. Для этого случая может подойти функционал Conditional advertisement, который позволяет описать условия, при совпадении которых, будет анонсироваться ( или наоборот отзываться) необходимая маршрутная информация.
Для работы функционала Conditional advertisement необходимо выполнить следующие шаги:
- Описать маршрутные карты сonditional routeсondition-map и advertise route-map:
- Conditional routeCondition-map - это карта, в которой необходимо описать маршрутную информацию для проверки. Планировщик будет запускаться каждые 60 секунд для проверки наличия в BGP RIB маршрутной информации , описаннной в этой карте;
- Advertise route-map - это карта, в который необходимо описать маршрутную информацию, которая будет анонсироваться при выполнении условий, описанных в conditional routecondition-map.
2. В контексте настройки BGP соседа задать условие при котором будет анонсироваться маршрутная информация , описанная в advertise route-map. Рассмотрим этот пункт на примере ниже:
...
- Если R2 содержит в BGP RIB маршрурт 192.0.2.255/32, то R2 анонсирует в сторону R3 маршрут 198.51.100.0/24;
- Если R2 не содержит в BGP RIB маршрурт 192.0.2.255/32, анонсирование маршрута 198.51.100.0/24 соседу R3 не происходит. ( пример на рисунке)
Блок кода |
---|
route-map CONDITIONALCONDITION rule 1 match ip address 192.0.2.255/32 exit exit route-map ADVERTISE rule 1 match ip address 198.51.100.0/24 exit exit router bgp 65540 neighbor R3 description "To R3" address-family ipv4 unicast advertise-map ADVERTISE exist-map CONDITIONALCONDITION exit |
Условие not EXIST-MAP:
- Если R2 содержит в BGP RIB маршрурт 192.0.2.255/32, анонсирование маршрута 198.51.100.0/24 соседу R3 не происходит;
- Если R2 не содержит в BGP RIB маршрурт 192.0.2.255/32, R2 анонсирует в сторону R3 маршрут 198.51.100.0/24.
Блок кода |
---|
route-map CONDITIONALCONDITION rule 1 match ip address 192.0.2.255/32 exit exit route-map ADVERTISE rule 1 match ip address 198.51.100.0/24 exit exit router bgp 65540 neighbor R3 description "To R3" address-family ipv4 unicast advertise-map ADVERTISE not exist-map CONDITIONALCONDITION exit |
Ниже привидена диаграмма состояний для условия EXIST-MAP и ее описание:
В
начальной стадии , после После активации функционала, Conditional advertisement находится в стадии "Uninitialized". На этой стадии анонсируется вся разрешенная маршрутная информация, происходит инициализация планировщика для дальнейшней работы. Время нахождения в этом состоянии - 60 секунд.
Блок кода |
---|
vESR# sh bgp neighbors
BGP neighbor is 192.0.2.2
BGP state: Established
Type: Static neighbor
Neighbor address: 192.0.2.2
Neighbor AS: 202766
Neighbor ID: 192.0.2.2
Neighbor caps: refresh enhanced-refresh restart-aware AS4
Session: external AS4
Source address: 192.0.2.1
Weight: 0
Hold timer: 136/180
Keepalive timer: 35/60
Address family ipv4 unicast:
Send-label: No
Default originate: No
Default information originate: No
Incoming route-map: IN
Outgoing route-map: OUT
Advertise-map: ADVERTISE
Condition-map: CONDITION
Conditional advertisement status: Uninitialized <-----
Uptime: 12 s
|
Далее планировщик проверяет условие EXIST-MAP для соответствующей сondition-map. Если условие верно, происходит анонсирование(обновление) маршрутной информации в соответствии с правилами , заданными в advertise-map. Cостояние статуса меняется на "Advertise". Время нахождения в текущей состоянии - 60 секунд:
Блок кода |
---|
vesr# sh bgp neighbors
BGP neighbor is 192.0.2.2
BGP state: Established
Type: Static neighbor
Neighbor address: 192.0.2.2
Neighbor AS: 202766
Neighbor ID: 192.0.2.2
Neighbor caps: refresh enhanced-refresh restart-aware AS4
Session: external AS4
Source address: 192.0.2.1
Weight: 0
Hold timer: 136/180
Keepalive timer: 41/60
Address family ipv4 unicast:
Send-label: No
Default originate: No
Default information originate: No
Incoming route-map: IN
Outgoing route-map: OUT
Advertise-map: ADVERTISE
Condition-map: CONDITION
Conditional advertisement status: Advertise <----
Uptime: 1119 s
|
Если условие EXIST-MAP для соответствующей сondition-map не выполняется происходит отзыв маршрутной информации , описанной в соответствующей advertise-map. Cостояние статуса меняется на "Withdrawal". Время нахождения в текущей состоянии - 60 секунд:
Блок кода |
---|
vESR# sh bgp neighbors
BGP neighbor is 192.0.2.2
BGP state: Established
Type: Static neighbor
Neighbor address: 192.0.2.2
Neighbor AS: 202766
Neighbor ID: 192.0.2.2
Neighbor caps: refresh enhanced-refresh restart-aware AS4
Session: external AS4
Source address: 192.0.2.1
Weight: 0
Hold timer: 136/180
Keepalive timer: 41/60
Address family ipv4 unicast:
Send-label: No
Default originate: No
Default information originate: No
Incoming route-map: IN
Outgoing route-map: OUT
Advertise-map: ADVERTISE
Condition-map: CONDITION
Conditional advertisement status: Withdrawal
Uptime: 1119 s
|
ESR получает маршрут по умолчанию от двух провайдеров - ISP "Zero" и "ISP One". Дополнительно ISP "Zero" анонсирует маршрут 10.1.1.1/32, наличие которого в BGP RIB в дальнейшем и будем отлеживать.
...