Membuat VM dengan beberapa antarmuka jaringan

Secara default, setiap instance mesin virtual (VM) di jaringan Virtual Private Cloud (VPC) memiliki satu antarmuka jaringan. Namun, Anda dapat mengonfigurasi instance dengan beberapa antarmuka jaringan. Saat menggunakan beberapa antarmuka jaringan dari instance, setiap antarmuka harus dipasangkan ke subnet yang ada di jaringan VPC yang berbeda. Anda tidak dapat memasang beberapa antarmuka jaringan ke subnet yang sama atau ke subnet yang berada di jaringan VPC yang sama.

Jika Anda tidak memerlukan beberapa antarmuka jaringan, ikuti prosedur guna Membuat dan memulai instance untuk membuat instance dengan konfigurasi jaringan default.

Untuk mengetahui informasi selengkapnya tentang beberapa antarmuka jaringan dan cara kerjanya, lihat Beberapa antarmuka jaringan.

Sebelum memulai

Peran IAM

Untuk membuat instance dengan beberapa antarmuka jaringan, Anda harus memiliki salah satu peran berikut:

Membuat serta menghapus instance dan template instance dengan beberapa antarmuka dalam project yang tidak menggunakan lingkungan VPC Bersama: Pengguna dengan peran Pemilik, Editor, atau Compute Instance Admin (v1) di level project dapat membuat instance dengan beberapa antarmuka yang terkait ke jaringan dan subnet VPC yang merupakan bagian dari project yang sama.

Membuat dan menghapus instance serta template instance dengan beberapa antarmuka di lingkungan VPC Bersama: Pengguna dengan peran Pemilik, Editor, atau Compute Instance Admin (v1) pada project dapat membuat instance dengan beberapa antarmuka. Jika salah satu antarmuka dipasangkan ke subnet dalam project host VPC Bersama, Anda juga harus memiliki Peran Compute Network User (roles/compute.networkUser ) pada level project host VPC Bersama atau pada level subnet VPC Bersama.

Untuk mempelajari izin lebih lanjut, baca dokumentasi IAM Compute Engine.

Membuat instance VM dengan beberapa antarmuka jaringan

Untuk mengetahui petunjuk umum mengenai pembuatan instance, baca bagian Membuat dan memulai instance VM.

Antarmuka pertama selalu dibuat sebagai nic0, dan selalu menjadi antarmuka default. Hal ini penting untuk beberapa aspek jaringan Google Cloud lainnya. Misalnya, Google Cloud load balancer (kecuali untuk Load Balancer Jaringan passthrough) hanya mendistribusikan traffic ke nic0.

Konsol

  1. Di konsol Google Cloud, buka halaman Create an instance.

    Buka halaman Buat instance

  2. Di kolom Name, masukkan nama untuk instance.

  3. Di kolom Region, pilih region.

  4. Di kolom Zone, pilih zona.

  5. Di bagian Advanced options, luaskan Networking, lalu lakukan hal berikut:

    1. Di bagian Network interfaces, luaskan antarmuka jaringan untuk mengeditnya.

    2. Untuk Network dan Subnetwork, pilih jaringan dan subnetwork yang ingin digunakan.

      Jika Anda ingin mengonfigurasi alamat IPv6 pada antarmuka, pilih subnet yang memiliki rentang alamat IPv6 yang telah dikonfigurasi. Jenis akses subnet IPv6 menentukan apakah VM akan menerima alamat IPv6 internal atau alamat IPv6 eksternal.

    3. Pilih salah satu opsi berikut untuk IP stack type untuk antarmuka:

      • IPv4 (single-stack)
      • IPv4 dan IPv6 (stack ganda)
      • IPv6 (single-stack) (Pratinjau)
    4. Untuk antarmuka dengan alamat IPv4, lakukan hal berikut:

      1. Untuk Primary internal IPv4, pilih salah satu opsi berikut:

        • Ephemeral untuk menetapkan alamat IPv4 efemeral baru
        • Alamat IPv4 internal statis yang dicadangkan dari daftar
        • Reserve static internal IPv4 address untuk mencadangkan dan menetapkan alamat IPv4 internal statis yang baru
      2. Untuk External IPv4 address, pilih salah satu opsi berikut:

        • Ephemeral untuk menetapkan alamat IPv4 efemeral baru
        • None untuk tidak menetapkan alamat IPv4 eksternal
        • Alamat IPv4 yang dicadangkan dari daftar
        • Reserve static external IP address untuk mencadangkan dan menetapkan alamat IPv4 eksternal statis yang baru
    5. Untuk antarmuka dengan alamat IPv6, lakukan hal berikut, bergantung pada jenis akses subnet yang terhubung:

      1. Untuk Primary internal IPv6 address, pilih salah satu opsi berikut:
        • Auto-allocated untuk menetapkan alamat IPv6 internal efemeral yang baru secara otomatis
        • Alamat IPv6 internal statis yang dicadangkan dari daftar
        • Reserve static internal IPv6 address untuk mencadangkan dan menetapkan alamat IPv6 internal statis yang baru
      2. Untuk External IPv6 address, pilih salah satu opsi berikut:
        • Auto-Allocate untuk menetapkan alamat IPv6 eksternal efemeral baru secara otomatis
        • Alamat IPv6 eksternal statis yang dicadangkan dari daftar
        • Reserve static external IPv6 address untuk mencadangkan dan menetapkan alamat IPv6 eksternal statis yang baru
    6. Untuk menyelesaikan modifikasi antarmuka jaringan, klik Done.

  6. Untuk menambahkan antarmuka lain, klik Add network interface.

  7. Lanjutkan dengan proses pembuatan VM.

  8. Klik Create.

