Bu mimari örneği, VLAN (802.1q) etiketleme kullanarak sunucular ve fiziksel ağ altyapısı arasında katman-2 bağlantısı sağlar. Bir etiketsiz (düz) ağı ve 4095 etiketli (VLAN) ağları destekler. Gerçek VLAN ağlarının miktarı fiziksel ağ altyapısına bağlıdır. Sağlayıcı ağları hakkında daha fazla bilgi için Sağlayıcı ağlar.
Uyarı
Linux dağıtımları çoğu zaman Open vSwitch’in eski sürümlerini paketler ve bu da Ağ Hizmeti ile çalışma sırasında sorunlara neden olabilir. Open vSwitch’ten en iyi deneyim ve destek için en azından Open vSwitch’in en yeni uzun süreli kararlı (LTS) sürümünü kullanmanızı öneririz. Mevcut bültenler için http://www.openvswitch.org ve kurulum talimatları için.
Aşağıdaki bileşenlere sahip bir denetleyici düğümü:
Aşağıdaki bileşenlere sahip iki hesaplama düğümü:
Not
Daha büyük dağıtımlar, performansı ve yedekliliği artırmak için genellikle DHCP ve meta veri aracısını bir hesaplama düğümleri alt grubuna yerleştirir. Bununla birlikte, çok fazla aracı mesaj veriyolunu zorlayabilir. Ayrıca, herhangi bir dağıtımı daha da basitleştirmek için, meta veri aracısını atlayabilir ve sunuculara meta veri sağlamak için bir yapılandırma sürücüsü kullanabilirsiniz.
Aşağıdaki resim, bir etiketsiz (düz) ağ için bileşenleri ve bağlantıları göstermektedir. Bu durumda, sunucu, ağ için DHCP aracı ile aynı hesaplama düğümünde bulunur. DHCP aracı başka bir hesaplama düğümünde bulunuyorsa, sonuncusu yalnızca OVS entegrasyon köprüsünde bir bağlantı noktasına sahip bir DHCP ad alanını içerir.
Aşağıdaki resim, iki etiketli (VLAN) ağlar için bileşenler arasındaki sanal bağlantıyı açıklamaktadır. Esasen, tüm ağlar farklı dahili VLAN etiketleriyle tek bir OVS entegrasyon köprüsü kullanır. Dahili VLAN etiketleri, Ağ hizmeti genelde ağ VLAN atamasından farklıdır. Etiketsiz ağ durumunda olduğu gibi DHCP aracı da farklı bir hesaplama düğümünde bulunabilir.
Not
Bu rakamlar denetleyici düğümünü atlar, çünkü sunucu ağ trafiğini işleyemez.
Sağlayıcı ağlarını ortamınıza dağıtmak için aşağıdaki örnek yapılandırmayı bir şablon olarak kullanın.
neutron-server
hizmeti ve ML2 eklentisini sağlayan Ağ hizmet bileşenlerini kurun.
neutron.conf
dosyasında:
Genel seçenekleri yapılandır:
[DEFAULT]
core_plugin = ml2
auth_strategy = keystone
[database]
# ...
[keystone_authtoken]
# ...
[nova]
# ...
[agent]
# ...
[DEFAULT]
, [database]
, [keystone_authtoken]
, [nova]
, ve [agent]
bölümleri için uygun ek yapılandırmaları bulmak için OpenStack sürümünüze göre Kurulum Dökümanları ve Kılavuzları ve Yapılandırma Kılavuzu belgelerine bakın.
Hizmet sağlayıcı eklentilerini devre dışı bırakın; çünkü sağlayıcı ağları herhangi bir gereklilik göstermez. Bununla birlikte, bu, Ağ hizmetini yöneten gösterge tablosunun bölümlerini bozar. Daha fazla bilgi için Ocata Kurulum Belgeleri ve Kılavuzları na bakın.
[DEFAULT]
service_plugins =
Ağ başına iki DHCP aracısı etkinleştirin, böylece her iki hesaplama düğümü de DHCP hizmeti sağlayıcısı ağları sağlayabilir.
[DEFAULT]
dhcp_agents_per_network = 2
Gerekli ise, MTU yapılandırın.
ml2_conf.ini
dosyasında:
Sürücüleri ve ağ türlerini yapılandır:
[ml2]
type_drivers = flat,vlan
tenant_network_types =
mechanism_drivers = openvswitch
extension_drivers = port_security
Ağ eşlemelerini yapılandırın:
[ml2_type_flat]
flat_networks = provider
[ml2_type_vlan]
network_vlan_ranges = provider
Not
tenant_network_types
seçeneği, hiçbir değer içermiyor, çünkü mimari self servis ağları desteklemez.
Not
network_vlan_ranges
seçeneğindeki sağlayıcı
değeri keyfi VLAN Kimliklerinin kullanılmasını desteklemek için VLAN ID aralıklarından yoksundur.
Veritabanı oluştur.
# 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
Aşağıdaki servisleri başlatın:
Ağ hizmeti OVS katmanı-2 ajanı, DHCP ajanı ve meta veri ajanını yükleyin.
OVS kurun.
neutron.conf
dosyasında, genel seçenekleri yapılandırın:
[DEFAULT]
core_plugin = ml2
auth_strategy = keystone
[database]
# ...
[keystone_authtoken]
# ...
[nova]
# ...
[agent]
# ...
[DEFAULT]
, [database]
, [keystone_authtoken]
, [nova]
, ve [agent]
bölümleri için uygun ek yapılandırmaları bulmak için OpenStack sürümünüze göre Kurulum Dökümanları ve Kılavuzları ve Yapılandırma Kılavuzu belgelerine bakın.
openvswitch_agent.ini
dosyasında OVS ajanını yapılandır:
[ovs]
bridge_mappings = provider:br-provider
[securitygroup]
firewall_driver = iptables_hybrid
dhcp_agent.ini
dosyasında, DHCP ajanını yapılandırın:
[DEFAULT]
interface_driver = openvswitch
enable_isolated_metadata = True
force_metadata = True
Not
force_metadata
seçeneği, DHCP ajanını alt ağın bir yönlendiricide bir arabirim barındırıp barındırmadığına bakılmaksızın 169.254.169.254
üzerinde meta veri servisine bir ana bilgisayar yolu sunmasını zorlar ve böylece alt ağlar arasında benzer ve öngörülebilir meta veri davranışı sürdürülür.
metadata_agent.ini
dosyasında, metadata ajanını yapılandır:
[DEFAULT]
nova_metadata_ip = controller
metadata_proxy_shared_secret = METADATA_SECRET
METADATA_SECRET
değeri, nova.conf
dosyasının [neutron]
bölümündeki aynı seçeneğin değeriyle eşleşmelidir.
Aşağıdaki servisleri başlatın:
OVS sağlayıcı köprüsü ``br-provider``i oluştur:
$ ovs-vsctl add-br br-provider
OVS sağlayıcı köprü br-provider
üzerinde sağlayıcı ağ arabirimini bağlantı noktası olarak ekle:
$ ovs-vsctl add-port br-provider PROVIDER_INTERFACE
Sağlayıcı ağları barındıran ilgili arabirimin adı ile PROVIDER_INTERFACE``i yer değiştirin. Örnek, ``eth1
.
Aşağıdaki servisleri başlatın:
Yönetimsel proje kimlik bilgilerini kaynak olarak verin.
Ajanların varlığını ve çalışmasını doğrulayın:
$ 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 |
+--------------------------------------+--------------------+----------+-------------------+-------+-------+---------------------------+
Yapılandırma, bir düz veya birden çok VLAN sağlayıcı ağını destekler. Kolaylık olması için, aşağıdaki prosedür bir düz tedarikçi ağı oluşturur.
Yönetimsel proje kimlik bilgilerini kaynak olarak verin.
Bir düz ağ oluşturun.
$ 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 |
+---------------------------+-----------+
Not
share
seçeneği herhangi bir projenin bu ağı kullanmasına izin verir. Sağlayıcı ağlarına erişimi sınırlamak için Rol-tabanlı Erişim Kontrolü (RBAC) konusuna bakın.
Not
Düz bir ağ yerine bir VLAN ağı oluşturmak için, --provider:network_type flat
parametresini --provider-network-type vlan
olarak değiştirin ve ``–provider-segment``e VLAN ID’e referans eden bir değer ekleyin.
Sağlayıcı ağ üzerinde bir IPv4 alt ağı oluştur.
$ 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 |
+-------------------+----------------------------+
Not
DHCP’nin etkinleştirilmesi, Ağ hizmetinin fiziksel ağ altyapısında mevcut DHCP hizmetleriyle etkileşime girebilecek DHCP sağlamasına neden olur.
Sağlayıcı ağı üzerinde bir IPv6 alt ağı oluşturun.
$ 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 |
+-------------------+------------------------------------------------------+
Not
Ağ hizmeti, yönlendirici tanıtımı sağlamak için katman-3 aracısını kullanır. Sağlayıcı ağları, katman-3 aracı yerine katman-3 hizmetleri için fiziksel ağ altyapısına dayalıdır. Dolayısıyla, fiziksel ağ altyapısı IPv6’nın düzgün çalışması için sağlayıcı ağlarında yönlendirici tanıtımı sağlamalıdır.
Her hesaplama düğümünde, qdhcp
ad alanının oluşumunu doğrulayın.
# ip netns
qdhcp-8b868082-e312-4110-8627-298109d4401c
Normal (idari olmayan) bir proje kimlik bilgisi kaynağı.
Ağı kullanarak ping
ve SSH erişim örneklerine izin vermek için uygun güvenlik grubu kurallarını oluşturun.
$ 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 |
+------------------+-----------+
Sağlayıcı ağı üzerindeki bir arayüzle bir sunucuyu başlatın. Örneğin, flavor ID 1’i kullanan bir CirrOS imajı.
$ openstack server create --flavor 1 --image cirros \
--nic net-id=NETWORK_ID provider-instance1
``NETWORK_ID``yi sağlayıcı ağın ID’si ile değiştirin.
Sunucunun IPv4 ve IPv6 adreslerini belirleyin.
$ 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 |
+--------------------------------------+--------------------+--------+------------------------------------------------------------+------------+
Denetleyici düğümde veya sağlayıcı ağa erişimi olan herhangi bir ana bilgisayarda, sunucunun IPv4 ve IPv6 adreslerine ping
atın.
$ 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
Sunucuya erişim alın.
Internet veya diğer harici ağlara IPv4 ve IPv6 bağlanılabilirliğini test edin.
Aşağıdaki bölümlerde, birkaç yaygın senaryoda ağ trafiğinin akışını açıklanmaktadır. kuzey-güney ağ trafiği, bir sunucu ile İnternet gibi harici bir ağ arasında dolaşır. doğu-batı ağ trafiği aynı veya farklı ağlardaki sunucular arasında dolaşır. Tüm senaryolarda, fiziksel ağ altyapısı, sağlayıcının ağları ve Internet gibi harici ağlar arasındaki geçiş ve yönlendirmeyi ele alır. Her bir durum aşağıdaki bileşenlerden birini veya daha fazlasını referans gösteriyor:
Aşağıdaki adımlar hesaplama düğüm 1’i içerir.
veth
çifti aracılığıyla güvenlik grubu köprüsü sunucu portuna (2) iletir.veth
çifti aracılığıyla OVS entegrasyon köprü güvenlik grubu portuna (5) iletilmesini sağlar.int-br-provider
yama bağlantı noktası (6), paketi, OVS sağlayıcı köprüsü``phy-br-provider`` yama bağlantı noktasına (7) iletir.Aşağıdaki adımlar fiziksel ağ altyapısını içerir:
Not
Dönüş trafik akışı benzer adımlardan tersine takip eder.
Aynı ağdaki sunucular, doğrudan bu sunucuları içeren hesaplama düğümleri arasında iletişim kurar.
Aşağıdaki adımlar hesaplama düğümü 1’i içerir:
veth
çifti aracılığıyla güvenlik grubu köprü sunucu bağlantı noktasına iletir.veth
çifti aracılığıyla OVS entegrasyon köprü güvenlik grubu portuna (5) iletilmesini sağlar.int-br-provider
yama bağlantı noktası (6), paketi, OVS sağlayıcı köprüsü``phy-br-provider`` yama bağlantı noktasına (7) iletir.Aşağıdaki adımlar fiziksel ağ altyapısını içerir:
Aşağıdaki adımlar hesaplama düğüm 2’yi içerir:
phy-br-provider
yama bağlantı noktası (14) paketi OVS entegrasyon köprüsü int-br-provider
yama bağlantı noktasına (15) iletir.veth
çifti vasıtasıyla sunucu 2 arabirimine (20) iletir.Not
Dönüş trafik akışı benzer adımlardan tersine takip eder.
Sunucular, yönlendirici aracılığıyla fiziksel ağ altyapısında iletişim kurar.
Not
Her iki sunucu da aynı hesaplama düğümünde bulunur ve VLAN etiketlemesinin, birden fazla mantıksal katman-2 ağının aynı fiziksel katman-2 ağını nasıl kullanabileceğini açıklamak için kullanılır.
Aşağıdaki adımlar, hesaplama düğümünü içerir:
veth
çifti aracılığıyla güvenlik grubu köprü sunucu bağlantı noktasına iletir.veth
çifti aracılığıyla OVS entegrasyon köprü güvenlik grubu portuna (5) iletilmesini sağlar.int-br-provider
yama bağlantı noktası (6), paketi, OVS sağlayıcı köprüsü``phy-br-provider`` yama bağlantı noktasına (7) iletir.Aşağıdaki adımlar fiziksel ağ altyapısını içerir:
Aşağıdaki adımlar, hesaplama düğümünü içerir:
phy-br-provider
yama bağlantı noktası (18) paketi OVS entegrasyon köprüsü int-br-provider
yama bağlantı noktasına (19) iletir.veth
çifti aracılığıyla sunucu 2 arabirimine (24) iletir.Not
Dönüş trafik akışı benzer adımlardan tersine takip eder.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.