Contoh arsitektur ini menambah contoh pengerahan self-service dengan mekanisme ketersediaan tinggi Distributed Virtual Router (DVR) yang menyediakan konektivitas antara jaringan self-service dan jaringan provider pada node komputasi bukannya pada node jaringan untuk skenario tertentu. Untuk instance dengan alamat IPv4 mengambang, routing antara jaringan self-service dan jaringan provider berada sepenuhnya pada node komputasi untuk menghilangkan titik tunggal kegagalan (single point of failure) dan masalah kinerja dengan node jaringan. Routing juga berada sepenuhnya pada node komputasi untuk instance dengan alamat IPv4 tetap atau mengambang dengan menggunakan jaringan self-service dari router virtual terdistribusikan yang sama. Namun, instance dengan alamat IP tetap masih mengandalkan node jaringan untuk routing dan layanan SNAT antara jaringan self-service dan provider.
Pertimbangkan atribut berikut mekanisme ketersediaan tinggi ini untuk menentukan kepraktisan di lingkungan Anda:
Memodifikasi node komputasi dengan komponen-komponen berikut:
Catatan
Pertimbangkan untuk menambahkan setidaknya satu node jaringan tambahan untuk menyediakan ketersediaan tinggi untuk instance dengan alamat IP tetap. Lihat lihat :ref: config-dvr-SNAT-ha-ovs untuk informasi lebih lanjut.
Gambar berikut menunjukkan komponen dan konektivitas untuk satu jaringan self-service dan satu jaringan tanpa tanda (flat). Dalam kasus ini, instance berada pada node komputasi yang sama sebagai agen DHCP untuk jaringan. Jika agen DHCP berada pada node komputasi lain, yang terakhir hanya berisi namespace DHCP dengan port pada jembatan integrasi OVS.
Menggunakan contoh konfigurasi berikut sebagai template untuk menambahkan dukungan untuk ketersediaan tinggi menggunakan DVR di lingkungan operasional yang ada yang mendukung jaringan self-service.
Dalam file neutron.conf
:
Aktifkan routing terdistribusikan dengan default untuk semua router.
[DEFAULT]
router_distributed = True
Restart layanan berikut:
Dalam file openswitch_agent.ini
, aktifkan didistribusikan routing.
[DEFAULT]
enable_distributed_routing = True
Dalam file l3_agent.ini
, lakukan konfigurasi agen lapisan-3 untuk memberikan layanan SNAT
[DEFAULT]
agent_mode = dvr_snat
Catatan
Opsi external_network_bridge
sengaja tidak mengandung nilai.
Restart layanan berikut:
Instal agen lapisan-3 layanan Networking
Dalam file openswitch_agent.ini
, aktifkan didistribusikan routing.
[DEFAULT]
enable_distributed_routing = True
Dalam file l3_agent.ini
, lakukan konfigurasi layer-3 agent.
[DEFAULT]
interface_driver = openvswitch
external_network_bridge =
agent_mode = dvr
Catatan
Opsi external_network_bridge
sengaja tidak mengandung nilai.
Restart layanan berikut:
Dapatkan sumber kredensial proyek administrasi.
Memverifikasi keberadaan dan operasi dari agen.
$ openstack network agent list
+--------------------------------------+--------------------+----------+-------------------+-------+-------+---------------------------+
| ID | Agent Type | Host | Availability Zone | Alive | State | Binary |
+--------------------------------------+--------------------+----------+-------------------+-------+-------+---------------------------+
| 05d980f2-a4fc-4815-91e7-a7f7e118c0db | L3 agent | compute1 | nova | True | UP | neutron-l3-agent |
| 1236bbcb-e0ba-48a9-80fc-81202ca4fa51 | Metadata agent | compute2 | | True | UP | neutron-metadata-agent |
| 2a2e9a90-51b8-4163-a7d6-3e199ba2374b | L3 agent | compute2 | nova | True | UP | neutron-l3-agent |
| 457d6898-b373-4bb3-b41f-59345dcfb5c5 | Open vSwitch agent | compute2 | | True | UP | neutron-openvswitch-agent |
| 513caa68-0391-4e53-a530-082e2c23e819 | Linux bridge agent | compute1 | | True | UP | neutron-linuxbridge-agent |
| 71f15e84-bc47-4c2a-b9fb-317840b2d753 | DHCP agent | compute2 | nova | True | UP | neutron-dhcp-agent |
| 8805b962-de95-4e40-bdc2-7a0add7521e8 | L3 agent | network1 | nova | True | UP | neutron-l3-agent |
| a33cac5a-0266-48f6-9cac-4cef4f8b0358 | Open vSwitch agent | network1 | | True | UP | neutron-openvswitch-agent |
| a6c69690-e7f7-4e56-9831-1282753e5007 | Metadata agent | compute1 | | True | UP | neutron-metadata-agent |
| af11f22f-a9f4-404f-9fd8-cd7ad55c0f68 | DHCP agent | compute1 | nova | True | UP | neutron-dhcp-agent |
| bcfc977b-ec0e-4ba9-be62-9489b4b0e6f1 | Open vSwitch agent | compute1 | | True | UP | neutron-openvswitch-agent |
+--------------------------------------+--------------------+----------+-------------------+-------+-------+---------------------------+
Serupa dengan contoh pengerahan self-service, konfigurasi ini mendukung beberapa jaringan self-service VXLAN. Setelah mengaktifkan ketersediaan tinggi, semua router tambahan menggunakan routing terdistribusikan. Prosedur berikut membuat jaringan self-service tambahan dan router. Layanan Networking juga mendukung penambahan routing terdistribusikan untuk router yang ada.
Dapatkan sumber kredensial proyek (non-administratif) biasa.
Buat jaringan self-service.
$ openstack network create selfservice2
+-------------------------+--------------+
| Field | Value |
+-------------------------+--------------+
| admin_state_up | UP |
| mtu | 1450 |
| name | selfservice2 |
| port_security_enabled | True |
| router:external | Internal |
| shared | False |
| status | ACTIVE |
+-------------------------+--------------+
Buat subnet IPv4 pada jaringan self-service.
$ openstack subnet create --subnet-range 192.0.2.0/24 \
--network selfservice2 --dns-nameserver 8.8.4.4 selfservice2-v4
+-------------------+---------------------------+
| Field | Value |
+-------------------+---------------------------+
| allocation_pools | 192.0.2.2-192.0.2.254 |
| cidr | 192.0.2.0/24 |
| dns_nameservers | 8.8.4.4 |
| enable_dhcp | True |
| gateway_ip | 192.0.2.1 |
| ip_version | 4 |
| name | selfservice2-v4 |
+-------------------+---------------------------+
Buat subnet IPv6 pada jaringan self-service.
$ openstack subnet create --subnet-range fd00:192:0:2::/64 --ip-version 6 \
--ipv6-ra-mode slaac --ipv6-address-mode slaac --network selfservice2 \
--dns-nameserver 2001:4860:4860::8844 selfservice2-v6
+-------------------+------------------------------------------------------+
| Field | Value |
+-------------------+------------------------------------------------------+
| allocation_pools | fd00:192:0:2::2-fd00:192:0:2:ffff:ffff:ffff:ffff |
| cidr | fd00:192:0:2::/64 |
| dns_nameservers | 2001:4860:4860::8844 |
| enable_dhcp | True |
| gateway_ip | fd00:192:0:2::1 |
| ip_version | 6 |
| ipv6_address_mode | slaac |
| ipv6_ra_mode | slaac |
| name | selfservice2-v6 |
+-------------------+------------------------------------------------------+
Buat router.
$ openstack router create router2
+-----------------------+---------+
| Field | Value |
+-----------------------+---------+
| admin_state_up | UP |
| name | router2 |
| status | ACTIVE |
+-----------------------+---------+
Tambahkan subnet IPv4 dan IPv6 sebagai interface pada router.
$ openstack router add subnet router2 selfservice2-v4
$ openstack router add subnet router2 selfservice2-v6
Catatan
Perintah ini tidak memberikan output.
Tambahkan jaringan provider sebagai gateway pada router.
$ openstack router set router2 --external-gateway provider1
Dapatkan sumber kredensial proyek administrasi.
Lakukan verifikasi routing terdistribusikan pada router.
$ openstack router show router2
+-------------------------+---------+
| Field | Value |
+-------------------------+---------+
| admin_state_up | UP |
| distributed | True |
| ha | False |
| name | router2 |
| status | ACTIVE |
+-------------------------+---------+
Pada setiap node komputasi, lakukan verifikasi penciptaan namespace qrouter
dengan ID yang sama.
Compute node 1 (node komputasi 1):
# ip netns
qrouter-78d2f628-137c-4f26-a257-25fc20f203c1
Compute node 2 (node komputasi 2):
# ip netns
qrouter-78d2f628-137c-4f26-a257-25fc20f203c1
Pada node jaringan, lakukan verifikasi penciptaan snat
dan namespace qrouter
dengan ID yang sama.
# ip netns
snat-78d2f628-137c-4f26-a257-25fc20f203c1
qrouter-78d2f628-137c-4f26-a257-25fc20f203c1
Catatan
Namespace untuk router 1 dari Open vSwitch: Jaringan self-service juga harus muncul di jaringan node 1 karena penciptaan sebelum mengaktifkan routing terdistribusikan.
Luncurkan instance dengan sebuah antarmuka pada jaringan self-service tambahan. Misalnya, image CirrOS menggunakan flavor ID 1.
$ openstack server create --flavor 1 --image cirros --nic net-id=NETWORK_ID selfservice-instance2
Gantilah NETWORK_ID
dengan ID dari jaringan self-service tambahan
Tentukan alamat IPv4 dan IPv6 instance.
$ openstack server list
+--------------------------------------+-----------------------+--------+---------------------------------------------------------------------------+
| ID | Name | Status | Networks |
+--------------------------------------+-----------------------+--------+---------------------------------------------------------------------------+
| bde64b00-77ae-41b9-b19a-cd8e378d9f8b | selfservice-instance2 | ACTIVE | selfservice2=fd00:192:0:2:f816:3eff:fe71:e93e, 192.0.2.4 |
+--------------------------------------+-----------------------+--------+---------------------------------------------------------------------------+
Buat alamat IPv4 mengambang di jaringan provider.
$ openstack floating ip create provider1
+-------------+--------------------------------------+
| Field | Value |
+-------------+--------------------------------------+
| fixed_ip | None |
| id | 0174056a-fa56-4403-b1ea-b5151a31191f |
| instance_id | None |
| ip | 203.0.113.17 |
| pool | provider1 |
+-------------+--------------------------------------+
Lakukan asosiasi alamat IPv4 mengambang dengan instance.
$ openstack server add floating ip selfservice-instance2 203.0.113.17
Catatan
Perintah ini tidak memberikan output.
Pada node komputasi yang berisi instance, lakukan verifikasi penciptaan namespace fip
dengan ID yang sama dengan jaringan provider.
# ip netns
fip-4bfa3075-b4b2-4f7d-b88e-df1113942d43
Bagian berikut menjelaskan arus lalu lintas jaringan di beberapa skenario umum. Lalu lintas jaringan north-south berjalan antara instance dan jaringan eksternal seperti Internet. Lalu lintas jaringan *east-barat * berjalan antara instance pada jaringan yang sama atau berbeda. Dalam semua skenario, infrastruktur jaringan fisik menangani switching dan routing antara jaringan provider dan jaringan eksternal seperti Internet. Setiap kasus merujuk satu atau lebih dari komponen berikut:
Bagian ini hanya berisi skenario aliran yang menguntungkan dari routing virtual yang didistribusikan atau yang berbeda dari operasi konvensional. Untuk skenario aliran lainnya, lihat Arus lalu lintas jaringan.
Mirip dengan North-south scenario 1: Instance dengan alamat IP tetap, kecuali namespace router pada node jaringan menjadi namespace SNAT. Node jaringan masih mengandung namespace router, tetapi node jaringan ini melayani tanpa tujuan dalam hal ini.
Untuk instance dengan alamat IPv4 mengambang menggunakan jaringan self-service pada router terdistribusikan, komputasi node yang berisi instance melakukan SNAT pada lalu lintas utara-selatan lewat dari instance ke jaringan eksternal seperti Internet dan DNAT di lalu lintas utara-selatan yang lewat dari jaringan eksternal untuk instance. Alamat IP mengambang dan NAT tidak berlaku untuk IPv6. Dengan demikian, node jaringan me-rute lalu lintas IPv6 dalam skenario ini, lalu lintas utara-selatan yang melewati antara instance dan jaringan eksternal seperti Internet.
Langkah berikut melibatkan node komputasi:
phy-br-provider
port (4) meneruskan paket ke OVS integration bridge int-br-provider
port (5).veth
.veth
.Catatan
Egress traffic mengikuti langkah-langkah serupa secara terbalik, kecuali SNAT mengubah alamat IPv4 sumber paket ke alamat IPv4 mengambang.
Instance dengan alamat IPv4/IPv6 tetap atau alamat IPv4 mengambang pada node komputasi yang sama berkomunikasi melalui router pada node komputasi. Instance pada node komputasi yang berbeda berkomunikasi melalui sebuah instance dari router pada setiap node komputasi.
Catatan
Skenario ini menempatkan instance pada node komputasi yang berbeda untuk menunjukkan situasi yang paling kompleks.
Langkah berikut melibatkan komputasi node 1:
veth
.veth
.patch-tun
port (10) meneruskan paket ke OVS tunnel bridge patch-int
port (11).Langkah berikut melibatkan komputasi node 2:
patch-int
patch port (17) meneruskan paket ke OVS integration bridge patch-tun
patch port (18).veth
.veth
.Catatan
Routing antara jaringan self-service terjadi pada node komputasi yang berisi instance yang sedang mengirim paket. Dalam skenario ini, routing terjadi pada komputasi node 1 untuk paket dari instance 1 ke instance 2 dan pada komputasi node 2 untuk paket dari instance 2 ke instance 1.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.