내부 TCP/UDP 부하 분산의 다음 홉 개념

내부 TCP/UDP 부하 분산은 비공개 부하 분산 IP 주소로 서비스를 실행하고 확장할 수 있게 해주는 리전 부하 분산기입니다. 내부 TCP/UDP 부하 분산기를 패킷이 최종 목적지로 가는 경로를 따라 전달되는 다음 게이트웨이로 사용할 수 있습니다. 이를 위해 부하 분산기를 커스텀 정적 경로다음 홉으로 설정합니다. 이 구성은 다음과 같은 경우에 유용합니다.

  • 내부 전용 가상 머신 인스턴스에서 인터넷으로 트래픽을 라우팅할 수 있는 내부 네트워크 주소 변환(NAT) 게이트웨이 인스턴스가 필요한 경우. 부하 분산기를 다음 홉으로 사용하면 하나의 외부 IP 주소를 사용하여 여러 가상 머신 인스턴스에서 트래픽을 전송하면서 인터넷에는 하나의 머신만 노출할 수 있습니다.

  • 기본 경로의 다음 홉으로 사용할 부하 분산기가 필요한 경우. VPC 네트워크의 가상 머신 인스턴스가 인터넷으로 트래픽을 전송하면 부하 분산 게이트웨이 가상 어플라이언스를 통해 트래픽이 라우팅됩니다.

개요

커스텀 정적 경로를 만들어 부하 분산기가 정적 경로의 다음 홉인 내부 TCP/UDP 부하 분산기로 TCP 및 UDP 트래픽을 전달할 수 있습니다. 경로는 기본 경로(0.0.0.0/0), 공개 라우팅 가능 경로(RFC 1918 이외) CIDR 프리픽스, 내부(RFC 1918) CIDR 프리픽스가 될 수 있습니다(프리픽스가 서브넷 경로와 충돌하지 않는 경우). 예를 들어 기본 경로(0.0.0.0/0)를 패킷 처리를 위해 타사 백엔드 VM으로 트래픽을 보내는 경로로 바꿀 수 있습니다.

커스텀 정적 경로를 사용하려면 VPC 네트워크의 인스턴스가 부하 분산기와 동일한 리전에 있어야 합니다.

Cloud Router가 부하 분산기와 동일한 리전에 있는 경우 Cloud Router 커스텀 경로 공지를 사용하여 다른 연결된 네트워크에 이 경로를 공지할 수 있습니다. 자세한 내용은 내부 TCP/UDP 부하 분산 및 연결된 네트워크를 참조하세요.

내부 TCP/UDP 부하 분산기를 다음 홉으로 사용할 때의 이점

부하 분산기가 정적 경로의 다음 홉인 경우 부하 분산기 또는 각 백엔드 인스턴스로 트래픽을 전송하도록 클라이언트를 명시적으로 구성할 필요가 없습니다. 백엔드 인스턴스를 Bump-In-The-Wire 방식으로 통합할 수 있습니다.

내부 TCP/UDP 부하 분산기를 정적 경로의 다음 홉으로 사용하면 내부 TCP/UDP 부하 분산과 동일한 이점이 있습니다. 예를 들어 백엔드가 트래픽 요구에 따라 적절하게 확장되며 가용성이 높습니다.

부하 분산기의 상태 확인은 새 연결이 정상적인 백엔드 인스턴스로 라우팅되도록 보장합니다. 백엔드 인스턴스를 관리형 인스턴스 그룹에 추가하면 자동 확장을 사용하여 서비스 수요에 따라 인스턴스 집합을 늘리거나 줄일 수 있습니다. 내부 TCP/UDP 부하 분산은 내부 주소를 사용하므로 공개 IP 주소를 인터넷에 노출할 필요가 없습니다.

사양

클라이언트 IP 세션 어피니티

  • 클라이언트 IP 세션 어피니티는 2튜플 어피니티입니다(해시 함수에 소스 및 대상 IP 주소가 있음). 일반 내부 TCP 부하 분산기 시나리오에서 대상 IP 주소는 부하 분산기의 IP 주소이며, 대상 주소가 달라지지 않으므로 단일 클라이언트 VM 소스의 모든 패킷이 동일한 백엔드로 이동합니다. 내부 TCP 부하 분산기가 대상이 아닌 다음 홉인 경우 대상 IP 주소가 달라질 수 있습니다. 즉, 클라이언트 IP 세션 어피니티를 구성하더라도 단일 클라이언트의 트래픽이 여러 백엔드로 이동할 수 있습니다.

