BGP Local-as/no-prepend replace-as

BGP Local-asПараметр no-prepend replace-as дает возможность скрыть реальную AS при BGP-соседстве. Заменяется она на ту, которая прописана в команде local-as. Без no-prepend replace-as наша реальная AS будет присутствовать в AS-path наряду с указанной в команде local-as.Минус этого подхода в том, что такой метод потенциально может вызвать петлю маршрутизации, т.к. если анонс придет с свою же AS, то маршрутизатор не отбросит данный анонс, т.к. реальная AS отсутствует в AS-PATH.

Когда мы указываем параметр dual-as, то сосед может связаться с нашей AS как по реальному номеру, так и по указанному нами в команде local-as.

R1:
no router bgp 100
router bgp 146
network 150.1.1.1 mask 255.255.255.255
neighbor 155.1.146.4 remote-as 146
neighbor 155.1.146.6 remote-as 146
neighbor 155.1.146.4 route-reflector-client
neighbor 155.1.146.6 route-reflector-client
neighbor 155.1.13.3 remote-as 200
neighbor 155.1.13.3 local-as 100 no-prepend replace-as

Смотрим маршруты, которые R3 получил от R1 и видим, что в AS-Path присутствует только AS 100.

R3#show ip bgp neighbors 155.1.13.1 routes
 BGP table version is 106, local router ID is 150.1.3.3
 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
 r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
 x best-external, a additional-path, c RIB-compressed,
 Origin codes: i - IGP, e - EGP, ? - incomplete
 RPKI validation codes: V valid, I invalid, N Not found
 Network Next Hop Metric LocPrf Weight Path
 * 112.0.0.0 155.1.13.1 0 100
 300 54 50 60 i * 113.0.0.0 155.1.13.1 0 100
 300 54 50 60 i *> 150.1.1.1/32 155.1.13.1 0 0 100
 i *> 150.1.4.4/32 155.1.13.1 0 100
 i *> 150.1.6.6/32 155.1.13.1 0 100
 i

Тоже самое можно наблюдать на R7:

R6:
no router bgp 100
router bgp 146
network 150.1.6.6 mask 255.255.255.255
neighbor 155.1.146.1 remote-as 146
neighbor 155.1.67.7 remote-as 300
neighbor 155.1.67.7 local-as 100 no-prepend replace-as

!R7#show ip bgp neighbors 155.1.67.6 routes
BGP table version is 81, local router ID is 150.1.7.7
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 150.1.1.1/32 155.1.67.6 0 100
i *> 150.1.4.4/32 155.1.67.6 0 100
i *> 150.1.6.6/32 155.1.67.6 0 0 100
i

Теперь смотрим на R5. Он стыкуется с R4 с параметром dual-as.

R4:
no router bgp 100
router bgp 146
network 150.1.4.4 mask 255.255.255.255
neighbor 155.1.146.1 remote-as 146
neighbor 155.1.45.5 remote-as 200
neighbor 155.1.45.5 local-as 100 no-prepend replace-as dual-as

R5:
router bgp 200
neighbor 155.1.45.4 remote-as 146

R5#show ip bgp neighbors 155.1.45.4 routes
BGP table version is 95, local router ID is 150.1.5.5
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
1030
x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
* 112.0.0.0 155.1.45.4 0 146
300 54 50 60 i * 113.0.0.0 155.1.45.4 0 146
300 54 50 60 i *> 150.1.1.1/32 155.1.45.4 0 146
i *> 150.1.4.4/32 155.1.45.4 0 0 146
i *> 150.1.6.6/32 155.1.45.4 0 146

Теперь меняем значение AS в конфигурации на R5:

R5:
router bgp 200
neighbor 155.1.45.4 remote-as 100

!R5#show ip bgp neighbors 155.1.45.4 routes
BGP table version is 104, local router ID is 150.1.5.5
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
* 112.0.0.0 155.1.45.4 0 100
300 54 50 60 i * 113.0.0.0 155.1.45.4 0 100
300 54 50 60 i *> 150.1.1.1/32 155.1.45.4 0 100
i *> 150.1.4.4/32 155.1.45.4 0 0 100
i *> 150.1.6.6/32 155.1.45.4 0 100
i