AS Prepend 경로 조정
AS Path의 경우 경로 선택 시 높은 우선순위를 가지고 있으며, AS 너머로 전파가 가능하여 네트워크 운영자가 Inbound 트래픽을 원하는 경로로 유도하는 데 효과적인 방법입니다. 특히, 멀티홈(Multihoming) 환경에서 특정 ISP를 우선적으로 사용하거나, 특정 경로를 덜 선호하도록 설정할 때 AS Path 조작이 자주 활용됩니다.
이러한 경로 제어 방법 중 하나가 AS Prepend입니다. AS Prepend은 BGP에서 인위적으로 AS 번호를 추가하여 AS Path를 길게 만들어, 다른 경로보다 덜 선호되도록 하는 기법입니다. 이를 통해 특정 링크의 트래픽 부하를 조정하거나, 특정 경로를 백업 경로로 유지하는 등의 정책을 구현할 수 있습니다.
이번 글에서는 AS Prepend의 개념과 동작 방식, 실제 네트워크에서 활용하는 방법을 살펴보겠습니다.

MED 전파 범위 확인
먼저 MED값이 AS 너머로 전파 되는지 여부를 확인하려고 합니다. R4에서 MED 값을 100으로 조정 후 R2로 보내는 정보에 적용합니다.
[Config]
R4#show run route-map
!
route-map rmap-MED permit 10
set metric 100
R4#show run bgp
!
router bgp 400
bgp router-id 4.4.4.4
network 140.4.0.0/24
network 140.4.1.0/24
network 140.4.2.0/24
timers bgp 2 6
neighbor 10.10.24.2 remote-as 200
neighbor 10.10.24.2 route-map rmap-MED out
neighbor 10.10.24.2 timers 2 6
neighbor 10.10.24.2 soft-reconfiguration inbound
neighbor 10.10.24.2 no shutdown
neighbor 10.10.34.3 remote-as 300
neighbor 10.10.34.3 timers 2 6
neighbor 10.10.34.3 soft-reconfiguration inbound
neighbor 10.10.34.3 no shutdown
[속성값 변경 전후]
[변경 전]
R4#show ip bgp neighbors 10.10.24.2 advertised-routes
BGP local RIB : Routes to be Added 0, Replaced 0, Withdrawn 0
BGP local router ID is 4.4.4.4
Status codes: s suppressed, S stale, d dampened, h history, * valid, > best
Path source: I - internal, a - aggregate, c - confed-external, r - redistributed
n - network, D - denied, S - stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 130.3.0.0/24 10.10.24.4 0 0 0 400 300 i
*> 130.3.1.0/24 10.10.24.4 0 0 0 400 300 i
*> 130.3.2.0/24 10.10.24.4 0 0 0 400 300 i
*> 140.4.0.0/24 10.10.24.4 0 0 0 400 i
*> 140.4.1.0/24 10.10.24.4 0 0 0 400 i
*> 140.4.2.0/24 10.10.24.4 0 0 0 400 i
Total number of prefixes: 6
[변경 후] // MED 100 속성 전달
R4#show ip bgp nei 10.10.24.2 advertised-routes
BGP local RIB : Routes to be Added 0, Replaced 0, Withdrawn 0
BGP local router ID is 4.4.4.4
Status codes: s suppressed, S stale, d dampened, h history, * valid, > best
Path source: I - internal, a - aggregate, c - confed-external, r - redistributed
n - network, D - denied, S - stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 130.3.0.0/24 10.10.24.4 100 0 0 400 300 i
*> 130.3.1.0/24 10.10.24.4 100 0 0 400 300 i
*> 130.3.2.0/24 10.10.24.4 100 0 0 400 300 i
*> 140.4.0.0/24 10.10.24.4 100 0 0 400 i
*> 140.4.1.0/24 10.10.24.4 100 0 0 400 i
*> 140.4.2.0/24 10.10.24.4 100 0 0 400 i
Total number of prefixes: 6
R2에서는 R4로 부터 조정된 MED 값이 수신되지만 다른 AS 너머로 전달하지 않기에 R1에게는 초기화 된 MED값을 전달합니다.
R2#show ip bgp
...
Network Next Hop Metric LocPrf Weight Path
*> 110.1.0.0/24 10.10.12.1 0 0 100 i
*> 110.1.1.0/24 10.10.12.1 0 0 100 i
*> 110.1.2.0/24 10.10.12.1 0 0 100 i
*>n 120.2.0.0/24 0.0.0.0 0 32768 i
*>n 120.2.1.0/24 0.0.0.0 0 32768 i
*>n 120.2.2.0/24 0.0.0.0 0 32768 i
* 130.3.0.0/24 10.10.24.4 100 0 400 300 i
*> 10.10.12.1 0 100 300 i
* 130.3.1.0/24 10.10.24.4 100 0 400 300 i
*> 10.10.12.1 0 100 300 i
* 130.3.2.0/24 10.10.24.4 100 0 400 300 i
*> 10.10.12.1 0 100 300 i
*> 140.4.0.0/24 10.10.24.4 100 0 400 i
*> 140.4.1.0/24 10.10.24.4 100 0 400 i
*> 140.4.2.0/24 10.10.24.4 100 0 400 i
// R2가 R4로 부터 받는 경로 정보
R2#show ip bgp neighbors 10.10.24.4 received-routes
BGP local RIB : Routes to be Added 0, Replaced 0, Withdrawn 0
BGP local router ID is 2.2.2.2
Status codes: s suppressed, S stale, d dampened, h history, * valid, > best
Path source: I - internal, a - aggregate, c - confed-external, r - redistributed
n - network, D - denied, S - stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* 130.3.0.0/24 10.10.24.4 100 0 400 300 i
* 130.3.1.0/24 10.10.24.4 100 0 400 300 i
* 130.3.2.0/24 10.10.24.4 100 0 400 300 i
*> 140.4.0.0/24 10.10.24.4 100 0 400 i
*> 140.4.1.0/24 10.10.24.4 100 0 400 i
*> 140.4.2.0/24 10.10.24.4 100 0 400 i
// R2가 R1에게 보내는 경로 정보 : MED 초기화 전달
R2#show ip bgp neighbors 10.10.12.1 advertised-routes
BGP local RIB : Routes to be Added 0, Replaced 0, Withdrawn 0
BGP local router ID is 2.2.2.2
Status codes: s suppressed, S stale, d dampened, h history, * valid, > best
Path source: I - internal, a - aggregate, c - confed-external, r - redistributed
n - network, D - denied, S - stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 120.2.0.0/24 10.10.12.2 0 0 0 200 i
*> 120.2.1.0/24 10.10.12.2 0 0 0 200 i
*> 120.2.2.0/24 10.10.12.2 0 0 0 200 i
*> 140.4.0.0/24 10.10.12.2 0 0 0 200 400 i
*> 140.4.1.0/24 10.10.12.2 0 0 0 200 400 i
*> 140.4.2.0/24 10.10.12.2 0 0 0 200 400 i
Total number of prefixes: 6
R1에서도 확인 시 R4에서 R2로 전달하는 MED 값을 조정 했지만 R1에서는 기존과 변화가 없는 것을 볼 수 있습니다. (MED 미표시 = Default 값)
R1#show ip bgp
...
Network Next Hop Metric LocPrf Weight Path
*>n 110.1.0.0/24 0.0.0.0 0 32768 i
*>n 110.1.1.0/24 0.0.0.0 0 32768 i
*>n 110.1.2.0/24 0.0.0.0 0 32768 i
*> 120.2.0.0/24 10.10.12.2 0 0 200 i
*> 120.2.1.0/24 10.10.12.2 0 0 200 i
*> 120.2.2.0/24 10.10.12.2 0 0 200 i
*> 130.3.0.0/24 10.10.13.3 0 0 300 i
*> 130.3.1.0/24 10.10.13.3 0 0 300 i
*> 130.3.2.0/24 10.10.13.3 0 0 300 i
* 140.4.0.0/24 10.10.13.3 0 300 400 i
*> 10.10.12.2 0 200 400 i
* 140.4.1.0/24 10.10.13.3 0 300 400 i
*> 10.10.12.2 0 200 400 i
* 140.4.2.0/24 10.10.13.3 0 300 400 i
*> 10.10.12.2 0 200 400 i
R1#show ip bgp nei 10.10.12.2 received-routes
BGP local RIB : Routes to be Added 0, Replaced 0, Withdrawn 0
BGP local router ID is 1.1.1.1
Status codes: s suppressed, S stale, d dampened, h history, * valid, > best
Path source: I - internal, a - aggregate, c - confed-external, r - redistributed
n - network, D - denied, S - stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 120.2.0.0/24 10.10.12.2 0 0 200 i
*> 120.2.1.0/24 10.10.12.2 0 0 200 i
*> 120.2.2.0/24 10.10.12.2 0 0 200 i
*> 140.4.0.0/24 10.10.12.2 0 200 400 i
*> 140.4.1.0/24 10.10.12.2 0 200 400 i
*> 140.4.2.0/24 10.10.12.2 0 200 400 i
AS Prepend 적용
AS 너머로 경로 조정을 확인하기 위해 MED 값 변경 대신 AS Prepend 설정을 적용합니다.
route-map에서 as-path 명령어를 통해 추가할 AS 정보를 입력합니다.
기본으로 전달하는 자신의 AS 정보 외에 400 400 400 경로를 추가하도록 설정하고 R2(10.10.24.2)에게 전달되도록 적용합니다.
R4#show run route-map
!
route-map rmap-AS permit 10
set as-path prepend 400 400 400
R4#show run bgp
!
router bgp 400
bgp router-id 4.4.4.4
network 140.4.0.0/24
network 140.4.1.0/24
network 140.4.2.0/24
timers bgp 2 6
neighbor 10.10.24.2 remote-as 200
neighbor 10.10.24.2 route-map rmap-AS out
neighbor 10.10.24.2 timers 2 6
neighbor 10.10.24.2 soft-reconfiguration inbound
neighbor 10.10.24.2 no shutdown
neighbor 10.10.34.3 remote-as 300
neighbor 10.10.34.3 timers 2 6
neighbor 10.10.34.3 soft-reconfiguration inbound
neighbor 10.10.34.3 no shutdown
R4에서 R2에게 광고하는 경로 정보를 확인하면 AS Path 정보가 AS Prepend 설정대로 AS Path 400 400 400이 추가된 것을 확인할 수 있습니다.
[R4] // AS 400 400 400 추가 후 전달
R4#show ip bgp neighbors 10.10.24.2 advertised-routes
...
Network Next Hop Metric LocPrf Weight Path
*> 130.3.0.0/24 10.10.24.4 0 0 0 400 400 400 400 300 i
*> 130.3.1.0/24 10.10.24.4 0 0 0 400 400 400 400 300 i
*> 130.3.2.0/24 10.10.24.4 0 0 0 400 400 400 400 300 i
*> 140.4.0.0/24 10.10.24.4 0 0 0 400 400 400 400 i
*> 140.4.1.0/24 10.10.24.4 0 0 0 400 400 400 400 i
*> 140.4.2.0/24 10.10.24.4 0 0 0 400 400 400 400 i
Total number of prefixes: 6
R2 BGP 테이블 확인 시 R4 대역 (140.4.x.x)에 대한 최적 경로가 기존에는 R4였습니다. 그러나 R4 경로는 R1에서 받는 경로보다 AS Path가 더 길어져 우선 순위에 밀리게 되었습니다.
R2와 R4는 직접 연결된 경로임에도 불구하고 R4 경로의 AS Path가 더 길어져 R1으로 전달하는 경로가 최적경로로 되었습니다.

