VRRP ile Dağıtık Sanal Yönlendirme

VRRP ile Dağıtık Sanal Yönlendirme

Open vSwitch: DVR kullanarak yüksek kullanılabilirlik Sanal Yönlendirici Yedekleme Protokolü (VRRP) kullanarak eklemeyi destekler. Bu yapılandırmayı kullanarak, sanal yönlendiriciler --distributed ve ``–ha``nin her ikisini de destekler.

Eski HA yönlendiricilerine benzer şekilde, DVR/SNAT HA yönlendiricileri farklı bir düğümde çalışan bir l3 ajanına yedek bir DVR/SNAT yönlendiricisine SNAT hizmetinin hızlı bir şekilde yük devretmesini sağlar.

SNAT yüksek kullanılabilirliği, ``keepalived``ın SNAT servislerinin hızlı yerine geçme özelliğini sağlamak için VRRP kullandığı Linux köprü: VRRP kullanarak yüksek kullanılabilirlik ve Open vSwitch: VRRP kullanarak yüksek kullanılabilirlik örneklerine benzer şekilde gerçekleştirilir.

Normal işlem sırasında, ana yönlendirici, periyodik olarak, belli bir proje için tüm HA yönlendiricilerin bağlandığı gizli proje ağları üzerinden heartbeat paketleri geçirir.

DVR/SNAT yedek yönlendirici bu paketleri almayı durdurursa, ana DVR/SNAT yönlendiricisinin başarısız olduğunu varsayar ve arabirimlerdeki IP adreslerini snat ad alanına yapılandırarak kendisini ana yönlendiriciye yönlendirir. Birden fazla yedek yönlendiricinin bulunduğu ortamlarda, yeni bir ana yönlendirici seçmek için VRRP’nin kuralları izlenir.

Uyarı

keepalived v1.2.15 ve daha öncesinde max_l3_agents_per_router değeri 3 veya daha fazla olarak ayarlandığında paket kaybına neden olabileceği bilinen bir hata var. Bu nedenle, bu özelliği kullanırken keepalived v1.2.16 veya daha üst sürüme yükseltmenizi öneririz.

Not

Deneysel özellik veya eksik dokümantasyon.

Yapılandırma örneği

Temel dağıtım modeli, bir denetleyici düğümden, iki veya daha fazla ağ düğümünden ve çoklu hesaplama düğümlerinden oluşur.

Denetleyici düğüm yapılandırması

  1. Aşağıdakini /etc/neutron/neutron.conf dosyasına ekle:

    [DEFAULT]
    core_plugin = ml2
    service_plugins = router
    allow_overlapping_ips = True
    router_distributed = True
    l3_ha = True
    l3_ha_net_cidr = 169.254.192.0/18
    max_l3_agents_per_router = 3
    

    router_distributed = True bayrağı yapılandırıldığında, tüm kullanıcılar tarafından oluşturulan yönlendiriciler dağıtılır. O olmadan, sadece ayrıcalıklı kullanıcılar --distributed True kullanarak dağıtılmış yönlendiriciler oluşturabilirler.

    Benzer şekilde, l3_ha = True bayrağı yapılandırıldığında, tüm kullanıcılar tarafından oluşturulan yönlendiriciler varsayılan olarak HA’ya gelir.

    Bu iki bayrak, yapılandırma dosyasında True olarak ayarlandığında, tüm kullanıcılar tarafından oluşturulan yönlendiriciler, varsayılan olarak, dağıtılmış HA yönlendiricilerini (DVR HA) varsayılan hale getirir.

    Aynı şey, açıkça, şu komutu çalıştıran yönetici kimlik bilgileri olan bir kullanıcı tarafından gerçekleştirilebilir neutron router-create command:

    $ neutron router-create name-of-router --distributed=True --ha=True
    

    Not

    max_l3_agents_per_router, örneklendirilecek yedek DVR/SNAT yönlendiricilerinin sayısını belirler.

  2. Aşağıdakini /etc/neutron/plugins/ml2/ml2_conf.ini dosyasına ekleyin:

    [ml2]
    type_drivers = flat,vxlan
    tenant_network_types = vxlan
    mechanism_drivers = openvswitch,l2population
    extension_drivers = port_security
    
    [ml2_type_flat]
    flat_networks = external
    
    [ml2_type_vxlan]
    vni_ranges = MIN_VXLAN_ID:MAX_VXLAN_ID
    

    Ortamınıza uygun VXLAN ID minimum ve maksimum değerleriyle MIN_VXLAN_ID ve MAX_VXLAN_ID‘i değiştirin.

    Not

    tenant_network_types seçeneğindeki ilk değer, normal bir kullanıcı bir ağ oluşturduğunda varsayılan proje ağ türü haline gelir.

