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 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