같은 장비의 두 경로가 198.51.100.77을 가리키면서도 서로 다른 질문에 답할 수 있습니다. 하나는 MAC 주소가 어디에서 도달 가능한지, 그리고 선택적으로 어떤 IP가 그에 묶여 있는지를 설명합니다. 다른 하나는 다음 홉을 통해 해석되는 프리픽스를 설명하며, 그 프리픽스가 단일 호스트일 때도 마찬가지입니다. 둘을 혼동하면 라우팅 버그처럼 보이지만 실제로는 경로 유형을 잘못 읽은 티켓이 생깁니다.

둘을 구분하는 가장 빠른 방법은 NLRI가 무엇을 중심으로 만들어졌는지 그 키를 읽는 것이며, 끝의 마스크가 아닙니다.

경로 키는 경로가 무엇을 주장하는지 알려줍니다

유형 2는 RFC 7432의 MAC/IP 광고 경로이며, 그 키는 NLRI 내부의 48비트 MAC 주소입니다. 그 키 뒤에는 길이 필드가 0, 32, 128비트일 수 있는 IP 주소 필드가 있어서, MAC만 있는 광고는 일부가 빠진 호스트 항목이 아니라 완전한 경로입니다. 뒤따르는 레이블 스택은 그 MAC이 사는 브리징 컨텍스트를 가리킵니다.

IP 필드가 채워졌는지는 경로가 무엇을 말하는지를 바꿀 뿐, 경로의 종류를 바꾸지 않습니다. 길이가 32비트 또는 128비트이면 송신자는 이 IP가 하나의 EVPN 인스턴스 안에서 그 MAC에 속한다고도 주장합니다. 길이가 비어 있으면 송신자는 IP에 대해 아무 주장도 하지 않습니다. 어느 버전도 프리픽스가 라우터를 통해 도달 가능하다고 말하지 않습니다.

유형 5는 RFC 9136의 IP 프리픽스 경로이며, 그 키는 길이와 그만큼의 비트로 쓰인 프리픽스입니다. 길이는 IPv4의 경우 0에서 32까지, IPv6의 경우 0에서 128까지입니다.

그 범위의 양 끝은 모두 합법이며, 어느 쪽도 MAC을 함축하지 않습니다. 길이가 없는 프리픽스는 호스트를 지명하지 않고 도달 가능성을 주장하고, /32는 정확히 하나의 주소를 지명합니다. NLRI는 또한 이그레스 측이 overlay 인덱스를 만드는 데 쓰는 게이트웨이 IP 주소와 포워딩 컨텍스트용 레이블을 함께 실어 나릅니다. 스위칭할 MAC 필드가 없으므로 수신자는 유형 5를 라우팅된 목적지로 취급합니다.

/32 프리픽스 경로는 이름만 바꾼 유형 2가 아닙니다

호스트 크기 프리픽스는 평범한 유형 5 경로입니다. 같은 주소에 대한 /32 프리픽스 경로와 유형 2는 하나의 EVPN 인스턴스에 함께 존재할 수 있고, 서로 다른 포워딩 정보를 나릅니다.

VNI 10100을 쓰는 EVPN 인스턴스에서 198.51.100.77을 생각해 보십시오. 유형 2는 그것을 MAC 02:00:00:00:00:77과 그 MAC을 학습한 브리지 도메인을 식별하는 레이블에 짝지을 수 있습니다. 유형 5는 전체 서브넷에 대해 198.51.100.0/24를, 또는 그 주소만을 위해 198.51.100.77/32를 광고할 수 있으며, 이그레스 VTEP를 가리키는 게이트웨이 주소를 함께 가집니다. 경로가 서로 다른 질문에 답하기 때문에 주소는 의도적으로 겹칩니다.

한 경로는 엔드포인트 바인딩이 존재하고 특정 브리지를 통해 도달 가능하다고 말합니다. 다른 하나는 그 안의 엔드포인트가 한 번도 학습된 적이 있든 없든 프리픽스가 특정 라우터를 통해 도달 가능하다고 말합니다.

