Memahami format GENEVE

Generic Network Virtualization Encapsulation (GENEVE) adalah protokol enkapsulasi jaringan yang mengenkapsulasi paket asli dengan metadata tambahan. Metadata tambahan ini membantu mengaktifkan virtualisasi jaringan yang fleksibel dan dapat dipertukarkan.

Diagram berikut menunjukkan format header paket GENEVE.

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |Ver|  Opt len  |O|C|   Rsvd.   |         Protocol type         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |        Virtual network identifier (VNI)       |     Rsvd.     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

Tabel berikut menjelaskan kolom header GENEVE yang ditampilkan dalam diagram sebelumnya:

Kolom Deskripsi Panjang kolom
Ver Versi protokol GENEVE. Satu-satunya versi yang didukung adalah nol (0). Untuk mengetahui informasi selengkapnya, lihat Kolom Header Tunnel. 2-bit
Panjang opt Panjang kolom opsi, dinyatakan dalam kelipatan 4 byte, tidak termasuk header tunnel tetap 8 byte. Untuk mengetahui informasi selengkapnya, lihat Kolom Header Tunnel. 6-bit
O Bit paket kontrol. Untuk mengetahui informasi selengkapnya, lihat Kolom Header Tunnel. 1-bit
C Bit opsi penting. Untuk mengetahui informasi selengkapnya, lihat Kolom Header Tunnel. 1-bit
Rsvd Kolom yang dicadangkan, yang harus nol (0) saat transmisi dan harus diabaikan saat diterima. Untuk mengetahui informasi selengkapnya, lihat Kolom Header Tunnel. 6-bit
Jenis protokol Jenis protokol memungkinkan ethertype: IPv4 (0x0800) atau IPv6 (0x86DD). 16-bit
ID Jaringan Virtual (VNI) ID unik untuk elemen jaringan virtual. VNI disetel ke nol (0). Untuk mengetahui informasi selengkapnya, lihat Opsi GENEVE. 24-bit
Rsvd Kolom yang dicadangkan, yang harus nol (0) saat transmisi dan harus diabaikan saat diterima. Untuk mengetahui informasi selengkapnya, lihat Kolom Header Tunnel. 8-bit

Opsi GENEVE untuk Duplikasi Paket di jaringan VPC ULL

Header GENEVE menggunakan format Type-Length-Value (TLV) untuk opsinya. Setiap opsi dienkode dengan ID jenis, kolom panjang yang menunjukkan ukuran nilai, dan nilai itu sendiri. Format ini memberikan fleksibilitas dan ekstensibilitas, sehingga opsi baru dapat ditambahkan tanpa mengganggu penerapan yang ada. Bagian berikut menjelaskan opsi tersebut. Karena jumlah dan urutan opsi dapat berubah, parsing header GENEVE berdasarkan kolom TLV untuk memastikan kompatibilitas ke depan untuk penerapan perangkat Anda.

Opsi GENEVE khusus untuk Duplikasi Paket ULL adalah sebagai berikut:

  • ID Jaringan (Cookie jaringan)
  • Stempel waktu
  • ID stabil jaringan
  • Alamat IP Utama

ID jaringan

Opsi ID jaringan, yang juga dikenal sebagai "cookie jaringan", mengidentifikasi jaringan virtual yang terkait dengan traffic yang dienkapsulasi GENEVE dalam Duplikasi Paket ULL. Opsi ini diidentifikasi oleh class opsi 0x0132 (Google) dan jenis 0x1 (ID Jaringan).

Untuk Duplikasi Paket ULL, cookie jaringan disetel ke nol (0). Data opsi berisi 32 bit; 31 bit pertama dicadangkan dan bit terakhir menunjukkan arah paket asli.

Duplikasi Paket ULL menggunakan versi yang diubah dari opsi ID jaringan. Dalam versi ini, semua bit kecuali bit arah dan bit yang dicadangkan ditetapkan ke 0. Untuk mengetahui informasi selengkapnya tentang titik pengambilan, lihat ID stabil jaringan.

Diagram berikut menunjukkan format opsi dalam paket GENEVE.

       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option Class=0x0132 (Google) |    Type=01    |R|R|R|  Len=1  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                            Reserved                         |D|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

Tabel berikut menjelaskan kolom opsi yang ditampilkan dalam diagram sebelumnya:

Kolom Deskripsi Panjang kolom
Class opsi Mengidentifikasi organisasi atau entitas yang telah menentukan opsi. Nilai 0x0132 menetapkan Google sebagai entity yang menentukan. 16-bit
Jenis Mengidentifikasi jenis opsi dalam class. Nilai 0x1 menunjukkan opsi ID Jaringan. Untuk mengetahui informasi selengkapnya, lihat Opsi Tunnel. 8-bit
R Flag kontrol opsi dicadangkan untuk penggunaan pada masa mendatang. Bit ini harus nol (0) saat transmisi dan harus diabaikan saat diterima. 3-bit
Len Panjang payload opsi dalam kelipatan 4 byte. Payload ID jaringan adalah 32 bit (4 byte), sehingga panjang untuk opsi ini ditetapkan ke 1. 5-bit
Dipesan Harus disetel ke nol (0) saat transmisi dan harus diabaikan saat diterima. 31-bit
D Menunjukkan arah paket asli. Nol (0) menunjukkan ingress dan satu (1) menunjukkan paket egress pada resource yang diduplikasi asli. 1-bit

