Ubuntu 22.04 では、古い手順に出てくる nf_conntrack_ipv4 や nf_conntrack_ipv6 を個別モジュールとして読み込もうとすると、Failed to find module になることがあります。現在は接続追跡の中心を nf_conntrack として確認します。
この記事では、Ubuntu 22.04 で conntrack 関連の旧モジュール名が残っている場合の見直し、systemd-modules-load のログ確認、lsmod、sysctl、iptables / nftables との関係を確認します。
nf_conntrack_ipv4/nf_conntrack_ipv6が見つからない理由- 統合後の
nf_conntrackの確認方法 /etc/modules-load.dの見直し- iptables / nftables で conntrack を使う場合の確認
- 再起動後に見るログと sysctl
書籍
ストーリーで覚える Linux CLI 入門
Linux のコマンドライン操作を基礎から確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
旧モジュール名で起きること
/etc/modules-load.d などに古いモジュール名が残っていると、起動時に読み込み失敗が記録されます。まず systemd のログを確認します。
systemctl status systemd-modules-load.service --no-pager
journalctl -u systemd-modules-load.service -n 80 --no-pager設定ファイルを確認する
旧モジュール名がどのファイルに残っているかを確認します。見つかった場合は、用途を確認してから nf_conntrack に寄せます。
grep -R "nf_conntrack_ipv4\|nf_conntrack_ipv6" /etc/modules-load.d /etc/modprobe.d 2>/dev/null || true
grep -R "nf_conntrack" /etc/modules-load.d /etc/modprobe.d 2>/dev/null || true現在読み込まれているモジュールを見る
lsmod で nf_conntrack と関連モジュールを確認します。IPv4 / IPv6 個別ではなく、統合されたモジュールとして見ます。
lsmod | grep nf_conntrack || true
lsmod | grep nf_defrag || true
modinfo nf_conntrack | head -40読み込み設定を修正する
永続的に読み込ませたい場合は、旧名ではなく nf_conntrack を指定します。不要な旧名は残さないようにします。
sudo tee /etc/modules-load.d/netfilter.conf >/dev/null <<'EOF'
nf_conntrack
EOF
cat /etc/modules-load.d/netfilter.confsystemd-modules-load を再実行する
設定変更後に systemd-modules-load を再実行し、失敗ログが出ないことを確認します。
sudo systemctl restart systemd-modules-load.service
systemctl status systemd-modules-load.service --no-pager
journalctl -u systemd-modules-load.service -n 80 --no-pagerconntrack の sysctl を確認する
conntrack は connection tracking table を使います。多数の接続を扱うサーバーでは、現在値と上限も確認します。
sysctl net.netfilter.nf_conntrack_count
sysctl net.netfilter.nf_conntrack_max
sysctl -a 2>/dev/null | grep '^net.netfilter.nf_conntrack' | headiptables との関係を見る
iptables で -m conntrack を使う場合、nf_conntrack が関係します。Ubuntu 22.04 では iptables-nft backend もあるため、nftables ruleset も合わせて見ます。
sudo iptables --version
sudo iptables -S | grep conntrack || true
sudo nft list ruleset | grep conntrack || trueconntrack コマンドで確認する
conntrack コマンドを使う場合は conntrack パッケージを導入します。通信状態の確認や統計を見るときに使います。
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y conntrack
sudo conntrack -S
sudo conntrack -L 2>/dev/null | head || true古い手順を読み替える
古い手順で nf_conntrack_ipv4 や nf_conntrack_ipv6 を明示している場合は、現在の Ubuntu 22.04 では nf_conntrack を確認対象にします。
| 古い確認対象 | Ubuntu 22.04 で見る対象 |
nf_conntrack_ipv4 | nf_conntrack |
nf_conntrack_ipv6 | nf_conntrack |
lsmod の個別 IPv4 / IPv6 表示 | nf_conntrack と nf_defrag |
| iptables の conntrack match | iptables-nft と nftables ruleset |
運用時に見るポイント
conntrack は firewall、NAT、Kubernetes、コンテナ環境でも関係します。起動時エラーだけを消すのではなく、実際にどの機能が conntrack を使っているかも確認します。
/etc/modules-load.dに旧モジュール名が残っていないか- 起動時に
systemd-modules-loadが失敗していないか - iptables / nftables のルールが conntrack を使っているか
- conntrack table の現在値と上限に余裕があるか
- コンテナや Kubernetes のネットワーク設定で前提にしていないか
まとめ
Ubuntu 22.04 では、nf_conntrack_ipv4 / nf_conntrack_ipv6 を個別に読み込むのではなく、統合された nf_conntrack を確認します。古い設定が残っている場合は、/etc/modules-load.d、systemd-modules-load、lsmod、sysctl を順番に見ます。
iptables / nftables、NAT、コンテナ環境では conntrack が関係することがあります。旧モジュール名のエラーを消すだけでなく、現在の ruleset と conntrack table の状態を合わせて確認します。

