私はこれについてしばらくの間壁に頭をぶつけてきました、そして何の前進もしていません。
静的に割り当てられた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 ens160
またはsystemctl 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
これは、bind9とsshサーバーのみがインストールされているvmwareクラスターにVanilla Ubuntu16.04.1サーバーをインストールした場合です。行われる構成変更は、適切に構成されたbind9と静的IPの変更のみです。
同じことを行うインストールが複数あります。
私はたくさんの検索をしましたが、この状況に一致するものは何も思いつきませんでした。私のグーグルフーは通常強いですが、今回は失敗しました。
私が得ることができるどんな助けでも大いに感謝されるでしょう。
ゲートウェイラインをコメントアウトすると機能するため、不幸な競合状態に悩まされます。インターフェイスのリンクがアップするとすぐに、Linuxは近隣の検出とルート通知の受け入れを開始します。これにより、IPv6ルートをルーティングテーブルに入れることができます。インターフェイスはまだ完全に設定されていません。スクリプトが後でデフォルトルートを追加しようとすると、RTNETLINK answers: File exists
が得られます。これを回避するには、ゲートウェイラインをコメントアウトするか(ルートがネットワークで正しくアナウンスされる場合に推奨される方法です)、sysctl -w net.ipv6.conf.device.accept_ra=0
(デバイスは実際のデバイス、デフォルト、またはすべて)。