아웃바운드 규칙 Azure Load Balancer

아웃바운드 규칙은 공개 표준 Load Balancer에 대해 소스 네트워크 주소 변환(SNAT)을 명시적으로 정의할 수 있게 해줍니다. 이 구성을 사용하면 부하 분산 장치의 공용 IP 주소를 사용하여 백 엔드 인스턴스에 대한 아웃바운드 인터넷 연결을 제공할 수 있습니다.

이 구성을 사용하면 다음을 수행할 수 있습니다.

  • IP 위장
  • 허용 목록을 간소화합니다.
  • 배포할 공용 IP 리소스의 수 줄이기

아웃바운드 규칙을 사용하여 아웃바운드 인터넷 연결을 완전하게 제어할 수 있습니다. 아웃바운드 규칙을 사용하면 이 기능을 스케일링하고 특정 요구에 맞게 조정할 수 있습니다.

아웃바운드 규칙은 백엔드 가상 머신(VM)에 인스턴스 수준의 공인 IP 주소가 없을 때만 적용됩니다.

아웃바운드 부하 분산 장치 규칙이 있는 가상 머신의 SNAT 포트 구성 스크린샷

아웃바운드 규칙을 사용하여 아웃바운드 SNAT 동작을 명시적으로 정의할 수 있습니다.

아웃바운드 규칙을 통해 제어할 수 있는 항목은 다음과 같습니다.

  • 어떤 가상 머신이 어떤 공용 IP 주소로 변환되는지?
    • 두 가지 규칙은 백 엔드 풀 1이 파란색 IP 주소를 사용하고 백 엔드 풀 2가 노란색 IP 접두사를 사용한다는 것입니다.
  • 아웃바운드 SNAT 포트를 할당하는 방법
    • 백 엔드 풀 2가 아웃바운드 연결을 만드는 유일한 풀인 경우 백 엔드 풀 2에 모든 SNAT 포트를 제공하고 백 엔드 풀 1에는 아무 포트도 제공하지 않도록 합니다.
  • 아웃바운드 변환을 제공하는 프로토콜
    • 백 엔드 풀 2에 아웃바운드를 위한 UDP 포트가 필요하고 백 엔드 풀 1에 TCP가 필요한 경우 TCP 포트를 1에, UDP 포트를 2에 지정합니다.
  • 아웃바운드 연결 유휴 시간 제한에 사용할 기간(4-120분)
    • 연결 유지 신호가 있는 장기 실행 연결의 경우, 장기 실행 연결을 위해 유휴 포트를 최대 120분 동안 예약합니다. 새 연결을 위해 오래된 연결이 중단되고 4분 후에 포트를 해제한다고 가정합니다.
  • 유휴 시간 제한 시 TCP 다시 설정을 보낼지 여부
    • 유휴 연결의 시간을 초과하는 경우 흐름이 중단된 것을 알 수 있도록 TCP RST를 클라이언트 및 서버로 보내나요?

중요

백 엔드 풀이 IP 주소로 구성된 경우, 기본 아웃바운드가 사용하도록 설정된 기본 로드 밸런서처럼 작동합니다. 기본적으로 안전한 구성 및 아웃바운드 요구 사항이 까다로운 애플리케이션의 경우 NIC별로 백 엔드 풀을 구성합니다.

아웃바운드 규칙 정의

아웃바운드 규칙은 부하 분산 및 인바운드 NAT 규칙 프런트 엔드 + 매개 변수 + 백 엔드 풀과 동일한 친숙한 구문을 따릅니다.

아웃바운드 규칙은 백 엔드 풀에서 식별된 모든 가상 머신에 대한 아웃바운드 NAT를 프런트 엔드로 변환하도록 구성합니다.

매개 변수는 아웃바운드 NAT 알고리즘에 대해 세분화된 제어를 제공합니다.

여러 IP 주소를 사용하여 아웃바운드 NAT 확장

프런트 엔드에서 제공하는 추가 IP 주소 각각은 부하 분산 장치가 SNAT 포트로 사용하기 위해 64,000개의 임시 포트를 추가로 제공합니다. 부하 분산 장치는 사용 가능한 포트에 따라 필요에 따라 IP를 사용합니다. 현재 사용 중인 IP를 사용하여 연결을 더 이상 만들 수 없는 경우 부하 분산 장치는 다음 IP를 사용합니다.

여러 IP 주소를 사용하여 대규모 시나리오에 대한 계획을 세웁니다. 아웃바운드 규칙을 사용하여 Azure Load Balancer 지원 및 문제 해결에 설명된 것처럼 SNAT 고갈을 완화합니다.

또한 아웃바운드 규칙에 공용 IP 접두사를 직접 사용할 수 있습니다.

