web-dev-qa-db-ja.com

Keepalivedは定期的に無償のARPを送信します

Keepalivedが無償のARPを定期的に送信する方法はありますか?

次のような状況がありました。

  1. スイッチ障害(VLANセットアップ)
  2. keepalivedがバックアップインスタンスにフェイルオーバー
  3. バックアップインスタンスがGratuitous ARPを送信しましたが、Cisco ASAデバイスはそれを受け取りませんでした(スイッチの障害のため)
  4. スイッチが復旧したとき(数分後)VIPにアクセスできなくなった原因ASAがARPテーブルを更新しなかった(ARPテーブルの有効期限が4時間に設定されている)
  5. aSAは以前のアクティブノードからのMACをすでに持っているため、ARP要求を送信しませんでした
  6. 新しいGARPを開始したキープアライブされたインスタンスを再起動するまで、VIPにアクセスできませんでした

したがって、定期的なGARPでこの状況を回避できると考えています。これは良いアプローチですか?keepalived内でそれを行う方法はありますか?

この種の問題を回避するための他の提案はありますか?

Keepalived構成:

global_defs {
   notification_email {
     [email protected]
   }

   notification_email_from SERVER_1
   smtp_server smtp.server.local
   smtp_connect_timeout 30
   router_id SERVER_1
}

vrrp_instance V1 {
    state BACKUP
    nopreempt
    interface eth0
    lvs_sync_daemon_interface eth0
    virtual_router_id 150
    priority 120
    advert_int 1
    persistence_timeout 0
    smtp_alert

    authentication {
        auth_type PASS
        auth_pass xxx
    }

    virtual_ipaddress {
    10.xxx.xxx.xxx
    }
}
5
user373333

keepalivedバージョン1.2.20以降では、無償のARPに関する以下の構成設定がサポートされています。vrrp_garp_master_refreshが必要です。

    # delay for second set of gratuitous ARPs after transition to MASTER
    vrrp_garp_master_delay 10    # seconds, default 5, 0 for no second set

    # number of gratuitous ARP messages to send at a time after transition to MASTER
    vrrp_garp_master_repeat 1    # default 5

    # delay for second set of gratuitous ARPs after lower priority advert received when MASTER
    vrrp_garp_lower_prio_delay 10

    # number of gratuitous ARP messages to send at a time after lower priority advert received when MASTER
    vrrp_garp_lower_prio_repeat 1

    # minimum time interval for refreshing gratuitous ARPs while MASTER
    vrrp_garp_master_refresh 60  # secs, default 0 (no refreshing)

    # number of gratuitous ARP messages to send at a time while MASTER
    vrrp_garp_master_refresh_repeat 2 # default 1

    # Delay in ms between gratuitous ARP messages sent on an interface
    vrrp_garp_interval 0.001          # decimal, seconds (resolution usecs). Default 0.

    # Delay in ms between unsolicited NA messages sent on an interface
    vrrp_gna_interval 0.000001        # decimal, seconds (resolution usecs). Default 0.
7
user373333