추가 네트워크 인터페이스의 라우팅 구성

이 튜토리얼에서는 각각 서로 다른 Virtual Private Cloud(VPC) 네트워크에 연결된 여러 네트워크 인터페이스가 있는 가상 머신(VM) 인스턴스를 만드는 방법을 설명합니다. 또한 이 튜토리얼에서는 nic1 인터페이스를 성공적으로 핑할 수 있도록 Linux VM에서 라우팅을 구성하는 방법의 예시를 제공합니다.

이 튜토리얼의 라우팅 구성은 vNIC와 Dynamic Network Interface(NIC)라는 두 가지 네트워크 인터페이스 유형에 모두 적용됩니다. 이 튜토리얼의 예에서는 여러 vNIC가 있는 인스턴스를 사용하지만 Dynamic NIC가 있는 인스턴스에 대해 동일한 예시를 구성할 수 있습니다.

네트워크 인터페이스가 여러 개인 인스턴스를 다중 NIC 인스턴스라고 합니다.

비용

이 문서에서는 비용이 청구될 수 있는 Google Cloud구성요소를 사용합니다.

프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용하세요.

Google Cloud 신규 사용자는 무료 체험판을 사용할 수 있습니다.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Compute Engine API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

구성 예시

다음 다이어그램은 이 튜토리얼에서 만드는 VPC 네트워크, 서브넷, 인스턴스를 리소스 이름 및 서브넷 IP 주소 범위에 사용할 수 있는 예시 값과 함께 표시합니다.

그림 1. 이 튜토리얼에서는 각각 서브넷 2개가 포함된 VPC 네트워크 2개를 만듭니다. 모든 서브넷은 동일한 리전에 있습니다. 또한 최초 두 서브넷에 연결되는 한 개의 다중 NIC 인스턴스와 나머지 두 서브넷에 각각 한 개의 인스턴스로 총 세 개의 인스턴스를 만듭니다(확대하려면 클릭).

2개의 VPC 네트워크 만들기

다중 NIC 인스턴스를 만들려면 먼저 연결하려는 VPC 네트워크가 있어야 합니다. 두 개의 VPC 네트워크를 만듭니다. 이 튜토리얼에서는 각 VPC 네트워크에 두 개의 서브넷이 있습니다.

구성 예시에 표시된 구성을 만들려면 다음 값을 사용하여 네트워크와 서브넷을 만듭니다.

  • 다음을 포함하는 network-1이라는 네트워크:
    • 기본 IPv4 주소 범위가 10.10.1.0/24subnet-1이라는 서브넷
    • 기본 IPv4 주소 범위가 10.10.3.0/24subnet-3이라는 서브넷
  • 다음을 포함하는 network-2이라는 네트워크:

    • 기본 IPv4 주소 범위가 10.10.2.0/24subnet-2이라는 서브넷
    • 기본 IPv4 주소 범위가 10.10.4.0/24subnet-4이라는 서브넷

