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 diperluas.
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 |
| Opt len | Panjang kolom opsi, yang 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 apa pun, tetapi
Network Security Integration hanya mengizinkan IPv4
(0x0800) atau IPv6 (0x86DD). |
16-bit |
| ID Jaringan Virtual (VNI) | ID unik untuk elemen jaringan virtual. Network Security Integration tidak mengisi kolom ini, yang berarti VNI ditetapkan ke nol (0). Untuk mengetahui informasi selengkapnya, lihat Integrasi di luar band 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 |
Google CloudOpsi GENEVE khusus
Header GENEVE menggunakan format Type-Length-Value (TLV) untuk opsinya. Artinya, setiap opsi dienkode dengan ID jenis, kolom panjang yang menunjukkan ukuran nilai, dan nilai itu sendiri. Format ini memungkinkan fleksibilitas dan kemampuan diperluas, karena opsi baru dapat ditambahkan tanpa mengganggu implementasi yang ada. Bagian berikut menjelaskan urutan dan jumlah opsi. Perhatikan bahwa jumlah dan urutan opsi akan bervariasi seiring perkembangan produk. Oleh karena itu, untuk memastikan kompatibilitas ke depan untuk implementasi perangkat Anda, uraikan header GENEVE berdasarkan kolom TLV.
Opsi GENEVE khusus untuk Google Cloud adalah sebagai berikut:
- ID Jaringan (cookie jaringan)
- ID Endpoint (cookie endpoint)
- ID Profil
ID Jaringan
Opsi ID jaringan, yang juga dikenal sebagai "cookie jaringan", mengidentifikasi jaringan virtual
jaringan yang terkait dengan traffic yang dienkapsulasi GENEVE di Google Cloud.
Opsi ini diidentifikasi oleh class opsi 0x0132 (Google) dan jenis 1 (ID Jaringan).
Data opsi berisi 32 bit, yang mana 28 bit pertama mewakili ID jaringan buram. Tujuan dari 4 bit yang tersisa dijelaskan dalam diagram dan tabel berikut.
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=01 |R|R|R| Len=1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network cookie |R|R|T|D|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Tabel berikut menjelaskan kolom opsi yang ditampilkan dalam diagram sebelumnya:
| Kolom | Deskripsi | Panjang kolom |
|---|---|---|
| Class opsi | Mengidentifikasi organisasi atau entity yang telah menentukan opsi.
Nilai 0x0132 menetapkan Google sebagai entity yang menentukan. |
16-bit |
| Jenis | Mengidentifikasi jenis opsi dalam class. Nilai
0x1 menetapkan opsi ID Jaringan.
Untuk mengetahui informasi selengkapnya,
lihat Opsi Tunnel. |
8-bit |
| R | Flag kontrol opsi yang dicadangkan untuk penggunaan mendatang. Bit ini harus nol (0) saat transmisi dan harus diabaikan saat diterima. | 3-bit |
| Len | Panjang payload opsi dalam penambahan 4 byte. Payload ID jaringan adalah 32 bit (4 byte), sehingga panjang untuk opsi ini ditetapkan ke 1. | 5-bit |
| Cookie jaringan | Cookie jaringan buram, yang mengidentifikasi jaringan virtual. | 28-bit |
| R | Dicadangkan untuk implementasi mendatang. Harus ditetapkan ke nol (0) saat transmisi dan harus diabaikan saat diterima. | 2-bit |
| T | Menunjukkan TLS-offload untuk paket yang dienkapsulasi. Tidak digunakan. | 1-bit |
| D | Menunjukkan arah paket asli. Nol (0) menandakan paket masuk dan satu (1) menandakan paket keluar di virtual machine (VM) yang diduplikasi asli . | 1-bit |
ID Endpoint
Opsi ID endpoint, yang juga dikenal sebagai "cookie endpoint", secara unik mengidentifikasi
titik pengambilan, yang merupakan pengontrol antarmuka jaringan di Google Cloud
VM. Opsi ini diidentifikasi oleh class opsi 0x0132 (Google) dan jenis
2 (ID Endpoint). Data opsi adalah nilai buram 128-bit.
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=02 |R|R|R| Len=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Endpoint cookie +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Tabel berikut menjelaskan kolom opsi yang ditampilkan dalam diagram sebelumnya:
| Kolom | Deskripsi | Panjang kolom |
|---|---|---|
| Class opsi | Mengidentifikasi organisasi atau entity yang telah menentukan opsi.
Nilai 0x0132 menetapkan Google sebagai entity yang menentukan. |
16-bit |
| Jenis | Mengidentifikasi jenis opsi dalam class. Nilai
0x2 menetapkan opsi ID Endpoint.
Untuk mengetahui informasi selengkapnya,
lihat Opsi Tunnel. |
8-bit |
| R | Flag kontrol opsi yang dicadangkan untuk penggunaan mendatang. Bit ini harus nol (0) saat transmisi dan harus diabaikan saat diterima. | 3-bit |
| Len | Panjang payload dalam penambahan 4 byte. Payload ID endpoint adalah 128 bit (16 byte), sehingga panjang untuk opsi ini ditetapkan ke 4. | 5-bit |
| Cookie endpoint | ID buram untuk titik pengambilan (NIC VM). | 128-bit |
ID Profil
Opsi ID profil mengidentifikasi grup profil keamanan duplikasi
yang diterapkan ke traffic. Opsi ini diidentifikasi oleh
class opsi 0x0132 (Google) dan jenis 3 (ID Profil). Data opsi adalah ID 64-bit yang sesuai dengan kolom data_path_id dalam grup profil keamanan. Perangkat target dapat menerapkan kebijakan keamanan berdasarkan ID grup profil.
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=03 |R|R|R| Len=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Profile ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Tabel berikut menjelaskan kolom opsi yang ditampilkan dalam diagram sebelumnya:
| Kolom | Deskripsi | Panjang kolom |
|---|---|---|
| Class opsi | Mengidentifikasi organisasi atau entity yang telah menentukan opsi.
Nilai 0x0132 menetapkan Google sebagai entity yang menentukan. |
16-bit |
| Jenis | Mengidentifikasi jenis opsi dalam class. Nilai
0x3 menetapkan opsi ID Profil.
Untuk mengetahui informasi selengkapnya,
lihat Opsi Tunnel. |
8-bit |
| R | Flag kontrol opsi yang dicadangkan untuk penggunaan mendatang. Bit ini harus nol saat transmisi dan harus diabaikan saat diterima. | 3-bit |
| Len | Panjang payload opsi dalam penambahan 4 byte. Payload ID profil adalah 64 bit (8 byte), sehingga panjang untuk opsi ini ditetapkan ke 2. | 5-bit |
| ID Profil | ID grup profil keamanan duplikasi. | 64-bit |
Format header GENEVE untuk Network Security Integration
Bagian ini menjelaskan format header GENEVE yang digunakan oleh layanan Network Security Integration.
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 yang ditampilkan dalam diagram sebelumnya:
| 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, mempertahankan semantik tanpa koneksi dari alamat Ethernet dan IP. Header ini juga memberikan entropi ke router yang melakukan multijalur biaya setara (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. Nilai ini sama untuk semua paket yang termasuk dalam satu aliran 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. |
Integrasi di luar band GENEVE
Bagian ini menjelaskan format header GENEVE yang digunakan oleh layanan Network Security Integration, khususnya integrasi di luar band. Integrasi di luar band menggunakan tunnel GENEVE untuk mengenkapsulasi dan mengirimkan paket yang diduplikasi. Paket ditujukan ke alamat IP virtual (VIP) load balancer internal collector dan dianotasi dengan Google Cloud-spesifik metadata khusus seperti cookie jaringan.
Opsi GENEVE Google Cloudkhusus yang digunakan dalam integrasi di luar band adalah cookie jaringan, cookie endpoint, dan ID profil. Untuk mengetahui informasi selengkapnya, lihat Google CloudOpsi GENEVE khusus.
Diagram berikut menunjukkan cara opsi GENEVE khusus digunakan dalam integrasi di luar band. Google Cloud
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=0| Opt len |O|C| Rsvd | Protocol type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual network identifier (VNI) = 0 | Rsvd. |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=01 |R|R|R| Len=1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network cookie |R|R|T|D|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=02 |R|R|R| Len=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Endpoint cookie +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=03 |R|R|R| Len=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Profile ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Integrasi dalam band GENEVE
Integrasi dalam band menggunakan tunnel GENEVE untuk mengenkapsulasi dan mengirimkan paket yang dicegat. Alamat IP virtual (VIP) load balancer internal produsen menerima paket yang dianotasi dengan Google Cloud-metadata khusus, seperti cookie jaringan.
Integrasi dalam band menggunakan opsi GENEVE khusus berikut: Google Cloud cookie jaringan, cookie endpoint, dan ID profil. Untuk mengetahui informasi selengkapnya, lihat Google CloudOpsi GENEVE khusus.
Integrasi dalam band mendukung penyisipan ulang paket ke endpoint asli menggunakan tunnel GENEVE dua arah logis, yang terdiri dari dua tunnel GENEVE satu arah. Setelah alat jaringan produsen mencegat dan memeriksa paket, alat tersebut dapat menghapus atau menyisipkan ulang paket. Untuk menyisipkan ulang paket, alat ini melakukan hal berikut:
- Mengenkapsulasi ulang paket menggunakan header GENEVE asli (opsi yang sama).
- Menukar alamat sumber dan tujuan di header IP luar.
- Memastikan checksum sudah benar.
Diagram berikut menunjukkan cara Google Cloud-opsi GENEVE khusus digunakan dalam integrasi dalam band.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=0| Opt len |O|C| Rsvd | Protocol type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual network identifier (VNI) = 0 | Rsvd. |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option Class=0x0132 (Google) | Type=01 |R|R|R| Len=1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network Cookie |R|R|T|D|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option Class=0x0132 (Google) | Type=02 |R|R|R| Len=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Endpoint Cookie +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option Class=0x0132 (Google) | Type=03 |R|R|R| Len=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Profile ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Persyaratan enkapsulasi dan MTU GENEVE
Unit transmisi maksimum (MTU) adalah ukuran paket IP terbesar dalam byte yang dapat masuk ke dalam frame Ethernet, termasuk header IP, header protokol Lapisan 4, dan data Lapisan 4. Untuk mengetahui informasi selengkapnya, lihat Unit transmisi maksimum.
Di Google Cloud jaringan, MTU yang diizinkan adalah 8896 byte. Namun, untuk Network Security Integration, 308 byte harus dipertahankan untuk overhead enkapsulasi GENEVE. Kebutuhan retensi ini memiliki implikasi untuk jaringan konsumen dan produsen:
MTU jaringan konsumen: MTU untuk jaringan konsumen tidak boleh lebih dari 8588 byte. Batas ini memastikan ada cukup ruang untuk overhead GENEVE tanpa melebihi MTU maksimum.
MTU jaringan produsen: MTU untuk jaringan produsen harus minimal 308 byte lebih banyak dari MTU jaringan konsumen. Alokasi ini mengakomodasi enkapsulasi GENEVE tambahan.
Jika tidak ada batas MTU yang cukup untuk mengakomodasi enkapsulasi GENEVE, paket dapat dihapus. Hal ini dapat terjadi di tingkat jaringan virtual atau di sistem operasi VM.
Langkah berikutnya
- Ringkasan Network Security Integration
- Ringkasan integrasi di luar band
- Memantau integrasi di luar band