// 추가된 AS Path로 인해 최적 경로가 변경 됨
R2#show ip bgp
...
Network Next Hop Metric LocPrf Weight Path
*> 110.1.0.0/24 10.10.12.1 0 0 100 i
*> 110.1.1.0/24 10.10.12.1 0 0 100 i
*> 110.1.2.0/24 10.10.12.1 0 0 100 i
*>n 120.2.0.0/24 0.0.0.0 0 32768 i
*>n 120.2.1.0/24 0.0.0.0 0 32768 i
*>n 120.2.2.0/24 0.0.0.0 0 32768 i
* 130.3.0.0/24 10.10.24.4 0 400 400 400 400 300 i
*> 10.10.12.1 0 100 300 i
* 130.3.1.0/24 10.10.24.4 0 400 400 400 400 300 i
*> 10.10.12.1 0 100 300 i
* 130.3.2.0/24 10.10.24.4 0 400 400 400 400 300 i
*> 10.10.12.1 0 100 300 i
* 140.4.0.0/24 10.10.24.4 0 0 400 400 400 400 i
*> 10.10.12.1 0 100 300 400 i
* 140.4.1.0/24 10.10.24.4 0 0 400 400 400 400 i
*> 10.10.12.1 0 100 300 400 i
* 140.4.2.0/24 10.10.24.4 0 0 400 400 400 400 i
*> 10.10.12.1 0 100 300 400 i
============================================================
// R2에서 R4로부터 받는 경로 정보 확인 시 AS Path가 추가된 모습
R2#show ip bgp neighbors 10.10.24.4 received-routes
...
Network Next Hop Metric LocPrf Weight Path
* 130.3.0.0/24 10.10.24.4 0 400 400 400 400 300 i
* 130.3.1.0/24 10.10.24.4 0 400 400 400 400 300 i
* 130.3.2.0/24 10.10.24.4 0 400 400 400 400 300 i
* 140.4.0.0/24 10.10.24.4 0 0 400 400 400 400 i
* 140.4.1.0/24 10.10.24.4 0 0 400 400 400 400 i
* 140.4.2.0/24 10.10.24.4 0 0 400 400 400 400 i
============================================================
R2#show ip bgp 140.4.0.0
BGP routing table entry for 140.4.0.0/24
Paths: (2 available, table Default-IP-Routing-Table.)
Advertised to :
10.10.24.4
Received from :
10.10.24.4 (4.4.4.4)
AS_PATH : 400 400 400 400
Next-Hop : 10.10.24.4, Cost : 0
Origin IGP, Metric 0, LocalPref 100, Weight 0, external
Inactive reason: AS Path
Received from :
10.10.12.1 (1.1.1.1) Best
AS_PATH : 100 300 400
Next-Hop : 10.10.12.1, Cost : 0
Origin IGP, Metric 4294967295 (Default), LocalPref 100, Weight 0, external
나머지 R1, R3에서 확인해봐도 R4 대역으로 향하는 경로는 R2를 경유하는 경로는 사라지고 R3을 통해서 전달하는 경로가 최적 경로가 되었음을 볼 수 있습니다.
R1#show ip bgp
...
Network Next Hop Metric LocPrf Weight Path
*>n 110.1.0.0/24 0.0.0.0 0 32768 i
*>n 110.1.1.0/24 0.0.0.0 0 32768 i
*>n 110.1.2.0/24 0.0.0.0 0 32768 i
*> 120.2.0.0/24 10.10.12.2 0 0 200 i
*> 120.2.1.0/24 10.10.12.2 0 0 200 i
*> 120.2.2.0/24 10.10.12.2 0 0 200 i
*> 130.3.0.0/24 10.10.13.3 0 0 300 i
*> 130.3.1.0/24 10.10.13.3 0 0 300 i
*> 130.3.2.0/24 10.10.13.3 0 0 300 i
*> 140.4.0.0/24 10.10.13.3 0 300 400 i
*> 140.4.1.0/24 10.10.13.3 0 300 400 i
*> 140.4.2.0/24 10.10.13.3 0 300 400 i
============================================================
R3#show ip bgp
...
Network Next Hop Metric LocPrf Weight Path
* 110.1.0.0/24 10.10.34.4 0 400 200 100 i
*> 10.10.13.1 0 0 100 i
* 110.1.1.0/24 10.10.34.4 0 400 200 100 i
*> 10.10.13.1 0 0 100 i
* 110.1.2.0/24 10.10.34.4 0 400 200 100 i
*> 10.10.13.1 0 0 100 i
* 120.2.0.0/24 10.10.34.4 0 400 200 i
*> 10.10.13.1 0 100 200 i
* 120.2.1.0/24 10.10.34.4 0 400 200 i
*> 10.10.13.1 0 100 200 i
* 120.2.2.0/24 10.10.34.4 0 400 200 i
*> 10.10.13.1 0 100 200 i
*>n 130.3.0.0/24 0.0.0.0 0 32768 i
*>n 130.3.1.0/24 0.0.0.0 0 32768 i
*>n 130.3.2.0/24 0.0.0.0 0 32768 i
*> 140.4.0.0/24 10.10.34.4 0 0 400 i
*> 140.4.1.0/24 10.10.34.4 0 0 400 i
*> 140.4.2.0/24 10.10.34.4 0 0 400 i
이로써 AS Prepend를 이용해서 경로 조정을 해보았습니다. MED로는 불가능한 AS 너머의 경로 조정은 AS Path 길이를 조정하여 가능한 것을 볼 수 있었습니다.
이전에 실습한 내용을 참고하여 Local Preference와 AS Path를 활용하여 inbound/outbound 경로를 동시에 조정하면 특정 경로를 완전히 우회할 수도 있게 됩니다.
'Routing > BGP' 카테고리의 다른 글
| [BGP] BGP 동기화 법칙이란 (0) | 2025.02.23 |
|---|---|
| [BGP] Next-Hop 이슈 및 해결방안 2가지 (0) | 2025.02.16 |
| [BGP] BGP 연동 실습#4 - Attribute를 이용한 경로 조정 (MED) (0) | 2025.02.03 |
| [BGP] BGP 연동 실습#3 - Attribute를 이용한 경로 조정 (Local Preference) (0) | 2025.01.27 |
| [BGP] BGP 연동 실습#2 - 특정 네트워크 광고 허용/거부 정책 적용 (Filtering) (0) | 2025.01.17 |