대상 범위

  • 경로의 대상이 내부(RFC 1918) IP 범위인 경우 대상은 서브넷 경로와 같거나 그 이상 구체적일 수 없습니다. 또한 부하 분산기의 전달 규칙과 연결된 내부 IP 주소는 경로의 대상과 다른 서브넷에 있어야 합니다.

동일한 VPC 네트워크 및 리전

내부 TCP/UDP 부하 분산기는 리전 리소스입니다.

  • 내부 TCP/UDP 부하 분산기와 이를 다음 홉으로 사용하는 커스텀 정적 경로는 동일한 VPC 네트워크에 있어야 합니다.

  • 내부 TCP/UDP 부하 분산기를 다음 홉으로 사용하는 커스텀 정적 경로는 부하 분산기와 동일한 리전의 리소스에만 사용할 수 있습니다. 이 리전 제한은 경로 자체가 전체 VPC 네트워크의 라우팅 테이블의 일부인 경우에도 적용됩니다.

부하 분산기를 경로보다 먼저 만들어야 함

다음 홉이 내부 TCP/UDP 부하 분산기인 커스텀 정적 경로는 부하 분산기가 이미 있는 경우에만 만들 수 있습니다. 존재하지 않는 부하 분산기를 참조하는 경로를 만들려고 시도하는 경우 부하 분산기 리소스를 찾을 수 없다는 오류 메시지가 표시됩니다.

다음 홉이 내부 TCP/UDP 부하 분산기인 경로를 만든 후에는 경로를 먼저 삭제해야 이 부하 분산기를 삭제할 수 있습니다. 특히 해당 부하 분산기를 다음 홉으로 사용하는 경로가 없는 경우 부하 분산기의 내부 전달 규칙을 삭제할 수 없습니다.

경로 제한

  • 경로의 다음 홉으로 내부 TCP/UDP 부하 분산기가 있는 경우 커스텀 정적 경로는 네트워크 태그를 사용할 수 없습니다.

  • GCP 경로와 마찬가지로 내부 TCP/UDP 부하 분산기 경로에는 다음 홉이 하나만 지정되어야 합니다. 예를 들어 --next-hop-ilbnext-hop-address, 두 가지 모두 사용하여 경로를 만들 수는 없습니다.

  • 우선순위, 대상, 내부 TCP/UDP 부하 분산기 다음 홉이 동일한 여러 개의 커스텀 정적 경로를 만들 수 없습니다. 따라서 동일한 다음 홉 부하 분산기가 있는 각 커스텀 정적 경로에는 고유한 대상 또는 고유한 우선순위가 하나 이상 있어야 합니다.

  • 등가 다중 경로(ECMP) 라우팅을 사용하여 여러 내부 TCP/UDP 부하 분산기로 트래픽을 분산할 수 없습니다. 즉, 대상과 우선순위가 동일하지만 다음 홉으로 사용되는 내부 TCP/UDP 부하 분산기가 다른 경로는 만들 수 없습니다.

자세한 내용은 경로 개요를 참조하세요.

백엔드 요구사항

  • 내부 TCP/UDP 부하 분산기의 백엔드 VM은 IP 전달을 허용하도록 구성되어야 합니다(--can-ip-forward = True). 자세한 내용은 다음 홉으로 사용되는 인스턴스를 참조하세요.
  • GKE 백엔드는 다음 홉으로 설정된 내부 TCP/UDP 부하 분산기에서 지원되지 않습니다.

모든 TCP 및 UDP 트래픽

내부 TCP/UDP 부하 분산기를 다음 홉으로 사용하면 모든 TCP 및 UDP 트래픽이 백엔드 VM으로 전송됩니다. 이는 백엔드 서비스의 프로토콜, 전달 규칙의 프로토콜, 전달 규칙의 포트 사양에 관계없이 적용됩니다.

사용 사례

내부 TCP/UDP 부하 분산기를 다음 홉으로 사용할 수 있는 여러 배포 및 토폴로지가 있습니다.

