Red Hat Training

A Red Hat training course is available for RHEL 8

26.6.4.4. nftables を使用した宛先 NAT の設定

宛先 NAT により、ルーター上のトラフィックをインターネットから直接アクセスできないホストにリダイレクトできます。

以下の手順では、ルーターの 80 ポートおよび 443 ポートに送信される着信トラフィックを、IP アドレス 192.0.2.1 のホストにリダイレクトする方法を説明します。

手順

  1. テーブルを作成します。

    # nft add table nat
  2. テーブルに、prerouting チェーンおよび postrouting チェーンを追加します。

    # nft -- add chain nat prerouting { type nat hook prerouting priority -100 \; }
    # nft add chain nat postrouting { type nat hook postrouting priority 100 \; }
    重要

    postrouting チェーンにルールを追加しなくても、nftables フレームワークでは、このチェーンが発信パケット返信に一致するようにする必要があります。

    nft コマンドに -- オプションを渡すと、シェルが優先度の負の値を nft コマンドのオプションとして解釈する必要がなくなります。

  3. prerouting チェーンに、80 ポートおよび 443 ポートに送信された ens3 インターフェースの着信トラフィックを、IP アドレスが 192.0.2.1 であるホストにリダイレクトするルールを追加します。

    # nft add rule nat prerouting iifname ens3 tcp dport { 80, 443 } dnat to 192.0.2.1
  4. 環境に応じて、SNAT ルールまたはマスカレードルールを追加して、ソースアドレスを変更します。

    1. ens3 インターフェースが動的 IP アドレスを使用している場合は、マスカレードルールを追加します。

      # nft add rule nat postrouting oifname "ens3" masquerade
    2. ens3 インターフェースが静的 IP アドレスを使用する場合は、SNAT ルールを追加します。たとえば、ens3 が IP アドレス 198.51.100.1 を使用している場合は、以下のようになります。

      nft add rule nat postrouting oifname "ens3" snat to 198.51.100.1