Trunking

Trunking

Layanan trunk jaringan mengizinkan beberapa jaringan untuk terhubung ke sebuah instance menggunakan NIC virtual tunggal (vNIC). Beberapa jaringan dapat disajikan ke sebuah instance dengan menghubungkannya ke port tunggal.

Operation (operasi)

Jaringan trunking terdiri dari service plug-in dan satu set driver yang mengelola trunk di berbagai driver mekanisme lapisan-2. Pengguna dapat membuat sebuah port, mengasosiasikannya dengan trunk, dan meluncurkan sebuah instance pada port tersebut. Pengguna dinamis dapat menghubungkan dan melepaskan jaringan tambahan tanpa mengganggu pengoperasian instance.

Setiap trunk memiliki port orangtua dan dapat memiliki sejumlah subports. Port orangtua adalah port yang bagasi terkait dengan. Pengguna membuat contoh dan menentukan port induk dari bagasi saat meluncurkan kasus melekat batang.

Jaringan disajikan oleh subport adalah jaringan dari port yang terkait. Ketika membuat subport, satu `` segmentasi-id`` mungkin diperlukan oleh driver. segmentasi-id mendefinisikan ID segmentasi dimana jaringan subport disajikan untuk instance. segmentasi-type mungkin diperlukan oleh driver tertentu seperti OVS, meskipun saat ini hanya vlan didukung sebagai segmentasi-type.

Catatan

Parameter segmentation-type dan segmentation-id adalah opsional dalam Networking API. Namun, semua driver pada rilis Newton mengharuskan kedua parameter yang akan diberikan ketika menambahkan subport ke trunk. Driver yang akan datang dapat dilaksanakan tanpa persyaratan ini.

segmentasi-type dan segmentasi-id ditentukan oleh pengguna pada subports yang sengaja dipisahkan dari segmentasi-type dan ID jaringan. Sebagai contoh, adalah mungkin untuk mengkonfigurasi layanan Networking dengan tenant_network_types = vxlan dan masih membuat subports dengan segmentation_type = vlan. Layanan Networking melakukan mapping ulang seperlunya.

Konfigurasi contoh

ML2 plug-in mendukung trunking dengan driver mekanisme sebagai berikut:

  • Open vSwitch (OVS)
  • Linux bridge (jembatan Linux)
  • Open Virtual Network (OVN)

