Ubuntu 18.04 netplanは、問題を解決するために割り込みネットワークの再起動を適用します。

Ubuntu 18.04 netplanは、問題を解決するために割り込みネットワークの再起動を適用します。

設定は次のとおりです。

host1-ip iface: ens192: 10.100.0.11/16
host1-gateway:  ens192: 10.100.0.1
host1-ip iface: ens224: 10.0.0.11/16
host1-gateway:  ens224: 10.0.0.1

host2-ip iface: ens192: 10.100.0.12/16
host2-gateway:  ens192: 10.100.0.1
host2-ip iface: ens224: 10.0.0.12/16
host2-gateway:  ens224: 10.0.0.1

keepalived-vip1 on iface: ens192: 10.100.100.1
keepalived-vip2 on iface: ens224: 10.0.100.1

dns1: 10.100.0.21
dns2: 10.100.0.22

/etc/netplan/01-netcfg.yaml:

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    ens192:
      addresses: [ 10.100.0.11/16 ]
      gateway4: 10.100.0.1
      nameservers:
          search: [ example.com ]
          addresses:
              - "10.100.0.21"
              - "10.100.0.22"
    ens224:
      addresses: [ 10.0.0.11/16 ]
      nameservers:
          search: [ example.com ]
          addresses:
              - "10.100.0.21"
              - "10.100.0.22"

この構成で

keepalived-vip1 on iface: ens192: 10.100.100.1 <-- works
keepalived-vip2 on iface: ens224: 10.0.100.1 <-- dead, not pingable

論理的には ens224 インターフェイスに設定されたゲートウェイがないため、ネットワークスケジューラが来て、次のスクリプトを使用して iface ens224 のゲートウェイと接続保持アドレスを設定します。

/usr/lib/networkd-dispatcher/routable.d/00up:

#!/bin/bash
## INITIALISIERUNG
#Diese Werte werden vom netword-dispatcher an das Skript übergeben
set -x
INTERFACE=${IFACE}
ACTION=${STATE}
case "${INTERFACE}" in
("ens224")
        case "${ACTION}" in
        ("routable")
                /bin/ip route add table 2 default via 10.0.0.1
                /bin/ip rule add from 10.0.100.1 table 2
                ;;
        (*)
                ;;
        esac

(*)
        ;;
esac

サーバーを再起動すると、すべてが期待どおりに機能します。私の2つのアドレスを使用して再起動しても動作します。

keepalived-vip1 on iface: ens192: 10.100.100.1 <-- works
keepalived-vip2 on iface: ens224: 10.0.100.1 <-- works

ここでいくつかのコマンドを実行します。

netplan apply
systemctl restart systemd-networkd

これでアドレスが消えました(Keepalivedヘルスチェックはまだ成功しているため、フェイルオーバーは発生しませんが、この場合はこのnetplan //ネットワーク//再起動動作をデバッグする必要があります)。

keepalived-vip1 on iface: ens192: 10.100.100.1 <-- dead, not pingable
keepalived-vip2 on iface: ens224: 10.0.100.1 <-- dead, not pingable

スクリプトの手動ステップを使用して問題を解決してください。

ip route add table 2 default via 10.0.0.1
ip rule add from 10.0.100.1 table 2

まだ:

keepalived-vip1 on iface: ens192: 10.100.100.1 <-- dead, not pingable
keepalived-vip2 on iface: ens224: 10.0.100.1 <-- dead, not pingable

サーバーを再起動すると正常に戻ります。

keepalived-vip1 on iface: ens192: 10.100.100.1 <-- works
keepalived-vip2 on iface: ens224: 10.0.100.1 <-- works

私もnetplanを使ってみましたが、すでにNetplanには、それぞれ異なるゲートウェイに接続されている2つのNICがあります。しかし、2番目のkeepalived-vipを動作させることはできません。

ベストアンサー1

私自身の質問に答えようとする多くの調査の終わりに、私はkeepalived質問を見つけました。https://github.com/acassen/keepalived/issues/836

「systemd-networkdが自分に「属していない」アドレスを削除しています。」 keepalivedはubuntuまたはrhelのリリースでそれを検出できません。

私にとっての解決策は、この状況を処理できるバージョン2.0.20で接続保持コンテナを構築することでした。

(keepalived> = v2が処理できる)

おすすめ記事