gcloud

Untuk membuat antarmuka jaringan pada instance baru, gunakan perintah instances create.

Sertakan flag --network-interface untuk setiap antarmuka, diikuti dengan kunci jaringan yang sesuai, seperti network, subnet, private-network-ip, address, dan external-ipv6-address. Untuk melihat contoh cara membuat VM dengan beberapa antarmuka, baca Contoh konfigurasi.

Cuplikan ini hanya mengilustrasikan flag --network-interface, salah satu dari banyaknya kemungkinan parameter yang dapat Anda tentukan saat membuat instance.

Untuk mengetahui jenis mesin yang mendukung jumlah antarmuka jaringan yang Anda butuhkan, lihat tabel Jumlah maksimum antarmuka jaringan.

gcloud compute instances create INSTANCE_NAME \
    --zone ZONE \
    --network-interface \
        network=NETWORK,subnet=SUBNET, \
        stack-type=STACK_TYPE, \
        private-network-ip=INTERNAL_IPV4_ADDRESS \
        address=EXTERNAL_IPV4_ADDRESS | no-address, \
        internal-ipv6-address=INTERNAL_IPV6_ADDRESS \
    ...
    --network-interface \
        network=NETWORK,subnet=SUBNET, \
        stack-type=STACK_TYPE, \
        external-ipv6-address=EXTERNAL_IPV6_ADDRESS, \
        external-ipv6-prefix-length=96 \
        ipv6-network-tier=PREMIUM \
    ...

Ganti kode berikut:

  • INSTANCE_NAME: nama instance VM yang akan dibuat.
  • ZONE: zona tempat instance dibuat.
  • NETWORK: jaringan tempat antarmuka dipasang.
  • SUBNET: subnet tempat antarmuka dipasang.
  • STACK_TYPE: jenis tumpukan untuk antarmuka.

    Nilai defaultnya adalah IPV4_ONLY. Tentukan IPV4_IPV6 untuk mengonfigurasi antarmuka dual-stack, atau IPV6_ONLY untuk mengonfigurasi antarmuka khusus IPv6 (Pratinjau).

  • Nilai untuk antarmuka dengan alamat IPv4:

    • INTERNAL_IPV4_ADDRESS: alamat IPv4 internal yang Anda inginkan untuk dimiliki antarmuka di subnet target. Abaikan jika Anda hanya ingin menetapkan alamat yang valid.
    • EXTERNAL_IPV4_ADDRESS: alamat IPv4 eksternal antarmuka.

      Anda sebelumnya harus sudah mencadangkan alamat IPv4 eksternal. Jika Anda tidak ingin antarmuka memiliki alamat IP eksternal, tentukan "no-address", bukan address=EXTERNAL_IPV4_ADDRESS. Jika Anda ingin antarmuka menerima alamat IP eksternal sementara, tentukan address=''.

  • Nilai untuk antarmuka dengan alamat IPv6:

    • INTERNAL_IPV6_ADDRESS: alamat IPv6 internal yang Anda inginkan untuk dimiliki antarmuka di subnet target. Anda harus sudah mencadangkan alamat IPv6 internal sebelumnya. Jika tidak ditentukan, Google Cloud akan otomatis menetapkan alamat IPv6 internal dari subnet.
    • EXTERNAL_IPV6_ADDRESS: alamat IPv6 eksternal yang Anda inginkan untuk dimiliki antarmuka di subnet target. Anda harus sudah mencadangkan alamat IPv6 eksternal sebelumnya. Jika tidak ditentukan,Google Cloud akan otomatis menetapkan alamat IPv6 eksternal dari subnet.

