内部のIPを外部のIPに変換するPATですが、
今回は内部ネットワークの別セグメントへの接続にPATを使用します。
192.168.0.0/24 と 192.168.40.0/24 の間にC841Mを設置し、
PATで192.168.2.※→ 192.168.40.1 に変換。
というのが当初の目論見でした。
□interface GigabitEther0/5 を 192.168.0.252 255.255.255.0 に設定。
configure terminal
interface Gi0/5
ip address 192.168.0.252 255.255.255.0
ip nat inside
no shutdwon
□ interface GigabitEther0/4 を 192.168.40.1 255.255.255.0に設定。
interface Gi0/4
ip address 192.168.40.1 255.255.255.0
ip nat outside
no shutdown
□access-list 1 に 192.168.0.0 のアクセス許可を設定
access-list 1 permit 192.168.0.0 0.0.0.255
ip nat inside source list 1 interface GigabitEther0/5 overload
以上の設定でOKなはずです。192.168.40.11 にホスト(Windows10)を設置して
ping を送信すると・・・返ってきました!
次にパケットの送信IPを確認するために、
ホストでWireShark を起動して、もう一度pingします。
すると、送信元のIPは、なんと192.168.0.252で変換されていない??のでした。
しかし、設定前はping が通らなかったので、
全てが間違っているわけでもなさそうです。
show ip nat translationsで変換テーブルを表示しても表示されないので、
やはり変換されていないようです。
PATの設定を削除しても、なぜかpingは通り続け、まったく意味が分かりません。
-------------------------------------------------------------------------------------------------
意味が分からないので、基本から、ということで静的NATから試していくことにしました。
静的NAT → 動的NAT と試していきましたが、NATでは全く問題がありませんでした。
show ip nat translations すると
Inside globalは変換されたアドレス 192.168.40.※
Inside localはpingを送信したPCのIP 192.168.0.2
と表示されて変換されている様子がわかります。
さて、PATに戻ります。
--------------------------------------------------------------------------------------------------
PATをインターフェースに直接割り当てるのではなく、poolを作成し、そのアドレスに割り当てるように変更してみました。
① PAT変換後となる内部グローバルアドレスのプールを定義
ip nat pool TEST 192.168.40.7 192.168.40.7 netmask 255.255.255.0
② PAT変換対象となる送信元IPアドレスをACLで定義
no access-list 3 permit 192.168.0.0 0.0.0.255
③ 内部ローカルアドレスを定義する「ACL」と、外部グローバルアドレスとする「プール」を関連づけ
ip nat inside source list 3 pool TEST overload
④ どのインターフェースを「内部ネットワーク」または「外部ネットワーク」に指定するのかを定義
interface GigabitEther0/5
ip nat inside
interface GigabitEther0/4
ip nat outside
とこれでホスト側でWireSharkを起動したところ、見事に192.168.40.7 に送信元IPが変換されました。
show ip nat translations も予想道理になり、思った通りに動作させることができました。
なぜ、Interface GigabitEther0/5を直接に割り当てたときに、IPが変換されないのかは・・・謎です。
※ちなみにvlan10 を作成してそれのip nat inside にして、
interface GigabitEhter0/1 のswitchport access vlan 10
でGigabitEther0/1をvlan10に割り当ててみましたが、
Natテーブルを確認すると、192.168.0.2 → 192.168.2.252 という変換が行われて通信していました。???