Distributed Virtual Routing dengan VRRP

Distributed Virtual Routing dengan VRRP

Open vSwitch: High availability menggunakan DVR mendukung pembesaran menggunakan Virtual Router Redundancy Protocol (VRRP). Menggunakan konfigurasi ini, router virtual mendukung kedua opsi --distributed dan --ha.

Mirip dengan legacy HA router, DVR/SNAT HA router menyediakan penanganan kegagalan (failover) cepat layanan SNAT ke router DVR/SNAT backup pada l3-agent yang berjalan pada node yang berbeda.

SNAT ketersediaan tinggi diimplementasikan dengan cara yang sama dengan contoh Linux bridge: High availability menggunakan VRRP dan Open vSwitch: High availability menggunakan VRRP dimana keepalived menggunakan VRRP untuk memberikan failover cepat layanan SNAT.

Selama operasi normal, master router secara periodik mengirimkan paket heartbeat melalui jaringan proyek tersembunyi yang menghubungkan semua router HA untuk proyek tertentu.

Jika router backup DVR/SNAT berhenti menerima paket ini, hal ini mengasumsikan kegagalan router DVR/SNAT master dan mempromosikan diri untuk menguasai router dengan mengkonfigurasi alamat IP pada antarmuka dalam namespace snat. Dalam lingkungan dengan lebih dari satu router cadangan, aturan VRRP diikuti untuk memilih router msater baru.

Peringatan

Ada bug yang dikenal dengan keepalived v1.2.15 dan sebelumnya yang dapat menyebabkan kehilangan paket (packet loss) ketika `` max_l3_agents_per_router`` diatur ke 3 atau lebih. Oleh karena itu, kami menyarankan Anda meng-upgrade ke keepalived v1.2.16 atau lebih besar saat penggunaan fitur ini.

Catatan

Fitur eksperimental atau dokumentasi tak lengkap.

Contoh konfigurasi

Model pengerahan dasar terdiri dari satu controller node, dua atau lebih node jaringan, dan beberapa node komputasi.

Konfigurasi controller node

  1. Tambahkan hal berikut ke /etc/neutron/neutron.conf:

    [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
    

    Ketika flag router_distributed = True dikonfigurasi, router yang dibuat oleh semua pengguna didistribusikan. Tanpa itu, hanya pengguna istimewa dapat menciptakan didistribusikan router dengan menggunakan --distributed True.

    Demikian pula, ketika flag l3_ha = True dikonfigurasi, router yang dibuat oleh semua pengguna menjadi default untuk HA.

    Ini berarti bahwa dengan dua flag ini diatur ke True dalam file konfigurasi, router yang dibuat oleh semua pengguna akan menjadi default untuk router HA (DVR HA) terdistribusi.

    Hal yang sama dapat secara eksplisit dicapai oleh pengguna dengan kredensial administratif pengaturan flag di perintah neutron router-create:

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

    Catatan

    max_l3_agents_per_router menentukan jumlah cadangan router DVR/SNAT yang akan dipakai.

  2. Tambahkan berikut ke /etc/neutron/plugins/ml2/ml2_conf.ini:

    [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
    

    Gantilah MIN_VXLAN_ID dan MAX_VXLAN_ID dengan nilai minimum dan maksimum VXLAN ID yang cocok dengan lingkungan Anda.

    Catatan

    Nilai pertama dalam opsi tenant_network_types menjadi tipe jaringan proyek default ketika user biasa membuat sebuah jaringan.

Network nodes (simpul jaringan)

  1. Lakukan konfigurasi agen Open vSwitch. Tambahkan hal berikut ke /etc/neutron/plugins/ml2/ml2_conf.ini:

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

    Ganti TUNNEL_INTERFACE_IP_ADDRESS dengan alamat IP dari antarmuka yang menangani jaringan proyek VXLAN.

  2. Lakukan konfigurasi agen L3. Tambahkan hal berikut ke /etc/neutron/l3_agent.ini:

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

    Catatan

    Opsi external_network_bridge sengaja tidak mengandung nilai.

Compute nodes (simpul komputasi)

  1. Lakukan konfigurasi agen Open vSwitch. Tambahkan hal berikut ke /etc/neutron/plugins/ml2/ml2_conf.ini:

    [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. Lakukan konfigurasi agen L3. Tambahkan hal berikut ke /etc/neutron/l3_agent.ini:

    [DEFAULT]
    interface_driver = openvswitch
    external_network_bridge =
    agent_mode = dvr
    

    Ganti TUNNEL_INTERFACE_IP_ADDRESS dengan alamat IP dari antarmuka yang menangani jaringan proyek VXLAN.

Cek kesehatan Keepalived VRRP health check

Kesehatan instance keepalived Anda dapat secara otomatis dipantau melalui skrip bash yang memverifikasi konektivitas ke semua alamat gerbang yang dikonfigurasi dan tersedia. Dalam hal konektivitas yang hilang, master router dijadwal ulang ke node lain.

Jika semua router kehilangan konektivitas secara bersamaan, proses pemilihan router induk baru akan diulang secara round-robin sampai satu atau lebih router telah dipulihkan konektivitas mereka.

Untuk mengaktifkan fitur ini, edit file l3_agent.ini:

ha_vrrp_health_check_interval = 30

Dimana ha_vrrp_health_check_interval menunjukkan seberapa sering dalam detik dimana pengecekan kesehatan harus dijalankan. Nilai default adalah 0, yang menunjukkan bahwa pengecekan tidak berjalan sama sekali.

Keterbatasan dikenal

  • Migrasi router dari hanya didistribusikan, hanya HA, atau legacy ke HA yang didistribusikan tidak didukung saat ini. Router harus dibuat sebagai HA yang didistribusikan. Arah sebaliknya juga tidak didukung. Anda tidak dapat mengkonfigurasi ulang router HA yang didistribusikan ke hanya didistribusikan, hanya HA, atau legacy (warisan).
  • Ada skenario tertentu di mana l2pop dan router HA didistribusikan tidak berinteraksi dengan cara yang diharapkan. Situasi ini adalah sama yang mempengaruhi router hanya HA dan l2pop.
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.