設定
私は Debian Jessie を実行する小さな組み込みボードで遊んでいます。systemd
ネットワーク関連も含め、できる限り多くのものを使用しています。次のファイルを追加しました:
/etc/systemd/network/eth0-dhcp.network
:
[Match]
Name=eth0
[Network]
DHCP=yes
/etc/resolv.conf
ファイルをシンボリックリンクになるように修正します/run/systemd/resolve/resolv.conf
。
systemd によって報告されたバージョンは 215 です。
ボードを MacBookPro に接続し、Wi-Fi 接続をイーサネットとして共有しています。
何が起こるのですか
1) 最初の起動では、すべて正常です。MacBookifconfig
から有効な IP アドレスが渡されていることがわかります。ping 0.debian.pool.ntp.org
有効な応答を受け取ることができます。cat /etc/resolv.conf
有効なアドレスが表示されますnameserver
。これはすべて予想どおりで、良いことです (tm)
2) イーサネット ケーブルを外すと、コンソールにリンクがダウンしていることを示す一連のメッセージが表示されます。この時点で、ifconfig
IP アドレスは表示されなくなり、cat /etc/resolv.conf
空になります。もちろん、ping も機能しなくなります。これもすべて予想どおりです。
3) ケーブルを再接続します。これで、リンクがアップしていることを示す一連のメッセージが表示されます。この時点で、ifconfig
有効な IP アドレスが再びあることを示しています。ただし、/etc/resolv.conf
そこには何も入っていません。そのため、ping コマンドは機能せず、アドレスがありません。ただし、ping 204.2.134.162
(前述のホストの以前に報告されたアドレスは) 実行できます。したがって、ケーブルのホット プラグにより、ネットワーク レイヤーは正常に復帰したが、systemd-resolved
そうではないという結論になります。
を実行した後systemctl restart systems-resolved
、/etc/resolv.conf
エントリが再度表示されますが、解決された IP アドレスは異なるため、まだ ping は実行されません。
ここで何が起こっているのか、誰か説明してくれませんか? ネットワークのホット プラグ イベント後に名前解決を再び機能させるには何が必要ですか? 遠慮なく衒学的に述べてください。私のネットワークに関する知識のほとんどは、経験から得た逸話と試行錯誤によるものです。
アップデート
Debianプールのアドレスは実際には異なっており、pingできない可能性があることが指摘されています。google.com
代わりにを使用すると、その部分は常に正常に機能します。それで、残りの質問は次のようになります。
ネットワークがホットプラグされた後に systemd-resolved を再起動するにはどうすればよいですか?