Ağ düğümleri

  1. Open vSwitch ajanını yapılandır. Aşağıdakini /etc/neutron/plugins/ml2/ml2_conf.ini dosyasına ekle:

    [ovs]
    local_ip = TUNNEL_INTERFACE_IP_ADDRESS
    bridge_mappings = external:br-ex
    
    [agent]
    enable_distributed_routing = True
    tunnel_types = vxlan
    l2_population = True
    

    ``TUNNEL_INTERFACE_IP_ADDRESS``i VXLAN proje ağını taşıyan arayüzün IP adresi ile değiştirin.

  2. L3 ajanını yapılandır. Aşağıdakini /etc/neutron/l3_agent.ini dosyasına ekle:

    [DEFAULT]
    ha_vrrp_auth_password = password
    interface_driver = openvswitch
    external_network_bridge =
    agent_mode = dvr_snat
    

    Not

    external_network_bridge seçeneğinin değeri bilerek boş bırakılmıştır.

Hesaplama düğümleri

  1. Open vSwitch ajanını yapılandır. Aşağıdakini /etc/neutron/plugins/ml2/ml2_conf.ini dosyasına ekle:

    [ovs]
    local_ip = TUNNEL_INTERFACE_IP_ADDRESS
    bridge_mappings = external:br-ex
    
    [agent]
    enable_distributed_routing = True
    tunnel_types = vxlan
    l2_population = True
    
    [securitygroup]
    firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
    
  2. L3 ajanını yapılandır. Aşağıdakini /etc/neutron/l3_agent.ini dosyasına ekle:

    [DEFAULT]
    interface_driver = openvswitch
    external_network_bridge =
    agent_mode = dvr
    

    ``TUNNEL_INTERFACE_IP_ADDRESS``i VXLAN proje ağını taşıyan arayüzün IP adresi ile değiştirin.

Keepalived VRRP durum kontrolü

keepalived sunucunuzun durumu, kullanılabilir ve yapılandırılmış tüm ağ geçidi adreslerine olan bağlantıyı doğrulayan bir bash komut dosyası aracılığıyla otomatik olarak izlenebilir. Bağlanabilirlik kaybolduğunda, ana yönlendirici başka bir düğüme yeniden düzenlenir.

Tüm yönlendiriciler aynı anda bağlantıyı kaybederse, yeni bir ana yönlendirici seçme işlemi, bir veya daha fazla yönlendiricinin bağlantısını geri yükleyinceye kadar round-robin kipine tekrarlanır.

Bu özelliği etkinleştirmek için, l3_agent.ini dosyasını düzenleyin:

ha_vrrp_health_check_interval = 30

ha_vrrp_health_check_interval sağlık kontrolünün kaç saniye içinde kaç sıklıkta çalışması gerektiğinin gösterildiği yer. Varsayılan değer `` 0`` olup, bu kontrolün hiç çalışmaması gerektiğini gösterir.

Bilinen sınırlamalar

  • Yalnızca dağıtılmış, yalnızca HA veya geçmişten dağıtılmış bir HA’ya bir yönlendirici taşınması şu anda desteklenmiyor. Yönlendirici, dağıtılmış HA olarak oluşturulmalıdır. Ters yön de desteklenmiyor. Dağıtımlı bir HA yönlendiricisini yalnızca dağıtılan, yalnızca HA veya miras olarak yeniden yapılandırabilirsiniz.
  • L2pop ve dağıtılmış HA yönlendiricilerinin beklenen bir şekilde etkileşime girmediği bazı senaryolar vardır. Bu durumlar yalnızca HA yönlendiricilerini ve l2pop’u etkileyen durumlarla aynıdır.
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.