API

Gunakan metode instances.insert untuk membuat instance VM dengan beberapa antarmuka jaringan.

  • Untuk membuat instance VM dengan alamat IPv4 internal saja, lakukan hal berikut:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    {
    ....
    
    "networkInterfaces": [
      {
        "networkIP": "IPV4_ADDRESS",
        "subnetwork": "regions/REGION/subnetworks/SUBNET"
      },
        for each interface, specify a network...
    ],
    other instance settings...
    }
    

    Ganti kode berikut:

    • PROJECT_ID: ID project yang berisi instance.
    • ZONE: zona yang berisi instance.
    • IPV4_ADDRESS: alamat IPv4 internal yang ingin Anda tetapkan ke antarmuka jaringan.
    • REGION: region yang berisi instance.
    • SUBNET: subnet tempat antarmuka jaringan berada.
  • Untuk membuat instance VM dengan alamat IPv4 internal dan alamat IPv6 internal, lakukan hal berikut:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    {
    ....
    
    "networkInterfaces": [
      {
        "subnetwork": "regions/REGION/subnetworks/SUBNET"
        "ipv6Address": "IPV6_ADDRESS",
        "internalIpv6PrefixLength": 96,
        "stackType": IPV4_IPV6,
        "ipv6AccessType": INTERNAL
      },
        for each interface, specify a network...
    ],
    other instance settings...
    }
    

    Ganti kode berikut:

    • PROJECT_ID: ID project yang berisi instance.
    • ZONE: zona yang berisi instance.
    • REGION: region yang berisi instance.
    • SUBNET: subnet tempat antarmuka jaringan berada.
    • IPV6_ADDRESS: alamat IPv6 internal yang Anda inginkan untuk dimiliki antarmuka di subnet target. Anda harus sudah mencadangkan alamat IPv6 internal sebelumnya. Jika tidak ditentukan, Google Cloud akan otomatis menetapkan alamat IPv6 internal dari subnet.
  • Untuk membuat instance VM hanya dengan alamat IPv6 internal (Pratinjau), lakukan hal berikut:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    {
    ....
    
    "networkInterfaces": [
      {
        "subnetwork": "regions/REGION/subnetworks/SUBNET"
        "ipv6Address": "IPV6_ADDRESS",
        "internalIpv6PrefixLength": 96,
        "stackType": IPV6_ONLY,
        "ipv6AccessType": INTERNAL
      },
        for each interface, specify a network...
    ],
    other instance settings...
    }
    

    Ganti kode berikut:

    • PROJECT_ID: ID project yang berisi instance.
    • ZONE: zona yang berisi instance.
    • REGION: region yang berisi instance.
    • SUBNET: subnet tempat antarmuka jaringan berada.
    • IPV6_ADDRESS: alamat IPv6 internal yang Anda inginkan untuk dimiliki antarmuka di subnet target. Anda harus sudah mencadangkan alamat IPv6 internal sebelumnya. Jika tidak ditentukan,Google Cloud akan otomatis menetapkan alamat IPv6 internal dari subnet.

Terraform

Anda dapat menggunakan resource Terraform untuk membuat instance VM dengan beberapa antarmuka jaringan.

Argumen Terraform memiliki nilai contoh yang dapat Anda ubah.

resource "google_compute_instance" "default" {
  project      = var.project_id # Replace with your project ID in quotes
  zone         = "us-central1-b"
  name         = "backend-instance"
  machine_type = "e2-medium"
  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }
  network_interface {
    subnetwork = var.subnet_1 # Replace with self link to a subnetwork in quotes
    network_ip = "10.0.0.14"
  }
  network_interface {
    subnetwork = var.subnet_2 # Replace with self link to a subnetwork in quotes
    network_ip = "10.10.20.14"
  }
}

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

Contoh konfigurasi

Bagian berikut menunjukkan cara membuat VM dengan beberapa antarmuka.

Mengonfigurasi beberapa antarmuka jaringan hanya dengan alamat IPv4

Contoh perintah berikut membuat instance dengan tiga antarmuka jaringan.

 gcloud compute instances create vm1 --machine-type=n1-standard-4 \
    --network-interface '' \
    --network-interface network=net1,subnet=subnet-a,private-network-ip=10.10.10.2,address=EXTERNAL_IPV4_ADDRESS \
    --network-interface network=net2,subnet=subnet-b,private-network-ip=10.10.20.2,no-address

