이 튜토리얼에서는 각각 서로 다른 Virtual Private Cloud(VPC) 네트워크에 연결된 여러 네트워크 인터페이스가 있는 가상 머신(VM) 인스턴스를 만드는 방법을 설명합니다. 또한 이 튜토리얼에서는 nic1 인터페이스를 성공적으로 핑할 수 있도록 Linux VM에서 라우팅을 구성하는 방법의 예시를 제공합니다.
이 튜토리얼의 라우팅 구성은 vNIC와 Dynamic Network Interface(NIC)라는 두 가지 네트워크 인터페이스 유형에 모두 적용됩니다. 이 튜토리얼의 예에서는 여러 vNIC가 있는 인스턴스를 사용하지만 Dynamic NIC가 있는 인스턴스에 대해 동일한 예시를 구성할 수 있습니다.
네트워크 인터페이스가 여러 개인 인스턴스를 다중 NIC 인스턴스라고 합니다.
비용
이 문서에서는 비용이 청구될 수 있는 Google Cloud구성요소를 사용합니다.
프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용하세요.
시작하기 전에
- Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. 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.-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. 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.
구성 예시
다음 다이어그램은 이 튜토리얼에서 만드는 VPC 네트워크, 서브넷, 인스턴스를 리소스 이름 및 서브넷 IP 주소 범위에 사용할 수 있는 예시 값과 함께 표시합니다.
그림 1. 이 튜토리얼에서는 각각 서브넷 2개가 포함된 VPC 네트워크 2개를 만듭니다. 모든 서브넷은 동일한 리전에 있습니다. 또한 최초 두 서브넷에 연결되는 한 개의 다중 NIC 인스턴스와 나머지 두 서브넷에 각각 한 개의 인스턴스로 총 세 개의 인스턴스를 만듭니다(확대하려면 클릭).
2개의 VPC 네트워크 만들기
다중 NIC 인스턴스를 만들려면 먼저 연결하려는 VPC 네트워크가 있어야 합니다. 두 개의 VPC 네트워크를 만듭니다. 이 튜토리얼에서는 각 VPC 네트워크에 두 개의 서브넷이 있습니다.
구성 예시에 표시된 구성을 만들려면 다음 값을 사용하여 네트워크와 서브넷을 만듭니다.
- 다음을 포함하는
network-1이라는 네트워크:- 기본 IPv4 주소 범위가
10.10.1.0/24인subnet-1이라는 서브넷 - 기본 IPv4 주소 범위가
10.10.3.0/24인subnet-3이라는 서브넷
- 기본 IPv4 주소 범위가
다음을 포함하는
network-2이라는 네트워크:- 기본 IPv4 주소 범위가
10.10.2.0/24인subnet-2이라는 서브넷 - 기본 IPv4 주소 범위가
10.10.4.0/24인subnet-4이라는 서브넷
- 기본 IPv4 주소 범위가
콘솔
Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.
VPC 네트워크 만들기를 클릭합니다.
이름 필드에 VPC 네트워크의 이름을 입력합니다.
서브넷 생성 모드에서 커스텀을 선택합니다.
새 서브넷 섹션에서 다음을 지정합니다.
- 서브넷 이름을 입력합니다.
- 리전을 선택합니다. 생성한 두 VPC 네트워크 모두 서브넷 중 하나 이상에 대해 동일한 리전을 사용해야 합니다. 다음 섹션에서 다중 NIC 인스턴스를 만들 때 이 동일한 리전을 사용합니다. 예시 구성은 모든 서브넷에 동일한 리전을 사용합니다.
IP 주소 범위를 입력합니다. 이 범위는 서브넷의 기본 IPv4 범위입니다.
RFC 1918 주소가 아닌 범위를 선택하는 경우 범위가 기존 구성과 충돌하지 않는지 확인합니다. 자세한 내용은 IPv4 서브넷 범위를 참조하세요.
완료를 클릭합니다.
서브넷 추가를 클릭하여 두 번째 서브넷을 만듭니다. 이 두 번째 서브넷을 사용하여 인스턴스의 네트워크 인터페이스의 기본 서브넷 범위 외부에서
ping을 테스트합니다.방화벽 규칙 섹션에서 allow-custom 규칙을 선택한 후 수정을 클릭합니다. 테스트 인스턴스에서
multi-nic-vm으로의 연결을 테스트할 수 있도록 다음과 같이 규칙을 구성합니다.- IPv4 범위에서 서브넷의 IPv4 주소 범위에 대한 체크박스를 선택한 상태로 둡니다.
- SSH를 사용하여 테스트 인스턴스에 연결할 수 있도록 기타 IPv4 범위에
35.235.240.0/20을 입력합니다. 이 범위를 포함하면 IAP(Identity-Aware Proxy) TCP 전달을 사용하는 SSH 연결이 허용됩니다. 자세한 내용은 VM에 대한 인그레스 SSH 연결 허용을 참조하세요. - 프로토콜 및 포트에서 지정된 프로토콜 및 포트를 선택합니다.
- TCP를 선택한 후
22, 3389를 입력하여 RDP 및 SSH를 허용합니다. - 기타를 선택한 후
icmp를 입력하여 ICMP를 허용합니다.
- TCP를 선택한 후
만들기를 클릭합니다.
이 단계를 반복하여 두 번째 VPC 네트워크를 만듭니다. 서브넷 IP 주소 범위가 예시 구성에 사용된 IP 주소 범위와 같이 첫 번째 네트워크의 서브넷과 겹치지 않는지 확인합니다.
gcloud
networks create명령어를 사용하여 VPC 네트워크를 만듭니다.gcloud compute networks create NETWORK --subnet-mode=custom
다음을 바꿉니다.
NETWORK: VPC 네트워크의 이름
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 인스턴스를 만들 때 이 동일한 리전을 사용합니다. 예시 구성은 모든 서브넷에 동일한 리전을 사용합니다.
이전 단계를 반복하여 다른 서브넷을 만듭니다. 이 두 번째 서브넷을 사용하여 인스턴스 네트워크 인터페이스의 기본 서브넷 범위 외부에서
ping을 테스트합니다.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-vm의nic0인터페이스로의 연결을 테스트할 수 있습니다.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-vm의nic0인터페이스로의 연결을 테스트할 수 있습니다.35.235.240.0/20을 포함하면 IAP(Identity-Aware Proxy) TCP 전달을 사용하는 SSH 연결이 허용됩니다. 자세한 내용은 VM에 대한 인그레스 SSH 연결 허용을 참조하세요.
- 첫 번째 네트워크의 경우
이 단계를 반복하여 두 번째 VPC 네트워크를 만듭니다. 서브넷 IP 주소 범위가 예시 구성에 사용된 IP 주소 범위와 같이 첫 번째 네트워크의 서브넷과 겹치지 않는지 확인합니다.
다중 NIC 인스턴스 만들기
이전 섹션에서 만든 각 VPC 네트워크에 대해 하나의 인터페이스가 있는 인스턴스를 만듭니다.
멀티 NIC 인스턴스를 만들려면 다음 안내를 따르세요.
콘솔
Google Cloud 콘솔에서 인스턴스 만들기 페이지로 이동합니다.
이름 필드에 인스턴스의 이름을 입력합니다. 이는 예시 구성의
multi-nic-vm에 해당합니다.리전 필드에서 각 VPC 네트워크에 하나의 서브넷을 만든 동일한 리전을 선택합니다. 인스턴스는 인터페이스가 연결되는 서브넷과 같은 리전에 있어야 합니다. 예시 구성에서는 모든 서브넷에 동일한 리전을 사용합니다.
영역 필드에서 영역을 선택합니다.
고급 옵션 섹션에서 네트워킹을 펼친 후 다음을 수행합니다.
- 네트워크 인터페이스 섹션을 검토합니다. Google Cloud 는 첫 번째 네트워크 인터페이스에 네트워크와 서브네트워크를 자동으로 채웁니다. 이는 예시 구성의
network-1및subnet-1에 해당합니다. - 기본 내부 IPv4 주소에서 다음 중 하나를 선택합니다.
- 임시: 새 임시 IPv4 주소 할당
- 목록의 예약된 고정 내부 IPv4 주소
- 고정 내부 IPv4 주소 예약: 새 고정 내부 IPv4 주소 예약 및 할당
예시 구성을 사용하는 경우
10.10.1.3을 예약합니다.
외부 IPv4 주소의 경우
None을 하나 선택합니다.다른 인터페이스를 추가하려면 네트워크 인터페이스 추가를 클릭합니다.
네트워크 및 서브네트워크에 생성한 두 번째 네트워크 및 서브네트워크를 선택합니다. 예시 구성의
network-2및subnet-2에 해당합니다.IP 스택 유형에 IPv4(단일 스택)를 선택합니다.
기본 내부 IPv4 주소에서 다음 중 하나를 선택합니다.
- 임시: 새 임시 IPv4 주소 할당
- 목록의 예약된 고정 내부 IPv4 주소
- 고정 내부 IPv4 주소 예약: 새 고정 내부 IPv4 주소 예약 및 할당
예시 구성을 사용하는 경우
10.10.2.3을 예약합니다.
외부 IPv4 주소의 경우
None을 하나 선택합니다.네트워크 인터페이스 추가를 완료하려면 완료를 클릭합니다.
- 네트워크 인터페이스 섹션을 검토합니다. Google Cloud 는 첫 번째 네트워크 인터페이스에 네트워크와 서브네트워크를 자동으로 채웁니다. 이는 예시 구성의
만들기를 클릭합니다.
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
다음을 바꿉니다.
테스트 인스턴스 2개 만들기
두 개의 추가 인스턴스를 만듭니다.
- 생성한 다중 NIC 인스턴스의
nic0인터페이스로, 하나는 동일한 네트워크에 있지만 다른 서브넷에 있습니다. 이는 예시 구성의test-vm-1및subnet-3에 해당합니다. - 생성한 다중 NIC 인스턴스의
nic1인터페이스로, 하나는 동일한 네트워크에 있지만 다른 서브넷에 있습니다. 이는 예시 구성의test-vm-2및subnet-4에 해당합니다.
이러한 인스턴스를 사용하여 여러 네트워크 인터페이스가 있는 인스턴스의 기본 서브넷 범위를 벗어나는 서브넷에서 ping을 테스트합니다.
인스턴스를 만들려면 다음 안내를 따르세요.
콘솔
Google Cloud 콘솔에서 인스턴스 만들기 페이지로 이동합니다.
이름 필드에 인스턴스의 이름을 입력합니다.
리전 필드에서 첫 번째 VPC 네트워크에 추가 서브넷을 배치한 리전을 선택합니다.
영역 필드에서 영역을 선택합니다.
고급 옵션 섹션에서 네트워킹을 펼친 후 다음을 수행합니다.
- 네트워크 인터페이스 섹션을 검토합니다. 서브넷이 다중 NIC 인스턴스의
nic0인터페이스에서 사용하는 것과 다른지 확인합니다.
- 네트워크 인터페이스 섹션을 검토합니다. 서브넷이 다중 NIC 인스턴스의
만들기를 클릭합니다.
이 단계를 반복하여 두 번째 VPC 네트워크에 있고 다중 NIC 인스턴스의
nic1인터페이스와 다른 서브넷에 있는 인스턴스를 만듭니다.