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つのアドレスを覚えれば楽ですね。
あとは「?」コマンドを利用すればそれほど難しくなく設定はできるはずです。
ただ・・・ラボの応用問題はおにですよ・・・きっと。。
コメント