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.