공용 IP 접두사는 배포 스케일링을 늘립니다. 접두사는 Azure 리소스에서 시작되는 흐름의 허용 목록에 추가할 수 있습니다. 공용 IP 주소 접두사를 참조하도록 부하 분산 장치 내에 프런트 엔드 IP 구성을 구성할 수 있습니다.

부하 분산 장치는 공용 IP 접두사를 제어합니다. 접두사에서 사용 중인 현재 IP를 사용하여 더 이상 아웃바운드 연결을 만들 수 없는 경우 아웃바운드 규칙에서 자동으로 공용 IP 접두사 내에 포함된 다른 공용 IP 주소를 사용합니다.

공용 IP 접두사 내의 각 IP 주소는 IP 주소당 부하 분산 장치가 SNAT 포트로 사용할 수 있는 64,000개의 일시적 포트를 추가로 제공합니다.

아웃바운드 흐름 유휴 시간 제한 및 TCP 다시 설정

아웃바운드 규칙은 아웃바운드 흐름 유휴 시간 제한을 제어하고 이를 애플리케이션의 요구와 일치시키는 구성 매개 변수를 제공합니다. 아웃바운드 유휴 시간 제한은 기본적으로 4분입니다. 자세한 내용은 유휴 시간 제한 구성을 참조하세요.

부하 분산 장치의 기본 동작은 아웃바운드 유휴 시간 제한에 도달하면 트래픽 흐름을 조용히 삭제하는 것입니다. enableTCPReset 매개 변수를 사용하면 예측 가능한 애플리케이션 동작 및 컨트롤을 사용할 수 있습니다. 이 매개 변수는 아웃바운드 유휴 제한 시간 만료 시 양방향 TCP 리셋(TCP RST)을 보낼지 여부를 지정합니다.

지역 가용성을 포함한 자세한 내용은 유휴 시간 제한 시 TCP 재설정을 검토하세요.

아웃바운드 연결을 명시적으로 보호 및 제어

부하 분산 규칙은 자동 아웃바운드 NAT 프로그래밍을 제공합니다. 일부 시나리오에서는 부하 분산 규칙에 의해 자동으로 설정되는 아웃바운드 NAT 프로그래밍을 비활성화하거나 그렇게 해야 할 필요가 있습니다. 규칙을 통해 사용하지 않도록 설정하면 동작을 제어하거나 구체화할 수 있습니다.

이 매개 변수는 다음 두 가지 방법으로 사용할 수 있습니다.

  1. 아웃바운드 SNAT에 대한 인바운드 IP 주소 방지. 부하 분산 규칙에서 아웃바운드 SNAT를 사용하지 않도록 설정합니다.

  2. 인바운드 및 아웃바운드에 동시에 사용되는 IP 주소의 아웃바운드 SNAT 매개 변수를 튜닝합니다. 아웃바운드 규칙을 제어하려면 자동 아웃바운드 NAT를 사용하지 않도록 설정해야 합니다. 인바운드에도 사용되는 주소의 SNAT 포트 할당을 변경하려면 disableOutboundSnat 매개 변수를 true로 설정해야 합니다.

인바운드에 사용되는 IP 주소를 다시 정의하려고 하면 아웃바운드 규칙을 구성하는 작업이 실패합니다. 먼저 부하 분산 규칙의 아웃바운드 NAT를 사용하지 않도록 설정합니다.

중요

이 매개 변수를 true로 설정하고 아웃바운드 연결을 정의하는 아웃바운드 규칙이 없는 경우 가상 머신에 아웃바운드 연결이 없습니다. VM 또는 애플리케이션의 일부 작업은 아웃바운드 연결을 사용할 수 있도록 하는 데 따라 달라질 수 있습니다. 시나리오의 종속성을 이해하고 이러한 변경의 영향을 고려해야 합니다.

VM이 아웃바운드 흐름을 만들도록 하는 것이 바람직하지 않은 경우가 있습니다. 아웃바운드 흐름을 수신하는 대상 또는 인바운드 흐름을 시작하는 대상을 관리하기 위한 요구 사항이 있을 수도 있습니다. 네트워크 보안 그룹을 사용하여 VM에서 도달할 수 있는 대상을 관리합니다. NSG를 사용하여 인바운드 흐름을 시작하는 퍼블릭 대상을 관리합니다.

부하 분산 VM에 NSG를 적용할 때 서비스 태그기본 보안 규칙에 주의해야 합니다.

VM이 Azure Load Balancer 상태 프로브 요청을 받을 수 있는지 확인합니다.

NSG가 AZURE_LOADBALANCER 기본 태그의 상태 프로브 요청을 차단할 경우 VM 상태 프로브에 실패하고 VM이 사용 불가로 표시됩니다. 부하 분산 장치는 해당 VM에 새 흐름을 보내는 작업을 중지합니다.

