This architecture example provides layer-2 connectivity between instances and the physical network infrastructure using VLAN (802.1q) tagging. It supports one untagged (flat) network and up to 4095 tagged (VLAN) networks. The actual quantity of VLAN networks depends on the physical network infrastructure. For more information on provider networks, see Jaringan provider.
Peringatan
Distribusi Linux sering memaket rilis yang lebih tua dari Open vSwitch yang dapat menimbulkan masalah selama operasi dengan layanan Networking. Sebaiknya gunakan setidaknya rilis jangka panjang yang stabil (LTS) terbaru dari Open vSwitch untuk pengalaman terbaik dan dukungan dari Open vSwitch. Lihat <http://www.openvswitch.org> __ untuk rilis yang tersedia dan installation instructions
Satu node controller dengan komponen-komponen berikut:
Dua node komputasi dengan komponen-komponen berikut:
Catatan
Pengerahan yang lebih besar biasanya menggunakan DHCP dan agen metadata pada subset node komputasi untuk meningkatkan kinerja dan redundansi. Namun, terlalu banyak agen dapat membanjiri (overwhelm) pengangkutan pesan. Juga, untuk lebih menyederhanakan penyebaran, Anda dapat menghilangkan agen metadata dan menggunakan drive konfigurasi untuk memberikan metadata untuk instance.
Gambar berikut menunjukkan komponen dan konektivitas untuk satu jaringan untagged (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 di jembatan integrasi OVS.
Gambar berikut menjelaskan konektivitas virtual antara komponen untuk dua jaringan tag (VLAN). Pada dasarnya, semua jaringan menggunakan jembatan OVS integrasi tunggal dengan tag VLAN internal yang berbeda. Tag VLAN internal yang hampir selalu berbeda dari tugas VLAN jaringan dalam layanan Networking. Mirip dengan kasus jaringan untagged, agen DHCP dapat berada pada node komputasi yang berbeda.
Catatan
Angka ini menghilangkan controller node karena tidak menangani lalu lintas jaringan instance.
Gunakan konfigurasi contoh berikut sebagai template untuk menggunakan jaringan provider di lingkungan Anda.
Menginstal komponen layanan Networking yang menyediakan layanan neutron-server
dan ML2 plug-in.
Dalam file neutron.conf
:
Mengkonfigurasi 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]
.
Nonaktifkan layanan plug-in karena jaringan operator tidak memerlukan. Namun, ini mengistirahatkan bagian dari dashboard yang mengelola layanan Networking. Lihat Ocata Install Tutorials and Guides untuk informasi lebih lanjut.
[DEFAULT]
service_plugins =
Aktifkan dua agen DHCP per jaringan sehingga kedua node komputasi dapat memberikan layanan DHCP jaringan provider.
[DEFAULT]
dhcp_agents_per_network = 2
Jika diperlukan, configure MTU.
Dalam file ml2_conf.ini
:
Mengkonfigurasi driver dan tipe jaringan:
[ml2]
type_drivers = flat,vlan
tenant_network_types =
mechanism_drivers = openvswitch
extension_drivers = port_security
Mengkonfigurasi pemetaan jaringan:
[ml2_type_flat]
flat_networks = provider
[ml2_type_vlan]
network_vlan_ranges = provider
Catatan
Opsi tenant_network_types
tidak mengandung nilai karena arsitektur tidak mendukung jaringan self-service.
Catatan
Nilai provider
di opsi network_vlan_ranges
tidak memiliki berkisar VLAN ID untuk mendukung penggunaan ID VLAN bebas.
Mengisi database.
# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
Mulai layanan berikut:
Instal Networking service OVS layer-2 agent, DHCP agent, dan metadata agent.
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]
.
Dalam file openvswitch_agent.ini
, lakukan konfigurasi agen OVS:
[ovs]
bridge_mappings = provider:br-provider
[securitygroup]
firewall_driver = iptables_hybrid
Dalam file dhcp_agent.ini
, lakukan konfigurasi agen DHCP:
[DEFAULT]
interface_driver = openvswitch
enable_isolated_metadata = True
force_metadata = True
Catatan
Opsi force_metadata
memaksa agen DHCP untuk memberikan rute host ke layanan metadata pada 169.254.169.254
terlepas dari apakah subnet berisi sebuah antarmuka pada router, dengan demikian mempertahankan perilaku metadata yang sama dan dapat diprediksi antar subnet.
Dalam file metadata_agent.ini
, lakukan konfigurasi agen metadata:
[DEFAULT]
nova_metadata_ip = controller
metadata_proxy_shared_secret = METADATA_SECRET
Nilai METADATA_SECRET
harus sesuai dengan nilai opsi yang sama dalam bagian [neutron] `` dari file ``nova.conf
.
Mulai layanan berikut:
Buat OVS provider bridge br-provider
:
$ ovs-vsctl add-br br-provider
Tambahkan antarmuka jaringan operator sebagai port pada OVS provider bridge br-provider
:
$ ovs-vsctl add-port br-provider PROVIDER_INTERFACE
Gantilah PROVIDER_INTERFACE
dengan nama interface yang mendasarinya yang menangani jaringan penyedia. Sebagai contoh,``eth1``.
Mulai layanan berikut:
Dapatkan sumber kredensial proyek administrasi.
Memverifikasi keberadaan dan operasi 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 |
| 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 ini mendukung satu jaringan datar atau beberapa jaringan penyedia VLAN. Untuk mempermudah, prosedur berikut menciptakan satu jaringan operator datar.
Dapatkan sumber kredensial proyek administrasi.
Buat jaringan datar (flat network)
$ openstack network create --share --provider-physical-network provider \
--provider-network-type flat provider1
+---------------------------+-----------+-
| Field | Value |
+---------------------------+-----------+
| admin_state_up | UP |
| mtu | 1500 |
| name | provider1 |
| port_security_enabled | True |
| provider:network_type | flat |
| provider:physical_network | provider |
| provider:segmentation_id | None |
| router:external | Internal |
| shared | True |
| status | ACTIVE |
+---------------------------+-----------+
Catatan
Opsi share
memungkinkan proyek untuk menggunakan jaringan ini. Untuk membatasi akses ke jaringan provider, lihat :ref: config-rbac.
Catatan
Untuk membuat jaringan VLAN bukannya jaringan datar, rubahlah --provider:network_type flat
ke --provider-network-type vlan
and add --provider-segment
dengan nilai mereferensi VLAN ID.
Buat subnet IPv4 pada jaringan provider.
$ openstack subnet create --subnet-range 203.0.113.0/24 --gateway 203.0.113.1 \
--network provider1 --allocation-pool start=203.0.113.11,end=203.0.113.250 \
--dns-nameserver 8.8.4.4 provider1-v4
+-------------------+----------------------------+
| Field | Value |
+-------------------+----------------------------+
| allocation_pools | 203.0.113.11-203.0.113.250 |
| cidr | 203.0.113.0/24 |
| dns_nameservers | 8.8.4.4 |
| enable_dhcp | True |
| gateway_ip | 203.0.113.1 |
| ip_version | 4 |
| name | provider1-v4 |
+-------------------+----------------------------+
Catatan
Pengaktifan DHCP membuat layanan Networking untuk menyediakan DHCP yang dapat mengganggu layanan DHCP yang ada pada infrastruktur jaringan fisik.
Buat subnet IPv6 pada jaringan provider.
$ openstack subnet create --subnet-range fd00:203:0:113::/64 --gateway fd00:203:0:113::1 \
--ip-version 6 --ipv6-address-mode slaac --network provider1 \
--dns-nameserver 2001:4860:4860::8844 provider1-v6
+-------------------+------------------------------------------------------+
| Field | Value |
+-------------------+------------------------------------------------------+
| allocation_pools | fd00:203:0:113::2-fd00:203:0:113:ffff:ffff:ffff:ffff |
| cidr | fd00:203:0:113::/64 |
| dns_nameservers | 2001:4860:4860::8844 |
| enable_dhcp | True |
| gateway_ip | fd00:203:0:113::1 |
| ip_version | 6 |
| ipv6_address_mode | slaac |
| ipv6_ra_mode | None |
| name | provider1-v6 |
+-------------------+------------------------------------------------------+
Catatan
Layanan Networking menggunakan agen lapisan-3 untuk memberikan router advertisement. Jaringan penyedia mengandalkan infrastruktur jaringan fisik untuk lapisan layer-3 daripada agen layer-3. Dengan demikian, infrastruktur jaringan fisik harus menyediakan router advertisement pada jaringan provider untuk operasi IPv6 yang tepat.
Pada setiap node komputasi, lakukan verifikasi penciptaan namespace qdhcp
.
# ip netns
qdhcp-8b868082-e312-4110-8627-298109d4401c
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 pada jaringan provider. Misalnya, image CirrOS menggunakan flavor ID 1.
$ openstack server create --flavor 1 --image cirros \
--nic net-id=NETWORK_ID provider-instance1
Gantilah NETWORK_ID
dengan ID dari jaringan provider.
Tentukan alamat IPv4 dan IPv6 instance.
$ openstack server list
+--------------------------------------+--------------------+--------+------------------------------------------------------------+------------+
| ID | Name | Status | Networks | Image Name |
+--------------------------------------+--------------------+--------+------------------------------------------------------------+------------+
| 018e0ae2-b43c-4271-a78d-62653dd03285 | provider-instance1 | ACTIVE | provider1=203.0.113.13, fd00:203:0:113:f816:3eff:fe58:be4e | cirros |
+--------------------------------------+--------------------+--------+------------------------------------------------------------+------------+
Pada controller node atau host dengan akses ke jaringan provider, lakukan ping
IPv4 dan alamat IPv6 instance.
$ ping -c 4 203.0.113.13
PING 203.0.113.13 (203.0.113.13) 56(84) bytes of data.
64 bytes from 203.0.113.13: icmp_req=1 ttl=63 time=3.18 ms
64 bytes from 203.0.113.13: icmp_req=2 ttl=63 time=0.981 ms
64 bytes from 203.0.113.13: icmp_req=3 ttl=63 time=1.06 ms
64 bytes from 203.0.113.13: icmp_req=4 ttl=63 time=0.929 ms
--- 203.0.113.13 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 0.929/1.539/3.183/0.951 ms
$ ping6 -c 4 fd00:203:0:113:f816:3eff:fe58:be4e
PING fd00:203:0:113:f816:3eff:fe58:be4e(fd00:203:0:113:f816:3eff:fe58:be4e) 56 data bytes
64 bytes from fd00:203:0:113:f816:3eff:fe58:be4e icmp_seq=1 ttl=64 time=1.25 ms
64 bytes from fd00:203:0:113:f816:3eff:fe58:be4e icmp_seq=2 ttl=64 time=0.683 ms
64 bytes from fd00:203:0:113:f816:3eff:fe58:be4e icmp_seq=3 ttl=64 time=0.762 ms
64 bytes from fd00:203:0:113:f816:3eff:fe58:be4e icmp_seq=4 ttl=64 time=0.486 ms
--- fd00:203:0:113:f816:3eff:fe58:be4e ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.486/0.796/1.253/0.282 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:
Langkah berikut melibatkan komputasi node 1.
veth
.veth
.int-br-provider
patch port (6) meneruskan paket ke OVS provider bridge phy-br-provider
patch port (7).Langkah-langkah berikut melibatkan infrastruktur jaringan fisik:
Catatan
Lalu lintas balik mengikuti langkah yang sama secara terbalik.
Instance pada jaringan yang sama berkomunikasi secara langsung antara node komputasi yang berisi instance.
Langkah berikut melibatkan komputasi node 1:
veth
.veth
.int-br-provider
patch port (6) meneruskan paket ke OVS provider bridge phy-br-provider
patch port (7).Langkah-langkah berikut melibatkan infrastruktur jaringan fisik:
Langkah berikut melibatkan komputasi node 2:
phy-br-provider
patch port (14) meneruskan paket ke OVS integration bridge int-br-provider
patch port (15).veth
.Catatan
Lalu lintas balik mengikuti langkah yang sama secara terbalik.
Instance berkomunikasi melalui router pada infrastruktur jaringan fisik.
Catatan
Kedua instance berada pada node komputasi yang sama untuk menggambarkan bagaimana VLAN tagging mengaktifkan beberapa jaringan lapisan-2 logis menggunakan jaringan lapisan-2 fisik yang sama.
Langkah berikut melibatkan node komputasi:
veth
.veth
.int-br-provider
patch port (6) meneruskan paket ke OVS provider bridge phy-br-provider
patch port (7).Langkah-langkah berikut melibatkan infrastruktur jaringan fisik:
Langkah berikut melibatkan node komputasi:
phy-br-provider
patch port (18) meneruskan paket ke OVS integration bridge int-br-provider
patch port (19).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.