그 차이가 트래픽이 실패할 때 어디를 먼저 볼지 결정합니다. 단일 호스트에 도달할 수 없는데 그 서브넷 경로가 정상으로 보인다면, 유형 5가 애초에 그 호스트를 실어 나를 대상이 아니었습니다. 빠진 유형 2를 찾으십시오. 호스트 경로는 있는데 서브넷 전체에 도달할 수 없다면, 유형 5가 생성되었는지 확인하십시오. 필드를 순서대로 읽는 것이 마스크 길이로 추측하는 것보다 낫습니다.

추측 없이 두 경로를 읽기

NX-OS에서는 show bgp l2vpn evpn route type 2과 show bgp l2vpn evpn route type 5이 이 선을 따라 테이블을 나누고, show l2route evpn mac ip은 유형 2 경로 뒤의 로컬 MAC-IP 바인딩을 보여 줍니다. Junos에서는 show evpn database이 학습된 MAC 및 IP 바인딩을 나열하고 show route table bgp.evpn.0은 무엇이 광고되고 수신되었는지 보여 줍니다.

결론을 내리기 전에 route distinguisher와 Ethernet 태그로 필터링하십시오. 같은 MAC 또는 프리픽스가 여러 EVPN 인스턴스에 나타날 수 있습니다, 그리고 한 인스턴스에서 잘못 보이는 경로가 다른 인스턴스에서는 맞을 수 있습니다.

그다음 NLRI를 순서대로 읽으십시오. 경로 유형, 키, 게이트웨이 또는 레이블 필드, 그리고 속성의 route target입니다. 영이 아닌 ESI를 가진 유형 2는 MAC이 멀티홈임을 알려 주며, 서로 다른 PE 라우터의 광고를 묶는 것이 바로 그 값입니다. 게이트웨이 주소를 가진 유형 5는 어느 이그레스 VTEP가 트래픽을 받아야 하는지 알려 줍니다.

경로가 없으면 인코딩보다 먼저 생성 여부를 확인하십시오. 소스가 바인딩이나 프리픽스를 로컬에 가지고 있는지 확인하고, 그다음 그것에 붙은 route target이 이 장비에서 임포트되는지 확인하십시오. 깨진 유형 5에 대한 보고는 대부분 NLRI 형식이 아니라 임포트 정책에서 끝납니다.

경로 유형만이 아니라 컨텍스트를 기록하십시오

경로 유형, EVPN 인스턴스, route distinguisher, 임포트 및 익스포트된 route target, 해석된 다음 홉을 함께 적으십시오. 인스턴스가 없는 유형 2는 모호하고, 경로 패밀리가 없는 다음 홉은 잘못된 결론을 부릅니다.

페이로드가 IPv4 주소일 때도 둘 다 EVPN 경로입니다. NLRI 내부의 주소 패밀리와 경로 자체의 주소 패밀리는 별개의 속성이며, 유형 5는 IPv4 프리픽스를 실어 나른다는 이유만으로 IPv4-unicast나 VPN-IPv4 경로가 되지 않습니다.

그 구분은 EVPN 제어 평면과 IP-VRF의 경계에서 드러납니다. route target은 어느 VRF가 프리픽스를 임포트하는지 결정하고, 게이트웨이 주소와 레이블은 패킷이 이그레스 쪽으로 어떻게 캡슐화되는지 결정합니다. 이것을 함께 읽으면 포워딩 결정이 임의적으로 보이지 않게 됩니다.

다음에 EVPN 테이블에 /32가 나타나면 마스크보다 먼저 키를 확인하십시오. 선택적 IP가 있는 MAC 키는 유형 2 바인딩이고, 프리픽스 키는 길이와 무관하게 유형 5 경로입니다. 옆에 route target과 다음 홉을 적어 두면 다음 엔지니어가 전체 이야기를 다시 이끌어 낼 필요가 없습니다.

관련 글