Bu mimari örneği, belirli senaryolarda ağ düğümleri yerine hesaplama düğümlerinde self-servis ve sağlayıcı ağları arasında bağlantı sağlayan Dağıtılmış Sanal Yöneltici (DVR) yüksek kullanılabilirlik mekanizması ile self servis dağıtım örneğini zenginleştirir. Yüzen bir IPv4 adresine sahip sunucular için, self servis ve sağlayıcı ağları arasındaki yönlendirme, ağ düğümleri ile tekli başarısızlık ve performans sorunlarını gidermek için hesaplama düğümlerinde tamamen bulunur. Yönlendirme, aynı dağıtılmış sanal yönlendiricideki self servis ağları kullanarak sabit veya kayan IPv4 adresli sunucular için hesaplama düğümlerinde de bulunur. Bununla birlikte, sabit bir IP adresine sahip olan sunucular, yönlendirme ve düğüm hizmetleri için self-servis ve sağlayıcı ağları arasındaki ağ düğümüne hala güvenmektedir.
Ortamınızdaki pratikliği belirlemek için bu yüksek kullanılabilirlik mekanizmasının aşağıdaki özelliklerini göz önünde bulundurun:
Hesaplama düğümlerini aşağıdaki bileşenlerle düzenleyin:
Not
Sabit bir IP adresli örnekler için yüksek kullanılabilirlik sağlamak için en az bir ek ağ düğümü eklemeyi düşünün. Daha fazla bilgi için bakınız VRRP ile Dağıtık Sanal Yönlendirme.
Aşağıdaki resim, bir self-servis ağı ve bir etiketsiz (düz) ağ için bileşenleri ve bağlantıyı 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 örnek yapılandırmayı, self servis ağları destekleyen mevcut bir operasyonel ortama DVR kullanarak yüksek kullanılabilirlik desteği eklemek için bir şablon olarak kullanın.
neutron.conf
dosyasında:
Tüm yönlendiriciler için varsayılan olarak dağıtılmış yönlendirmeyi etkinleştirin.
[DEFAULT]
router_distributed = True
Aşağıdaki servisleri yeniden başlatın:
openswitch_agent.ini
dosyasında, dağıtık yönlendirmeyi etkinleştir.
[DEFAULT]
enable_distributed_routing = True
l3_agent.ini
dosyasında, SNAT servislerini sağlamak için katman-3 ajanını yapılandırın.
[DEFAULT]
agent_mode = dvr_snat
Not
external_network_bridge
seçeneğinin değeri bilerek boş bırakılmıştır.
Aşağıdaki servisleri yeniden başlatın:
Ağ hizmeti katman-3 aracısını yükleyin.
openswitch_agent.ini
dosyasında, dağıtık yönlendirmeyi etkinleştir.
[DEFAULT]
enable_distributed_routing = True
l3_agent.ini
dosyasında, katman-3 ajanını yapılandır.
[DEFAULT]
interface_driver = openvswitch
external_network_bridge =
agent_mode = dvr
Not
external_network_bridge
seçeneğinin değeri bilerek boş bırakılmıştır.
Aşağıdaki servisleri yeniden başlatın:
Yönetimsel proje kimlik bilgilerini kaynak olarak verin.
Ajanların varlığını ve işlevini doğrula.
$ 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 |
+--------------------------------------+--------------------+----------+-------------------+-------+-------+---------------------------+
Self-servis kurulum örneğine benzer şekilde, bu yapılandırma birden fazla VXLAN self-servis ağını desteklemektedir. Yüksek kullanılabilirlik sağlandıktan sonra, tüm ek yönlendiriciler dağıtılmış yönlendirme kullanır. Aşağıdaki prosedür, ilave bir self-servis ağı ve yönlendirici oluşturur. Ağ hizmeti, mevcut yönlendiricilere dağıtılmış yönlendirme eklemeyi de destekler.
Normal (idari olmayan) bir proje kimlik bilgisi kaynağı.
Bir self-servis ağı oluştur.
$ 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 |
+-------------------------+--------------+
Self-servis ağı üzerinde bir IPv4 alt ağı oluştur.
$ 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 |
+-------------------+---------------------------+
Self-servis ağı üzerinde bir IPv6 alt ağı oluştur.
$ 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 |
+-------------------+------------------------------------------------------+
Bir yönlendirici oluştur.
$ openstack router create router2
+-----------------------+---------+
| Field | Value |
+-----------------------+---------+
| admin_state_up | UP |
| name | router2 |
| status | ACTIVE |
+-----------------------+---------+
Yönlendirici üzerinde arabirim olarak IPv4 ve IPv6 alt ağları ekle.
$ openstack router add subnet router2 selfservice2-v4
$ openstack router add subnet router2 selfservice2-v6
Not
Bu komut hiç çıktı üretmedi.
Yönlendirici üzerine bir sağlayıcı ağı geçit olarak ekleyin.
$ openstack router set router2 --external-gateway provider1
Yönetimsel proje kimlik bilgilerini kaynak olarak verin.
Yönlendirici üzerinde dağıtık yönlendirmeyi doğrula.
$ openstack router show router2
+-------------------------+---------+
| Field | Value |
+-------------------------+---------+
| admin_state_up | UP |
| distributed | True |
| ha | False |
| name | router2 |
| status | ACTIVE |
+-------------------------+---------+
Her hesaplama düğümünde, aynı kimliği olan bir qrouter
ad alanının oluşturulmasını doğrulayın.
Hesaplama düğümü 1:
# ip netns
qrouter-78d2f628-137c-4f26-a257-25fc20f203c1
Hesaplama düğümü 2:
# ip netns
qrouter-78d2f628-137c-4f26-a257-25fc20f203c1
Ağ düğümünde, aynı kimliğe sahip snat
ve qrouter
ad alanlarının oluşturulmasını doğrulayın.
# ip netns
snat-78d2f628-137c-4f26-a257-25fc20f203c1
qrouter-78d2f628-137c-4f26-a257-25fc20f203c1
Not
:ref:`deploy-ovs-selfservice`den yönlendirici 1 için ad alanı, ağın düğümü 1’de, dağıtımlı yönlendirmeyi etkinleştirmeden önce oluşturulması nedeniyle görünmelidir.
Ek self-servis ağında bir arabirimle 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 selfservice-instance2
``NETWORK_ID``yi ek self-servis ağı kimliği ile değiştirin.
Sunucunun IPv4 ve IPv6 adreslerini belirleyin.
$ 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 |
+--------------------------------------+-----------------------+--------+---------------------------------------------------------------------------+
Sağlayıcı ağ üzerinde yüzen IPv4 adresini oluşturun.
$ 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 |
+-------------+--------------------------------------+
Sunucu ile yüzen IPv4 adresini ilişkilendir.
$ openstack server add floating ip selfservice-instance2 203.0.113.17
Not
Bu komutun hiç çıktısı yok.
Sunucuyu içeren hesaplama düğümü üzerinde, fip
ad alanının aynı ID ile sağlayıcı ağ olarak oluşturulduğunu doğrulayın.
# ip netns
fip-4bfa3075-b4b2-4f7d-b88e-df1113942d43
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:
Bu bölümde yalnızca dağıtılmış sanal yönlendirmeden fayda sağlayan veya geleneksel operasyondan farklı akış senaryoları bulunur. Diğer akış senaryoları için bkz Ağ trafik akışı.
:ref:`deploy-ovs-selfservice-networktrafficflow-ns1`e benzer şekilde, ağ düğümündeki yönlendirici ad alanı SNAT ad alanına girme haricinde. Ağ düğümü hala yönlendirici ad alanını içerir, ancak bu durumda hiçbir amaca hizmet etmemektedir.
Dağıtılmış bir yönlendiricide bir self servis ağı kullanan bir kayan IPv4 adresine sahip sunucular için, sunucuyu içeren hesaplama düğümü, harici ağdan sunucuya geçen kuzey-güney trafiği üzerindeki Internet ve DNAT gibi sunucudan harici ağa geçen kuzey güney trafiği üzerinde SNAT’ı gerçekleştirir. Yüzen IP adresleri ve NAT IPv6’ya uygulanmaz. Bu sebeple, bu senaryoda, ağ düğümü IPv6 trafiğini yönlendirir. Internet gibi sunucu ile harici network arasında geçen kuzey-güney trafiği.
Aşağıdaki adımlar, hesaplama düğümünü içerir:
phy-br-provider
portu (4) paketi OVS entegrasyon köprüsü int-br-provider
portuna iletir (5).veth
çifti vasıtasıyla paketi güvenlik grubu köprüsü OVS portuna (13) iletir.veth
çifti aracılığıyla sunucu arabirimine (16) iletir.Not
Çıkış trafiği benzer adımları tersine çevirir, ancak SNAT, paketin kaynak IPv4 adresini kayan IPv4 adresine değiştirir.
Aynı hesaplama düğümünde sabit IPv4/IPv6 adresi veya kayan IPv4 adresine sahip sunucular, hesaplama düğümünde yönlendirici yoluyla iletişim kurar. Farklı hesaplama düğümleri üzerindeki sunucular, her hesaplama düğümünde yönlendiricinin bir örneği aracılığıyla iletişim kurar.
Not
Bu senaryo, sunucuları en karmaşık durumu göstermek için farklı hesaplama düğümlerine yerleştirir.
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.patch-tun
bağlantı noktası (10) paketi OVS tünel köprüsü patch-int
bağlantı noktasına (11) iletir.Aşağıdaki adımlar hesaplama düğüm 2’yi içerir:
patch-int
yama portu (17) paketi OVS entegrasyon köprüsü patch-tun
yama portuna (18) iletir.veth
çifti ile güvenlik grubu köprüsü OVS portuna (20) iletir.veth
çifti vasıtasıyla örnek 2 arabirimine (23) iletir.Not
Self servis ağlar arasındaki yönlendirme, paket gönderen sunucuyu içeren hesaplama düğümünde gerçekleşir. Bu senaryoda, yönlendirme, sunucu 1’den sunucu 2’ye ve sunucu 2’den sunucu 1’e paketler için hesaplama düğümü 2’ndeki paketler için hesaplama düğümü 1’de gerçekleşir.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.