일부 가상 어플라이언스 사용 사례에는 북-남 트래픽, 일부에는 동-서 트래픽이 사용됩니다.

북-남은 온프레미스 네트워크 또는 비 GCP VPC 네트워크에 연결된 GCP VPC 네트워크를 의미합니다.

동-서는 서로 연결된 GCP VPC 네트워크를 의미합니다.

Cloud Interconnect(Dedicated 또는 Partner)를 사용하거나 Cloud VPN 터널을 통해 VPC 네트워크를 온프레미스 네트워크에 연결할 수 있습니다.

다음 예시를 참조하세요.

  • 방화벽 인스턴스는 NIC가 여러 개 있는 VM입니다. 각 인터페이스는 동일한 VPC 네트워크의 개별 서브넷, 그리고 별도의 VPC 네트워크에 있어야 합니다. 서브넷 경로를 재정의할 수 없으므로 백엔드 VM 또는 부하 분산기를 사용하여 동일한 VPC 네트워크의 서브넷 간 트래픽을 라우팅할 수 없습니다.

  • 각 방화벽 인스턴스의 기본 네트워크 인터페이스(nic0)는 내부 TCP/UDP 부하 분산기와 동일한 VPC 네트워크에 있어야 합니다. 내부 TCP/UDP 부하 분산기는 백엔드 VM의 기본 네트워크 인터페이스에만 트래픽을 분산합니다.

  • 각 사용 사례의 두 다이어그램은 한 쌍입니다.

    • 한 다이어그램은 북-남 트래픽 흐름과 load balancer 1을 보여줍니다.
    • 다른 다이어그램은 남-북 트래픽 흐름과 load balancer 2를 보여줍니다.

    내부 TCP/UDP 부하 분산은 각 백엔드 VM의 첫 번째 네트워크 인터페이스(nic0)에만 트래픽을 분산하므로 2개의 부하 분산기가 필요합니다.

  • 내부 TCP/UDP 부하 분산기는 소프트웨어 정의 패스 스루 부하 분산기입니다. NAT 및 프록시는 방화벽 가상 어플라이언스인 백엔드 VM에서만 수행됩니다.

NAT 게이트웨이 인스턴스

이 사용 사례는 인터넷으로 트래픽을 라우팅하는 여러 NAT 게이트웨이 인스턴스로 내부 VM 트래픽의 부하를 분산합니다.

NAT 사용 사례(클릭하여 확대)
NAT 사용 사례(클릭하여 확대)

부하 분산된 가상 어플라이언스를 통한 일부 북-남 트래픽

이 사용 사례에서 백엔드 VM은 여러 VPC 네트워크에서 NIC가 있는 방화벽 인스턴스로 작동합니다. 이러한 방화벽 인스턴스는 타사에서 가상 어플라이언스로 제공할 수 있습니다. 온프레미스 시스템은 Cloud VPN 또는 Cloud Interconnect를 사용하여 transit VPC 네트워크에 연결합니다.

예: 온프레미스 네트워크의 TCP 트래픽 및 설정된 응답

10.0.5.100의 온프레미스 노드가 10.0.3.100의 Compute Engine 제공 인스턴스로 패킷을 전송하면 패킷은 다음 그림과 같이 라우팅됩니다.

일부 북-남 트래픽(클릭하여 확대)
일부 북-남 트래픽(클릭하여 확대)

요청 경로

