6.NAT・DHCPの設定とDNSの確認
6.1. NATの設定
NATはプライベートIPアドレスをグローバルIPアドレスに変換する仕組み。
6.1.1. NATの確認
NATの確認はshow ip nat statistics
やshow access-lists
、show 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 brief
、show interfaces
、show 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 {ドメイン名}