인스턴스에 Dynamic Network Interface 추가
이 페이지에서는 기존 Compute Engine 인스턴스에 Dynamic Network Interface (NIC)를 추가하는 방법을 설명합니다.
새 인스턴스 만들기에 대한 자세한 내용은 다중 네트워크 인터페이스가 있는 VM 만들기를 참조하세요.
시작하기 전에
인스턴스에 Dynamic NIC를 추가하기 전에 다음을 수행하세요.
- 다중 네트워크 인터페이스 개요에 설명된 Dynamic NIC의 속성과 제한사항을 잘 알고 있어야 합니다.
- 필요한 경우 인스턴스의 네트워크 인터페이스 보기의 안내에 따라 인스턴스의 기존 네트워크 인터페이스를 확인합니다.
Dynamic NIC 추가
다음 섹션에서는 관리형 인스턴스 그룹 (MIG)에 속한 개별 인스턴스 또는 인스턴스에 Dynamic NIC를 추가하는 방법을 설명합니다.
Dynamic NIC를 추가하면 전파 지연이 발생할 수 있습니다. 일반적으로 이러한 지연은 몇 초 정도 걸리지만, 드물게 최대 1분이 걸릴 수 있습니다.
인스턴스에 Dynamic NIC 추가
이 섹션에서는 인스턴스에 Dynamic NIC를 추가하는 방법을 설명합니다.
콘솔
Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.
동적 NIC를 추가하려는 인스턴스의 이름을 클릭합니다.
인스턴스 세부정보 페이지에서 수정을 클릭합니다.
동적 네트워크 인터페이스 섹션에서 동적 네트워크 인터페이스 추가를 클릭하고 다음을 수행합니다.
인터페이스 유형 필드에서 VPC를 선택합니다.
상위 네트워크 인터페이스 필드에서 동적 NIC를 만들 상위 vNIC를 선택합니다.
VLAN ID 필드에 동적 NIC의 VLAN ID를 입력합니다.
네트워크 및 서브네트워크에서 사용할 네트워크와 서브네트워크를 선택합니다.
동적 NIC의 IP 스택 유형에 대해 다음 옵션 중 하나를 선택합니다.
- IPv4(단일 스택)
- IPv4 및 IPv6(이중 스택)
- IPv6 (단일 스택)
IPv4 주소가 있는 동적 NIC의 경우 다음 단계를 따르세요.
기본 내부 IPv4 주소에서 다음 중 하나를 선택합니다.
- 임시(자동): 새 임시 IPv4 주소를 자동으로 할당
- 임시(커스텀): 새 임시 IPv4 주소를 수동으로 지정
- 목록의 예약된 고정 내부 IPv4 주소
- 고정 내부 IPv4 주소 예약: 새 고정 내부 IPv4 주소 예약 및 할당
외부 IPv4 주소에 대해 다음 중 하나를 선택합니다.
- 임시: 새 임시 IPv4 주소 할당
- None(없음): 외부 IPv4 주소를 할당하지 않음
- 목록의 예약된 고정 IPv4 주소
- 고정 외부 IP 주소 예약: 새 고정 외부 IPv4 주소 예약 및 할당
선택적으로 네트워크 인터페이스에 하나 이상의 별칭 IP 범위를 할당할 수 있습니다. 별칭 IP 범위를 할당하려면 다음 단계를 따르세요.
- 별칭 IP 범위에서 IP 범위 추가를 클릭합니다.
- 서브넷 범위에서 사용할 서브넷 기본 IPv4 주소 범위 또는 서브넷 보조 IPv4 주소 범위를 선택합니다.
- 별칭 IP 범위에 CIDR 표기법으로 IP 범위를 입력합니다. 이 범위는 선택한 서브넷 IP 범위의 사용되지 않은 범위여야 합니다.
VM 네트워크 인터페이스에 별칭 IP 범위를 할당하는 방법에 대한 자세한 내용은 별칭 IP 범위 구성을 참고하세요.
IPv6 주소가 있는 동적 NIC의 경우 연결된 서브넷의 액세스 유형에 따라 내부 또는 외부 IPv6 주소 범위를 구성합니다. 기본 내부 IPv6 주소 또는 외부 IPv6 주소에서 다음 중 하나를 선택합니다.
- 임시 (자동): 새 임시 IPv6 주소 범위를 자동으로 할당
- 임시 (커스텀): 새 임시 IPv6 주소 범위를 수동으로 지정
- 목록의 예약된 고정 IPv6 주소 범위
- 고정 내부 IPv6 주소 예약 또는 고정 외부 IPv6 주소 예약: 새 고정 IPv6 주소 범위 예약 및 할당
Dynamic NIC의 속성 수정을 완료하려면 완료를 클릭합니다.
구성을 저장하려면 저장을 클릭합니다.
gcloud
기존 인스턴스에 Dynamic NIC를 추가하려면 gcloud compute instances network-interfaces add 명령어를 사용합니다.
gcloud compute instances network-interfaces add INSTANCE_NAME \ --zone=ZONE \ --vlan=VLAN_ID \ --parent-nic-name=PARENT_VNIC_NAME \ --network=NETWORK \ --subnetwork=SUBNET
다음을 바꿉니다.
INSTANCE_NAME: Dynamic NIC를 추가할 인스턴스의 이름ZONE: 인스턴스의 영역VLAN_ID: Dynamic NIC의 VLAN IDPARENT_VNIC_NAME: 상위 vNIC의 이름(예:nic0)NETWORK: Dynamic NIC가 연결되는 네트워크SUBNET: Dynamic NIC가 연결되는 서브넷
또는 인스턴스 속성을 업데이트할 때 인스턴스에 Dynamic NIC를 추가할 수 있습니다. 자세한 내용은 인스턴스 속성 업데이트를 참조하세요.
API
기존 인스턴스에 Dynamic NIC를 추가하려면 instances.addNetworkInterface 메서드를 사용합니다.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/addNetworkInterface
{
"subnetwork": "regions/REGION/subnetworks/SUBNET",
"parentNicName": "PARENT_VNIC_NAME",
"vlan": "VLAN_ID"
}
다음을 바꿉니다.
PROJECT_ID: 인스턴스가 포함된 프로젝트의 IDZONE: 인스턴스를 포함하는 영역INSTANCE_NAME: Dynamic NIC를 추가할 인스턴스의 이름REGION: 인스턴스가 포함된 리전SUBNET: Dynamic NIC가 연결되는 서브넷PARENT_VNIC_NAME: 상위 vNIC의 이름(예:nic0)VLAN_ID: Dynamic NIC의 VLAN ID
또는 인스턴스 속성을 업데이트할 때 인스턴스에 Dynamic NIC를 추가할 수 있습니다. 자세한 내용은 인스턴스 속성 업데이트를 참조하세요.
MIG의 인스턴스에 Dynamic NIC 추가
이 섹션에서는 새 인스턴스 템플릿을 만들고 구성을 MIG에 적용하여 MIG의 인스턴스에 Dynamic NIC를 추가하는 방법을 설명합니다. 기존 인스턴스 템플릿 업데이트는 지원되지 않습니다.
인스턴스 템플릿 만들기에 대한 자세한 내용은 인스턴스 템플릿 만들기를 참조하세요. 기존 인스턴스 템플릿을 보려면 인스턴스 템플릿 가져오기, 나열, 삭제를 참고하세요.
콘솔
인스턴스 템플릿 페이지로 이동합니다.
복사하고 업데이트할 인스턴스 템플릿을 클릭합니다.
유사하게 만들기를 클릭합니다.
고급 옵션 섹션을 펼친 후 네트워킹 섹션을 펼칩니다.
동적 네트워크 인터페이스 섹션에서 동적 네트워크 인터페이스 추가를 클릭하고 다음을 수행합니다.
인터페이스 유형 필드에서 VPC를 선택합니다.
상위 네트워크 인터페이스 필드에서 동적 NIC를 만들 상위 vNIC를 선택합니다.
VLAN ID 필드에 동적 NIC의 VLAN ID를 입력합니다.
네트워크 및 서브네트워크에서 사용할 네트워크와 서브네트워크를 선택합니다.
동적 NIC의 IP 스택 유형에 대해 다음 옵션 중 하나를 선택합니다.
- IPv4(단일 스택)
- IPv4 및 IPv6(이중 스택)
- IPv6 (단일 스택)
IPv4 주소가 있는 동적 NIC의 경우 다음 단계를 따르세요.
기본 내부 IPv4 주소에서 다음 중 하나를 선택합니다.
- 임시(자동): 새 임시 IPv4 주소를 자동으로 할당
- 임시(커스텀): 새 임시 IPv4 주소를 수동으로 지정
- 목록의 예약된 고정 내부 IPv4 주소
- 고정 내부 IPv4 주소 예약: 새 고정 내부 IPv4 주소 예약 및 할당
외부 IPv4 주소에 대해 다음 중 하나를 선택합니다.
- 임시: 새 임시 IPv4 주소 할당
- None(없음): 외부 IPv4 주소를 할당하지 않음
- 목록의 예약된 고정 IPv4 주소
- 고정 외부 IP 주소 예약: 새 고정 외부 IPv4 주소 예약 및 할당
선택적으로 네트워크 인터페이스에 하나 이상의 별칭 IP 범위를 할당할 수 있습니다. 별칭 IP 범위를 할당하려면 다음 단계를 따르세요.
- 별칭 IP 범위에서 IP 범위 추가를 클릭합니다.
- 서브넷 범위에서 사용할 서브넷 기본 IPv4 주소 범위 또는 서브넷 보조 IPv4 주소 범위를 선택합니다.
- 별칭 IP 범위에 CIDR 표기법으로 IP 범위를 입력합니다. 이 범위는 선택한 서브넷 IP 범위의 사용되지 않은 범위여야 합니다.
VM 네트워크 인터페이스에 별칭 IP 범위를 할당하는 방법에 대한 자세한 내용은 별칭 IP 범위 구성을 참고하세요.
IPv6 주소가 있는 동적 NIC의 경우 연결된 서브넷의 액세스 유형에 따라 내부 또는 외부 IPv6 주소 범위를 구성합니다. 기본 내부 IPv6 주소 또는 외부 IPv6 주소에서 다음 중 하나를 선택합니다.
- 임시 (자동): 새 임시 IPv6 주소 범위를 자동으로 할당
- 임시 (커스텀): 새 임시 IPv6 주소 범위를 수동으로 지정
- 목록의 예약된 고정 IPv6 주소 범위
- 고정 내부 IPv6 주소 예약 또는 고정 외부 IPv6 주소 예약: 새 고정 IPv6 주소 범위 예약 및 할당
Dynamic NIC의 속성 수정을 완료하려면 완료를 클릭합니다.
만들기를 클릭해 인스턴스 템플릿을 만듭니다.
단계에 따라 MIG에서 새 VM 구성을 적용합니다.
인스턴스를 다시 시작하거나 다시 생성하지 않고 업데이트하려면 최소 작업을
REFRESH로 설정하세요. 자세한 내용은 다음을 참조하세요.
gcloud
Dynamic NIC를 추가하는 새 인스턴스 템플릿을 만들려면
gcloud compute instance-templates create명령어를 사용합니다.기존 인스턴스 템플릿의 각 네트워크 인터페이스에
--network-interface플래그를 포함하고vlan키를 지정하는 새 네트워크 인터페이스를 추가하여 동적 NIC를 만듭니다.다음 예에서는
nic0아래에 동적 NIC를 추가합니다. 필요에 따라 추가 네트워크 인터페이스와 속성을 지정할 수 있습니다. 여러 네트워크 인터페이스가 있는 인스턴스를 만드는 방법의 예시는 다중 네트워크 인터페이스가 있는 VM 만들기를 참고하세요.gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --network-interface=network=NETWORK_A,subnet=SUBNET_A \ --network-interface=network=NETWORK_B,subnet=SUBNET_B,vlan=VLAN_ID
다음을 바꿉니다.
INSTANCE_TEMPLATE_NAME: 새 인스턴스 템플릿의 이름입니다.NETWORK_A,NETWORK_B: 인터페이스가 연결되는 네트워크입니다.SUBNET_A,SUBNET_B: 인터페이스가 연결되는 서브넷VLAN_ID: VLAN ID. VLAN ID를 지정하면 네트워크 인터페이스가 Dynamic NIC로 구성됩니다. 명령에서 상위 vNIC 뒤에 Dynamic NIC를 배치해야 합니다.
단계에 따라 MIG에서 새 VM 구성을 적용합니다.
인스턴스를 다시 시작하거나 다시 생성하지 않고 업데이트하려면 최소 작업을
REFRESH로 설정하세요. 자세한 내용은 다음을 참조하세요.
API
Dynamic NIC를 추가하는 새 인스턴스 템플릿을 만들려면
instanceTemplates.insert메서드를 사용하여 전역 인스턴스 템플릿을 만들거나regionInstanceTemplates.insert메서드를 사용하여 리전 인스턴스 템플릿을 만듭니다.networkInterfaces필드에서 기존 인스턴스 템플릿의 각 네트워크 인터페이스를 지정하고vlan필드를 포함하는 새 네트워크 인터페이스를 추가하여 Dynamic NIC를 만듭니다.다음 예에서는
nic0아래에 동적 NIC를 추가합니다. 필요에 따라 추가 네트워크 인터페이스와 속성을 지정할 수 있습니다. 여러 네트워크 인터페이스가 있는 인스턴스를 만드는 방법의 예시는 다중 네트워크 인터페이스가 있는 VM 만들기를 참고하세요.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates { .... "networkInterfaces": [ { "subnetwork": "regions/REGION/subnetworks/SUBNET_A" }, { "subnetwork": "regions/REGION/subnetworks/SUBNET_B", "vlan": "VLAN_ID" }, additional network interfaces... ], other instance settings... }다음을 바꿉니다.
PROJECT_ID: 인스턴스 템플릿이 포함된 프로젝트의 ID입니다.REGION: 인스턴스가 포함된 리전입니다.SUBNET_A, SUBNET_B: 각 네트워크 인터페이스가 있는 서브넷VLAN_ID: VLAN ID. VLAN ID를 지정하면 네트워크 인터페이스가 Dynamic NIC로 구성됩니다. 요청의 상위 vNIC 뒤에 Dynamic NIC를 배치해야 합니다.
단계에 따라 MIG에서 새 VM 구성을 적용합니다.
인스턴스를 다시 시작하거나 다시 생성하지 않고 업데이트하려면 최소 작업을
REFRESH로 설정하세요. 자세한 내용은 다음을 참조하세요.
Dynamic NIC의 게스트 OS 구성
이 섹션에서는 새 인스턴스 또는 기존 인스턴스에 Dynamic NIC를 추가할 때 필요한 추가 게스트 OS 구성을 완료하는 방법을 설명합니다.
다음 구성 옵션 중 하나를 선택합니다.
| 구성 옵션 | 설명 |
|---|---|
| Dynamic NIC 자동 관리 구성(권장) | Dynamic NIC의 자동 관리에 게스트 에이전트를 사용합니다. 게스트 환경에는 게스트 에이전트가 포함되어 있으며, 이는 Google Cloud OS 이미지의 Linux 배포에서 루트 네임스페이스의 VLAN 인터페이스 설치 및 관리를 자동화합니다. Dynamic NIC의 자동 관리를 구성하는 경우 게스트 에이전트 버전 20251115.00 이상을 사용하세요. 이 기능은 게스트 에이전트 버전 20250204.02에서 도입되었지만 게스트 에이전트 버전 20250901.00~20251108.00에는 Dynamic NIC가 자동으로 설치되고 관리되지 않는 알려진 문제가 있습니다. |
| 게스트 OS 수동 구성 | 게스트 OS에서 명령어를 실행하여 Dynamic NIC를 설치합니다. 이 옵션을 사용하면 인스턴스를 다시 시작한 후 구성이 자동으로 유지되지 않습니다. 다시 시작한 후에도 구성이 유지되도록 하려면 Linux 배포에 권장되는 영구 네트워크 인터페이스 구성 방법을 사용하세요. 예를 들어 Debian의 경우 NetworkConfiguration을, Ubuntu의 경우 interfaces를 참조하세요. |
Dynamic NIC 자동 관리 구성
이 섹션에서는 게스트 에이전트를 사용하여 Dynamic NIC의 자동 관리를 구성하는 방법을 설명합니다.
이 단계는 인스턴스당 한 번만 완료하면 됩니다. 이미 이 단계를 완료한 인스턴스에 Dynamic NIC를 추가한 경우 이 단계를 반복하지 않아도 됩니다.
Dynamic NIC의 자동 관리를 구성하려면 다음 단계를 따르세요.
SSH를 사용하여 인스턴스에 연결합니다.
인스턴스에서 게스트 에이전트 버전 20251115.00 이상이 실행되고 있는지 확인합니다.
인스턴스에서 게스트 에이전트를 실행 중인지 확인하려면 게스트 환경에 설치된 패키지에 나열된 적절한 명령어를 실행합니다.
인스턴스가 게스트 에이전트를 실행하지 않는 경우 게스트 환경을 설치합니다.
인스턴스에서 게스트 에이전트를 실행하는 경우 게스트 환경을 업데이트합니다.
게스트 환경을 설치하거나 업데이트하면 최신 버전의 게스트 에이전트가 설치됩니다. 게스트 환경 검증의 단계에 따라 버전을 확인할 수 있습니다.
Dynamic NIC를 관리하도록 게스트 에이전트를 구성합니다.
게스트 환경 구성 파일을 열거나 만듭니다.
edit /etc/default/instance_configs.cfg구성 파일에 다음을 추가한 후 변경사항을 저장하고 편집기를 종료합니다.
[NetworkInterfaces] vlan_setup_enabled = true manage_primary_nic = true
이러한 설정에 대한 자세한 내용은 다음을 참조하세요.
vlan_setup_enabled = true: Dynamic NIC를 설치하고 관리하도록 게스트 에이전트를 구성합니다.manage_primary_nic = true: 게스트 에이전트가nic0아래에 생성된 동적 NIC를 관리하는 데 필요한 추가 설정
게스트 에이전트 구성 파일 수정에 대한 자세한 내용은 게스트 에이전트 문서의 구성을 참고하세요.
다음 명령어를 실행하여 게스트 에이전트를 다시 시작합니다. 또는 인스턴스를 다시 시작할 수 있습니다.
sudo systemctl restart google-guest-agent.service
인스턴스의 네트워크 인터페이스를 나열하여 게스트 에이전트가 Dynamic NIC를 설치했는지 확인합니다.
예를 들어 다음 명령어는
ens4인터페이스의 하위 요소로 생성된 VLAN ID가11인 Dynamic NIC의 이름(예:a-gcp.ens4.11)을 표시합니다.sudo ip -d addr
게스트 OS 수동 구성
인스턴스의 게스트 OS에서 Dynamic NIC를 수동으로 구성하려면 다음 단계를 따르세요.
SSH를 사용하여 인스턴스에 연결합니다.
인스턴스에서 게스트 에이전트를 실행하는 경우 Dynamic NIC의 자동 관리를 사용 중지합니다. 게스트 환경에 설치된 패키지에 나열된 적절한 명령어를 사용하여 인스턴스가 게스트 에이전트를 실행 중인지 확인할 수 있습니다.
Dynamic NIC의 자동 관리를 사용 중지하려면 다음 단계를 따르세요.
게스트 환경 구성 파일을 열거나 만듭니다.
edit /etc/default/instance_configs.cfg구성 파일에 다음을 추가한 후 변경사항을 저장하고 편집기를 종료합니다.
[NetworkInterfaces] vlan_setup_enabled = false manage_primary_nic = false
게스트 에이전트 구성 파일 수정에 대한 자세한 내용은 게스트 에이전트 문서의 구성을 참고하세요.
다음 명령어를 실행하여 게스트 에이전트를 다시 시작합니다. 또는 인스턴스를 다시 시작할 수 있습니다.
sudo systemctl restart google-guest-agent.service
만든 각 Dynamic NIC에 대해 다음을 실행합니다.
동적 NIC의 MAC 주소를 가져옵니다. MAC 주소를 찾으려면 다음 명령어를 실행하여 메타데이터 서버를 쿼리합니다.
curl http://metadata.google.internal/computeMetadata/v1/instance/vlan-network-interfaces/VNIC_NUMBER/VLAN_ID/mac -H "Metadata-Flavor: Google"
VNIC_NUMBER/VLAN_ID를 상위 vNIC 번호와 Dynamic NIC의 VLAN ID로 바꿉니다. 예를 들어nic0.2의 경우0/2,nic1.4의 경우1/4입니다.인스턴스의 게스트 OS에서 서브 인터페이스를 구성합니다. 예를 들어 Debian VM에서 다음 명령어를 실행합니다.
sudo modprobe 8021q sudo ip link add link VNIC_NAME name VNIC_NAME.VLAN_ID type vlan id VLAN_ID sudo ip addr add IP_ADDRESS dev VNIC_NAME.VLAN_ID sudo ip link set dev VNIC_NAME.VLAN_ID address MAC_ADDRESS sudo ip link set up VNIC_NAME.VLAN_ID
다음을 바꿉니다.
VNIC_NAME: 운영체제에서 할당한 상위 vNIC의 이름(예:eth1또는ens4)IP_ADDRESS: 생성한 Dynamic NIC의 IP 주소VLAN_ID: Dynamic NIC에 할당한 VLAN IDMAC_ADDRESS: 이전 단계에서 가져온 MAC 주소