30 Minutes NetWorking
No.RA02

30Minutes NetWorking

BCRAN

第2回NAT(2) NATの設定

■ 4つのNATの設定

スーパーインター博士

さて、ネット君。
前回NATで使われる4つのアドレスの話をしたな。

ハイパーネット助手

え〜っと、内部と外部、ローカルとグローバル、組み合わせて4つ、でしたっけ。

  1. 内部ローカルアドレス … 内部ネットワークでのみ通用する内部ホストアドレス
  2. 内部グローバルアドレス … ネットワーク上で一意の内部ホストのアドレス
  3. 外部ローカルアドレス … 内部ネットワークから見た外部ホストのアドレス
  4. 外部グローバルアドレス … ネットワーク上で一意の外部ホストのアドレス
スーパーインター博士

そして、4種類のNATの説明をしたわけだ。

ハイパーネット助手

はいはい。

  1. 内部ローカルアドレス変換
  2. 内部ローカルアドレスのオーバーロード
  3. TCPロードディストリビューション
  4. 重複ネットワークの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。

スタティック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。

ダイナミック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はアクセスリストを使う
コマンドの意味はこう。

ダイナミックNAT設定

[FigureRA02-04:ダイナミックNAT設定]

スーパーインター博士

ip nat poolコマンドで変換後のNATプールの範囲を。
アクセスリストで変換前の内部ローカルの範囲を指定するわけだ。

ハイパーネット助手

で、ip nat inside sourceコマンドでくっつけるわけですね。

■ 内部ローカルアドレスのオーバーロード

スーパーインター博士

次は内部ローカルアドレスのオーバーロード。

ハイパーネット助手

NAPTですね。3分間第47回の。

スーパーインター博士

そうだ。例として、こういう場合。

NATオーバーロード

[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。

ハイパーネット助手

内部と外部が同じネットワークアドレスの場合に使うやつですよね。
妙にややこしい変換をする。

スーパーインター博士

そうだな。確かにややこしいな。
例として、以下の場合。

重複ネットワークのNAT

[FigureRA02-07:重複ネットワークのNAT]

ハイパーネット助手

え〜っと、どうなるんでしたっけ?

スーパーインター博士

内部ローカル、内部グローバル。外部ローカル、外部グローバルを表にしたらこうなる。

内部ローカル内部グローバル外部ローカル外部グローバル
192.168.0.0/24200.100.10.0/28172.16.10.0/24192.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も使う。

30 Minutes NetWorking No.RA02

管理人:aji-ssz(at)selene.is.dream.jp