■ 4つのNATの設定
さて、ネット君。
前回NATで使われる4つのアドレスの話をしたな。
え〜っと、内部と外部、ローカルとグローバル、組み合わせて4つ、でしたっけ。
- 内部ローカルアドレス … 内部ネットワークでのみ通用する内部ホストアドレス
- 内部グローバルアドレス … ネットワーク上で一意の内部ホストのアドレス
- 外部ローカルアドレス … 内部ネットワークから見た外部ホストのアドレス
- 外部グローバルアドレス … ネットワーク上で一意の外部ホストのアドレス
そして、4種類のNATの説明をしたわけだ。
はいはい。
- 内部ローカルアドレス変換
- 内部ローカルアドレスのオーバーロード
- TCPロードディストリビューション
- 重複ネットワークのNAT
でしたよね。
うむ。この4種類のNATをCiscoIOSで設定していくわけだが。
ここでのポイントは、4つのアドレスだ。
4つのアドレスがポイント? そりゃアドレスを変換するのがNATなんだから、ポイントなんでしょ。
そういう意味ではない。
この4つのアドレスは、とある前提条件のもとに成り立っている。
ぜんてーじょーけん。
内部と外部という言葉だ。
つまり、内部ネットワークと外部ネットワークを決めておく必要があるってことだ。
どちらのネットワークが内部で、どちらのネットワークが外部かってことですね。
そういうことだな。
なので、インタフェース設定モードで内部と外部を識別しておく必要があるってことだな。
- (config-if)#ip nat [inside | outside]
[FigureRA02-01:内部ネットワークと外部ネットワーク]
あ〜、確かに内側と外側を決めておかないと、内部ローカルとか外部グローバルってどっちのことだって話になりますもんね。
そういうことだな。
では、4種類のNATの設定を順に説明していこう。
■ 内部ローカルアドレス変換
最初は内部ローカルアドレス変換だ。
普通のNATですよね。
3分間第46回で説明していた。
そうだ。素直にIPアドレスだけを変換するNATだな。
Ciscoのアドレスの分類でいえば、内部ローカルを内部グローバルに変換するものだ。
うぃうぃ。
これにはスタティックNATとダイナミックNATの2種類がある。
静的と動的?
そんな話ありましたっけ。
うむ、こういうことだ。
まずスタティックNAT。
[FigureRA02-02:スタティックNAT]
内部ローカルと、それに対する内部グローバルがNATテーブルによって決定済みな場合だな。
ははぁ。つまり、192.168.0.1は200.100.10.1に、192.168.0.2は200.100.10.2に必ず変換するってことですね。どういう風に変換するか決まってるんだ。
そういうことだ。
上の例で、スタティックNATを設定するとこうなる。
- (config)#ip nat inside source static 192.168.0.1 200.100.10.1
- (config)#ip nat inside source static 192.168.0.2 200.100.10.2
- (config)#interface ethernet 0
- (config-if)#ip nat inside
- (config)#interface serial 1
- (config-if)#ip nat outside
ip nat inside? さっきインタフェース設定モードにも同じコマンドがありますよ?
ip natコマンドは、インタフェース設定モードでは内部と外部インタフェースの指定。
グローバル設定モードではNAT変換の設定を行うコマンドだ。
は〜。モードで使い方が違うんですか。
そういうことだ。スタティックNATでは、ip nat inside source staticはお約束だ。
後ろに内部ローカル、内部グローバルが続く。
ふむふむ。
次は、ダイナミックNAT。
[FigureRA02-03:ダイナミックNAT]
192.168.0.0/24内のホストは、ルータを通過する際に200.100.10.0/28のいずれかのアドレスに変換されるという仕組みだ。
このアドレスは必ずこのアドレスという風に決まった変換がされるわけではない。
変換の際、使われていないアドレスに変換されるって形ですか。
そうなるな。
この変換候補のアドレスをNATプールという。
NATプール。DHCPみたいだ。
そうだな。DHCPの割り当て候補IPアドレスもプールと呼ぶな。
さて、ダイナミックNATの設定はこう。
- (config)#ip nat pool pool1 200.100.10.1 200.100.10.13 netmask 255.255.255.240
- (config)#ip nat inside source list 1 pool pool1
- (config)#interface ethernet 0
- (config-if)#ip nat inside
- (config)#interface serial 1
- (config-if)#ip nat outside
- (config)#access-list 1 permit 192.168.0.0 0.0.0.255
ちなみに1行目はプレフィックス長で書いてもいい。
こうなる。
- (config)#ip nat pool pool1 200.100.10.1 200.100.10.13 prefix-length 28
うあ〜。あくせすりすと〜。
そう。ダイナミックNATはアクセスリストを使う。
コマンドの意味はこう。
[FigureRA02-04:ダイナミックNAT設定]
ip nat poolコマンドで変換後のNATプールの範囲を。
アクセスリストで変換前の内部ローカルの範囲を指定するわけだ。
で、ip nat inside sourceコマンドでくっつけるわけですね。
■ 内部ローカルアドレスのオーバーロード
次は内部ローカルアドレスのオーバーロード。
NAPTですね。3分間第47回の。
そうだ。例として、こういう場合。
[FigureRA02-05:NATオーバーロード]
200.100.10.1だけを内部グローバルとして使う場合だな。
設定はこうなる。
- (config)#ip nat pool pool2 200.100.10.1 200.100.10.1 netmask 255.255.255.240
- (config)#ip nat inside source list 1 pool pool2 overload
- (config)#interface ethernet 0
- (config-if)#ip nat inside
- (config)#interface serial 1
- (config-if)#ip nat outside
- (config)#access-list 1 permit 192.168.0.0 0.0.0.255
さっきとダイナミックNATとあまり変わってない気が……。
え〜っと、博士? 200.100.10.1〜200.100.10.1ってNATプールが1つのアドレスしか指定してないですよ?
1つしかないだろう、グローバルアドレスは。
NAPTなんだから、1つだけで十分だろう?
確かにそういわれればそうですね。
で、ip nat insideコマンドの最後にoverloadですか。
オーバーロードだからな。それを明記しておかないと。
なるほど。
■ TCPロードディストリビューション
次はTCPロードディストリビューション。
仮想ホストと実ホストでしたっけ。
負荷分散の。
そうだ。
例はこう。
[FigureRA02-06:ロードディストリビューション]
設定はこうなる。
- (config)#ip nat pool pool3 192.168.0.1 192.168.0.3 netmask 255.255.255.0 type rotary
- (config)#ip nat inside destinaiton list 1 pool pool3
- (config)#interface ethernet 0
- (config-if)#ip nat inside
- (config)#interface serial 1
- (config-if)#ip nat outside
- (config)#access-list 1 permit 200.100.10.1
さっきまでと同じ………なんですこれ?
type rotary?
今回のip nat poolコマンドはロータリープールを指定するために使うからだ。
アクセスリストは仮想ホストを指定するのに使う。
さっきまでと逆だ。
それに、ip nat destination?
そうだ。destinationになる。注意が必要だな。
なんか大変だ。
■ 重複ネットワークのNAT
最後は重複ネットワークのNAT。
内部と外部が同じネットワークアドレスの場合に使うやつですよね。
妙にややこしい変換をする。
そうだな。確かにややこしいな。
例として、以下の場合。
[FigureRA02-07:重複ネットワークのNAT]
え〜っと、どうなるんでしたっけ?
内部ローカル、内部グローバル。外部ローカル、外部グローバルを表にしたらこうなる。
内部ローカル | 内部グローバル | 外部ローカル | 外部グローバル |
---|---|---|---|
192.168.0.0/24 | 200.100.10.0/28 | 172.16.10.0/24 | 192.168.0.0/24 |
[TableRA02-01:IPアドレス表]
内部ローカルを内部グローバルに、外部グローバルを外部ローカルに変換するんだったな。
よって、設定はこうなる。
- (config)#ip nat pool pool4 200.100.10.1 200.100.10.13 netmask 255.255.255.240
- (config)#ip nat pool pool5 172.16.10.1 172.16.10.254 netmask 255.255.255.0
- (config)#ip nat inside source list 1 pool pool4
- (config)#ip nat outside source list 1 pool pool5
- (config)#interface ethernet 0
- (config-if)#ip nat inside
- (config)#interface serial 1
- (config-if)#ip nat outside
- (config)#access-list 1 permit 192.168.0.0 0.0.0.255
pool4が内部グローバルのNATプール。pool5が外部ローカルのNATプール?
…ip nat outside?
そう、outsideだ。
ip nat insideと、ip nat outsideの違いは、以下のとおり。
[FigureRA02-08:ip nat inside と ip nat outside]
う、う〜ん?
つまり、insideは内部、outsideは外部のアドレスを変換するってことだ。
まとめてみると。
内部→外部 | 外部→内部 | |
---|---|---|
ip nat inside | 送信元IPアドレス | 宛先IPアドレス |
内部ローカル→内部グローバル | 内部グローバル→内部ローカル | |
ip nat outside | 宛先IPアドレス | 送信元IPアドレス |
外部ローカル→外部グローバル | 外部グローバル→外部ローカル |
[TableRA02-02:ip nat inside と ip nat outside]
insideとoutsideは対象が外部か内部か違うだけで、やってることは一緒だ。
そう言われれば、そうかも。
さて、4種類ともやったし、今回はここまでだな。
はい。
ではまた次回。
いぇっさ〜。
30分間ネットワーキングでした〜♪
- ハイパーネット君の今日のポイント
-
- インタフェースにinsideとoutsideを設定しておく必要がある。
- ip nat insideコマンドで変換を、ip nat poolで内部ローカルの範囲を指定する。
- アクセスリストを使って内部ローカルの範囲を指定する。
- 重複ネットワークの場合は、外部アドレスを変換する、ip nat outsideも使う。