아웃바운드 규칙 시나리오

시나리오 1: 특정 공용 IP 또는 접두사 세트에 대한 아웃바운드 연결 구성

아웃바운드 연결에 사용되는 공인 IP 주소를 설정하세요

이 시나리오는 공개 표준 Load Balancer의 백엔드 VM에 적용됩니다. 이를 사용하여 아웃바운드 연결이 특정 공용 IP 주소 집합 또는 공용 IP 접두사에서 시작되도록 하세요. 그 후 해당 주소나 접두사를 허용 목록이나 차단 목록에 추가할 수 있습니다.

이 공용 IP 또는 접두사는 부하 분산 규칙에서 사용하는 것과 동일할 수 있습니다.

부하 분산 규칙에서 사용하는 것과 다른 공용 IP 또는 접두사를 사용하려면 다음을 수행합니다.

  1. 공용 IP 접두사 또는 공용 IP 주소를 만듭니다.
  2. 퍼블릭 표준 부하 분산 장치 만들기
  3. 사용할 공용 IP 접두사 또는 공용 IP 주소를 참조하는 프런트 엔드를 만듭니다.
  4. 백 엔드 풀을 다시 사용하거나 새로 만들고, 퍼블릭 부하 분산 장치의 백 엔드 풀에 VM을 배치합니다.
  5. 공용 로드 밸런서에서 아웃바운드 규칙을 구성하여 프런트엔드를 통해 VM에 대한 아웃바운드 NAT를 활성화합니다. 아웃바운드에는 부하 분산 규칙을 사용하지 않는 것이 좋습니다. 부하 분산 규칙에서 아웃바운드 SNAT를 사용하지 않도록 설정합니다.

시나리오 2: SNAT 포트 할당 수정

백엔드 인스턴스별로 SNAT 포트 구성

이 시나리오는 아웃바운드 규칙이 있는 공개 표준 Load Balancer에 적용됩니다. 이를 사용하여 백엔드 풀 크기에 따른 자동 SNAT 포트 할당을 조정할 수 있으며, SNAT 고갈이 발생할 때는 할당량을 늘리는 것도 가능합니다.

할당 규칙 Behavior
프론트엔드별로 이용 가능한 포트 각 공용 IP 주소는 최대 64,000개의 사용 후 삭제 포트를 제공합니다.
VM별로 이용 가능한 포트 백엔드 풀 내 가상 머신 간 총 사용 가능한 포트를 나누어 주세요. 예를 들어, 한 VM은 하나의 프론트엔드 IP 주소로부터 최대 64,000개의 포트를 받을 수 있고, 두 개의 VM은 각각 최대 32,000개의 포트를 받을 수 있습니다.
배분 증가 포트를 8의 배수로 지정하세요. Azure는 8로 나누어지지 않는 값을 거부합니다. 부하 분산 규칙과 인바운드 NAT 규칙은 각각 8개의 포트 범위를 소비하지만, 같은 범위를 공유하는 규칙은 추가 포트를 소비하지 않습니다.
용량 검증 VM당 할당된 포트에 VM 수를 곱한 값이 모든 프론트엔드 IP 주소에서 사용 가능한 포트를 초과할 수 없습니다. Azure는 이 용량을 초과하는 할당을 거부합니다.
자동 할당 복원 포트 수를 지정하세요 0 .

예를 들어, 7개의 VM에 대해 10,000개의 포트를 할당하면 70,000개의 포트가 필요합니다. 프론트엔드 IP 하나가 64,000개의 포트만 제공하므로 Azure는 이 구성을 거부합니다. 프론트엔드에 공인 IP 주소를 추가하거나 VM당 할당량을 줄이세요.

자세한 내용은 SNAT 포트 할당표를 참조하세요.

시나리오 3: 아웃바운드만 사용

인바운드 규칙 없이 아웃바운드 연결성을 제공합니다

이 시나리오는 백엔드 VM이 인바운드 로드 밸런싱 규칙 없이 아웃바운드 연결이 필요한 공개 표준 Load Balancer에 적용됩니다. 추가 규칙을 설정하지 않고 아웃바운드 규칙을 자체적으로 설정하세요.

참고 사항

Azure NAT 게이트웨이 부하 분산 장치 없이 가상 머신에 대한 아웃바운드 연결을 제공할 수 있습니다. 자세한 내용은 Azure NAT 게이트웨이?을 참조하세요.

시나리오 4: VM 전용 아웃바운드 NAT(인바운드 없음)

참고 사항

Azure NAT 게이트웨이 부하 분산 장치 없이 가상 머신에 대한 아웃바운드 연결을 제공할 수 있습니다. 자세한 내용은 Azure NAT 게이트웨이?을 참조하세요.