Stempel waktu

Opsi stempel waktu menunjukkan waktu pengambilan paket asli di titik pengambilan (instance Compute Engine tempat paket diambil atau diduplikasi). Opsi ini diidentifikasi oleh class opsi 0x0132 (Google) dan jenis 0x0f (Stempel Waktu).

Diagram berikut menunjukkan format opsi dalam paket GENEVE.

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option class=0x0132 (Google) |   Type=0x0f   |R|R|R|  Len=2  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                           Timestamp                           +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

Tabel berikut menjelaskan kolom opsi yang ditampilkan dalam diagram sebelumnya:

Kolom Deskripsi Panjang kolom
Class opsi Mengidentifikasi organisasi atau entitas yang telah menentukan opsi. Nilai 0x0132 menetapkan Google sebagai entity yang menentukan. 16-bit
Jenis Mengidentifikasi jenis opsi dalam class. Nilai 0x0f menunjukkan opsi stempel waktu. Untuk mengetahui informasi selengkapnya, lihat Opsi Tunnel. 8-bit
R Flag kontrol opsi dicadangkan untuk penggunaan pada masa mendatang. Bit ini harus nol (0) saat transmisi dan harus diabaikan saat diterima. 3-bit
Len Panjang payload opsi dalam kelipatan 4 byte. Payload stempel waktu adalah 64 bit (8 byte), sehingga panjang untuk opsi ini ditetapkan ke 2. 5-bit
Stempel waktu Waktu pengambilan paket asli, yang ditampilkan sebagai nanodetik sejak epoch. Granularitas nanodetik tidak menjamin akurasi nanodetik. 64 bit

ID stabil jaringan

Opsi ID stabil Jaringan mengidentifikasi jaringan instance yang dicerminkan. Opsi ini diidentifikasi oleh class opsi 0x0132 (Google) dan jenis 0x10 (ID stabil jaringan).

Diagram berikut menunjukkan format opsi dalam paket GENEVE. ID stabil Jaringan terdiri dari nomor project dan ID jaringan.

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option class=0x0132 (Google) |   Type=0x10   |R|R|R|  Len=4  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                       Project Number                          +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                         Network ID                            +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

Tabel berikut menjelaskan kolom opsi yang ditampilkan dalam diagram sebelumnya:

Kolom Deskripsi Panjang kolom
Class opsi Mengidentifikasi organisasi atau entitas yang telah menentukan opsi. Nilai 0x0132 menetapkan Google sebagai entity yang menentukan. 16-bit
Jenis Mengidentifikasi jenis opsi dalam class. Nilai 0x10 menunjukkan opsi ID stabil Jaringan. Untuk mengetahui informasi selengkapnya, lihat Opsi Tunnel. 8-bit
R Flag kontrol opsi dicadangkan untuk penggunaan pada masa mendatang. Bit ini harus nol (0) saat transmisi dan harus diabaikan saat diterima. 3-bit
Len Panjang payload opsi dalam kelipatan 4 byte. Payload ID jaringan adalah 64 bit (8 byte), sehingga panjang untuk opsi ini ditetapkan ke 4. 5-bit
Nomor project Nomor project Google Cloud project. 64 bit
ID jaringan ID jaringan VPC ULL. 64 bit

Alamat IP Utama

Opsi Alamat IP Utama mengidentifikasi alamat IP titik pengambilan (instance Compute Engine tempat paket diambil atau diduplikasi). Opsi ini diidentifikasi oleh class opsi 0x0132 (Google) dan jenis 0x11 (Alamat IP Utama).

Diagram berikut menunjukkan format opsi dalam paket GENEVE.

       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option class=0x0132 (Google) |   Type=0x11   |R|R|R|  Len=1  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                       Primary IP Address                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

Tabel berikut menjelaskan kolom opsi yang ditampilkan dalam diagram sebelumnya:

Kolom Deskripsi Panjang kolom
Class opsi Mengidentifikasi organisasi atau entitas yang telah menentukan opsi. Nilai 0x0132 menetapkan Google sebagai entity yang menentukan. 16-bit
Jenis Mengidentifikasi jenis opsi dalam class. Nilai 0x11 menunjukkan opsi Alamat IP Utama. 8-bit
R Flag kontrol opsi dicadangkan untuk penggunaan pada masa mendatang. Bit ini harus nol (0) saat transmisi dan harus diabaikan saat diterima. 3-bit
Len Panjang payload opsi dalam kelipatan 4 byte. Payload alamat IP adalah 32 bit (4 byte), sehingga panjang untuk opsi ini ditetapkan ke 1. 5-bit
Alamat IP Utama Alamat IP utama instance Compute Engine sumber. 32 bit

