nftables (iptables 後継)(エヌエフテーブルズ)
Patrick McHardy 主導開発のLinux ファイアウォール。2014年Linux 3.13 で導入、iptables / ip6tables / arptables / ebtables の統合後継、性能・機能・記法を全面刷新。
概要
nftables はLinux カーネル内Netfilter プロジェクト (Patrick McHardy / Pablo Neira Ayuso 等が主導) が開発した新世代ファイアウォールフレームワーク。2014年1月Linux 3.13 で導入、従来のiptables (IPv4) / ip6tables (IPv6) / arptables (ARP) / ebtables (L2 Ethernet) 4つの別ツールを統合した後継。新しい nft ユーザ空間ツール・nft 仮想マシン (bytecode JIT 実行)・名前付きセット / マップ等を追加、RHEL 8 (2019) / Debian 10 (2019) / Ubuntu 20.04 (2020) デフォルト化。
nftables vs iptables 主要比較
| 項目 | iptables (1998-) | nftables (2014-) |
|---|---|---|
| プロトコル別ツール | 4個 (iptables / ip6tables / arptables / ebtables) | 1個 (nft) |
| ルール構造 | 固定チェーン | 動的階層 |
| Set / Map | ipset 別ツール | 標準内蔵 |
| Dict | 不可 | 標準内蔵 |
| 性能 (大規模) | 線形O(n) | 集合演算O(log n) |
| 構文 | 慣れ親しんだが冗長 | 新構文・簡潔 |
| 後方互換 | - | iptables-nft 互換層 |
| JSON 出力 | なし | あり |
nftables 構造
| 要素 | 内容 |
|---|---|
| Table | ネットワークプロトコル毎 (inet/ip/ip6/arp/bridge/netdev) |
| Chain | テーブル内ルールグループ |
| Rule | アクションを実行する条件 |
| Set | 動的IPアドレス / ポート集合 |
| Map | キー→値マッピング |
| Counter | パケットカウンタ |
| Quota | 帯域制限 |
設定例
# テーブル + チェーン + ルール作成
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0 \; }
nft add rule inet filter input ct state established,related accept
nft add rule inet filter input iif lo accept
nft add rule inet filter input tcp dport { 22, 80, 443 } accept
nft add rule inet filter input reject
# Set 利用
nft add set inet filter badip { type ipv4_addr \; }
nft add element inet filter badip { 1.2.3.4, 5.6.7.8 }
nft add rule inet filter input ip saddr @badip drop
主要採用 Distro
| Distro | バージョン | 年 |
|---|---|---|
| RHEL | 8 | 2019 |
| CentOS | 8 | 2019 |
| Debian | 10 Buster | 2019 |
| Ubuntu | 20.04 LTS | 2020 |
| Fedora | 32 | 2020 |
| openSUSE | 15 SP2 | 2020 |
| Arch Linux | (継続的) | 2018- |
後方互換性: iptables-nft
iptables-nft は iptables コマンド形式を受け取り、内部でnftables へ変換して実行する互換ラッパ。Docker / Kubernetes 等の既存iptables ベースツールがそのまま動作。RHEL 8+ ではiptables = iptables-nft シンボリックリンク。
性能優位
大規模ルール (10,000+) でiptables は線形検索O(n) のため遅化、nftables は Set / Map 集合演算O(log n) で大幅高速。Cloudflare / Google 等のDDoS 対策で重要。
関連用語との違い
- vs iptables: 後継・統合・性能向上
- vs eBPF (XDP): 一般ファイアウォール / 超高速パケット処理
- vs UFW / FirewallD: 上位GUI ・nftables を内部利用
FAQ
Q1: iptables 知識使える? A: iptables-nft 互換層で従来コマンドそのまま動作。本格的nft 構文学習は推奨だが、急に必要ではない。
Q2: Docker / Kubernetes 影響? A: iptables-nft 経由で透過動作。混合環境 (ホストnft + Docker iptables) に注意。
Q3: nft 学習リソース? A: 公式 wiki (wiki.nftables.org)・"Linux Firewalls" 書籍。iptables → nft 移行ガイドも豊富。