手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 nf_conntrack_ipv4 / nf_conntrack_ipv6 は nf_conntrack に統合された

この記事の位置づけ

Ubuntu 22.04 のサーバー運用で発生しやすいネットワーク、外部通信、カーネルモジュールまわりの補足記事です。基本設定だけでは見落としやすい確認点を整理します。

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_conntrack

systemd-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_ipv4nf_conntrack_ipv6 をそのまま前提にすると混乱します。現在は nf_conntrack に統合されているため、モジュール名、sysctl、iptables / nftables の前提を読み替えます。

古い手順を移植する時は、コマンドが失敗したかどうかだけでなく、カーネル側の実装が変わっていないかを確認します。

次に読む記事

Ubuntu 22.04 サーバー構築・運用メモへ戻る

参考書籍

参考書籍
参考書籍

マスタリング TCP/IP 入門編 第6版

TCP/IP、IP、ICMP、UDP、ルーティングなど、ネットワークの基礎を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

Ubuntu 22.04 nf_conntrack_ipv4 / nf_conntrack_ipv6 は nf_conntrack に統合された

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る