콘솔

  1. Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.

    VPC 네트워크로 이동

  2. VPC 네트워크 만들기를 클릭합니다.

  3. 이름 필드에 VPC 네트워크의 이름을 입력합니다.

  4. 서브넷 생성 모드에서 커스텀을 선택합니다.

  5. 새 서브넷 섹션에서 다음을 지정합니다.

    1. 서브넷 이름을 입력합니다.
    2. 리전을 선택합니다. 생성한 두 VPC 네트워크 모두 서브넷 중 하나 이상에 대해 동일한 리전을 사용해야 합니다. 다음 섹션에서 다중 NIC 인스턴스를 만들 때 이 동일한 리전을 사용합니다. 예시 구성은 모든 서브넷에 동일한 리전을 사용합니다.
    3. IP 주소 범위를 입력합니다. 이 범위는 서브넷의 기본 IPv4 범위입니다.

      RFC 1918 주소가 아닌 범위를 선택하는 경우 범위가 기존 구성과 충돌하지 않는지 확인합니다. 자세한 내용은 IPv4 서브넷 범위를 참조하세요.

    4. 완료를 클릭합니다.

  6. 서브넷 추가를 클릭하여 두 번째 서브넷을 만듭니다. 이 두 번째 서브넷을 사용하여 인스턴스의 네트워크 인터페이스의 기본 서브넷 범위 외부에서 ping을 테스트합니다.

  7. 방화벽 규칙 섹션에서 allow-custom 규칙을 선택한 후 수정을 클릭합니다. 테스트 인스턴스에서 multi-nic-vm으로의 연결을 테스트할 수 있도록 다음과 같이 규칙을 구성합니다.

    1. IPv4 범위에서 서브넷의 IPv4 주소 범위에 대한 체크박스를 선택한 상태로 둡니다.
    2. SSH를 사용하여 테스트 인스턴스에 연결할 수 있도록 기타 IPv4 범위35.235.240.0/20을 입력합니다. 이 범위를 포함하면 IAP(Identity-Aware Proxy) TCP 전달을 사용하는 SSH 연결이 허용됩니다. 자세한 내용은 VM에 대한 인그레스 SSH 연결 허용을 참조하세요.
    3. 프로토콜 및 포트에서 지정된 프로토콜 및 포트를 선택합니다.
      1. TCP를 선택한 후 22, 3389를 입력하여 RDP 및 SSH를 허용합니다.
      2. 기타를 선택한 후 icmp를 입력하여 ICMP를 허용합니다.
  8. 만들기를 클릭합니다.

  9. 이 단계를 반복하여 두 번째 VPC 네트워크를 만듭니다. 서브넷 IP 주소 범위가 예시 구성에 사용된 IP 주소 범위와 같이 첫 번째 네트워크의 서브넷과 겹치지 않는지 확인합니다.

gcloud

  1. networks create 명령어를 사용하여 VPC 네트워크를 만듭니다.

    gcloud compute networks create NETWORK --subnet-mode=custom
    

    다음을 바꿉니다.

    • NETWORK: VPC 네트워크의 이름
  2. networks subnets create 명령어를 사용하여 VPC 네트워크의 서브넷을 만듭니다.

    gcloud compute networks subnets create NAME \
      --network=NETWORK \
      --range=RANGE \
      --region=REGION
    

    다음을 바꿉니다.

    • NAME: 서브넷의 이름
    • NETWORK: VPC 네트워크의 이름
    • RANGE: IP 주소 범위. 이 범위는 서브넷의 기본 IPv4 범위입니다.

      RFC 1918 주소가 아닌 범위를 입력하는 경우 범위가 기존 구성과 충돌하지 않는지 확인합니다. 자세한 내용은 IPv4 서브넷 범위를 참조하세요.

    • REGION: 리전. 생성한 두 VPC 네트워크 모두 서브넷 중 하나 이상에 대해 동일한 리전을 사용해야 합니다. 다음 섹션에서 다중 NIC 인스턴스를 만들 때 이 동일한 리전을 사용합니다. 예시 구성은 모든 서브넷에 동일한 리전을 사용합니다.

  3. 이전 단계를 반복하여 다른 서브넷을 만듭니다. 이 두 번째 서브넷을 사용하여 인스턴스 네트워크 인터페이스의 기본 서브넷 범위 외부에서 ping을 테스트합니다.

  4. SSH, RDP, ICMP를 허용하는 방화벽 규칙을 만듭니다.

    gcloud compute firewall-rules create allow-ssh-rdp-icmp \
     --network NETWORK \
     --action=ALLOW \
     --direction=INGRESS \
     --rules=tcp:22,tcp:3389,icmp \
     --source-ranges=SOURCE_RANGE
    

    다음을 바꿉니다.

    • NETWORK: 만들려는 네트워크에 해당하는 값을 입력합니다.
      • 첫 번째 네트워크의 경우 network-1을 입력합니다.
      • 두 번째 네트워크에 이 섹션의 단계를 반복할 때는 network-2를 입력합니다.
    • SOURCE_RANGE: 만들려는 네트워크에 해당하는 값을 입력합니다.
      • 첫 번째 네트워크의 경우 10.10.3.0/24, 35.235.240.0/20을 입력합니다. 10.10.3.0/24를 포함하면 test-vm-1에서 multi-nic-vmnic0 인터페이스로의 연결을 테스트할 수 있습니다. 35.235.240.0/20을 포함하면 IAP(Identity-Aware Proxy) TCP 전달을 사용하는 SSH 연결이 허용됩니다. 자세한 내용은 VM에 대한 인그레스 SSH 연결 허용을 참조하세요.
      • 두 번째 네트워크에 이 섹션의 단계를 반복할 때는 10.10.4.0/24, 35.235.240.0/20를 입력합니다. 10.10.4.0/24를 포함하면 test-vm-2에서 multi-nic-vmnic0 인터페이스로의 연결을 테스트할 수 있습니다. 35.235.240.0/20을 포함하면 IAP(Identity-Aware Proxy) TCP 전달을 사용하는 SSH 연결이 허용됩니다. 자세한 내용은 VM에 대한 인그레스 SSH 연결 허용을 참조하세요.
  5. 이 단계를 반복하여 두 번째 VPC 네트워크를 만듭니다. 서브넷 IP 주소 범위가 예시 구성에 사용된 IP 주소 범위와 같이 첫 번째 네트워크의 서브넷과 겹치지 않는지 확인합니다.