Bila menggunakan segmentasi-type dari ` vlan``, driver OVS dan Linux bridge menyajikan jaringan port induk sebagai VLAN untagged dan semua subports sebagai VLAN taged.

Controller node

  • Dalam file neutron.conf, aktifkan trunk service plug-in:

    [DEFAULT]
    service_plugins = trunk
    

Melakukan verifikasi operasi layanan

  1. Dapatkan sumber kredensial proyek administrasi dan daftar ekstensi yang diaktifkan.
  2. Gunakan perintah openstack extension list --network untuk memverifikasi dimana ekstensi Trunk Extension dan Trunk port details diaktifkan.

Workflow (alur kerja)

Pada tingkat tinggi, langkah dasar untuk meluncurkan sebuah instance pada trunk adalah sebagai berikut:

  1. Buat jaringan dan subnet untuk trunk dan subports
  2. Buat trunk
  3. Tambahkan subport dan trunk
  4. Luncurkan instance pada trunk

Buat jaringan dan subnet untuk trunk dan subports

Buat jaringan yang tepat untuk trunk dan subports yang akan ditambahkan ke bagasi. Buat subnet pada jaringan ini untuk memastikan konektivitas lapisan-3 yang diinginkan di atas trunk.

Buat trunk

  • Buat port induk untuk trunk.

    $ openstack port create --network project-net-A trunk
    +-------------------+------------------------------------------------------------------------+
    | Field             | Value                                                                  |
    +-------------------+------------------------------------------------------------------------+
    | admin_state_up    | UP                                                                     |
    | binding_vif_type  | unbound                                                                |
    | binding_vnic_type | normal                                                                 |
    | fixed_ips         | ip_address='192.0.2.7',subnet_id='8b957198-d3cf-4953-8449-ad4e4dd712cc' |
    | id                | 73fb9d54-43a7-4bb1-a8dc-569e0e0a0a38                                   |
    | mac_address       | fa:16:3e:dd:c4:d1                                                      |
    | name              | trunk                                                                  |
    | network_id        | 1b47d3e7-cda5-48e4-b0c8-d20bd7e35f55                                   |
    +-------------------+------------------------------------------------------------------------+
    
  • Buat trunk menggunakan --parent-port untuk referensi port dari langkah sebelumnya:

    $ openstack network trunk create --parent-port 73fb9d54-43a7-4bb1-a8dc-569e0e0a0a38 trunk
    +-----------------+--------------------------------------+
    | Field           | Value                                |
    +-----------------+--------------------------------------+
    | admin_state_up  | UP                                   |
    | id              | fdf02fcb-1844-45f1-9d9b-e4c2f522c164 |
    | name            | trunk                                |
    | port_id         | 73fb9d54-43a7-4bb1-a8dc-569e0e0a0a38 |
    | sub_ports       |                                      |
    +-----------------+--------------------------------------+
    

Tambahkan subport dan trunk

Subports dapat ditambahkan ke sebuah trunk dengan dua cara: menciptakan trunk dengan subports atau menambahkan subports ke trunk yang ada.

  • Buat trunk dengan subports:

    Metode ini memerlukan pembuatan trunk dengan subports yang spesifik pada pembuatan trunk.

    $ openstack port create --network project-net-A trunk-parent
    +-------------------+------------------------------------------------------------------------+
    | Field             | Value                                                                  |
    +-------------------+------------------------------------------------------------------------+
    | admin_state_up    | UP                                                                     |
    | binding_vif_type  | unbound                                                                |
    | binding_vnic_type | normal                                                                 |
    | fixed_ips         | ip_address='192.0.2.7',subnet_id='8b957198-d3cf-4953-8449-ad4e4dd712cc' |
    | id                | 73fb9d54-43a7-4bb1-a8dc-569e0e0a0a38                                   |
    | mac_address       | fa:16:3e:dd:c4:d1                                                      |
    | name              | trunk-parent                                                           |
    | network_id        | 1b47d3e7-cda5-48e4-b0c8-d20bd7e35f55                                   |
    +-------------------+------------------------------------------------------------------------+
    
    $ openstack port create --network trunked-net subport1
    +-------------------+------------------------------------------------------------------------+
    | Field             | Value                                                                  |
    +-------------------+------------------------------------------------------------------------+
    | admin_state_up    | UP                                                                     |
    | binding_vif_type  | unbound                                                                |
    | binding_vnic_type | normal                                                                 |
    | fixed_ips         | ip_address='192.0.2.8',subnet_id='2a860e2c-922b-437b-a149-b269a8c9b120' |
    | id                | 91f9dde8-80a4-4506-b5da-c287feb8f5d8                                   |
    | mac_address       | fa:16:3e:ba:f0:4d                                                      |
    | name              | subport1                                                               |
    | network_id        | aef78ec5-16e3-4445-b82d-b2b98c6a86d9                                   |
    +-------------------+------------------------------------------------------------------------+
    
    $ openstack network trunk create \
      --parent-port 73fb9d54-43a7-4bb1-a8dc-569e0e0a0a38 \
      --subport port=91f9dde8-80a4-4506-b5da-c287feb8f5d8, \
      segmentation-type=vlan,segmentation-id=100
    +----------------+-------------------------------------------------------------------------------------------------+
    | Field          | Value                                                                                           |
    +----------------+-------------------------------------------------------------------------------------------------+
    | admin_state_up | UP                                                                                              |
    | id             | 61d8e620-fe3a-4d8f-b9e6-e1b0dea6d9e3                                                            |
    | name           | trunk                                                                                           |
    | port_id        | 73fb9d54-43a7-4bb1-a8dc-569e0e0a0a38                                                            |
    | sub_ports      | port_id='73fb9d54-43a7-4bb1-a8dc-569e0e0a0a38', segmentation_id='100', segmentation_type='vlan' |
    +----------------+-------------------------------------------------------------------------------------------------+
    
  • Tambahkan subports ke trunk yang sudah ada:

    Metode ini memerlukan pembuatan trunk, kemudian menambahkan subports ke trunk setelah trunk dibuat.

    $ openstack network trunk set --subport \
      port=91f9dde8-80a4-4506-b5da-c287feb8f5d8, \
      segmentation-type=vlan, \
      segmentation-id=100 61d8e620-fe3a-4d8f-b9e6-e1b0dea6d9e3
    

    Catatan

    Perintah ini tidak memberikan keluaran (output).

    $ openstack network trunk show 61d8e620-fe3a-4d8f-b9e6-e1b0dea6d9e3
    +----------------+-------------------------------------------------------------------------------------------------+
    | Field          | Value                                                                                           |
    +----------------+-------------------------------------------------------------------------------------------------+
    | admin_state_up | UP                                                                                              |
    | id             | 61d8e620-fe3a-4d8f-b9e6-e1b0dea6d9e3                                                            |
    | name           | trunk                                                                                           |
    | port_id        | 73fb9d54-43a7-4bb1-a8dc-569e0e0a0a38                                                            |
    | sub_ports      | port_id='73fb9d54-43a7-4bb1-a8dc-569e0e0a0a38', segmentation_id='100', segmentation_type='vlan' |
    +----------------+-------------------------------------------------------------------------------------------------+
    

Luncurkan instance pada trunk

  • Tampilkan detail trunk untuk mendapatkan port_id dari trunk.

    $ openstack network trunk show 61d8e620-fe3a-4d8f-b9e6-e1b0dea6d9e3
    +----------------+--------------------------------------+
    | Field          | Value                                |
    +----------------+--------------------------------------+
    | admin_state_up | UP                                   |
    | id             | 61d8e620-fe3a-4d8f-b9e6-e1b0dea6d9e3 |
    | name           | trunk                                |
    | port_id        | 73fb9d54-43a7-4bb1-a8dc-569e0e0a0a38 |
    | sub_ports      |                                      |
    +----------------+--------------------------------------+
    
  • Luncurkan instance dengan menentukan port-id menggunakan nilai port_id dari rincian trunk. Peluncuran sebuah instance pada subport tidak didukung.

Penggunaan trunk dan subport dalam sebuah instance

Ketika mengkonfigurasi instance untuk menggunakan subport, pastikan bahwa antarmuka pada instance diatur untuk menggunakan alamat MAC yang ditugaskan (assigned) ke port oleh layanan Networking. Instance tidak menyadarai perubahan yang dibuat trunk setelah mereka aktif. Misalnya, ketika subport dengan segmentasi-type dari vlan ditambahkan ke trunk, setiap operasi akan menspesifikasi untuk sistem operasi instance yang mengizinkan instance mengirim dan menerima lalu lintas pada VLAN baru harus ditangani di luar layanan Networking.

Ketika pembuatan subports, alamat MAC dari port tua induk dapat diatur pada subport tersebut. Hal ini akan mengizinkan subinterfaces VLAN dalam sebuah instance yang diluncurkan pada trunk yang akan dikonfigurasi tanpa secara eksplisit menetapkan alamat MAC. Meskipun alamat MAC yang unik dapat digunakan untuk subports, ini dapat menimbulkan masalah dengan perlindungan spoof ARP dan driver firewall OVS asli (native). Jika driver firewall OVS asli akan digunakan, kami menyarankan bahwa alamat MAC dari port induk akan digunakan kembali pada semua subports.

Status Trunk

  • ACTIVE

    Trunk menjadi ACTIVE ketika kedua sumber logis dan fisik telah diciptakan. Ini berarti bahwa semua operasi dalam layanan Networking dan Compute telah selesai dan trunk siap digunakan.

  • DOWN

    Sebuah trunk menjadi `` DOWN`` ketika trunk yang pertama kali dibuat tanpa sebuah instance yang diluncurkan di atasnya, atau ketika instance terkait dengan trunk telah dihapus.

  • DEGRADED

    Sebuah trunk dapat berada dalam keadaan DEGRADED ketika kegagalan sementara selama proses pengadaan terjadi. Degraded ini termasuk situasi dimana sebuah subport menambah atau menghapus kegagalan operasi. Ketika dalam keadaan rusak, trunk masih dapat digunakan dan beberapa subports mungkin masih dapat digunakan juga. Operasi yang menyebabkan trunk beralih ke keadaan DEGRADED dapat dicoba kembali untuk memperbaiki kegagalan sementara dan memindahkan trunk menjadi keadaan ACTIVE.

  • ERROR

    Sebuah trunk dalam keadaan ERROR jika permintaan mengarah ke konflik atau kesalahan yang tidak dapat diperbaiki dengan permintaan ulang. Keadaan ERROR dapat ditemui jika jaringan tidak kompatibel dengan konfigurasi trunk atau proses pengikatan yang mengarah ke kegagalan terus-menerus. Ketika trunk dalam keadaan ERROR, trunk itu harus dibawa ke keadaan sehat (ACTIVE), atau permintaan untuk penambahan subports akan ditolak.

  • BUILD

    Sebuah trunk berada dalam keadaan BUILD sedangkan sumber daya terkait dengan trunk berada dalam proses yang ditetapkan. Setelah trunk dan semua subports telah ditetapkan berhasil, transisi trunk akan berada ke ACTIVE. Jika ada kegagalan parsial, transisi trank akan berada ke DEGRADED.

    Ketika admin_state diatur ke DOWN, pengguna akan diblokir untuk melakukan operasi di trunk. admin_state diatur oleh pengguna dan tidak boleh digunakan untuk memantau kesehatan trunk.

Keterbatasan dan masalah

  • Lihat bugs untuk informasi lebih lanjut.
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.