by shinwoo
기본적으로 두 ISP와 연결된 multi-homed 환경에서 load-sharing은 불가능한다. 왜냐하면
BGP는 path정보를 다른 AS로 부터 각각 받아도 하나의 best-path 만 선택하기 때문이다. 하지만
정책에 의해 이를 구현하기는 가능하다. 트레픽 흐름은 BGP attribute에 의해 control, 가능하다.
시나리오 : AS100 을위한 policy 정책
outbound policy :
1. AS300으로 향하는 traffic 는 R1-ISP(A)를 이용
2. AS400으로 향하는 traffic 는 R2-ISP(B)를 이용
3. 나머지 모든 traffic는 R1-ISP(A)를 이용
4. 만약 R1-ISP(A) link 장애시 R2-ISP(B)를 이용
inbound policy :
1. 인터넷에서 10.10.10.0/24로 향하는 traffic 는 R1-ISP(A) link 이용
2. 인터넷에서 10.10.20.0/24로 향하는 traffic 는 R2-ISP(B) link 이용
3. 만약 어느 ISP라도 장애시 다른 ISP로 우회
R2 :
router bgp 100
no synch (IBGP에서 IGP가 동작되어지지 않을 경우 no syn )
bgp log-neighbor-changes
network 10.10.10.0 mask 255.255.255.0 (10.10.10.0 network 광고)
network 10.10.20.0 mask 255.255.255.0 (10.10.20.0 network 광고)
neighbor 192.168.21.1 remote-as 100 (IBGP peer 관계성립)
neighbor 192.168.21.1 next-hop-self
(EBGP의 정보가 우선이지만 IBGP 정보도 EBGP 장애시 필요하므로 설정)
neighbor 192.168.42.4 remote-as 400 (AS400 과 EBGP peer 관계성립)
neighbor 192.168.42.4 route-map AS-400-INCOMING in
(EBGP peer 192.168.42.4 로부터 받은 정보에 AS-400-INCOMING route-map 적용)
neighbor 192.168.42.4 route-map AS-400-OUTGOING out
(EBGP peer 192.168.42.4 로 보내는 정보에 AS-400-OUTGOING route-map 적용)
no auto-summary
ip as-path access-list 1 permit ^400$
(정규식 ^400$(오직 AS400에 대한 정보) 로 as-path 1 설정)
access-list 10 permit 10.10.10.0 0.0.0.255
access-list 20 permit 10.10.20.0 0.0.0.255
route-map AS-400-INCOMING permit 10
match as-path 1
set local-preference 150
(as-path 1의 ^400$과 매칭되면 local-preference 150 적용, local-preference는 모든 IBGP peer
가 공유하며 높은값이 우선)
route-map AS-400-OUTGOING permit 10
match ip address 10
set as-path prepend 100
(access-list 10 과 매칭되면 경로정보에 100을 append)
route-map AS-400-OUTGOING permit 20
match ip address 20
(access-list 20 과 매칭되면 그냥 업데이트)
---------------------------------------------------------
R2 :
router bgp 100
no synch
bgp log-neighbor-changes
network 10.10.10.0 mask 255.255.255.0
network 10.10.20.0 mask 255.255.255.0
neighbor 192.168.21.2 remote-as 100
neighbor 192.168.21.2 next-hop-self
neighbor 192.168.31.3 remote-as 400
neighbor 192.168.31.3 route-map AS-300-INCOMING in
neighbor 192.168.31.3 route-map AS-300-OUTGOING out
no auto-summary
ip as-path access-list 1 permit ^300$
access-list 10 permit 10.10.10.0 0.0.0.255
access-list 20 permit 10.10.20.0 0.0.0.255
route-map AS-300-INCOMING permit 10
match as-path 1
set local-preference 200
route-map AS-300-OUTGOING permit 10
match ip address 10
set as-path prepend 100
route-map AS-300-OUTGOING permit 20
match ip address 20
#참고 : local-preference 는 같은 AS내의 모든 BGP라우터가 공유한다. 같은 AS내의 모든
BGP라우터는 local-preference가 높은 라우터로 해당 네트웤으로 가는 gateway로 설정된다.