백엔드 VM에 대해 이그레스 전용 연결성을 설정하세요

이 시나리오는 인바운드 연결이 없는 가상 네트워크에서 이그레스가 필요한 VM에 적용됩니다. Azure Load Balancer outbound rules와 Azure NAT 게이트웨이가 사용 가능한 옵션입니다.

  1. 공용 IP 또는 접두사를 만듭니다.
  2. 퍼블릭 표준 부하 분산 장치를 만듭니다.
  3. 아웃바운드에 전용으로 사용되는 공용 IP 또는 접두사와 연결된 프런트 엔드를 만듭니다.
  4. VM에 대한 백 엔드 풀을 만듭니다.
  5. VM을 백 엔드 풀에 저장합니다.
  6. 아웃바운드 NAT를 사용하도록 아웃바운드 규칙을 구성합니다.

접두사 또는 공용 IP를 사용하여 SNAT 포트 크기를 조정합니다. 허용 또는 차단 목록에 아웃바운드 연결의 원본을 추가합니다.

시나리오 5: 내부 표준 부하 분산 장치에 대한 아웃바운드 NAT

참고 사항

Azure NAT 게이트웨이 내부 표준 부하 분산 장치를 활용하는 가상 머신에 대한 아웃바운드 연결을 제공할 수 있습니다. 자세한 내용은 Azure NAT 게이트웨이?을 참조하세요.

내부 표준 부하 분산기에 대한 아웃바운드 연결 제공

이 시나리오는 내부 표준 로드 밸런서를 사용하는 백엔드 VM에 적용됩니다. 이 VM들은 인스턴스 수준의 공인 IP 주소, Azure NAT 게이트웨이 또는 백엔드 풀 멤버에 연결한 아웃바운드 전용 공용 로드 밸런서 구성을 통해 아웃바운드 연결을 명시적으로 제공하기 전까지는 아웃바운드 연결이 없습니다.

자세한 내용은 아웃바운드 전용 부하 분산 장치 구성을 참조하세요.

시나리오 6: 퍼블릭 표준 부하 부산 장치를 통해 아웃바운드 NAT에 TCP 및 UDP 프로토콜을 모두 사용

아웃바운드 NAT를 위해 TCP와 UDP를 활성화하세요

이 시나리오는 공용 표준 Load Balancer에 적용됩니다. 자동 아웃바운드 NAT는 부하 분산 규칙의 전송 프로토콜과 일치합니다. TCP와 UDP 모두의 아웃바운드 연결을 제공하려면 모든 프로토콜을 사용하는 아웃바운드 규칙을 설정하세요.

  1. 부하 분산 규칙에서 아웃바운드 SNAT을 사용하지 않도록 설정합니다.
  2. 동일한 부하 분산 장치에서 아웃바운드 규칙을 구성합니다.
  3. VM에서 이미 사용하고 있는 백 엔드 풀을 다시 사용합니다.
  4. 아웃바운드 규칙의 일부로 "프로토콜"을 "모두"로 지정합니다.

인바운드 NAT 규칙만 사용하는 경우 아웃바운드 NAT는 제공되지 않습니다.

  1. 백 엔드 풀에 VM을 배치합니다.
  2. 공용 IP 주소 또는 공용 IP 접두사를 사용하여 하나 이상의 프런트 엔드 IP 구성 정의
  3. 동일한 부하 분산 장치에서 아웃바운드 규칙을 구성합니다.
  4. 아웃바운드 규칙의 일부로 "프로토콜"을 "모두"로 지정합니다.

제한 사항

  • 프런트 엔드 IP 주소당 사용 가능한 사용 후 삭제 포트의 최대 수는 64,000개입니다.
  • 구성 가능한 아웃바운드 유휴 시간 제한 범위는 4-120분(240-7200초)입니다.
  • 부하 분산 장치는 아웃바운드 NAT에 대한 ICMP를 지원하지 않으며 지원되는 프로토콜은 TCP 및 UDP뿐입니다.
  • 아웃바운드 규칙은 NIC의 기본 IPv4 구성에만 적용할 수 있습니다. VM 또는 NVA의 보조 IPv4 구성에 대한 아웃바운드 규칙을 만들 수 없습니다. 여러 NIC가 지원됩니다.
  • 보조 IP 구성에 대한 아웃바운드 규칙은 IPv6에 대해서만 지원됩니다.
  • 가용성 집합 내의 모든 가상 머신을 아웃바운드 연결에 대한 백 엔드 풀에 추가해야 합니다.
  • 가상 머신 확장 집합 내의 모든 가상 머신을 아웃바운드 연결에 대한 백 엔드 풀에 추가해야 합니다.

다음 단계