社内のPCにIPアドレスを1台ずつ手入力せず、しかも1つのグローバルIPだけでインターネット(模擬した外部サーバー)に出られるようにするには、ルーターにどんな機能を持たせればよいでしょう?
座学でDHCPのDORAプロセスと、PAT(overload)による多対1変換を学びました。今回はこの2つをルーター1台に同居させ、「PCはDHCPでIPを自動取得し、そのままPATで外部サーバーにアクセスできる」構成を作ります。
この演習でできるようになること
- Cisco IOSルーターに
ip dhcp poolでDHCPサーバー機能を設定できるようになる ip nat inside/ip nat outsideとACL、overloadを組み合わせてPATを設定できるようになるshow ip nat translationsでPATによるポート変換の様子を確認できるようになる
使用トポロジ
Router 2911を1台(本社ルーター)用意し、社内側にSwitch 2960とPCを2台、外部側に外部サーバー役のServer-PTを1台接続します。PCはDHCPでIPアドレスを自動取得し、ルーターのPATを経由して外部サーバーと通信します。
準備
- Router 2911を1台、Switch 2960を1台、PC-PTを2台(PC0・PC1)、Server-PTを1台配置する
- PC0・PC1をSwitch経由でルーターのGigabitEthernet0/0(社内側)へストレートケーブルで接続する
- ルーターのGigabitEthernet0/1(外部側)とServer-PTをストレートケーブルで接続する
- Server-PTには固定IPアドレス(例:203.0.113.100/24)を設定しておく(社内向けのDHCP設定は行わない)
- PC0・PC1のIP Configuration画面はDHCPを選択する(まだアドレスが割り当てられていない状態でよい)
手順
- ルーターの社内側インターフェースにIPアドレスを設定し、有効化する
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip address 192.168.1.1 255.255.255.0
Router(config-if)# no shutdown
- 外部側インターフェースにもIPアドレスを設定する
Router(config)# interface GigabitEthernet0/1
Router(config-if)# ip address 203.0.113.1 255.255.255.0
Router(config-if)# no shutdown
- DHCPサーバー機能を設定する。ルーター自身のアドレスは配布対象から除外しておく
Router(config)# ip dhcp excluded-address 192.168.1.1 192.168.1.10
Router(config)# ip dhcp pool LAN-POOL
Router(dhcp-config)# network 192.168.1.0 255.255.255.0
Router(dhcp-config)# default-router 192.168.1.1
Router(dhcp-config)# dns-server 8.8.8.8
- 社内側・外部側のインターフェースにNATの役割を教える
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip nat inside
Router(config)# interface GigabitEthernet0/1
Router(config-if)# ip nat outside
- 変換対象となる社内アドレス範囲をACLで定義し、PAT(overload)を設定する
Router(config)# access-list 1 permit 192.168.1.0 0.0.0.255
Router(config)# ip nat inside source list 1 interface GigabitEthernet0/1 overload
- PC0のコマンドプロンプトで
ipconfig /renewを実行するか、IP Configuration画面でDHCPを選び直し、IPアドレスが自動的に割り当てられることを確認する
- PC0からServer-PT(203.0.113.100)へpingを打ち、疎通を確認する
C:\> ping 203.0.113.100
- ルーターで変換テーブルを確認する
Router# show ip nat translations
確認
C:\> ipconfig
IP Address..............: 192.168.1.11
Subnet Mask..............: 255.255.255.0
Default Gateway..........: 192.168.1.1
PC0がDHCPによって192.168.1.1〜10の除外範囲を避けたアドレスを自動取得できていることを確認します。
Router# show ip nat translations
Pro Inside global Inside local Outside local Outside global
icmp 203.0.113.1:1 192.168.1.11:1 203.0.113.100:1 203.0.113.100:1
PC0のプライベートIP(inside local)が、ルーターの外側インターフェースのアドレス(inside global)とポート番号を使って変換されていることが確認できます。
合格チェックリスト
- PC0・PC1がDHCPによって192.168.1.0/24のアドレスを自動取得できている(除外範囲192.168.1.1〜10は配布されない)
default-router・dns-serverがDHCPプールに正しく設定されているip nat inside・ip nat outsideが正しいインターフェースに設定されている- PC0からServer-PTへのpingが成功する
show ip nat translationsにPC0のアドレスがルーターの外側インターフェースのアドレスへ変換された行が表示されている- ACLで許可した192.168.1.0/24以外のアドレスは変換対象にならないことを理解している
つまずきポイント
ip dhcp excluded-addressの設定順序:ip dhcp poolより先に実行しないと、ルーター自身のアドレスなど配布したくないアドレスまでPCに割り当てられてしまう可能性があります- inside/outsideの指定を逆にする:
ip nat insideとip nat outsideを社内側・外部側で取り違えると、変換の方向が逆転しほとんど疎通できません。図を見ながら「PCに近い方がinside」と確認する癖をつけましょう - ACLの範囲漏れ:
access-list 1 permitで指定するネットワークが社内アドレス範囲と食い違っていると、PATの変換対象に含まれず、社内PCから外部への通信自体ができません
PC0でDHCPを設定したのに、IPアドレスが割り当てられません。ルーターの設定を確認すると、ip dhcp poolのnetworkは正しいのに、ルーターのGigabitEthernet0/0にno shutdownが実行されていませんでした。この状態でDHCPは動作するでしょうか?
答えを見る
動作しません。インターフェースがadministratively downのままでは、そのセグメントとの通信自体が成立せず、PCからのDHCP Discoverがルーターまで届きません。DHCPプールの設定以前に、まずインターフェースがno shutdownされているか、show ip interface briefで確認する必要があります。
DHCPで自動的にIPをもらったPCが、そのままPATで外の世界につながる。この2つの機能が1台のルーターに同居しているのが実務でもよくある構成だよ。inside/outsideの向きだけは焦らず確認してね。次はいよいよ試験対策ドリル、STAGE04の総復習をやっていくよ。