다중 NIC 인스턴스 만들기

이전 섹션에서 만든 각 VPC 네트워크에 대해 하나의 인터페이스가 있는 인스턴스를 만듭니다.

멀티 NIC 인스턴스를 만들려면 다음 안내를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 인스턴스 만들기 페이지로 이동합니다.

    인스턴스 만들기로 이동

  2. 이름 필드에 인스턴스의 이름을 입력합니다. 이는 예시 구성multi-nic-vm에 해당합니다.

  3. 리전 필드에서 각 VPC 네트워크에 하나의 서브넷을 만든 동일한 리전을 선택합니다. 인스턴스는 인터페이스가 연결되는 서브넷과 같은 리전에 있어야 합니다. 예시 구성에서는 모든 서브넷에 동일한 리전을 사용합니다.

  4. 영역 필드에서 영역을 선택합니다.

  5. 고급 옵션 섹션에서 네트워킹을 펼친 후 다음을 수행합니다.

    1. 네트워크 인터페이스 섹션을 검토합니다. Google Cloud 는 첫 번째 네트워크 인터페이스에 네트워크와 서브네트워크를 자동으로 채웁니다. 이는 예시 구성network-1subnet-1에 해당합니다.
    2. 기본 내부 IPv4 주소에서 다음 중 하나를 선택합니다.
      • 임시: 새 임시 IPv4 주소 할당
      • 목록의 예약된 고정 내부 IPv4 주소
      • 고정 내부 IPv4 주소 예약: 새 고정 내부 IPv4 주소 예약 및 할당 예시 구성을 사용하는 경우 10.10.1.3을 예약합니다.
    3. 외부 IPv4 주소의 경우 None을 하나 선택합니다.

    4. 다른 인터페이스를 추가하려면 네트워크 인터페이스 추가를 클릭합니다.

    5. 네트워크서브네트워크에 생성한 두 번째 네트워크 및 서브네트워크를 선택합니다. 예시 구성network-2subnet-2에 해당합니다.

    6. IP 스택 유형IPv4(단일 스택)를 선택합니다.

    7. 기본 내부 IPv4 주소에서 다음 중 하나를 선택합니다.

      • 임시: 새 임시 IPv4 주소 할당
      • 목록의 예약된 고정 내부 IPv4 주소
      • 고정 내부 IPv4 주소 예약: 새 고정 내부 IPv4 주소 예약 및 할당 예시 구성을 사용하는 경우 10.10.2.3을 예약합니다.
    8. 외부 IPv4 주소의 경우 None을 하나 선택합니다.

    9. 네트워크 인터페이스 추가를 완료하려면 완료를 클릭합니다.

  6. 만들기를 클릭합니다.

gcloud

새 인스턴스에 네트워크 인터페이스를 만들려면 instances create 명령어를 사용합니다.

