NAT(Network Address Translation)
プライベートIPアドレスをグローバルIPアドレスに変換する技術とされています。
- IPアドレスを節約することができます。
- 内部ネットワークのIPアドレスを隠蔽することができます。
- 外部ローカルアドレスと外部グローバルアドレスは一般的に同じになり、グローバルIPアドレスになります。
<アドレスの定義>
考え方:変換前→ローカル、変換後→グローバル
- 内部ローカルアドレス…内部ホストに割り当てられたIPアドレス(プライベートアドレスを使用)
- 内部グローバルアドレス…外部ホストから見た内部ホストのIPアドレス、ISPから割り当てられる
- 外部ローカルアドレス…内部ホストが宛先として指定する、外部ホストのIPアドレス
- 外部グローバルアドレス…外部ホストに実際に割り当てられたIPアドレス
スタティックNAT
- スタティックNATは1対1のアドレス変換を行います。
- スタティックNATは双方向NATに分類されます。
<設定>
- ルータのインターフェイスにインサイド、アウトサイドを指定
- 内部ローカルアドレスと内部グローバルアドレスの組み合わせをNATテーブルに登録
内部/外部ネットワークの定義
(config-if)#ip nat inside
(config-if)#ip nat outside
スタティックNAT変換アドレスの定義
(config)#ip nat inside source static <local-ip> <global-ip>
ダイナミックNAT
- ダイナミックNATはアドレスプールから内部グローバルアドレスを任意に選んで対応付けます。
- 1対1のアドレス変換になります。
- ダイナミックNATは1方向NATに分類されます。
<設定>
- ルータのインターフェイスにインサイド、アウトサイドを指定
- 返還の対象となる内部ローカルアドレスのリストを作成
- アドレスプールを作成
- 内部ローカルアドレスリストとアドレスプールを紐付ける
①内部/外部ネットワークの定義
(config-if)#ip nat inside
(config-if)#ip nat outside
②変換対象となる内部ローカルアドレスをACLで指定
(config)#access-list <acl> permit <source> [ <wildcard> ]
③NATテーブルの作成
(config)#ip nat pool <pool-name> <start-ip> <end-ip> { netmask <mask> | prefix-length <length> }
④ダイナミックNATの定義
(config)#ip nat inside source list <acl> pool <pool-name>
NAPT
PAT
※NAPTは一般的な呼び方でPATはCISCOの独自の呼び名です
- NAPT(Network Address Port Translation)
- 複数の内部ローカルアドレスを1つ内部グローバルアドレスに変換する技術
- 1方向NAT
- overloadオプションを付加することで、ポート番号を含めたアドレス変換が可能になります。
- RFC2663ではNAPTで規定していますが、シスコではPAT(Port Address Translation)の名称で呼ばれています。
- 複数のローカルアドレスに対して1つのグローバルアドレスを対応づける方式です。
- overloadキーワードを付与するとPATが有効になります。
- IPv4アドレスの枯渇対策
(config)#ip nat inside source list [ ACL番号 ] interface [ インターフェイス ] [ overload ]
【PATの設定手順】
- 標準ACLで内部ローカルアドレスを指定(名前付きACLでも指定可能)
- アドレスプールの定義(3の内部グローバルアドレスで使用する場合)
- 内部ローカルアドレスと内部グローバルアドレスの対応付け
- インターフェースへのNAT設定(内部と外部)
順番はいずれからでも設定可能です。
RFC1918
IPv4のグローバルアドレスの枯渇問題を軽減するために作成されたプライベートアドレスのアドレス空間はRFC1918で予約されています。
【プライベートアドレスの範囲】
クラス | 範囲 |
---|---|
A | 10.0.0.0 〜 10.255.255.255 |
B | 172.16.0.0 〜 172.31.255.255 |
C | 192.168.0.0 〜 192.168.255.255 |
NATテーブル
- スタティックNATの変換アドレスは常にNATテーブルに載っている
NATテーブルの内容を確認する
#show ip nat translations
NATテーブルの内容を削除
#clear ip nat translations