요청 패킷을 VM 인스턴스로 전송하면 패킷은 다음과 같이 라우팅됩니다.

  1. 온프레미스 라우터는 Cloud VPN 터널 또는 Interconnect 연결(VLAN)을 통해 이름이 transit인 VPC 네트워크로 패킷을 전송합니다. Cloud Router는 10.0.3.0/24에 대한 커스텀 경로 공지를 사용하여 경로를 제공합니다.

  2. 패킷이 transit VPC 네트워크에 도착하면 10.0.3.0/24 대상의 커스텀 정적 경로가 fr-ilb1 전달 규칙을 사용하는 부하 분산기로 패킷을 전송합니다.

  3. GCP 내부 TCP/UDP 부하 분산은 정상적인 백엔드 VM의 기본 인터페이스(nic0)로 패킷을 전달합니다. 이 예시에서 백엔드 VM은 방화벽 가상 어플라이언스입니다.

  4. 방화벽 인스턴스는 필터링 기능을 수행하는 것 외에도 운영체제 내에 구성된 라우팅을 사용하여 소스 네트워크 주소 변환(SNAT)을 수행하여 패킷을 수정합니다. SNAT는 패킷의 소스 주소를 production이라는 VPC 네트워크에 있는 방화벽 인스턴스의 보조 네트워크 인터페이스인 nic1의 IP 주소로 변경합니다. 이 예시에서 firewall-instance-a가 패킷을 처리하는 경우 방화벽 인스턴스는 패킷의 소스 주소를 10.0.3.2로 변경합니다.

  5. 방화벽 인스턴스는 내부 라우팅 테이블을 참조하고 보조 인터페이스에서 패킷을 보냅니다.

  6. production VPC 네트워크의 서브넷 경로는 10.0.3.100의 제공 인스턴스로 패킷을 전달합니다. 수신된 패킷에는 방화벽 인스턴스의 nic1에 속하는 소스 IP 주소(예: 10.0.3.2)와 대상 주소 10.0.3.100이 있습니다.

응답 경로

10.0.3.100의 제공 인스턴스가 설정된 응답 패킷을 온프레미스 시스템으로 보내면 패킷은 다음과 같은 방식으로 라우팅됩니다.

  1. 제공 인스턴스는 SNAT가 수행된 이후 수신 패킷을 받으므로 응답 패킷의 소스는 10.0.3.100이며 대상 IP 주소는 방화벽 인스턴스의 보조 네트워크 인터페이스 nic1에 속합니다. 이 예시에서 IP 주소는 10.0.3.2입니다. 응답 패킷은 해당 수신 패킷을 전달한 것과 동일한 방화벽 인스턴스로 전송됩니다. 프로덕션 VPC 네트워크의 서브넷 경로는 해당 방화벽 인스턴스로 패킷을 전달합니다.

  2. 방화벽 인스턴스의 운영체제 내에 구성된 라우팅은 대상 네트워크 주소 변환(DNAT)을 수행하여 패킷을 수정하여 대상을 10.0.5.100으로 변경합니다. 방화벽 인스턴스는 내부 라우팅 테이블을 참조한 다음 transit VPC 네트워크에 있는 인스턴스의 기본 네트워크 인터페이스(nic0)로 패킷을 전달합니다.

  3. Cloud Router에 의해 학습된 transit VPC 네트워크의 커스텀 동적 경로는 Cloud VPN 터널 또는 Cloud Interconnect VLAN을 통해 온프레미스 네트워크로 패킷을 전송합니다.

  4. 온프레미스 네트워크 내의 라우팅은 10.0.5.100의 노드로 패킷을 전달합니다.

예: GCP의 TCP 트래픽 및 설정된 응답

10.0.3.100의 제공 GCP VM이 10.0.5.100의 온프레미스 시스템으로 패킷을 전송하면 패킷은 다음과 같은 방식으로 라우팅됩니다.

일부 남-북 트래픽(클릭하여 확대)
일부 남-북 트래픽(클릭하여 확대)

요청 경로

  1. 프로덕션 VPC 네트워크에서 10.0.5.0/24 대상의 커스텀 정적 경로는 fr-ilb2 전달 규칙을 사용하는 부하 분산기로 패킷을 전송합니다.

  2. GCP 내부 TCP/UDP 부하 분산은 방화벽 인스턴스인 정상적인 백엔드 VM의 기본 인터페이스 nic0으로 패킷을 전달합니다.

  3. 방화벽 인스턴스의 운영체제 내에 구성된 라우팅은 소스 네트워크 주소 변환(SNAT)을 수행하여 패킷을 수정하여 패킷의 소스 주소를 transit VPC 네트워크에 위치한 방화벽 인스턴스의 보조 네트워크 인터페이스인 nic1의 IP 주소로 변경합니다. 이 예시에서 패킷이 firewall-instance-e에 의해 처리되면 소스 IP 주소는 10.0.1.6으로 변경됩니다.

  4. 방화벽 인스턴스는 내부 라우팅 테이블을 참조하고 패킷을 보조 인터페이스로 보냅니다.

  5. Cloud Router에 의해 학습된 transit VPC 네트워크의 커스텀 동적 경로는 Cloud VPN 터널 또는 Cloud Interconnect VLAN을 통해 온프레미스 네트워크로 패킷을 전송합니다.

  6. 온프레미스 네트워크 내의 라우팅은 10.0.5.100으로 패킷을 전달합니다.

