コンテンツにスキップ

6. NAT・DHCPの設定とDNSの確認

6.1. NATの設定

NATはプライベートIPアドレスをグローバルIPアドレスに変換する仕組み。

6.1.1. NATの確認

NATの確認はshow ip nat statisticsshow access-listsshow runnning-configで確認可能。

NATテーブルの確認

show ip nat translations

NATテーブルにNAT変換情報が登録されるタイミングはNAT方式によって異なる。 Static NATの場合は設定を行った時点でNATテーブルへNAT変換情報が登録される。 一方、Dynamic NAT/NAPTの場合はNAT変換を行う通信が発生した時点で、NATテーブルへNAT変換情報が登録される。

NATのアドレス変換の統計情報確認

show ip nat statistics

NATの変換情報のリアルタイムでの確認

debug ip nat

NATテーブルの削除

# 下記例ではすべてのNATテーブルを消す
clear ip nat translations *

6.1.2. Static NATの設定

Static NATを設定する場合以下のことを行う必要がある。

  • ルータのインターフェイスにinside/outsideの設定
  • 内部ローカルアドレスと内部グローバルアドレスの組み合わせをNATテーブルに登録

以下に設定例のコマンド手順を記載する。

(config)#interface <ポートの規格: fastEthernetなど> <ポート番号>
(config-if)#ip nat inside 
(config-if)#exit
(config)#interface <ポートの規格: fastEthernetなど> <ポート番号>
(config-if)#ip nat outside 
(config-if)#exit
# NATテーブルに内部ローカルアドレスと内部グローバルアドレスの組み合わせを登録
(config)# ip nat inside source static <内部ローカルアドレス> <内部グローバルアドレス>

6.1.3. Dynamic NATの設定

Dynamic NATを設定する場合以下のことを行う必要がある。

  • ルータのインターフェイスにinside/outsideの設定
  • 変換対象の内部ローカルアドレスのリストの作成
  • アドレスプールの作成
  • 内部ローカルアドレスリストとアドレスプールの紐づけ

変換対象の内部ローカルアドレスのリストの作成はACLを使用する。 ACLのpermitとなっているアドレスはNAT変換される。 一方でdenyとなっているアドレスはNAT変換が行われない。

以下に設定例の手順を記載する。

(config)#interface <ポートの規格: fastEthernetなど> <ポート番号>
(config-if)#ip nat inside 
(config-if)#exit
(config)#interface <ポートの規格: fastEthernetなど> <ポート番号>
(config-if)#ip nat outside 
(config-if)#exit
# 変換対象の内部ローカルアドレスのリストをACLで作成
(config)# access-list <ACL番号> permit <送信元IPアドレス> <ワイルドカードマスク: 0.0.0.255など>
# アドレスプールの作成
(config)#ip nat pool <プール名> <開始アドレス> <終了アドレス> netmask <サブネットマスク>
# NATテーブルに内部ローカルアドレスリストとアドレスプールの紐づけ
(config)#ip nat inside source list <ACL番号> pool <プール名>

6.1.4. NAPT(PAT, IPマスカレード)の設定

NAPTをを設定する場合以下のことを行う必要がある。

  • ルータのインターフェイスにinside/outsideの設定
  • 変換対象の内部ローカルアドレスのリストの作成
  • アドレスプールを利用する場合は作成(任意)
  • 内部ローカルアドレスリストとアドレスプールまたは外部インターフェイスの紐づけ

NAPTはアドレスプールの設定は必須ではなく任意。 また外部インターフェイスに設定されたIPアドレスを変換するための内部グローバルアドレスとして使える

以下に設定例(アドレスプールを使用しない場合)の手順を記載する。

(config)#interface <ポートの規格: fastEthernetなど> <ポート番号>
(config-if)#ip nat inside 
(config-if)#exit
(config)# interface <ポートの規格: fastEthernetなど> <ポート番号>
(config-if)#ip nat outside 
(config-if)#exit
# 変換対象の内部ローカルアドレスのリストをACLで作成
(config)#access-list <ACL番号> permit <送信元IPアドレス> <ワイルドカードマスク: 0.0.0.255など>
# 外部インターフェイスとアクセスリストの紐づ(overloadでNAPTとなる)
(config)#ip nat inside source list <ACL番号> interface <ポートの規格: fastEthernetなど> <ポート番号> overload

