...
| AUI Tab Group | ||
|---|---|---|
| ||
Решение:
Первым шагом необходимо создать Route-map на ESR1, в котором с помощью регулярных выражений опишем интересующий AS-path. В случае совпадения укажем – запретить:
...
| Блок кода | ||
|---|---|---|
| ||
ESR1# sh ip route-map AS
Order: 1
Description: --
Matching pattern:
Access group --
AS path regex "(64500)"
Community --
Extcommunity --
BGP local-preference: --
BGP metric (MED): --
BGP weight: --
Address (object-group): --
Next hop (object-group): --
Route source (object-group): --
RIP metric --
RIP tag --
OSPF metric type --
OSPF metric --
OSPF tag --
Actions:
Decision: Deny
Route next hop: --
Route IPv6 next hop: --
IP address: --
IPv6 address: --
AS path (prepand): --
Community: --
Extcommunity: --
Local preference: --
BGP next hop address: --
BGP IPv6 next hop address: --
BGP metric (MED): --
BGP weight: --
Origin: --
RIP metric --
RIP tag --
OSPF metric type --
OSPF metric --
OSPF tag --
--------------------------------------------------------------------------------
Order: 2
Description: --
Matching pattern:
Access group --
AS path --
Community --
Extcommunity --
BGP local-preference: --
BGP metric (MED): --
BGP weight: --
Address (object-group): --
Next hop (object-group): --
Route source (object-group): --
RIP metric --
RIP tag --
OSPF metric type --
OSPF metric --
OSPF tag --
Actions:
Decision: Permit
Route next hop: --
Route IPv6 next hop: --
IP address: --
IPv6 address: --
AS path (prepand): --
Community: --
Extcommunity: --
Local preference: --
BGP next hop address: --
BGP IPv6 next hop address: --
BGP metric (MED): --
BGP weight: --
Origin: --
RIP metric --
RIP tag --
OSPF metric type --
OSPF metric --
OSPF tag --
--------------------------------------------------------------------------------
ESR1#
|
В контексте настройки пира применим созданный Route-map для фильтрации входящих маршрутов:
...
| Блок кода | ||
|---|---|---|
| ||
ESR1# sh bgp ipv4 unicast
Status codes: u - unicast, b - broadcast, m - multicast, a - anycast
* - valid, > - best
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> u 192.0.2.1/32 198.51.100.2 -- 100 0 64497 i |
Настройка завершена.
| Scroll Pagebreak |
|---|
Конфедерация
Механизм позволяет разделить одну автономную систему на множество под-AS, функционирующих как отдельные административные единицы, но представляющих единую AS для внешних автономных систем. Взаимодействие между под-AS осуществляется посредством межконфедерационных BGP-сессий, использующих расширенную семантику AS_PATH. Для его реализации механизма в рамках рамках RFC 5065 введены введены атрибуты AS_CONFED_SEQUENCE и AS_CONFED_SET, которые применяются исключительно внутри конфедерации и подлежат удалению перед передачей маршрутов за её пределы.
| Информация | ||
|---|---|---|
| ||
|
Стандарт и реализация включает включают в себя следующие изменения в поведении:
- Значение атрибута MED распространяется между eBGP-пирами;
- Значение атрибута next-hop не изменяется при eBGP-пиринге (поведение можно переопределить с помощью команды next-hop-self);
- Внутри конфедерации конфедерации политика анонсирования маршрутной информации аналогична полиитика аналогична политика анонсирования для iBGP-пиринга;
- Длина списка AS_CONFED_SEQUENCE или AS_CONFED_SET не участвует в политике выбора лучшего маршуртамаршрута.
Алгоритм настройки
| Шаг | Описание | Команда | Ключи |
|---|---|---|---|
| 1 | В контексте настройки BGP указать идентификатор | ||
| конфедерации | esr(config-bgp)# confederation identifier <ID> | <ID> | |
| – идентификатор конфедерации, | |||
| принимает значение [1..4294967295]. | |||
| 2 | Сконфигурировать | ||
| члены конфедерации | esr(config-bgp)# confederation peer <AS> | <AS> | |
| – список номеров автономных систем, задается в виде AS-AS,AS,AS-AS, принимает значения [1..4294967295]. |
Пример настройки
Задача:
Необходимо настроить конфедерацию между ESR2 и ESR3. На ESR2 ESR2 настроить eBGP-пиринг с ESR1, проанонсировать подсети в соответствии со схемой.
| Scroll Pagebreak |
|---|
Схема:
Базовая конфигурация:
| AUI Tab Group |
|---|
Решение:
Первым шагом настроим BGP внутри конфедерации: установим пиринг, зададим идентификатор, определим членов члены конфедерации. На ESR3 проанонсируем соответствующий loopback.
...
Проверяем, что конфедерация успешно сконфигурирована c обемх c обеих сторон:
| Блок кода |
|---|
ESR2# sh bgp summary
2025-11-26 06:37:55
BGP router identifier 198.51.100.2, local AS number 64497, AS confederation identifier 69 <----
BGP activity 1/0 prefixes
Neighbor AS MsgRcvd MsgSent Up/Down St/PfxRcd
(d,h:m:s)
---------------------- ------------- ---------- ---------- ---------- ------------
203.0.113.2 64496 9 10 00,00:03:07 1
ESR3# sh bgp summary
2025-11-26 06:38:52
BGP router identifier 192.0.2.2, local AS number 64496, AS confederation identifier 69 <---
BGP activity 0/1 prefixes
Neighbor AS MsgRcvd MsgSent Up/Down St/PfxRcd
(d,h:m:s)
---------------------- ------------- ---------- ---------- ---------- ------------
203.0.113.1 64497 7 10 00,00:04:03 0 |
| Scroll Pagebreak |
|---|
BGP-сессия перешла в состояние "Established". Необходимо убедиться, что тип сессии соответствует "confed-external". Для Для eBGP-cессии автоматически увеличится multi-hop до 255:
| Блок кода |
|---|
ESR3# sh bgp neighbors
BGP neighbor is 203.0.113.1
BGP state: Established
Type: Static neighbor
Neighbor address: 203.0.113.1
Neighbor AS: 64497
Neighbor ID: 198.51.100.2
Neighbor caps: refresh enhanced-refresh restart-aware AS4
Session: confed-external multihop AS4 <-----
Source address: 203.0.113.2
Weight: 0
Hold timer: 120/180
Keepalive timer: 18/60
EBGP multi-hop: 255 <-----
RR client: No
Address family ipv4 unicast:
Send-label: No
Default originate: No
Default information originate: No
Preference: 170
Remove private AS: No
Next-hop self: No
Next-hop unchanged: No
Uptime (d,h:m:s): 00,00:02:09
ESR2# sh bgp neighbors
BGP neighbor is 203.0.113.2
BGP state: Established
Type: Static neighbor
Neighbor address: 203.0.113.2
Neighbor AS: 64496
Neighbor ID: 192.0.2.2
Neighbor caps: refresh enhanced-refresh restart-aware AS4
Session: confed-external multihop AS4 <-----
Source address: 203.0.113.1
Weight: 0
Hold timer: 140/180
Keepalive timer: 38/60
EBGP multi-hop: 255 <----
RR client: No
Address family ipv4 unicast:
Send-label: No
Default originate: No
Default information originate: No
Preference: 170
Remove private AS: No
Next-hop self: No
Next-hop unchanged: No
Uptime (d,h:m:s): 00,00:08:05
|
| Scroll Pagebreak |
|---|
Проверим, что ESR2 принимает анонсируемый ESR3 маршрут 192.0.2.2/32:
| Примечание |
|---|
Обратите внимание: для Для обозначения использования AS_CONFED_SEQUENCE AS Path указывается в круглых скобках. |
...
| Блок кода | ||
|---|---|---|
| ||
ESR2# sh bgp ipv4 unicast 192.0.2.2/32
192.0.2.2/32 via 203.0.113.2 on gi1/0/2 [bgp64497 06:34:48] (64496i)
Administrative Distance: 170
Type: unicast
Origin: IGP
Aggregator: --
AS path: (64496) <----
Next Hop: 203.0.113.2
Output Label: --
Input Label: --
Local Preference: 100
MED: --
Cluster List: --
Community: --
EXT Community: --
Weight: 0
Valid, best, confed-external |
Следующим шагом настроим взаимодействие взаимодействие конфедерации с внешней автономной системой. При настройке пиринга необходимо помнить, что в качестве внешней AS будет использоваться идентификатор конфедерации.
...
| Блок кода | ||
|---|---|---|
| ||
ESR2(config)# route-map OUT ESR2(config-route-map)# rule 1 ESR2(config-route-map-rule)# match ip address 192.0.2.2/32 ESR2(config-route-map-rule)# exit ESR2(config-route-map)# rule 2 ESR2(config-route-map-rule)# action deny ESR2(config-route-map-rule)# exit ESR2(config-route-map)# exit ESR2(config)# ESR2(config)# router bgp 64497 ESR2(config-bgp)# neighbor 198.51.100.1 ESR2(config-bgp-neighbor)# remote-as 64498 ESR2(config-bgp-neighbor)# address-family ipv4 unicast ESR2(config-bgp-neighbor-af)# route-map OUT out ESR2(config-bgp-neighbor-af)# enable ESR2(config-bgp-neighbor-af)# exit ESR2(config-bgp-neighbor)# enable ESR2(config-bgp-neighbor)# exit ESR2(config-bgp)# neighbor 203.0.113.2 ESR2(config-bgp-neighbor)# address-family ipv4 unicast ESR2(config-bgp-neighbor-af)# next-hop-self ESR2(config-bgp-neighbor-af)# exit ESR2(config-bgp-neighbor)# do com ESR2(config-bgp)# do com ESR2(config-bgp)# do conf |
| Scroll Pagebreak |
|---|
Проверяем, что пиринг поднялся:
| Блок кода |
|---|
ESR2# sh bgp neighbors 198.51.100.1
BGP neighbor is 198.51.100.1
BGP state: Established
Type: Static neighbor
Neighbor address: 198.51.100.1
Neighbor AS: 64498
Neighbor ID: 192.0.2.1
Neighbor caps: refresh enhanced-refresh restart-aware AS4
Session: external AS4
Source address: 198.51.100.2
Weight: 0
Hold timer: 136/180
Keepalive timer: 36/60
RR client: No
Address family ipv4 unicast:
Send-label: No
Default originate: No
Default information originate: No
Outgoing route-map: OUT
Preference: 170
Remove private AS: No
Next-hop self: No
Next-hop unchanged: No
Uptime (d,h:m:s): 00,00:16:04
ESR1# sh bgp neighbors 198.51.100.2
BGP neighbor is 198.51.100.2
BGP state: Established
Type: Static neighbor
Neighbor address: 198.51.100.2
Neighbor AS: 69
Neighbor ID: 198.51.100.2
Neighbor caps: refresh enhanced-refresh restart-aware AS4
Session: external AS4
Source address: 198.51.100.1
Weight: 0
Hold timer: 135/180
Keepalive timer: 39/60
RR client: No
Address family ipv4 unicast:
Send-label: No
Default originate: No
Default information originate: No
Outgoing route-map: OUT
Preference: 170
Remove private AS: No
Next-hop self: No
Next-hop unchanged: No
Uptime (d,h:m:s): 00,00:34:20 |
| Scroll Pagebreak |
|---|
Проверяем Проверям корректность анонсируемой информации:
...
