2005年11月30日

IP and IOS Featureその3 NAT

どうもこんばんは、Kyoです!
最近は頭がぼーっとしちゃってます。ヤヴァイです…
試験まであと○週間なのに…。
地球のみんな!おらに元気をわけてくれーー!!(叫

というわけで今日はNATです。NAT。
とはいえ、NATを一からここで説明するのは無理です。(笑
試験まで時間がないので…。
ゆえに、Ciscoルータに絞った説明をしたいと思います。

★NATのアドレス

CiscoでNATをするとなると、超ややこしい以下の4つのアドレスを理解する必要があります。

1・内部ローカルアドレス

 内部ネットワークで使用しているアドレス。ほとんどの場合プライベートアドレス(RFC1918)

2・内部グローバルアドレス

 内部の子たちが外に出たときに使われる一意のアドレス。ほとんどの場合、NATルータの外側のインターフェイスだったり、それと同じセグメントの仮想IPだったり。

3・外部ローカルアドレス

 内部の子達からみた、外のサーバのアドレス。どこかで外部グローバルアドレスに変換されているかも。

4・外部グローバルアドレス

 外部にいるホストの一意のアドレス。普通のインターネット上のサーバアドレスとか。

で、以上を踏まえてNATを設定します。
基本的には「内部」「外部」をインターフェイスによって定義する。
Router(config)# ip nat inside
Router(config)# ip nat outside

NATの方法をグローバルコンフィグモードで定義する。
の2つの過程になります。
NATの種類も大きく4つあります。順番に見ていきましょう。

1(1).スタティックNAT
いわゆる普通のNATで「内部ローカルアドレス」と「内部グローバルアドレス」を変換する。
つまりプライベートアドレスを持っているパソコンがBBルータでグローバルアドレスをもらい、インターネットに出て行くための設定です。

Router(config)# ip nat inside source static 192.168.10.1 20.1.1.1


1(2).ダイナミックNAT
上記は1対1NAT、つまりひとつの内部ローカルにたいしてひとつの内部グローバルを割り当てていましたが、それではもったいないのでこちらは範囲を決めて、必要なときに割り当てていく設定です。

Router(config)# ip natt pool プール名 内部グローバル開始アドレス 内部グローバル終了アドレス netmask 255.255.255.248
Router(config)# ip nat inside source list ACL番号 pool プール名
Router(config)# access-list ACL番号 permit 内部ローカルアドレス ワイルドカードマスク

まあ、もちろん、用意した内部グローバルアドレスが足りなくなることは多々あります。
そんなときはPATをします。

2.PAT

ぞくにいう、IPマスカレードってやつですね。ポート変更によって内部グローバルアドレスを使いまわすという、IPv6をはやらせなかった諸悪の根源です(笑
オーバーロードというコトバを覚えておくといいかも。

Router(config)# ip nat pool プール名 内部グローバル開始 内部グローバル終了 netmask 255.255.255.248
Router(config)# ip nat inside source list ACL番号 pool プール名 overload
Router(config)# access-list ACL番号 permit 内部ローカルアドレス ワイルドカードマスク

ダイナミックNATとの違いは、overloadというキーワードがあること。そして内部グローバル開始&終了が同じアドレスになる(場合が多い)こと。

3.オーバーラップNAT

これはややこしい。まったく同じネットワークアドレスを持つネットワーク間での通信をする場合。
つまり、内部ローカルと外部ネットワークの内部ローカル(外部グローバル)が同じ場合(ややこしー)。
簡単に言えば、うちのネットワークは192.168.0.0/24つかってるけど、接続先のお得意さんも192.168.0.0/24をつかってるぜ!ってな場合。

Router(config)# ip nat pool プール名1 内部グローバル開始 内部グローバル終了 netmask 255.255.255.248
Router(config)# ip nat pool プール名2 外部ローカル開始 外部ローカル終了 netmask 255.255.255.192
Router(config)# ip nat inside source list ACL番号 pool プール名1
Router(config)# ip nat outside source list ACL番号 pool プール名2
Router(config)# access-list ACL番号 内部ローカルの範囲

つまり、自分からは相手先が違うアドレス(192.168.0.0でないアドレス)に見えること。
相手からは自分が違うアドレスに見えること、が通信可能になる条件ってことですね。

4.TCPロードディストリビューション

ルータで外からのアクセス(公開Webサーバなど)を複数のサーバへ分散してアドレス変換する方法。

Router(config)# ip nat pool プール名 内部ローカル開始 内部ローカル終了 netmask 255.255.255.0 type rotary
Router(config)# ip nat inside destination list ACL番号 pool プール名

type rotaryが追加され、プールで指定する範囲が内部ローカルになっています。
あとip nat inside destinationのようにdestinationを指定することになります。

とりあえずNATは4つのアドレスを覚えれば楽ですね。
あとは「?」コマンドを利用すればそれほど難しくなく設定はできるはずです。
ただ・・・ラボの応用問題はおにですよ・・・きっと。。

By kyo @ 11:02 PM | CCIE R&S | コメント (0) | トラックバック (0)

コメント

コメントを書く







名前、アドレスを登録しますか?




トラックバック

このエントリーのトラックバックURL:
http://www.n-study.com/mt/mt-tb.cgi/935