<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>