手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 nf_conntrack – 旧モジュール名から統合後の確認へ

Ubuntu 22.04 では、古い手順に出てくる nf_conntrack_ipv4nf_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

現在読み込まれているモジュールを見る

lsmodnf_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.conf

systemd-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-pager

conntrack の 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' | head

iptables との関係を見る

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 || true

conntrack コマンドで確認する

conntrack コマンドを使う場合は conntrack パッケージを導入します。通信状態の確認や統計を見るときに使います。

sudo DEBIAN_FRONTEND=noninteractive apt-get install -y conntrack
sudo conntrack -S
sudo conntrack -L 2>/dev/null | head || true

古い手順を読み替える

古い手順で nf_conntrack_ipv4nf_conntrack_ipv6 を明示している場合は、現在の Ubuntu 22.04 では nf_conntrack を確認対象にします。

古い確認対象Ubuntu 22.04 で見る対象
nf_conntrack_ipv4nf_conntrack
nf_conntrack_ipv6nf_conntrack
lsmod の個別 IPv4 / IPv6 表示nf_conntracknf_defrag
iptables の conntrack matchiptables-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.dsystemd-modules-loadlsmod、sysctl を順番に見ます。

iptables / nftables、NAT、コンテナ環境では conntrack が関係することがあります。旧モジュール名のエラーを消すだけでなく、現在の ruleset と conntrack table の状態を合わせて確認します。

関連する記事
Ubuntu 22.04 nf_conntrack – 旧モジュール名から統合後の確認へ

コメントを残す

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

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

トップへ戻る