Antarmuka dibuat sebagai berikut:

  • nic0 dibuat dengan setelan default. Antarmuka ini terpasang ke subnet di jaringan VPC default, dengan alamat IP internal yang dialokasikan secara otomatis dan alamat IP eksternal sementara.

  • nic1 ditambahkan ke subnet subnet-a di jaringan net1, dengan alamat IPv4 internal 10.10.10.2 dan alamat IPv4 eksternal statis, EXTERNAL_IPV4_ADDRESS.

  • nic2 dilampirkan ke subnet subnet-b di jaringan net2, dengan alamat IPv4 internal 10.10.20.2 dan tanpa alamat IP eksternal.

Untuk deskripsi lengkap tentang perintah gcloud compute instances create dan flag --network-interface, baca dokumentasi untuk perintah.

Anda dapat menggunakan alamat IP dari antarmuka jaringan yang telah ditambahkan untuk menyiapkan penerusan DNS. Untuk mempelajari lebih lanjut cara mengonfigurasi zona penerusan Cloud DNS, lihat Zona penerusan.

Mengonfigurasi beberapa antarmuka jaringan dengan alamat IPv4 dan IPv6

Contoh perintah berikut membuat instance dual-stack dengan dua antarmuka jaringan.

gcloud compute instances create vm1 \
    --network-interface network=dual-int,subnet=int-subnet,stack-type=IPV4_IPV6 \
    --network-interface network=dual-ext,subnet=ext-subnet,stack-type=IPV4_IPV6,ipv6-network-tier=PREMIUM \
    --machine-type=n1-standard-4 --zone=ZONE_A

Antarmuka dibuat sebagai berikut:

  • nic0 dilampirkan ke subnet int-subnet di jaringan dual-int, dengan alamat IPv4 internal sementara sdan alamat IPv6 internal sementara.

  • nic1 dilampirkan ke subnet ext-subnet di jaringan dual-ext, dengan alamat IPv4 internal sementara dan alamat IPv6 eksternal sementara.

Mengonfigurasi beberapa antarmuka jaringan hanya dengan alamat IPv6

Contoh perintah berikut membuat instance khusus IPv6 (Pratinjau) dengan dua antarmuka jaringan.

gcloud compute instances create vm1 \
    --network-interface network=ipv6-only-int,subnet=int-subnet,stack-type=IPV6_ONLY \
    --network-interface network=ipv6-only-ext,subnet=ext-subnet,stack-type=IPV6_ONLY,ipv6-network-tier=PREMIUM \
    --machine-type=n1-standard-4 --zone=us-west2-a

Antarmuka dibuat sebagai berikut:

  • nic0 dilampirkan ke subnet int-subnet di jaringan ipv6-only-int, dengan alamat IPv6 internal sementara.

  • nic1 dilampirkan ke subnet ext-subnet di jaringan ipv6-only-ext, dengan alamat IPv6 eksternal sementara.

Mengonfigurasi beberapa antarmuka jaringan untuk grup instance

Anda dapat menggunakan instance dengan beberapa antarmuka jaringan dalam grup instance yang tidak dikelola dan grup instance terkelola.

Untuk grup instance tidak terkelola, buat setiap instance secara terpisah, untuk memastikan bahwa antarmuka jaringan nic0 untuk setiap VM terpasang ke subnet yang sama. Kemudian, tambahkan instance VM ke grup instance tidak terkelola.

Guna mengonfigurasi beberapa antarmuka jaringan untuk grup instance terkelola, Anda harus menentukan konfigurasi jaringan untuk setiap antarmuka dalam template instance, dengan menetapkan flag --network-interface satu kali untuk setiap antarmuka. Contoh berikut membuat template instance dengan tiga antarmuka jaringan:

gcloud compute instance-templates create template-1 \
    --network-interface subnet=net0-subnet-a \
    --network-interface subnet=net1-subnet-b,no-address \
    --network-interface subnet=net2-subnet-c,no-address \
    --region REGION_A

Karena nama subnet di setiap region project harus unik, penetapan subnet berdasarkan nama akan mengaitkan setiap antarmuka dengan jaringan VPC secara implisit. Setiap antarmuka harus menggunakan subnet yang ada di jaringan VPC unik:

  • nic0 menggunakan subnet net0-subnet-a
  • nic1 menggunakan subnet net1-subnet-b
  • nic2 menggunakan subnet net2-subnet-c

Opsi no-address dalam flag --network-interface menunjukkan bahwa antarmuka dikonfigurasi tanpa alamat IPv4 eksternal. Alamat IP internal berasal dari subnet yang digunakan oleh antarmuka. Untuk mengetahui informasi selengkapnya tentang flag dan sintaksis, lihat flag --network-interface untuk perintah instance-templates create.