Red Hat Training

A Red Hat training course is available for RHEL 8

26.6.7.2. 特定のローカルポートで着信パケットを別のホストに転送

宛先ネットワークアドレス変換 (DNAT) ルールを使用して、ローカルポートの着信パケットをリモートホストに転送できます。これにより、インターネット上のユーザーは、プライベート IP アドレスを持つホストで実行しているサービスにアクセスできるようになります。

この手順では、ローカルポート 443 の着信 IPv4 パケットを、IP アドレス 192.0.2.1 を持つリモートシステムの同じポート番号に転送する方法を説明します。

前提条件

  • パケットを転送するシステムに root ユーザーとしてログインしている。

手順

  1. ip アドレスファミリーを使用して、nat という名前のテーブルを作成します。

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

    # nft -- add chain ip nat prerouting { type nat hook prerouting priority -100 \; }
    # nft add chain ip nat postrouting { type nat hook postrouting priority 100 \; }
    注記

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

  3. 443 ポートの着信パケットを 192.0.2.1 上の同じポートにリダイレクトするルールを prerouting チェーンに追加します。

    # nft add rule ip nat prerouting tcp dport 443 dnat to 192.0.2.1
  4. 出力トラフィックをマスカレードするルールを postrouting チェーンに追加します。

    # nft add rule ip daddr 192.0.2.1 masquerade
  5. パケット転送を有効にします。

    # echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf
    # sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf