본문 바로가기

Network 모험기

[#3-4]BGP AS-override, allowas-in 활용하기

지난번 포스팅에 이어서 이번에도 BGP AS-path관련하여 활용하면 좋을 command를 가져왔습니다. 

저는 아직 겪어본적은 없지만, 이런 상황을 가정해봅시다. 

MPLS망을 이용해서 사이트간 혹은 센터와 사이트를 연결하고 있고, 각각은 BGP로 연결 되어있습니다. (Private-as던 Public-as던) 

각 CE는 100이라는 같은 AS를 쓰고 있습니다. 

'회사 내부망이니 같은 BGP AS를 쓴다'라는 취지라고 이해해주시면 될거같습니다. 

 

구성도로 말해봅시다. 

 

1. 구성도 

 

사실 어지러운 구성이지만, 어디선가는 이와 같은 구성이 필요한 곳이 있을겁니다. 

PE1에는 CE1의 라우팅 대역들이 정의되지않고, 모든 라우팅은 CE1에서 올라오고 있음을 가정합니다. 

이때, CE1과 CE2는 정상적으로 통신을 할 수 있을까요 ? 

 

답은 '아니오' 입니다. 

CE1이 PE1으로부터 받아오는 경로(즉, CE2가 광고중인 경로)의 AS-Path에는 자신의 AS 100이 포함되어있습니다. 

eBGP로 받아온 경로의 Path에 자신의 AS가 경로에 포함되어있다?

CE1은 이를 루프로 판단하고 바로 버립니다. 아무 라우팅도 자신의 BGP table로 올리지않습니다.  CE2도 마찬가지이죠. 

 

해결할 수 있는 방안은 두가지 입니다. 

 1) PE에서의 설정 (as-override) 

 2) CE에서의 설정  (allowas-in) 

 

LAB을 따라가면서 하나씩 설명 하겠습니다. 

 

2. LAB 

 

 1) PE에서의 설정 

 

우선 PE에서의 설정을 통해 CE간 통신이 가능하도록 하는 방법에 대해 설명하겠습니다. 

 

CE1이 광고하는 대역은 위와 같습니다. 

 192.168.0.0/24

 192.168.1.0/24

 192.168.2.0/24

 192.168.3.0/24

 192.168.4.0/24

 

CE2이 광고하는 대역은 위와 같습니다 

 172.16.0.0/24

 172.16.1.0/24

 172.16.2.0/24

 172.16.3.0/24

 172.16.4.0/24

 

중간 AS 300부분은 MPLS VPN으로 구성해두었습니다. (MPLS는 별도의 세션으로 다루겠습니다) 

 

이 상황에서 CE들은 각각 연결된 PE한테 어떤 정보를 받는지 확인해 보겠습니다. 

PE1으로부터 전달받은 경로
PE2로부터 전달받은 경로

 

아무 정보도 받았다고 하지않습니다. 

분명히 아래처럼 PE들은 각 CE들에게 광고를 하고있는데도 말이죠. 

자기 AS가 포함되어있다고해서, 아예 받지도 않았은것처럼 표현하는게 인상적입니다. 

 

그럼 PE1과 2에서 아래 Config를 적용해보도록 하겠습니다. 

 

<PE1 config>

router bgp 300 

 address-family ipv4 vrf site 

  neighbor 10.10.10.2 as-override 

 

<PE2 config> 

router bgp 300

 address-family ipv4 vrf site 

  neighbor 10.10.20.2 as-override 

 

이번 포스팅의 주 내용인 as-override설정을 Neighbor에 적용해주었습니다. 

결과는 아래 내용을 보면서 설명하겠습니다. 

 

 

위를 보시면 아시겠다시피, CE2에서 광고중인 대역들이 CE1까지 무사히 도착했음을 확인할 수 있습니다. 

특이한 점은 Path부분을 봐주시면 되는데, '300 300'으로 되어있습니다. 

원래라면 '300 100' 일건데, 100이 300으로 바뀐 모습입니다. 

 

CE2를 봐도 마찬가지입니다. 

CE1에서 광고하는 대역의 AS-path는 '300 300'으로 되어있습니다. 

 

as-override는 AS path에 어떤 AS가 있던지간에, Peer로 전달될때 모두 자신의 AS로 바꿔서 전송합니다. 

말 그대로 Override를 시키는 셈이죠. 

CE1이나 CE2 입장에서보면 광고받은 대역의 AS path에 자신의 AS가 없기때문에, 경로를 버리지않고 BGP table로 올리게되는것이죠. 

이렇게되면 CE1과 CE2는 정상적으로 서로 통신할 수 있게됩니다. 

 

다만, 이 설정에는 가장 큰 문제가 존재합니다. 

바로 PE에서 설정을 해줘야한다겁니다

 

물론 이런 구성임을 아는 네트워크 엔지니어라면 MPLS망 사업자에게 AS-Override config를 적용해달라고 하겠지만, 

이렇게되면 라우팅 제어 대한 주체가 넘어가버려 빠른 시간 내에 수정이 필요한 경우, 해결에 시간이 다소 걸리게됩니다.

또 매번 지사가 늘어날때마다 오더 단계에서 Override설정 추가해달라고 요청해야하죠(아주 번잡합니다..) 

 

그래서 위와 같은 구성일때, CE 설정 변경을 통해 해결하는 방안을 설명해보고자 합니다. 

 

 2) CE에서의 설정 

 

<CE1 config> 

neighbor 10.10.10.1 allowas-in 1

 

<CE2 config> 

neighbor 10.10.20.1 allowas-in 1 

 

위 Config는 CE입장에서 설정해줄 수 있는 방법 중 하나입니다. 

'allowas-in x'은 Peer로부터 받아온 경로 중 자신의 AS가 포함되어 있더라도 'x'개 까지는 허용하겠다는 의미 입니다. 

 

allowas-in 1 적용 후 CE1이 광고받는 대역
allowas-in 1 적용 후 CE2가 광고받는 대역

 

이번 Lab에서는 1개만 무시해주면 되기때문에 1을 해주었지만, 

BGP 경로 Handling을 위하여 AS-prepand를 하신 경우에는 상황에 맞춰 x의 값을 변경해주시면 됩니다. 

다만 최대로 설정할 수 있는 x의 값은 10이므로 설계 시에 참고해주세요 

 

3. 맺으며

AS-override와 allowas-in config는 제가 CCNP core시험을 볼때, 직접 Config하는 문제로 출제되었습니다. 

이런게 있는지도 몰랐고, 언제한번 제대로 다뤄보자한게 이제와서 다루게 되었네요. 

많은 분들에게 도움이 되었으면 좋겠습니다 ! 

 

 

*매번 포스팅을 하면서 주제에 조금은 벗어나고 설명이 방대할것같은 내용들은 노트에 하나씩 적어두면서 

이건 다음에 해야지~ 하다보니 포스팅을 해도해도 해야될게 줄어들지 않는 느낌입니다.. 

남은 내용 : BGP aggregate, BGP RR, MPLS VPN, IPv6.. 

 

그래도 하다보니 글 늘어가는 재미가 쏠쏠하니, IE를 따는 그날까지 공부하는 내용은 모두 올려보겠습니다. 

모두 화이팅 하세요 !! 

 

이해가 안되시거나 대신 LAB을 해줬으면 하는것들은 댓글로 부탁드립니다 !