あて先アドレスの分散変換
・アドレス変換機能を使って,Webサーバーへのアクセスを負荷分散する
・10.1.1.1と10.1.1.2の2台にアクセスが分散されていることを確認する
ネットワーク構成(画像を別ウインドウで表示)
RouterAのコンフィグ
!
version 12.2
no service single-slot-reload-enable
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname RouterA
!
interface Ethernet0
ip address 10.1.1.100 255.255.255.0
ip nat inside
!
interface Ethernet1
ip address 192.168.0.254 255.255.255.0
ip nat outside
!
ip nat pool loadsharing 10.1.1.1 10.1.1.2 netmask 255.255.255.0 type rotary ←ロードシェアリング用に,10.1.1.1と10.1.1.2をloadsharingという名前でプール(交互に採用される)
ip nat inside destination list 1 pool loadsharing ←あて先がアクセス・リスト1番(10.1.1.10)だったら,loadsharingとしてプールしたアドレス(10.1.1.1または10.1.1.2)に変換

ip classless
ip http server
!
access-list 1 permit 10.1.1.10 ←アクセス先のアドレスを指定
!
line con 0
transport input none
line aux 0
line vty 0 4
login
!
end
確認
アドレス変換の機能を使うと,サーバー・アクセスの負荷分散ができます。
中身が同じ内容のサーバーが複数台あったとき,それらに均等にアクセスさせたいときに使います。
ルーターをロードバランサー(負荷分散装置)にできるってわけですね。

今回は,10.1.1.1と10.1.1.2という2台のWebサーバーが立っています。
アクセス先に使うアドレスは,10.1.1.10にします。
つまり,10.1.1.10にアクセスがあったら,それを10.1.1.1と10.1.1.2に交互に振り分けるようにします。

それでは動作を確認してみましょう。
動作を検証するために,RouterAでNATのデバッグ機能をオンにします。

RouterA#debug ip nat

次に,192.168.0.5のマシンから10.1.1.10にWebアクセスします。
すると,以下のような表示が出ます。

01:38:17: NAT: s=192.168.0.5, d=10.1.1.10->10.1.1.1 [18049]
01:38:17: NAT: s=10.1.1.1->10.1.1.10, d=192.168.0.5 [11088]
01:38:17: NAT*: s=192.168.0.5, d=10.1.1.10->10.1.1.1 [18050]
01:38:17: NAT*: s=192.168.0.5, d=10.1.1.10->10.1.1.1 [18051]
01:38:17: NAT*: s=10.1.1.1->10.1.1.10, d=192.168.0.5 [11089]
01:38:17: NAT*: s=192.168.0.5, d=10.1.1.10->10.1.1.1 [18052]
01:38:17: NAT*: s=10.1.1.1->10.1.1.10, d=192.168.0.5 [11090]
01:38:17: NAT*: s=192.168.0.5, d=10.1.1.10->10.1.1.1 [18058]
01:38:17: NAT*: s=10.1.1.1->10.1.1.10, d=192.168.0.5 [11091]
01:38:17: NAT*: s=10.1.1.1->10.1.1.10, d=192.168.0.5 [11092]

RouterAであて先が,10.1.1.10から10.1.1.1に変換されているのがわかります(赤字の部分)。

再び,192.168.0.5のマシンから10.1.1.10にWebアクセスしてみます。

01:38:51: NAT: s=192.168.0.5, d=10.1.1.10->10.1.1.2 [18086]
01:38:51: NAT: s=10.1.1.2->10.1.1.10, d=192.168.0.5 [4422]
01:38:51: NAT*: s=192.168.0.5, d=10.1.1.10->10.1.1.2 [18087]
01:38:51: NAT*: s=192.168.0.5, d=10.1.1.10->10.1.1.2 [18088]
01:38:51: NAT*: s=10.1.1.2->10.1.1.10, d=192.168.0.5 [4423]
01:38:51: NAT*: s=10.1.1.2->10.1.1.10, d=192.168.0.5 [4424]
01:38:51: NAT*: s=10.1.1.2->10.1.1.10, d=192.168.0.5 [4425]
01:38:51: NAT*: s=192.168.0.5, d=10.1.1.10->10.1.1.2 [18089]
01:38:51: NAT*: s=192.168.0.5, d=10.1.1.10->10.1.1.2 [18094]
01:38:51: NAT*: s=10.1.1.2->10.1.1.10, d=192.168.0.5 [4426]

今度はあて先が,10.1.1.10から10.1.1.2に変換されました(赤字の部分)。
負荷分散されているのがわかります。

ちなみに,最初の2行が「NAT:」で,残りは「NAT:*」と表示されています。
*(アスタリスク)記号がないものは,プロセス・スイッチング(1回1回ルーティング・テーブルを検索する)が実行されたことを示しています。
一方,*(アスタリスク)記号が付いているものは,ファスト・スイッチング(キャッシュを利用する)が実行されたことを示しています。

最後に,NATテーブルを見てみましょう。

RouterA#show ip nat translations
Pro Inside global  Inside local  Outside local    Outside global
tcp 10.1.1.10:80  10.1.1.2:80  192.168.0.5:4987 192.168.0.5:4987
tcp 10.1.1.10:80  10.1.1.1:80  192.168.0.5:4988 192.168.0.5:4988


10.1.1.1が,10.1.1.1と10.1.1.2の二つに対応付けられているのがわかります。


NATラボ
スタティックNAT
ダイナミックNAT
PAT(IPマスカレード)
重複アドレスの変換
あて先アドレスの分散変換