この記事の位置づけ
Ubuntu 22.04 のサーバー運用で発生しやすいネットワーク、外部通信、カーネルモジュールまわりの補足記事です。基本設定だけでは見落としやすい確認点を整理します。
Kubernetes のノードの設定を見直していたところ、以下のように Failed を見つけました。
sudo systemctl status systemd-modules-load.service
● systemd-modules-load.service - Load Kernel Modules
Loaded: loaded (/lib/systemd/system/systemd-modules-load.service; static)
Active: active (exited) since Sun 2024-07-07 14:22:05 JST; 2s ago
Docs: man:systemd-modules-load.service(8)
man:modules-load.d(5)
Process: 2436732 ExecStart=/lib/systemd/systemd-modules-load (code=exited, status=0/SUCCESS)
Main PID: 2436732 (code=exited, status=0/SUCCESS)
CPU: 4ms
Jul 07 14:22:05 ubuntu systemd[1]: Starting Load Kernel Modules...
Jul 07 14:22:05 ubuntu systemd-modules-load[2436732]: Failed to find module 'nf_conntrack_ipv4'
Jul 07 14:22:05 ubuntu systemd-modules-load[2436732]: Failed to find module 'nf_conntrack_ipv6'
Jul 07 14:22:05 ubuntu systemd[1]: Finished Load Kernel Modules./etc/modules-load.d/my.conf には以下の設定をしており、nf_conntrack_ipv4, nf_conntrack_ipv6 の問題であるようです。
overlay
br_netfilter
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack_ipv4
nf_conntrack_ipv6モジュールの状態を確認すると以下を見つけました。
lsmod | grep nf_conntrack
nf_conntrack 200704 5 xt_conntrack,nf_nat,xt_CT,xt_MASQUERADE,ip_vs
nf_defrag_ipv6 24576 2 nf_conntrack,ip_vs
nf_defrag_ipv4 16384 1 nf_conntrack
libcrc32c 16384 6 nf_conntrack,nf_nat,btrfs,nf_tables,raid456,ip_vsどうやら、nf_conntrack_ipv4, nf_conntrack_ipv6 は廃止されて nf_conntrack に統合されたようです。2 年前の情報ですが、前からロードできていなかったのか、ちょっと不明です。しかし、いくらなんでも気付きそうなので、Ubuntu は最近のアップデートからなのかもしれません。
https://github.com/kubernetes-sigs/kubespray/issues/8604
/etc/modules-load.d/my.conf を以下のように変更すると問題ありません。
overlay
br_netfilter
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntracksystemd-modules-load.service を再起動して確認します。
sudo systemctl restart systemd-modules-load.service
sudo systemctl status systemd-modules-load.service
● systemd-modules-load.service - Load Kernel Modules
Loaded: loaded (/lib/systemd/system/systemd-modules-load.service; static)
Active: active (exited) since Sun 2024-07-07 14:24:34 JST; 2s ago
Docs: man:systemd-modules-load.service(8)
man:modules-load.d(5)
Process: 2437285 ExecStart=/lib/systemd/systemd-modules-load (code=exited, status=0/SUCCESS)
Main PID: 2437285 (code=exited, status=0/SUCCESS)
CPU: 3ms
Jul 07 14:24:34 ubuntu systemd[1]: Starting Load Kernel Modules...
Jul 07 14:24:34 ubuntu systemd[1]: Finished Load Kernel Modules.古い手順を読む時の注意
Ubuntu 22.04 では、古い資料に出てくる nf_conntrack_ipv4 や nf_conntrack_ipv6 をそのまま前提にすると混乱します。現在は nf_conntrack に統合されているため、モジュール名、sysctl、iptables / nftables の前提を読み替えます。
古い手順を移植する時は、コマンドが失敗したかどうかだけでなく、カーネル側の実装が変わっていないかを確認します。
次に読む記事
参考書籍
マスタリング TCP/IP 入門編 第6版
TCP/IP、IP、ICMP、UDP、ルーティングなど、ネットワークの基礎を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。


