RTNETLINK回答:ipv6アドレスを追加した後にファイルが存在します。

RTNETLINK回答:ipv6アドレスを追加した後にファイルが存在します。

しばらく壁に頭をぶつけたが、何の進展もなかった。

私のシステムにはipv4とipv6アドレスが静的に割り当てられています。起動後の実行systemctl status networking結果は次のとおりです。

● networking.service - Raise network interfaces
   Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
  Drop-In: /run/systemd/generator/networking.service.d
       └─50-insserv.conf-$network.conf
   Active: failed (Result: exit-code) since Sat 2016-08-27 14:48:50 MST; 8min ago
     Docs: man:interfaces(5)
  Process: 3301 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=1/FAILURE)
  Process: 3275 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] && [ -n "$(ifquery --read-environment --list --exclude=lo)" ] && udevadm settle (code=exited, status=0/SUCCESS)
 Main PID: 3301 (code=exited, status=1/FAILURE)

Aug 27 14:48:25 phoenix systemd[1]: Starting Raise network interfaces...
Aug 27 14:48:28 phoenix ifup[3301]: /sbin/ifup: waiting for lock on /run/network/ifstate.ens160
Aug 27 14:48:50 phoenix ifup[3301]: RTNETLINK answers: File exists
Aug 27 14:48:50 phoenix ifup[3301]: Failed to bring up ens160.
Aug 27 14:48:50 phoenix systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
Aug 27 14:48:50 phoenix systemd[1]: Failed to start Raise network interfaces.
Aug 27 14:48:50 phoenix systemd[1]: networking.service: Unit entered failed state.
Aug 27 14:48:50 phoenix systemd[1]: networking.service: Failed with result 'exit-code'.

しかし、インターフェイスは実際に実行中です。

を実行するとsystemctl restart networking失敗します。実行すると、ifdown ens160インターフェイスが設定されていないと表示されます。

インターフェイスを強制的に閉じると、終了してからifdown --force ens160またはを使用して再起動します。ifup ens160systemctl restart networking

ipv6部分をコメントアウトすると、起動後に問題はありません。

これは私のインターフェースファイルです。

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto ens160
iface ens160 inet static
    address XXX.XXX.XXX.3/24
    gateway XXX.XXX.XXX.1
    dns-search example.org
    dns-nameservers ::1 127.0.0.1

# This is an IPv6 interface
iface ens160 inet6 static
    address XXXX:XXXX:XXXX:XXXX::3/64
    gateway XXXX:XXXX:XXXX:XXXX::1

これはvmwareクラスタにインストールされたデフォルトのUbuntu 16.04.1サーバーであり、Bind9およびSSHサーバーのみがインストールされています。設定の変更は、正しく設定されたbin9と固定IPの変更でした。

同じことを行う複数のインストールがあります。

私はたくさんの検索をしましたが、このシナリオに合ったものが見つかりませんでした。私のGoogle技術は一般的に強力ですが、これは失敗しました。

私が得ることができるどんな助けにも感謝します。

ベストアンサー1

ゲートウェイラインがコメントアウトされると動作するため、不幸な競合状態が発生します。 Linuxはインターフェイスへのリンクが確立されるとすぐに実行を開始します。隣人が見つけました。そして受け入れるルーター広告インターフェイスがまだ完全に設定されていない場合でも、IPv6 ルートをルーティング テーブルに配置できます。後でスクリプトがデフォルトパスを追加しようとすると、次の結果が表示されます。

RTNETLINK answers: File exists

この問題を解決するには、次の手順を実行します。

  • ゲートウェイラインをコメントアウトします(パスがネットワークに正しく知られている場合は推奨されるアプローチです)。
  • または、次の方法でRAの受け入れを無効にします。
    sysctl -w net.ipv6.conf.device.accept_ra=0
    
    (装置は実際の装置defaultであるかall)。

おすすめ記事