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 di-extend.
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 apa pun, tetapi,
Integrasi Keamanan Jaringan hanya mengizinkan IPv4
(0x0800) atau IPv6 (0x86DD). |
16-bit |
| Virtual Network Identifier (VNI) | ID unik untuk elemen jaringan virtual. Integrasi Keamanan Jaringan 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 |
Opsi GENEVE khususGoogle Cloud
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 ekstensibilitas, karena opsi baru dapat ditambahkan tanpa mengganggu penerapan 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 penerapan perangkat Anda, parsing 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 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 28 bit pertamanya merepresentasikan 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 entitas yang telah menentukan opsi.
Nilai 0x0132 menetapkan Google sebagai entity yang menentukan. |
16-bit |
| Jenis | Mengidentifikasi jenis opsi dalam suatu kelas. Nilai
0x1 menunjukkan 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 kelipatan 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 penerapan di masa mendatang. Harus disetel ke nol (0) pada transmisi dan harus diabaikan saat diterima. | 2-bit |
| T | Menunjukkan pelepasan TLS untuk paket yang dienkapsulasi. Tidak digunakan. | 1-bit |
| D | Menunjukkan arah paket asli. Nol (0) menandakan ingress dan satu (1) menandakan paket egress pada virtual machine (VM) yang diduplikasi asli. | 1-bit |
ID endpoint
Opsi ID endpoint, yang juga dikenal sebagai "cookie endpoint", mengidentifikasi titik pengambilan secara unik, yang merupakan pengontrol antarmuka jaringan di VM Google Cloud. 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 entitas yang telah menentukan opsi.
Nilai 0x0132 menetapkan Google sebagai entity yang menentukan. |
16-bit |
| Jenis | Mengidentifikasi jenis opsi dalam suatu kelas. Nilai
0x2 menunjukkan 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 kelipatan 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 pencerminan
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 entitas yang telah menentukan opsi.
Nilai 0x0132 menetapkan Google sebagai entity yang menentukan. |
16-bit |
| Jenis | Mengidentifikasi jenis opsi dalam suatu kelas. Nilai
0x3 menunjukkan 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 kelipatan 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 pencerminan. | 64 bit |
Format header GENEVE untuk Network Security Integration
Bagian ini menjelaskan format header GENEVE yang digunakan oleh layanan Integrasi Keamanan Jaringan.
Header IPv4
Format paket GENEVE merangkum 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 RFC 0768 UDP mengenkapsulasi data, mempertahankan semantik ethernet dan alamat IP tanpa koneksi. Hal ini juga memberikan 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. |
Integrasi di luar band GENEVE
Bagian ini menjelaskan format header GENEVE yang digunakan oleh layanan Integrasi Keamanan Jaringan, 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 pengumpul dan diberi anotasi dengan metadata khusus Google Cloud, seperti cookie jaringan.
Opsi GENEVE khusus Google Cloudyang digunakan dalam integrasi di luar band adalah cookie jaringan, cookie endpoint, dan ID profil. Untuk mengetahui informasi selengkapnya, lihat Opsi GENEVE khususGoogle Cloud.
Diagram berikut menunjukkan cara opsi GENEVE khusus Google Clouddigunakan dalam integrasi di luar 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 +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 diberi anotasi dengan metadata khusus Google Cloud, seperti cookie jaringan.
Integrasi dalam band menggunakan opsi GENEVE khusus berikut: cookie jaringan, cookie endpoint, dan ID profil. Google CloudUntuk mengetahui informasi selengkapnya, lihat Opsi GENEVE khususGoogle Cloud.
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 mencegat dan memeriksa paket, perangkat jaringan produsen dapat menghapus atau menyisipkan kembali paket. Untuk menyuntikkan kembali paket, appliance akan melakukan hal berikut:
- Mengenkapsulasi ulang paket menggunakan header GENEVE asli (opsi yang sama).
- Menukar alamat sumber dan tujuan di header IP luar.
- Pastikan checksum sudah benar.
Diagram berikut menunjukkan cara opsi GENEVE khusus Google Cloud 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 GENEVE dan MTU
Unit transmisi maksimum (MTU) adalah ukuran paket IP terbesar yang mungkin muat dalam frame Ethernet, termasuk header IP, header protokol Lapisan 4, dan data Lapisan 4, dalam byte. Untuk mengetahui informasi selengkapnya, lihat Unit transmisi maksimum.
Di Google Cloud jaringan, MTU yang diizinkan adalah 8.896 byte. Namun, untuk Integrasi Keamanan Jaringan, 396 byte harus dipertahankan untuk overhead enkapsulasi GENEVE. Kebutuhan retensi ini memiliki implikasi bagi jaringan konsumen dan produsen:
MTU jaringan konsumen: MTU untuk jaringan konsumen tidak boleh lebih dari 8.500 byte. Batas ini memastikan bahwa ada cukup ruang untuk overhead GENEVE tanpa melampaui MTU maksimum.
MTU jaringan produsen: MTU untuk jaringan produsen harus minimal 396 byte lebih besar daripada MTU jaringan konsumen. Alokasi ini mengakomodasi enkapsulasi GENEVE tambahan.
Jika batas MTU tidak cukup untuk mengakomodasi enkapsulasi GENEVE, paket dapat dihapus. Hal ini dapat terjadi di tingkat jaringan virtual atau di sistem operasi VM.
Langkah berikutnya
- Ringkasan Integrasi Keamanan Jaringan
- Ringkasan integrasi di luar band
- Memantau integrasi di luar band