GCP BYOIP: 공개 광고는 사설 경로가 아니다
BYOIP 프리픽스를 사이트와 클라우드로 나누려면 두 가지 계획이 필요하다. 공개 광고, 위임, 사설 다음 홉을 분리하라.
공개 블록의 일부는 사이트에 남고 일부는 Google Cloud로 옮겨간다. 그 문장은 하나가 아니라 두 가지 계획, 곧 인터넷 광고 계획과 사설 포워딩 계획을 설명한다. 둘을 하나의 라우팅 문제로 다루는 것이 BYOIP 설계가 어긋나는 지점이다.
관련된 객체들은 서로 다른 질문에 답하며, 패킷이 다음에 어디로 가는지를 다루는 것은 그중 하나뿐이다.
세 객체, 세 질문
공개 광고 프리픽스는 Google이 고객을 대신해 인터넷에 광고하는 단위다. 공개 위임 프리픽스는 가져온 주소 공간을 지원되는 Cloud 리소스에 어떻게 할당하는지를 뜻한다. VPC 경로는 VPN에서 Cloud Router를 통해 학습한 경로를 포함해 사설 다음 홉을 선택한다. 각각 고유한 범위, 고유한 API, 고유한 오류 메시지를 가진다.
표로 만들면 더 짧다.
| Object | Question it answers |
|---|---|
| Public advertised prefix | Which authorized range Google announces publicly |
| Public delegated prefix | How imported space is allocated to Cloud resources |
| VPN or Cloud Router route | Which private next hop carries a destination |
세 번째 행만이 네트워크 내부의 포워딩에 관한 것이다.
BYOIP 중복 경고가 다루는 범위
Google의 BYOIP 문서는 광고 프리픽스를 광고 단위로 취급하고, Google 외부에서 광고되는 서브프리픽스를 포함해 외부 광고가 중복되는 경우를 경고한다. 그 경고는 공개 광고 계획에 관한 것이다. 추가할 수 있는 모든 사설 경로에 대한 진술은 아니다.
가져온 프리픽스 안에서 더 작은 할당을 위임하는 것만으로는 나머지를 다른 출처에서 광고할 권한이 생기지 않는다.
누가 무엇을 광고하는가라는 관점으로 질문을 던져라. Google이 가져온 프리픽스 전체를 광고한다면, 서브프리픽스를 광고하는 두 번째 출처는 VPC 경로가 아무리 깔끔해 보여도 문서가 경고하는 중복을 그대로 만들어 낸다.
사설 경로가 결정하는 것
VPN을 통해 학습한 프리픽스는 인터넷 광고가 아니며, 아무리 많은 BGP를 쌓아도 광고가 되지 않는다. 그것은 VPC 라우팅 테이블의 항목으로, 해당 목적지의 트래픽을 어느 터널이나 게이트웨이가 실어 나를지를 나타낸다. 그 항목이 적격인지, 선택되는지, 사용 가능한지는 VPC 자체의 라우팅 규칙에 달려 있다.
최장 프리픽스 일치는 라우팅 테이블 내부에서 적용되므로, 더 긴 VPN 경로가 공개 에지에서 아무것도 바꾸지 않고 로컬에서 이길 수 있다.
프리픽스 분할: 먼저 오는 결정
블록의 절반은 데이터센터에서, 절반은 Google에서 광고해야 하는 구조라면 무엇이든 가져오기 전에 광고 계획을 확정하라. Google이 광고할 수 있는 범위, 다른 곳에서 계속 광고되는 범위, 그리고 둘이 겹치는지를 확인하라. 그다음 목적지별 사설 경로와 반환 경로를 설계하라. 공급자가 원하는 분할을 지원하지 않는다면, 더 긴 VPN 프리픽스가 공개 에지의 결정을 덮어쓰리라 기대하지 말고 분할 쪽을 바꿔라.
그 순서가 중요한 이유는 두 번째 계획이 첫 번째 계획을 고칠 수 없기 때문이다.
두 계획을 따로 검증하라
공개 쪽은 gcloud compute public-advertised-prefixes list 로 확인하고 범위와 상태를 확정하라. 사설 쪽은 gcloud compute routes list 와 gcloud compute routers get-status 로 확인하면 BGP가 실제로 무엇을 교환했는지 알 수 있다.
한쪽 출력은 인터넷이 무엇을 보는지 알려 준다. 다른 쪽은 트래픽이 어디로 가는지 알려 준다. 어느 것도 다른 쪽을 대신하지 않는다.