Contoh arsitektur ini menambah Open vSwitch: Jaringan provider untuk mendukung jumlah hampir tak terbatas dari jaringan virtual sepenuhnya. Meskipun layanan Networking mendukung jaringan self-service VLAN, contoh ini berfokus pada jaringan self-service VXLAN. Untuk informasi lebih lanjut tentang jaringan self-service, lihat Jaringan self-service.
Tambahkan satu node jaringan dengan komponen-komponen berikut:
Memodifikasi node komputasi dengan komponen-komponen berikut:
Catatan
Anda dapat menjaga agen DHCP dan metadata pada setiap node komputasi atau memindahkan mereka ke node jaringan.
Gambar berikut menunjukkan komponen dan konektivitas untuk satu jaringan self-service dan satu jaringan provider 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 dan dengan port di jembatan integrasi OVS.
Gunakan contoh konfigurasi berikut sebagai template untuk menambahkan dukungan untuk jaringan self-service untuk lingkungan operasional yang ada yang mendukung jaringan provider.
Dalam file neutron.conf
:
Aktifkan routing dan memungkinkan rentang alamat IP tumpang tindih.
[DEFAULT]
service_plugins = router
allow_overlapping_ips = True
Dalam file ml2_conf.ini
:
Tambahkan vxlan
untuk tipe driver dan tipe jaringan proyek.
[ml2]
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
Aktifkan driver mekanisme populasi lapisan-2
[ml2]
mechanism_drivers = openvswitch,l2population
Lakukan konfigurasi kisaran VXLAN network ID (VNI).
[ml2_type_vxlan]
vni_ranges = VNI_START:VNI_END
Gantilah VNI_START
dan VNI_END
dengan nilai-nilai numerik yang sesuai.
Restart layanan berikut:
Install OVS layer-2 agent dan layer-3 agent layanan Networking.
Instal OVS.
Dalam file neutron.conf
, lakukan konfigurasi opsi umum:
[DEFAULT]
core_plugin = ml2
auth_strategy = keystone
[database]
# ...
[keystone_authtoken]
# ...
[nova]
# ...
[agent]
# ...
Lihat Installation Tutorials and Guides dan Configuration Reference untuk rilis OpenStack Anda untuk mendapatkan konfigurasi tambahan yang sesuai untuk bagian [DEFAULT]
, [database]
, [keystone_authtoken]
, [nova]
, and [agent]
.
Mulai layanan berikut:
Buat OVS provider bridge br-provider
:
$ ovs-vsctl add-br br-provider
Dalam file openvswitch_agent.ini
, lakukan konfigurasi layer-2 agent.
[ovs]
bridge_mappings = provider:br-provider
local_ip = OVERLAY_INTERFACE_IP_ADDRESS
[agent]
tunnel_types = vxlan
l2_population = True
[securitygroup]
firewall_driver = iptables_hybrid
Gantilah OVERLAY_INTERFACE_IP_ADDRESS
dengan alamat IP dari antarmuka yang menangani VXLAN overlay untuk jaringan self-service.
Dalam file l3_agent.ini
, lakukan konfigurasi layer-3 agent.
[DEFAULT]
interface_driver = openvswitch
external_network_bridge =
Catatan
Opsi external_network_bridge
sengaja tidak mengandung nilai.
Mulai layanan berikut:
Dalam file openvswitch_agent.ini
, aktifkan dukungan VXLAN termasuk layer-2 population.
[ovs]
local_ip = OVERLAY_INTERFACE_IP_ADDRESS
[agent]
tunnel_types = vxlan
l2_population = True
Gantilah OVERLAY_INTERFACE_IP_ADDRESS
dengan alamat IP dari antarmuka yang menangani VXLAN overlay untuk jaringan self-service.
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 |
+--------------------------------------+--------------------+----------+-------------------+-------+-------+---------------------------+
| 1236bbcb-e0ba-48a9-80fc-81202ca4fa51 | Metadata agent | compute2 | | True | UP | neutron-metadata-agent |
| 457d6898-b373-4bb3-b41f-59345dcfb5c5 | Open vSwitch agent | compute2 | | True | UP | neutron-openvswitch-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 |
+--------------------------------------+--------------------+----------+-------------------+-------+-------+---------------------------+
Konfigurasi mendukung beberapa jaringan self-service VXLAN. Untuk mempermudah, prosedur berikut menciptakan satu jaringan self-service dan router dengan gateway di jaringan provider datar (flat). Router menggunakan NAT untuk lalu lintas jaringan IPv4 dan langsung me-rute lalu lintas jaringan IPv6.
Catatan
Konektivitas IPv6 dengan jaringan self-service sering membutuhkan penambahan rute statis untuk node dan infrastruktur jaringan fisik.
Dapatkan sumber kredensial proyek administrasi.
Lakukan update jaringan provider untuk mendukung konektivitas eksternal untuk jaringan self-service.
$ openstack network set --external provider1
Catatan
Perintah ini tidak memberikan output.
Dapatkan sumber kredensial proyek (non-administratif) biasa.
Buat jaringan self-service.
$ openstack network create selfservice1
+-------------------------+--------------+
| Field | Value |
+-------------------------+--------------+
| admin_state_up | UP |
| mtu | 1450 |
| name | selfservice1 |
| 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 selfservice1 --dns-nameserver 8.8.4.4 selfservice1-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 | selfservice1-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 selfservice1 \
--dns-nameserver 2001:4860:4860::8844 selfservice1-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 | selfservice1-v6 |
+-------------------+------------------------------------------------------+
Buat router.
$ openstack router create router1
+-----------------------+---------+
| Field | Value |
+-----------------------+---------+
| admin_state_up | UP |
| name | router1 |
| status | ACTIVE |
+-----------------------+---------+
Tambahkan subnet IPv4 dan IPv6 sebagai interface pada router.
$ openstack router add subnet router1 selfservice1-v4
$ openstack router add subnet router1 selfservice1-v6
Catatan
Perintah ini tidak memberikan output.
Tambahkan jaringan provider sebagai gateway pada router.
$ neutron router-gateway-set router1 provider1
Set gateway for router router1
Pada setiap node komputasi, lakukan verifikasi penciptaan namespace qdhcp
kedua.
# ip netns
qdhcp-8b868082-e312-4110-8627-298109d4401c
qdhcp-8fbc13ca-cfe0-4b8a-993b-e33f37ba66d1
Pada node jaringan, lakukan verifikasi penciptaan namespace qrouter
.
# ip netns
qrouter-17db2a15-e024-46d0-9250-4cd4d336a2cc
Dapatkan sumber kredensial proyek (non-administratif) biasa.
Buat aturan kelompok keamanan yang sesuai untuk mengizinkan ping
dan akses SSH instance menggunakan jaringan.
$ openstack security group rule create --proto icmp default
+------------------+-----------+
| Field | Value |
+------------------+-----------+
| direction | ingress |
| ethertype | IPv4 |
| protocol | icmp |
| remote_ip_prefix | 0.0.0.0/0 |
+------------------+-----------+
$ openstack security group rule create --ethertype IPv6 --proto ipv6-icmp default
+-----------+-----------+
| Field | Value |
+-----------+-----------+
| direction | ingress |
| ethertype | IPv6 |
| protocol | ipv6-icmp |
+-----------+-----------+
$ openstack security group rule create --proto tcp --dst-port 22 default
+------------------+-----------+
| Field | Value |
+------------------+-----------+
| direction | ingress |
| ethertype | IPv4 |
| port_range_max | 22 |
| port_range_min | 22 |
| protocol | tcp |
| remote_ip_prefix | 0.0.0.0/0 |
+------------------+-----------+
$ openstack security group rule create --ethertype IPv6 --proto tcp --dst-port 22 default
+------------------+-----------+
| Field | Value |
+------------------+-----------+
| direction | ingress |
| ethertype | IPv6 |
| port_range_max | 22 |
| port_range_min | 22 |
| protocol | tcp |
+------------------+-----------+
Luncurkan sebuah instance dengan sebuah antarmuka di jaringan self-service. Misalnya, image CirrOS menggunakan flavor ID 1.
$ openstack server create --flavor 1 --image cirros --nic net-id=NETWORK_ID selfservice-instance1
Ganti NETWORK_ID
dengan ID jaringan self-service.
Tentukan alamat IPv4 dan IPv6 instance.
$ openstack server list
+--------------------------------------+-----------------------+--------+--------------------------------------------------------------+
| ID | Name | Status | Networks |
+--------------------------------------+-----------------------+--------+--------------------------------------------------------------+
| c055cdb0-ebb4-4d65-957c-35cbdbd59306 | selfservice-instance1 | ACTIVE | selfservice1=192.0.2.4, fd00:192:0:2:f816:3eff:fe30:9cb0 |
+--------------------------------------+-----------------------+--------+--------------------------------------------------------------+
Peringatan
Alamat IPv4 berada dalam kisaran alamat IP pribadi (RFC1918). Dengan demikian, layanan Networking melakukan penterjemahan alamat jaringan sumber (SNAT) instance untuk mengakses jaringan eksternal seperti Internet. Akses dari jaringan eksternal seperti Internet untuk instance memerlukan alamat IPv4 mengambang. Layanan Networking melakukan penterjemahan alamat jaringan tujuan (DNAT) dari alamat IPv4 mengambang ke alamat IPv4 instance pada jaringan self-service . Di sisi lain, arsitektur layanan Networking untuk IPv6 tidak memiliki dukungan untuk NAT karena ruang alamat lebih besar (larger address space) secara nyata dan kompleksitas NAT. Dengan demikian, alamat IP mengambang tidak ada untuk IPv6 dan layanan Networking hanya melakukan routing untuk subnet IPv6 pada jaringan self-service. Dengan kata lain, Anda tidak dapat mengandalkan NAT untuk “hide” instance dengan alamat IPv4 dan IPv6 atau hanya alamat IPv6 dan harus menerapkan secara benar kelompok keamanan untuk membatasi akses.
Pada controller node atau host dengan akses ke jaringan provider, lakukan ping
alamat IPv6 dari instance.
$ ping6 -c 4 fd00:192:0:2:f816:3eff:fe30:9cb0
PING fd00:192:0:2:f816:3eff:fe30:9cb0(fd00:192:0:2:f816:3eff:fe30:9cb0) 56 data bytes
64 bytes from fd00:192:0:2:f816:3eff:fe30:9cb0: icmp_seq=1 ttl=63 time=2.08 ms
64 bytes from fd00:192:0:2:f816:3eff:fe30:9cb0: icmp_seq=2 ttl=63 time=1.88 ms
64 bytes from fd00:192:0:2:f816:3eff:fe30:9cb0: icmp_seq=3 ttl=63 time=1.55 ms
64 bytes from fd00:192:0:2:f816:3eff:fe30:9cb0: icmp_seq=4 ttl=63 time=1.62 ms
--- fd00:192:0:2:f816:3eff:fe30:9cb0 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 1.557/1.788/2.085/0.217 ms
Secara opsional, aktifkan akses IPv4 dari jaringan eksternal seperti Internet untuk instance.
Buat alamat IPv4 mengambang di jaringan provider.
$ openstack floating ip create provider1
+-------------+--------------------------------------+
| Field | Value |
+-------------+--------------------------------------+
| fixed_ip | None |
| id | 22a1b088-5c9b-43b4-97f3-970ce5df77f2 |
| instance_id | None |
| ip | 203.0.113.16 |
| pool | provider1 |
+-------------+--------------------------------------+
Lakukan asosiasi alamat IPv4 mengambang dengan instance.
$ openstack server add floating ip selfservice-instance1 203.0.113.16
Catatan
Perintah ini tidak memberikan output.
Pada controller node atau host dengan akses ke jaringan provider, lakukan ping
alamat IPv4 dari instance.
$ ping -c 4 203.0.113.16
PING 203.0.113.16 (203.0.113.16) 56(84) bytes of data.
64 bytes from 203.0.113.16: icmp_seq=1 ttl=63 time=3.41 ms
64 bytes from 203.0.113.16: icmp_seq=2 ttl=63 time=1.67 ms
64 bytes from 203.0.113.16: icmp_seq=3 ttl=63 time=1.47 ms
64 bytes from 203.0.113.16: icmp_seq=4 ttl=63 time=1.59 ms
--- 203.0.113.16 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 1.473/2.040/3.414/0.798 ms
Dapatkan akses ke instance.
Lakukan uji konektivitas IPv4 dan IPv6 ke Internet atau jaringan eksternal lainnya.
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:
Untuk instance dengan alamat IPv4 tetap, node jaringan melakukan SNAT pada lalu lintas utara-selatan melewati dari self-service untuk jaringan eksternal seperti Internet. Untuk instance dengan alamat IPv6 tetap, node jaringan melakukan routing yang konvensional lalu lintas antara self-service dan jaringan eksternal.
Langkah berikut melibatkan komputasi node 1:
veth
.veth
.Langkah berikut melibatkan node jaringan:
int-br-provider
patch port (19) meneruskan paket ke OVS provider bridge phy-br-provider
patch port (20).Catatan
Lalu lintas balik mengikuti langkah yang sama secara terbalik. Namun, tanpa alamat IPv4 mengambang, host pada provider atau eksternal jaringan tidak dapat berasal koneksi untuk instance pada jaringan self-service.
Untuk instance dengan alamat IPv4 mengambang, node jaringan melakukan SNAT pada lalu lintas utara-selatan lewat dari instance ke jaringan eksternal seperti Internet dan DNAT pada lalu lintas utara-selatan 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.
Langkah berikut melibatkan node jaringan:
phy-br-provider
port (4) meneruskan paket ke OVS integration bridge int-br-provider
port (5).patch-tun
patch port (10) meneruskan paket ke OVS tunnel bridge patch-int
patch port (11).Langkah berikut melibatkan node komputasi:
patch-int
patch port (17) meneruskan paket ke OVS integration bridge patch-tun
patch port (18).veth
.veth
.Catatan
Egress instance traffic mengalir mirip dengan north-south scenario 1, kecuali SNAT perubahan alamat IP sumber dari paket ke alamat IPv4 mengambang bukannya alamat IP router pada jaringan provider.
Instance dengan alamat IPv4/IPv6 tetap atau alamat IPv4 mengambang pada jaringan yang sama berkomunikasi secara langsung antara node komputasi yang berisi instance.
Secara default, protokol VXLAN tidak memiliki pengetahuan tentang lokasi target dan menggunakan multicast untuk menemukan itu. Setelah ada penemuan, protokol menyimpan lokasi di database forwarding lokal. Dalam pengerahan besar, proses penemuan dapat menghasilkan sejumlah besar jaringan dimana semua node harus memproses. Untuk menghilangkan terakhir ini dan umumnya meningkatkan efisiensi, layanan Networking meliputi layer-2 population mechanism driver yang secara otomatis mengisi database forwarding untuk antarmuka VXLAN. Contoh konfigurasi mengaktifkan driver ini. Untuk informasi lebih lanjut, lihat: ref: config-plugin-ml2.
Langkah berikut melibatkan komputasi node 1:
veth
.veth
.Langkah berikut melibatkan komputasi node 2:
patch-int
patch port (13) meneruskan paket ke OVS integration bridge patch-tun
patch port (14).veth
.veth
.Catatan
Lalu lintas balik mengikuti langkah yang sama secara terbalik.
Instance menggunakan alamat IPv4/IPv6 tetap atau alamat IPv4 mengambang berkomunikasi melalui router pada node jaringan. Jaringan self-service harus berada pada router yang sama.
Catatan
Kedua instance berada pada node komputasi yang sama untuk menggambarkan bagaimana VXLAN mengaktifkan beberapa overlays menggunakan jaringanlapisan-3 yang sama.
Langkah berikut melibatkan node komputasi:
veth
.veth
.patch-tun
patch port (6) meneruskan paket ke OVS tunnel bridge patch-int
patch port (7).Langkah berikut melibatkan node jaringan:
patch-int
patch port (13) meneruskan paket ke OVS integration bridge patch-tun
patch port (14).patch-tun
patch port (19) meneruskan paket ke OVS tunnel bridge patch-int
patch port (20).Langkah berikut melibatkan node komputasi:
patch-int
patch port (26) forwards the packet
to the OVS integration bridge patch-tun
patch port (27).veth
.veth
.Catatan
Lalu lintas balik mengikuti langkah yang sama secara terbalik.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.