
systemd dhcpクライアントの動作をデバッグしようとしていますが、systemd-networkdデバッグログを有効にする方法がわかりません。具体的には、src/libsystemd-network/sd-dhcp-client.cでlog_dhcp_client()ログエントリを表示したいと思います。
最初の答えで述べたように、デバッグするようにsystemd-networkdログレベルを変更しました。
https://superuser.com/questions/1187633/how-to-debug-systemd-networkd
ただし、まだJournalctl(または他の場所)にdhcpクライアントのデバッグメッセージは表示されません。 (1回の回答が必要だからデバッグを有効にした状態で再起動したりしました。)
systemd v246(v246.2+)を実行します。どんな助けでも大変感謝します。ありがとうございます! !
答え1
さらなる調査により、問題が自分で発生したことがわかりました!鉱山journald.conf
(OpenBMC関連プロジェクトから継承)には、次の設定が含まれています。
MaxLevelStore=info
MaxLevelSyslog=info
したがって、デバッグメッセージをログに記録するように systemd-networkd を設定しても、そのメッセージはログに記録されないか、syslog に転送されません。上記のログ設定を「デバッグ」に変更した後、デバッグメッセージが表示されました。
私の苦しみが他の人も同じ運命を避けるのに役立つことを願っています。
答え2
これにより、Netplanが奇妙に動作するときにUbuntuでDHCPクライアントの問題を解決する必要がなくなりました。最初はそんなことなのかわかりませんでした。システムネットワークDHCP クライアントのコンテンツ処理またはネットワーク管理者どちらのクライアントもリースを生成するので、独自のDHCPクライアントです!
したがって、トラブルシューティングプロセスのためにのみ同様の問題が発生した場合に提供できる方法は次のとおりです。
/etc/NetworkManager/NetworkManager.conf
aaセクションを追加し、[logging]
以下を追加します。
[logging]
#level=INFO
#level=DEBUG
domains=ETHER:DEBUG,DHCP4
最終ディレクティブを使用することをお勧めします。domains
これにより、ユーザーに混乱を招くことなく、具体的にDHCP詳細に詳細を制限できます。
confファイルを変更したら、NeworkManagerを再起動します。
sudo systemctl restart NetworkManager
サンプル出力:
journalctl -u NetworkManager.service | grep DHCP
<SNIP>
NetworkManager[4833]: <debug> [16*.3488] dhcp-init: enabled DHCP client 'dhclient'
NetworkManager[4833]: <debug> [16*.3489] dhcp-init: enabled DHCP client 'internal'
NetworkManager[4833]: <debug> [16*.3489] dhcp-init: enabled DHCP client 'systemd' (undocumented internal plugin)
NetworkManager[4833]: <debug> [16*.3490] dhcp-init: enabled DHCP client 'nettools' (undocumented internal plugin)
NetworkManager[4833]: <info> [16*.3491] dhcp-init: Using DHCP client 'internal'
<SNIP>
追加レベルの「デバッグ」詳細がない場合、「情報」レベルのログ記録のフィードバックには、NetworkManagerが「dhclient」も呼び出しているという事実は表示されません。これにより、(2)セットのDHCPリース方法を把握しようとします。生成されているかどうかシステムネットワークまたはネットワーク管理者権威を持ってください。現れるネットワーク計画究極の犯人です。
とにかくこれは分解しなければならない小さな豚なので、同じウサギの洞窟に陥っている他の人を救うために私が学んだことを共有する価値があると思いました...