ヤマハルーター(RTXシリーズ)でアドレス変換の設定を行うには、まず基本概念を押さえておく必要があります。
本記事では、NATとIPマスカレードの違い、NATディスクリプタの考え方を整理したうえで、実務でよく使う代表的な設定例を4つ紹介します。
基本概念
「NAT」と「IPマスカレード」の違い
- NAT:IPアドレス(始点/終点)のみを1対1で変換する機能
- IPマスカレード:ポート番号の変換も伴うことで、1つのグローバルIPアドレスを複数の端末で共有できるようにする機能(NAPT)
NATディスクリプタ
ヤマハルーターでは、アドレスの変換規則を「NATディスクリプタ」というグループ(番号)で定義し、それを各インターフェース(PPやトンネル、LANなど)に適用して動作させます。
例①:IPマスカレード(一般的なインターネット接続・NAPT)
プロバイダ接続(PPPoEなど)で自動取得した1つのグローバルIPアドレスを使って、LAN内の複数の端末が同時にインターネット接続を行えるようにする、最も標準的な設定です。
# 1. NATディスクリプタ 1 を「IPマスカレード」として定義
nat descriptor type 1 masquerade
# 2. 外側IPアドレスとして、PP接続先から自動通知されるIP(ipcp)を指定
nat descriptor address outer 1 ipcp
# 3. 内側IPアドレスとして、変換対象(すべて=auto)を指定
nat descriptor address inner 1 auto
# 4. インターフェース(例:pp 1)にNATディスクリプタを適用
pp select 1
ip pp nat descriptor 1例②:静的IPマスカレード(ポート開放/ポートフォワーディング)
外部(インターネット側)からルーター宛てに届いた「特定のポート番号」への通信を、LAN内にある特定のサーバーに自動転送する設定です。
例として、外部からTCPの80番ポート(HTTP)宛てに届いたアクセスを、内部のWebサーバー192.168.100.10に転送する場合を示します。
例①の基本設定に加えて、静的エントリ(masquerade static)を定義します。
# 静的エントリを追加([ディスクリプタ番号] [識別ID] [転送先内部IP] [プロトコル] [ポート番号]
nat descriptor masquerade static 1 1 192.168.100.10 tcp 80補足として、外部ポートと内部ポートを異なる番号に変えて転送したい場合は、8080=80(外側8080番を内側80番へ変換)のように記述します。
例③:静的NAT(固定IP 1対1アドレス変換)
プロバイダから固定グローバルIPを複数取得している環境で、特定のグローバルIPと社内の特定のサーバーをポートを変更せず1対1で固定マッピングさせ、外部に直接公開する設定です。
# 1. 新しいNATディスクリプタ 2 を「NAT」タイプで定義
nat descriptor type 2 nat
# 2. 静的NATとして、外側アドレスと内側アドレスを1対1で固定対応づけ
nat descriptor static 2 1 203.0.113.2=10.254.0.2
# 3. 動的動作をさせないよう、対象のアドレス範囲を明示的に指定
nat descriptor address outer 2 203.0.113.2
nat descriptor address inner 2 10.254.0.2
# 4. インターフェース(例:pp 1)に適用
pp select 1
ip pp nat descriptor 2例④:ヘアピンNAT(NATループバック)
LAN内のPCが、LAN内に公開されているサーバーに「グローバルIPアドレス(またはDDNSなどのホスト名)」でアクセスした際、ルーターが内側でパケットを折り返して正常にサーバーに届くようにする設定です。これが設定されていないと、LAN内からはグローバルIP経由で社内サーバーを開くことができません。
nat descriptor typeコマンドにhairpin=onオプションを追記します。
# ヘアピンNATを有効にしてIPマスカレードを設定
nat descriptor type 1 masquerade hairpin=on複数セグメントをまとめてマスカレードする場合の応用例
MAP-E(OCNバーチャルコネクトなど)接続でトンネルインターフェースを使う環境では、固定の送信元グローバルIPを指定し、複数の内部セグメントをまとめてIPマスカレード変換する構成もよく使われます。
# トンネルにNATディスクリプタを適用
tunnel select 1
ip tunnel nat descriptor 1000
# 固定の送信元グローバルIPを指定して、複数セグメントのIPマスカレードを実行
nat descriptor type 1000 masquerade
nat descriptor address outer 1000 <固定グローバルIP>
nat descriptor address inner 1000 <内部セグメント1> <内部セグメント2> <内部セグメント3> <内部セグメント4>outerに固定の外側アドレスを、innerに複数の内部プライベートIPレンジをスペース区切りで並べることで、指定した全セグメントからの通信を1つの固定グローバルIPでマスカレードできます。
まとめ
- NATはIPアドレスのみの1対1変換、IPマスカレード(NAPT)はポート番号も含めた多対1変換
- ヤマハルーターでは変換規則を「NATディスクリプタ」として定義し、インターフェースに適用する
- 用途に応じて「IPマスカレード」「静的IPマスカレード(ポート開放)」「静的NAT」「ヘアピンNAT」を使い分ける
特定の内部サーバーを外部に公開したい場合は、まず例②の静的IPマスカレードから検討するのが実務では定番の流れです。