각 인터페이스에 --network-interface 플래그를 포함한 후 network, subnet, private-network-ip 등 적절한 네트워킹 키를 추가합니다. 외부 IP 주소의 경우 다음 명령어에서 no-address를 지정합니다.

gcloud compute instances create INSTANCE_NAME \
    --zone ZONE \
    --network-interface \
        network=NIC0_NETWORK,subnet=NIC0_SUBNET,private-network-ip=NIC0_INTERNAL_IPV4_ADDRESS,no-address \
    --network-interface \
        network=NIC1_NETWORK,subnet=NIC1_SUBNET,private-network-ip=NIC1_INTERNAL_IPV4_ADDRESS,no-address

다음을 바꿉니다.

  • INSTANCE_NAME: 만들려는 인스턴스의 이름. 이는 예시 구성multi-nic-vm에 해당합니다.
  • ZONE: 인스턴스가 생성되는 영역. 각 VPC 네트워크에 하나의 서브넷을 만든 동일한 리전에 영역을 입력합니다. 인스턴스는 인터페이스가 연결되는 서브넷과 같은 리전에 있어야 합니다. 예시 구성에서는 모든 서브넷에 동일한 리전을 사용합니다.
  • 첫 번째 인터페이스의 값:
    • NIC0_NETWORK: 인터페이스가 연결되는 네트워크. 이는 예시 구성network-1에 해당합니다.
    • NIC0_SUBNET: 인터페이스가 연결되는 서브넷. 이는 예시 구성subnet-1에 해당합니다.
    • NIC0_INTERNAL_IPV4_ADDRESS: 인터페이스가 대상 서브넷에 포함할 내부 IPv4 주소. 예시 구성을 사용하는 경우 10.10.1.3을 입력합니다. 유효한 주소가 할당되기만 하면 되는 경우에는 생략합니다.
  • 두 번째 인터페이스 값
    • NIC1_NETWORK: 인터페이스가 연결되는 네트워크. 이는 예시 구성network-2에 해당합니다.
    • NIC1_SUBNET: 인터페이스가 연결되는 서브넷. 이는 예시 구성subnet-2에 해당합니다.
    • NIC1_INTERNAL_IPV4_ADDRESS: 인터페이스가 대상 서브넷에 포함할 내부 IPv4 주소. 예시 구성을 사용하는 경우 10.10.2.3을 입력합니다. 유효한 주소가 할당되기만 하면 되는 경우에는 생략합니다.

테스트 인스턴스 2개 만들기

두 개의 추가 인스턴스를 만듭니다.

  • 생성한 다중 NIC 인스턴스의 nic0 인터페이스로, 하나는 동일한 네트워크에 있지만 다른 서브넷에 있습니다. 이는 예시 구성test-vm-1subnet-3에 해당합니다.
  • 생성한 다중 NIC 인스턴스의 nic1 인터페이스로, 하나는 동일한 네트워크에 있지만 다른 서브넷에 있습니다. 이는 예시 구성test-vm-2subnet-4에 해당합니다.

이러한 인스턴스를 사용하여 여러 네트워크 인터페이스가 있는 인스턴스의 기본 서브넷 범위를 벗어나는 서브넷에서 ping을 테스트합니다.

인스턴스를 만들려면 다음 안내를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 인스턴스 만들기 페이지로 이동합니다.

    인스턴스 만들기로 이동

  2. 이름 필드에 인스턴스의 이름을 입력합니다.

  3. 리전 필드에서 첫 번째 VPC 네트워크에 추가 서브넷을 배치한 리전을 선택합니다.

  4. 영역 필드에서 영역을 선택합니다.

  5. 고급 옵션 섹션에서 네트워킹을 펼친 후 다음을 수행합니다.

    1. 네트워크 인터페이스 섹션을 검토합니다. 서브넷이 다중 NIC 인스턴스의 nic0 인터페이스에서 사용하는 것과 다른지 확인합니다.
  6. 만들기를 클릭합니다.

  7. 이 단계를 반복하여 두 번째 VPC 네트워크에 있고 다중 NIC 인스턴스의 nic1 인터페이스와 다른 서브넷에 있는 인스턴스를 만듭니다.

gcloud