응답 경로

10.0.5.100의 온프레미스 시스템이 설정된 응답 패킷을 제공 GCP VM으로 보내면 패킷은 다음과 같은 방식으로 라우팅됩니다.

  1. 온프레미스 시스템은 SNAT가 수행된 이후 수신 패킷을 받으므로 응답 패킷의 소스는 10.0.5.100이며 대상 IP 주소는 방화벽 인스턴스의 보조 네트워크 인터페이스 nic1에 속합니다. 이 예시에서 IP 주소는 10.0.1.6입니다. 온프레미스 라우터는 Cloud VPN 터널 또는 Interconnect 연결(VLAN)을 통해 응답 패킷을 해당 수신 패킷을 전달한 것과 동일한 방화벽 인스턴스로 보냅니다. 경로는 10.0.1.0/24를 포함한 transit VPC 네트워크의 서브넷 경로를 공지하는 Cloud Router에 의해 제공됩니다.

  2. 패킷이 transit VPC 네트워크에 도착하면 10.0.1.0/24 대상의 서브넷 경로는 방화벽 인스턴스의 보조 네트워크 인터페이스 nic1에 속한 IP 주소로 패킷을 전송합니다. 이 예시에서 IP 주소는 10.0.1.6입니다. 응답 패킷은 해당 수신 패킷을 전달한 것과 동일한 방화벽 인스턴스로 전송됩니다.

  3. 방화벽 인스턴스의 운영체제 내에 구성된 라우팅은 대상 네트워크 주소 변환(DNAT)을 수행하여 패킷을 수정하여 패킷의 대상을 10.0.3.100으로 변경합니다. 방화벽 인스턴스는 내부 라우팅 테이블을 참조하고 프로덕션 VPC 네트워크에 있는 인스턴스의 기본 네트워크 인터페이스 nic0으로 패킷을 전달합니다.

  4. 프로덕션 VPC 네트워크의 서브넷 경로는 10.0.3.100의 제공 인스턴스로 패킷을 전달합니다.

부하 분산 가상 어플라이언스를 통한 VPC 네트워크-VPC 네트워크 연결

이전 시나리오와 마찬가지로, RFC 1918 대상 프리픽스가 있는 경로가 내부 TCP/UDP 부하 분산기를 다음 홉으로 사용하는 소스 VPC 네트워크 transit의 VM 인스턴스에 추가됩니다.

동-서 트래픽(클릭하여 확대)
동-서 트래픽(클릭하여 확대)

내부 TCP/UDP 부하 분산은 백엔드 VM 인스턴스의 기본 인터페이스(nic0)만 지원하므로 VPC 네트워크 production에서 발생하는 트래픽의 경우 다른 내부 TCP/UDP 부하 분산기 뒤의 다른 부하 분산 VM 인스턴스 집합을 사용해야 합니다.

서-동 트래픽(클릭하여 확대)
서-동 트래픽(클릭하여 확대)

허브 및 스포크 - VPC 피어링을 통해 다음 홉 경로 교환

VPC 네트워크 피어링을 사용하면 GCP는 태그가 없고 다음 홉으로 정의된 인터넷 게이트웨이가 없는 경우 정적 경로와 동적 경로를 모두 내보내고 가져올 수 있습니다.

스포크 VPC 네트워크와 피어링된 허브 VPC 네트워크에 있는 다음 홉 방화벽 가상 어플라이언스를 사용하여 허브 및 스포크 토폴로지를 구성할 수 있습니다.

그런 다음 내부 TCP/UDP 부하 분산기를 허브 VPC 네트워크의 다음 홉 경로로 구성하고 피어링된 스포크 VPC 네트워크로 내보낼 수 있습니다. 내부 TCP/UDP 부하 분산기 다음 홉 리소스와 내부 TCP/UDP 부하 분산기 전달 규칙 리소스는 허브 VPC 네트워크에서 소유합니다.

허브 및 스포크(클릭하여 확대)
허브 및 스포크(클릭하여 확대)

라우팅 우선순위에 대한 자세한 내용은 라우팅 순서를 참조하세요.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...