Format header GENEVE

Bagian ini menjelaskan format header GENEVE yang digunakan oleh Duplikasi Paket untuk jaringan VPC ULL.

Header IPv4

Format paket GENEVE mengenkapsulasi header tunnel ringkas dalam UDP melalui IPv4. Header tunnel tetap kecil memberikan informasi kontrol dan kemampuan serta interoperabilitas tingkat dasar.

Diagram berikut menunjukkan kolom header IPv4 untuk paket GENEVE.

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |Version|  IHL  |Type of service|          Total length         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |         Identification        |Flags|     Fragment offset     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Time to live | Proto=17 (UDP)|        Header checksum        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         Source address                        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                      Destination address                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

Tabel berikut menjelaskan kolom header IPv4 khusus Google Cloudyang ditampilkan dalam diagram sebelumnya. Untuk mengetahui informasi tentang kolom header IPv4 umum, lihat RFC 8926.

Kolom Deskripsi
Proto=17 (selalu UDP untuk GENEVE) Menunjukkan bahwa payload yang dienkapsulasi menggunakan protokol UDP.
Alamat sumber Alamat IP gateway subnet lokal.
Alamat tujuan VIP load balancer milik pelanggan.

Header UDP

Header UDP RFC 0768 mengenkapsulasi data sekaligus mempertahankan semantik Ethernet dan alamat IP yang tidak terhubung. Fitur ini juga menyediakan entropi ke router yang melakukan equal cost multipath (ECMP).

Diagram berikut menunjukkan format header untuk paket GENEVE yang dienkapsulasi dalam UDP.

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      Source port = <hash>     |   Dest port = 6081 (Geneve)   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           UDP length          |          UDP checksum         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

Tabel berikut menjelaskan kolom header UDP yang ditampilkan dalam diagram sebelumnya:

Kolom Deskripsi
Port sumber Hash buram di seluruh rentang 16-bit. Nilainya sama untuk semua paket yang termasuk dalam satu alur yang dienkapsulasi (kedua arah).
Port tujuan Nomor port tujuan yang ditetapkan untuk traffic GENEVE, ditetapkan ke 6081.
Panjang UDP Panjang total datagram UDP, termasuk header UDP dan paket GENEVE yang dienkapsulasi.
Checksum UDP Nilai checksum untuk datagram UDP, yang digunakan untuk deteksi error.

Opsi GENEVE

Opsi GENEVE khusus Google Cloudyang digunakan dalam Duplikasi Paket untuk jaringan VPC ULL adalah cookie jaringan, stempel waktu, ID stabil jaringan, alamat IP utama, dan stempel waktu pemrosesan pesanan yang adil. Untuk mengetahui informasi selengkapnya, lihat Opsi GENEVE untuk Duplikasi Paket di jaringan VPC ULL.

Diagram berikut menunjukkan cara opsi GENEVE khusus Google Clouddigunakan dalam Duplikasi Paket untuk jaringan VPC ULL.

       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option Class=0x0132 (Google) |    Type=01    |R|R|R|  Len=1  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                          Network Cookie                     |D|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option Class=0x0132 (Google) |   Type=0x0f   |R|R|R|  Len=2  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                           Timestamp                           +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option Class=0x0132 (Google) |    Type=0x10   |R|R|R|  Len=4  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                         Project Number                        +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                           Network ID                          +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option Class=0x0132 (Google) |   Type=0x11   |R|R|R|  Len=1  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                       Primary IP Address                      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Option Class=0x0132 (Google) |   Type=0x13   |R|R|R|  Len=2  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +                Fair order processing timestamp                +
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   

Opt len dalam diagram sebelumnya menunjukkan panjang kolom opsi dalam kelipatan 4 byte. Panjang ini tidak mencakup header tunnel tetap 8 byte. Untuk mengetahui informasi selengkapnya, lihat Kolom Header Tunnel.

Persyaratan enkapsulasi GENEVE dan MTU

Unit transmisi maksimum (MTU) adalah ukuran paket IP terbesar yang mungkin muat dalam frame Ethernet, termasuk header IP, header protokol Layer 4, dan data Layer 4, dalam byte. Untuk mengetahui informasi selengkapnya, lihat Unit transmisi maksimum.

Jaringan VPC ULL memiliki MTU maksimum sebesar 1500 byte. Namun, Duplikasi Paket ULL memerlukan 308 byte untuk overhead enkapsulasi GENEVE. Untuk memastikan bahwa traffic yang di-mirror mencapai instance pengumpul Anda tanpa fragmentasi, jaringan tempat pengumpul Anda berada harus memiliki MTU minimal 1.808 byte (1.500 byte untuk traffic standar ditambah 308 byte untuk overhead enkapsulasi GENEVE).

Jika batas MTU tidak cukup untuk mengakomodasi enkapsulasi GENEVE, paket mungkin akan dihapus. Hal ini dapat terjadi di tingkat jaringan virtual atau di sistem operasi.