<br> # My Thoughts - RR은 ‘iBGP로 받은 정보는 iBGP로 넘기지 못한다'는 BGP split horizon 규칙을 면제할 수 있는 기능이다. - 특정 라우터를 RR로 지정하여 모든 라우터를 full mesh로 연결하는 것을 줄인다. <br> # Summary ## Route Reflector (RR) - 특정 라우터를 RR로 지정하면 BGP split horizon 규칙의 적용이 면제된다. - 즉, RR은 iBGP로 받은 정보를 다시 iBGP에게 전송할 수 있다. - 결국, 대형 네트워크에서 split horizon 때문에 모든 라우터를 full mesh로 연결하는 것을 줄여준다. - iBGP 세션의 전체 개수: n(n-1)/2 → 일반적으로 n2 relationship이라 부른다. #### Route Reflector (RR) - BGP split horizon 적용을 면제받은 라우터 #### Route Reflector client - RR에서 neighbor route-reflector-client 명령어로 지정된 라우터 - 자신은 RR client라는 것을 모른다. 알 필요도 없다. - 만약, client가 다른 Cluster와 네이버가 되면, Cluster List를 확인하지 않기 때문에 루프가 발생할 수 있다. #### Route Reflector nonclient - RR과 네이버 관계에 있지만 client가 아닌 라우터 #### Cluster - Route Reflector와 Client의 집합을 Cluster라고 한다. - Cluster 끼리 연결할 때는 반드시 RR 끼리 연결해야 한다. → 루프 방지 - Route Reflector가 Cluster List를 확인하기 때문 #### Cluster ID - RR의 Router ID가 Cluster ID로 사용된다. - 하나의 Cluster 내에 복수개의 RR이 있을 때는 bgp cluster-id 명령어를 사용하여 지정한다. #### Cluster list - 특정 경로를 통과해온 Cluster의 ID list - RR은 자신의 Cluster 외부로 BGP 업데이트를 보낼 때는 Cluster ID를 첨부한다. - 만약, Cluster 외부에서 받은 업데이트에 자신이 속한 Cluster ID가 포함되어 있다면 루프가 발생한 것 - 이때는 해당 업데이트를 무시한다. #### Originator ID - RR이 만드는 Optional Nontransitive Attribute - 특정 경로를 BGP에 포함시킨 라우터의 Router ID를 의미한다. - 이 attribute는 해당 AS 내부에서만 사용된다. - 업데이트 받은 Originator ID가 자신 자신이면 해당 라우터는 이를 무시한다. <br> > [!info] RR 설정에서 루프 방지를 위한 대책 2가지 1. Cluster list - AS 내부에서 RR이 루프를 방지할 때 사용 2. Originator ID - Cluster 내부에서 Originator가 사용하는 루프 방지 대책 <br> # References [BGP Route Reflector](https://networklessons.com/bgp/bgp-route-reflector) [What is a BGP Route Reflector?](https://www.packetcoders.io/what-is-a-bgp-route-reflector/) [Command Reference for Cisco NCS 4000 Series - BGP Route Reflector Commands](https://www.cisco.com/c/en/us/td/docs/routers/ncs4000/software/reference/guide/otncommandreferenceguide/bgp-route-reflector-commands.html) <br> # Links [[_MOC_2_Network]] [[Routing_BGP]] <br> # Tags #network #routing #bgp <br>