6.1.5. NAT変換がうまくいかない場合の確認事項

  • 内部インターフェイス/外部インターフェイスの指定ミスがないか
  • 変換対象の内部ローカルアドレスを指定するACLの間違えていないか
  • 内部ローカルアドレス/内部グローバルアドレスの紐づけ間違いがないか
  • NATのアドレスプールで指定する内部グローバルアドレスの間違いがないか
  • NAPTの場合はoverloadの指定忘れがないか

6.2. DHCPの設定

DHCPはクライアントやネットワーク機器に自動でプライベートIPアドレスを付与する仕組み。

DHCPはDHCPサーバとDHCPクライアントから成り立つ。 ルータはDHCPサーバ、DHCPクライアントどちらにも動作させることができる。

具体的にはDHCPの設定は以下2つのパターンのいずれかで行える。

  • DHCPサーバを用意する
  • ルータ自身にDHCPサーバ機能を持たせる

6.2.1. DHCPの確認

DHCPクライアントか確認する

show ip interface briefshow interfacesshow dhcp lease等で確認が可能。

DHCPのアドレスプールの確認

show ip dhcp pool

IPアドレスの割り当て状況確認

show ip dhcp binding

重複が発生したIPアドレスの確認と削除

show ip dhcp conflict

clear ip dhcp conflict *

6.2.2. DHCPサーバとしての設定

ルータをDHCPサーバにするには以下ステップを踏む必要がある。

  • アドレスプールの作成
  • 配布するIPアドレスのネットワーク/サブネットの指定
  • デフォルトゲートウェイの指定
  • IPアドレスのリース期間の指定
  • DNSサーバの指定
  • 除外するアドレスの指定
(config)#ip dhcp pool <プール名>
(dhcp-config)#network <ネットワーク> <サブネットマスク または /プレフィックス>
(dhcp-config)#default-router <IPアドレス>
(dhcp-config)#lease <日数>
(dhcp-config)#dns-server <DNSサーバのIPアドレス>
(dhcp-config)#exit
(config)#ip dhcp excluded-address <開始アドレス> [<終了アドレス>]

6.2.3. DHCPクライアントとしての設定

ルータのインターフェイスのIPアドレスをDHCPサーバに割り当ててもらう場合、そのルータをDHCPクライアントにする必要がある。

なお以下はルータのポートはDHCPサーバのブロードキャストを受け取る側で実行する必要がある。

(config)#interface <ポートの規格: fastEthernetなど> <ポート番号>
(config-if)#ip address dhcp
(config-if)#no shutdown

6.2.4. DHCPリレーエージェントの設定

DHCPリレーエージェントはブロードキャストされたDHCP要求をユニキャストで転送する機能。 DHCPサーバとクライアント間にルータがある場合、ルータはブロードキャストを行わない。 そのためクライアントにIPアドレスを割り当てることができない。 この問題の解決のためにはルータにDHCPリレーエージェントを設定する必要がある。

なおクライアント側のポートで以下は実行する必要がある。

(config)#interface <ポートの規格: fastEthernetなど> <ポート番号>
(config-if)#ip helper-address <DHCPサーバのIPアドレス>

6.3. DNSの確認

6.3.1. DNSサーバとして使用する

CiscoルータはDNSサーバとして動作させることができる。

#DNSサーバ機能を有効化する
(config)#ip dns server
#DNSサーバが回答する名前とIPアドレスのペアを登録
(config)#ip host {ホスト名} {IPアドレス}

6.3.2. DNSクライアントとして使用する

Ciscoのルータは名前解決を行うDNSクライアントとすることができる。 DNSクライアントとして動作させるには以下のコマンドを使用する。

#DNSによる名前解決を行う
(config)#ip domain lookup
#DNS参照先のIPアドレスを指定する
(config)#ip name-server {IPアドレス}
#(任意)自身の所属するドメイン名を登録する。ホスト名のみで問い合わせた場合に自動的に補完される
(config)#ip domain name {ドメイン名}
#(任意)ホスト名のみでの問い合わせ時に自動的に補完されるドメイン名のリスト。「ip domain name」での設定値よりも優先される。
(config)#ip domain list {ドメイン名}