EVPN 경계는 연결이 아니라 익스포트 정책을 중심으로 설계한다
먼저 경계를 넘는 경로와 ASN 관계를 정한다. Layer 2 연결은 그다음 요구 사항에서 나오며, 각 테넌트는 필요한 익스포트만 받는다.
흔한 가정은 경계의 Layer 2 연결 모델이 그 위의 모든 것을 결정한다는 것이어서, 설계는 vPC 쌍에서 시작해 위로 올라간다. 보통은 우연히 내려진 라우팅 결정으로 끝난다. EVPN 경계는 무엇보다 라우팅 경계다. 테넌트 라우팅 컨텍스트가 외부 라우팅 도메인과 만나고, 그 선을 넘는 것은 정책 선언이다. port-channels를 두고 논쟁이 시작되기 전에 경로와 ASN 관계, 장애 경로를 먼저 고른다. 연결 모델 은 요구 사항을 강요하는 대신 요구 사항에서 나온다.
경계를 넘는 것부터 시작한다
양쪽에서 보여야 할 경로, 그 경로가 흐르는 방향, 그 목록의 변경을 누가 승인하는지 적는다. 무엇이든 받아들이고 무엇이든 광고하는 경계에는 정책이 없고 케이블만 있다.
다음으로 운영할 장애를 지목한다. uplink 하나가 죽는 경우, border leaf 하나가 죽는 경우, 또는 외부 도메인 전체에 도달할 수 없는 경우다. 답에 따라 독립된 이웃 두 개가 필요한지, 공유 Layer 2 연결이 필요한지, 아니면 둘 다인지가 달라진다.
이 두 목록이 갖춰진 뒤에야 연결에 관한 질문에 답할 수 있다. 그 전에는 모든 방식이 똑같이 타당해 보인다. 갖춘 뒤에는 대부분이 스스로 사라진다. 라우팅 작업을 먼저 하라는 근거는 바로 여기에 있다.
ASN과 peering 경계를 고정한다
프라이빗 AS를 쓰는 패브릭은 보통 eBGP로 공용 경계 도메인과 peering하며, 흥미로운 부분은 양쪽의 정책이다. 어떤 프리픽스를 받아들이고, 무엇을 광고하며, upstream에 어떤 AS path를 넘길지 정한다.
RFC 6996은 프라이빗 용도의 ASN 대역을 예약하며, 그 ASN은 전역 광고에 나타나지 않아야 한다. 플랫폼이 지원하는 제거 또는 필터 정책을 적용하고, 장비가 알아서 했다고 가정하지 말고 결과 광고를 확인한다. 이 단계가 임의의 공용 프리픽스를 광고할 권한을 주는 것도 아니다. 그것은 주소 소유자와의 별도 대화다.
컨페더레이션이나 local-AS 기능은 특정 토폴로지를 위한 설계 선택이다. 패브릭과 upstream이 서로 다른 ASN 역할을 쓴다는 이유만으로 어느 것도 필수가 아니며, 요구 사항 없이 하나를 도입하면 앞으로의 모든 변경에 움직이는 부품이 늘어난다.
Layer 3 uplink에는 multichassis LAG가 필요 없다
자체 BGP 이웃을 가진 독립 라우티드 인터페이스는 두 개의 명확한 경로와 두 개의 명확한 장애 도메인을 준다. vPC나 다른 multichassis LAG는 Layer 2 연결 요구 사항에 대응하며, 그 요구 사항이 있을 때 올바른 도구다.
모든 경계 쌍이 vPC를 써야 한다거나 반드시 피해야 한다는 일률적 규칙은 실제로 판단을 좌우하는 조건을 가린다. 연결이 무엇을 실어야 하는지 묻고, 그것을 가장 적은 공유 장애 모드로 실어 나르는 방식을 고른다.
먼저 작성한 라우팅 정책은 연결 방식이 바뀌어도 바뀌지 않는다. 순서가 옳았다는 좋은 신호다.
테넌트가 필요한 것만 익스포트한다
테넌트는 기본 경로를 필요로 할 수도 있고, 선택한 외부 프리픽스 집합이나 훨씬 큰 테이블을 필요로 할 수도 있다. 그 범위는 실제 포워딩과 컨트롤 플레인 용량을 기준으로 고른다. 아무도 다시 측정하지 않은 오래된 인터넷 경로 수를 기준으로 삼지 않는다.
EVPN IP Prefix 경로는 흔히 Type 5로 불리며 RFC 9136에 정의되어 있고, overlay 안에서 프리픽스 정보를 운반한다. 구현에는 여전히 짝을 이루는 익스포트와 임포트 정책, 그리고 next-hop 해석이 필요하다. 따라서 경계에서 외부 BGP 경로를 받는다고 해서 테넌트의 모든 VRF가 그것을 임포트하는 것은 아니다.
경계가 테이블을 들고 있다고 해서 모든 leaf가 전체 테이블을 필요로 하지는 않는다. 테넌트 트래픽이 요구하는 것을 나눠 주고, 나머지는 경계가 갖게 한다.
프리픽스 하나를 처음부터 끝까지 검증한다
대표적인 외부 프리픽스를 골라 경계의 의도된 VRF, 익스포트 정책, 수신 leaf의 포워딩 컨텍스트, 테넌트 소스로 돌아가는 경로를 따라간다. 한 곳에서는 나타나고 다음 곳에서는 나타나지 않는 프리픽스는 그 실수를 즉시 국소화한다.
next hop이 overlay를 통해 어떻게 해석되는지 확인한다. 해석되지 않은 next hop을 가진 경로는 아무것도 전달하지 않는다. 그다음 uplink 변경 후 같은 점검을 반복한다. 정책과 next-hop 해석이 가장 자주 어긋나는 때가 바로 그때다.
작업 순서는 경계를 넘는 경로를 나열하고, ASN 정책에 합의하고, 연결을 실제 역할에 맞게 고르고, 테넌트별로 익스포트 범위를 정한 뒤, 마지막으로 프리픽스 하나와 그 귀환 경로를 검증하는 것이다.