NAT・DHCP・DNS

# NAT(Network Address Translation)
IPヘッダ内のIPアドレスを変換する技術で、プライベートIPアドレスをグローバルIPアドレスに付け替える。1対1のアドレス変換を行う。
変換用のグローバルIPアドレスは、ISPから割り当てられているものを使用する必要がある。

![キャプチャ1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/d8f602b9-039e-f008-e847-2214e53dcef1.png)

Ciscoルータでは以下のように内部と外部に区分けされ、インターフェイスに設定を行う。

+ **inside local(内部ローカルアドレス)**
内部ネットワークから見た内部のネットワーク。LAN内のネットワークに割り当てられているプライベートIPアドレスのこと。

+ **inside global(内部グローバルアドレス)**
外部ネットワークから見た時の内部のIPアドレス。NATによって変換されたグローバルIPアドレスのこと、

+ **outside local(外部ローカルアドレス)**
内部ネットワークから見た外部のIPアドレス。内部からパケットを送信する場合、宛先となるのがこのアドレス。

+ **outside global(外部グローバルアドレス)**
外部ネットワークから見た外部のIPアドレス。通常NATでは外部ローカルアドレスと外部グローバルアドレスは同じになる。

![キャプチャ3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/da3a9529-71c6-5512-e1d8-417dbfc43978.png)

#### 一方向NAT(Unidirectional NAT)
**Traditional NAT**,**Outbound NAT**とも呼ばれる。内部から通信をスタートして外部とやり取りするのは可能だが、外部からスタートして内部と通信することは出来ないNATのこと。一般的なネットワークの接続の際に用いられる。内部からスタートして外部に出る際にNAT変換が行われ、外部から戻ってくる通信は最初の変換情報を基にNAT変換が行われて内部に届く。
外部から内部にアクセスされることがないため、内部のネットワークを保護することができる。

#### 双方向NAT(Bi-directional NAT)
Two-Way NATとも呼ばれ、内部・外部それぞれ通信をスタートしてやり取りすることができるNATのこと。

## スタティックNAT
1対1のアドレス変換技術で、管理者が手動でNATテーブルに内部ローカルアドレスと外部グローバルアドレスの変換の組み合わせを登録していく。ルータはその内容を基にアドレス変換を行う。あらかじめ組み合わせが固定で決まっているため、常に同じIPアドレスに変換される。
外部のネットワークからスタートして内部のネットワークへ通信することも可能となるため、双方向NATの動作になる。

![キャプチャ4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/cf45a494-b139-b1ec-1afb-b0aa0186a12b.png)

::: note warn
1つの内部ローカルアドレスに対して1つの内部グローバルアドレスの割り当てになるため、用意されている内部グローバルアドレスの数だけしか同時に外部と通信ができない。
:::

:::note info
**設定を行う際は以下の2点を行う必要がある**
+ ルータのインターフェイスにインサイド、アウトサイドの指定
+ 内部ローカルアドレスと内部グローバルアドレスの組み合わせをNATテーブルに登録
:::


### ip natコマンド
**書式：ip nat [inside | outside]**
ルータのインターフェイスにインサイド、アウトサイドの指定を行うコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。

| オプション | 意味 |
|:-:|:-:|
| inside  | 内部インターフェイスを指定する  |
| outside  | 外部インターフェイスを指定する  |

### ip nat inside source staticコマンド
**書式：ip nat inside source static [内部ローカルアドレス] [内部グローバルアドレス]**
内部ローカルアドレスと内部グローバルアドレスの組み合わせをNATテーブルに登録するコマンド。グローバルコンフィギュレーションモードで行う必要がある。

## ダイナミックNAT
複数の内部グローバルアドレスをアドレスプールとして設定しておき、外部に通信する際アドレスプールから選択されたIPアドレスの1つに変換される。スタティックNATと違い、常に同じ内部グローバルアドレスに変換されるわけではない。
外部に通信する際に、**リアルタイムに自動でNATテーブルに登録される**ため、内部から通信するまでは内部ローカルアドレスがどの内部グローバルアドレスに変換されるかわからない。**一方向NATの動作**となる。

![キャプチャ5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/924d63ee-d611-e605-d61d-34bf097e626e.png)

::: note warn
ダイナミックNATもスタティックNAT同様に、1つの内部ローカルアドレスに対して1つの内部グローバルアドレスという1対1の割り当てとなるので、アドレスプールに用意されている内部グローバルアドレスの数だけしか同時に外部と通信できない。
:::


:::note info
**設定を行う際は以下のことを行う必要がある**

+ `ip nat`コマンドでインサイド、アウトサイドの指定
+ 変換の対象となる内部ローカルアドレスのリストを作成する
+ アドレスプールを作成する
+ 内部ローカルアドレスのリストとアドレスプールを紐づける

:::


### ip nat poolコマンド
**書式：ip nat pool [プール名] [開始アドレス] [終了アドレス] netmask [サブネットマスク]**
外部に出ていくために使われる内部グローバルアドレスをアドレスプール作成するコマンド。グローバルコンフィギュレーションモードで行う必要がある。

| オプション | 内容 |
|:-:|:-:|
| プール名  | プール名を定義  |
| 開始アドレス  | アドレスプールの最初のIPアドレスを指定（グローバルアドレスの最初のIPアドレスを指定）  |
| 終了アドレス  | アドレスプールの最後のIPアドレスを指定（グローバルアドレスの最後のIPアドレスを指定）。割り当てるIPアドレスが1つの場合は、開始アドレスと同じものを指定  |
| サブネットマスク  | プールしたアドレスのサブネットマスクを指定  |


### ip nat inside source listコマンド
**書式：ip nat inside source list [ACL] pool [プール名]**
内部ローカルアドレスのリストとアドレスプールを紐づけるコマンド。グローバルコンフィギュレーションモードで行う必要がある。
内部ローカルアドレスのリストを作成するにはACLを使用する。ACLでpermitとなっている行に該当するパケットは、送信元IPアドレスがNATにより変換される。denyはNATの変換が行われない。

::: note warn
**ACLは用途によって動作が異なるので注意する**
:::
## NAPT(Network Address Port Translation)
NATの技術を拡張したもので、**1対多のアドレス変換**が行えるためIPアドレスを節約し、内部ネットワークの多くのホストから同時にインターネットを利用できる。全て同じグローバルIPアドレスに変換される。また、IPアドレスだけではなく、TCPまたはUDPのポート番号も変換しNATテーブルに登録する。
ダイナミックNAT同様に、外部ネットワークからスタートする通信は内部ネットワークには入れない。
**IPマスカレード**や**オーバーローディング（オーバーロード**）、Ciscoでは**PAT（Port Address Translation**）とも呼ばれる。

![キャプチャ6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/557d00d5-b932-2fe8-16d8-306326201b77.png)

:::note info
**設定を行う際は以下のことを行う必要がある**

+ `ip nat`コマンドでインサイド、アウトサイドの指定
+ ACLで内部ローカルアドレスのリストを作成する
+ アドレスプールを利用する場合は作成する(なくても問題ない)
+ 内部ローカルアドレスのリストとアドレスプールまたは外部インターフェイスを紐づける
:::

### ip nat inside source listコマンド
**書式：ip nat inside source < list <ACL> | route-map <ルートマップ>> <pool <プール名> | interface <インターフェイス>> overload**
内部ローカルアドレスのリストとアドレスプールを紐づけるコマンド。グローバルコンフィギュレーションモードで行う必要がある。overloadを付けることでNAPTになる。


### clear ip nat traslationコマンド
**書式：clear ip nat traslation ＊**
NATテーブルの削除を行うコマンド。特権EXECモードで行う必要がある。＊（アスタリスク）をつけることで、NATテーブルの全エントリを削除することができる。


## 設定の確認


### show ip nat translationsコマンド
NATによるアドレスの変換状況を確認するコマンド。特権EXECモードで行う必要がある。

:::note warn
通信を行った後で実行しないと何も表示されない
:::


```markdown:show ip nat translationsコマンド
Pro  Inside global     Inside local       Outside local      Outside global
icmp 100.10.10.9:161   192.168.1.1:161    172.16.10.1:161    172.16.10.1:161
icmp 100.10.10.9:162   192.168.1.1:162    172.16.10.1:162    172.16.10.1:162
icmp 100.10.10.9:163   192.168.1.1:163    172.16.10.1:163    172.16.10.1:163
icmp 100.10.10.9:164   192.168.1.1:164    172.16.10.1:164    172.16.10.1:164
```


### show ip nat statisticsコマンド
アドレス変換の統計情報を確認するコマンド。特権EXECモードで行う必要がある。

![k61743.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/398fdff8-08db-cba2-86de-d0df4035f953.jpeg)


### debug ip natコマンド
NATの変換情報をリアルタイムで確認するコマンド。特権EXECモードで行う必要がある。

## スタティックNATの拡張機能
スタティックNATはLAN内にインターネット上へ公開したいサーバがある際などに使用されることが多くなっている。このような特徴からいくつかの追加機能が用意されている。

![キャプチャ24.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/aa38f64a-364b-d83f-b1f1-51d864b2b869.png)

### ip nat inside source static extendableコマンド
**書式：ip nat inside source static [内部ローカルアドレス] [内部グローバルアドレス] extendable**
スタティックNATで**extendableオプション**を使用するコマンド。グローバルコンフィギュレーションモードで行う必要がある。このオプションを使用することで、スタティックNATで1対多のIPアドレス変換を行うことが可能。

**書式：ip nat inside source static　< tcp |udp> <内部ローカルアドレス> <ポート番号> <内部グローバルアドレス> <ポート番号> extendable**
**スタティックNAPT**(静的NAPT：NAPTと同じように変換すること）の設定をするコマンド。グローバルコンフィギュレーションモードで行う必要がある。通信の種別ごとに変換するIPアドレスを変えることができるため、外部からやってくる通信によってアクセスする内部の端末を振り分けることが可能。

![キャプチャ25.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/a69a25c8-93f4-8e1e-9ad3-cbfd2550ec3f.png)


# DHCP(Dynamic Host Configuration Protocol)
PCなどの機器にネットワークへの接続に必要となるIPアドレスやサブネットマスクなどの情報を自動的に割り当てるためのプロトコル。**DHCPサーバ(ポート:67**)と**DHCPクライアント(ポート:68**)から成り立ち、トランスポート層に**UDP**を使用する。

:::note info
DHCPで割り当てられる主な情報
+ **IPアドレスとサブネットマスク**
+ **デフォルトゲートウェイ**
+ **DNSサーバ**
:::


![キャプチャ3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/57756e05-29b8-7b5b-1022-da11ee164709.png)

+ **DHCP DSICOVER**
DHCPクライアントから同じネットワーク全体に対し、ブロードキャストアドレス`255.255.255.255`に送信する

+ **DHCP OFFER**
DHCP DSICOVERを受け取ったDHCPサーバは、DHCPクライアントに対して送信し、貸し出す予定のIPアドレスと関連するネットワークの情報を伝達する。

+ **DHCP REQUEST**
DHCPクライアントは、DHCPサーバから送信されたDHCP OFFERの情報に問題がなければ、ブロードキャストアドレス`255.255.255.255`に送信し、DHCPサーバに対してIPアドレスなどを正式に要求する。

+ **DHCP ACK**
DHCPサーバは、DHCP REQUESTの応答として承認する場合に送信をする。DHCPクライアントは受け取ったDHCP ACKの内容に基づいてネットワークの設定を行う。問題があった場合は、DHCP NACKを返す。

### Gratuitous ARP
DHCPサーバからDHCPクライアントにIPアドレスが割り当てられる際に、DHCPクライアントが他のホストへすでに同じIPアドレスが割り当てられているかどうかを確認するために使用する。いわば、IPアドレスの重複(コンフリクト)の検出を行う。

## DHCPの設定
ルータはDHCPサーバとしてもDHCPクライアントとしても動作させることができる。

DHCPサーバにするためには以下のことが必要になる。

+ アドレスプールの作成
+ 配布するIPアドレスのネットワークとサブネットを指定
+ デフォルトゲートウェイの指定
+ リース期間の指定
+ DNSサーバの指定(必須ではない)
+ 除外アドレスの指定

設定後、PCを起動するとIPアドレスが自動で割り振られる。


### ip dhcp poolコマンド
**書式：ip dhcp pool [プール名]**
アドレスプールを作成するコマンド。グローバルコンフィギュレーションモードで行う必要がある。プール名には任意の名前を指定する。実行すると、DHCPコンフィギュレーションモードに移行しプロンプトが変化する。

#### networkコマンド
**書式：network [ネットワーク] [サブネットマスク | /プレフィックス]**
DHCPプールで使用するネットワークとサブネットマスクを指定するためのコマンド。**DHCPコンフィギュレーションモード**で行う必要がある。ここで指定したネットワーク内からIPアドレスが配布される。


``` markdown:ip dhcp poolコマンド実行後
R1(config)#ip dhcp pool R2_LAN
R1(dhcp-config)#network 192.168.11.0 255.255.255.0
```

### default-routerコマンド
**書式：defautlt-router [IPアドレス]**
DHCPクライアントにデフォルトゲートウェイのIPアドレスを設定するコマンド。DHCPコンフィギュレーションモードで行う必要がある。

### leaseコマンド
**書式：lease [日] [時] [分]**
DHCPクライアントにIPアドレスを貸し出すリース期間を設定するコマンド。DHCPコンフィギュレーションモードで行う必要がある。設定を省略した場合、デフォルトの有効期限(1日)で設定される。

### dns-serverコマンド
**書式：dns-server [DNSサーバのIPアドレス] [DNSサーバのIPアドレス]**
DHCPクライアントにDNSサーバのIPアドレスを設定するコマンド。DHCPコンフィギュレーションモードで行う必要がある。複数指定が可能。

### domain-nameコマンド
**書式：domain-name <ドメイン名>**
DHCPクライアントにドメイン名を配布するコマンド。DHCPコンフィギュレーションモードで行う必要がある。

### ip dhcp excluded-addressコマンド
**書式：ip dhcp excluded-address [開始アドレス] [終了アドレス]**
IPアドレスをアドレスプールから除外するコマンド。**グローバルコンフィギュレーションモード**で行う必要がある。開始アドレスと終了アドレスで指定した範囲のIPアドレスが除外され、DHCPクライアントに配布されなくなる。終了アドレスを省略した場合、開始アドレスのみ除外される。

### ip address dhcpコマンド
**DHCPクライアントの設定を行う**コマンド。インターフェイスコンフィギュレーションモードで行う必要がある。設定を行うことで、ルータのインターフェイスのIPアドレスをDHCPサーバから割り当てることができる。

::: note info
コマンド実行後、`no shutdown`コマンドにてインターフェイスを有効化する必要がある。
:::

ルータをDHCPクライアントととして設定した場合、デフォルトゲートウェイのIPアドレスの情報を基にデフォルトルートを自動生成する。その際、[アドミニストレーティブディスタンス](https://qiita.com/matuumo/private/0ebbb55bdc9e323b1da1#%E3%82%A2%E3%83%89%E3%83%9F%E3%83%8B%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%83%86%E3%82%A3%E3%83%96%E3%83%87%E3%82%A3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9)値は254になる。

### optionコマンド
**書式：option <オプション番号> ip < IPアドレス>**
オプションの設定を行うコマンド。DHCPコンフィギュレーションモードで行う必要がある。設定を行うことで、多くの情報を伝えることが可能になる。

| オプション番号 | 意味 |
|:-:|:-:|
| 7  | ログサーバのアドレス  |
| 43  | WLCのIPアドレス  |
| 66  | TFTPサーバ名  |
| 69  | SMTPサーバのアドレス  |
| 70  | POP3サーバのアドレス  |
| 72  | Webサーバのアドレス  |


## DHCPの確認
DHCPクライアントであるルータにどういったIPアドレスが割り当てられているかは以下のコマンドで確認する必要がある。

+ `show ip interfacw brief`コマンド(サブネットマスク確認不可)
+ `show interfaces`コマンド
+ `show dhcp lease`コマンド

::: note warn
`running-config`で確認することはできない
:::


DHCPサーバ側ではどういったIPアドレス割り振られたかを確認するコマンドがいくつか存在する。

### show ip dhcp poolコマンド
DHCPサーバで設定したアドレスプールを確認をするコマンド。特権EXECモードで行う必要がある。ネットワークの範囲に対して次に割り当てる予定のIPアドレス、配布されているIPアドレスの数を確認することができる。

``` markdown:show ip dhcp poolコマンド
Router2#show ip dhcp pool 

Pool DHCPPOOL :
 Utilization mark (high/low)    : 100 / 0
 Subnet size (first/next)       : 0 / 0 
 Total addresses                : 254
 Leased addresses               : 0
 Excluded addresses             : 1
 Pending event                  : none

 1 subnet is currently in the pool
 Current index        IP address range                    Leased/Excluded/Total
 192.168.1.1          192.168.1.1      - 192.168.1.254     0    / 1     / 254
```

:::note info
`show running-config`でもDHCPプールに設定された割り当てアドレスの範囲を確認することができる。
:::



### show ip dhcp bindingコマンド
IPアドレスの割り当て状況を確認するコマンド。特権EXECモードで行う必要がある。配布したIPアドレスと配布されたPCのMACアドレスなどが確認できる。

:::note warn
DHCPプールに設定されたアドレス範囲は確認できないので注意
:::


```markdown:show ip dhcp bingingコマンド
Router2#show ip dhcp binding 
IP address       Client-ID/              Lease expiration        Type
                 Hardware address
192.168.1.150    0001.4305.811E           --                     Automatic
192.168.1.151    00D0.5863.70E0           --                     Automatic
```


### show ip dhcp conflictコマンド
コンフリクトが発生したIPアドレスの一覧を確認するコマンド。特権EXECモードで行う必要がある。IPアドレスの重複はGratuitous ARPまたはpingによって検出される。一度コンフリクトが発生したIPアドレスはルータ内に記録され、次からは配布されずアドレスプールから除外される。

### show dhcp leaseコマンド
DHCPによって取得した情報を表示するコマンド。特権EXECモードで行う必要がある。自身に割り当てられたIPアドレスや、デフォルトゲートウェイのIPアドレスを確認することができる。

![kkkkkk36748.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/947148ea-6cef-ee97-5b1b-dddb738bac02.jpeg)



### clear ip dhcp conflictコマンド
コンフリクト情報を消去して再度クライアントに配布するコマンド。特権EXECモードで行う必要がある。

## DHCP設定例

<details><summary>DHCP設定例</summary>

![キャプチャ003.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/48bff2c3-b751-ad09-3a9a-5a839ff561d9.png)



Router2にDHCPの設定を行い、各PCにIPアドレスを付与し最終的にRouter3への疎通確認を行う。

``` markdown:Router2初期設定
Router2(config)#interface FastEthernet 0/0
Router2(config-if)#ip address 192.168.1.1 255.255.255.0
Router2(config-if)#no shutdown 
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up

Router2(config-if)#exit
Router2(config)#interface FastEthernet 0/1
Router2(config-if)#ip address 10.10.10.1 255.255.255.0
Router2(config-if)#no shutdown 
Router2(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up

```


``` markdown:Router3初期設定
Ruter3(config)#interface FastEthernet 0/0
Ruter3(config-if)#ip address 10.10.10.2 255.255.255.0
Ruter3(config-if)#no shutdown 

Ruter3(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
```

初期設定が完了したらRouter2にDHCPの設定を行っていく。

``` markdown:Router2 DHCP設定
##DHCPPOOLという名前でアドレスプールを作成
Router2(config)#ip dhcp pool DHCPPOOL
##DHCPプールで使用するネットワークを192.168.1.0で指定する
Router2(dhcp-config)#network 192.168.1.0 255.255.255.0
##デフォルトゲートウェイの設定
Router2(dhcp-config)#default-router 192.168.1.1
Router2(dhcp-config)#
Router2(dhcp-config)#end
Router2#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
##IPアドレスの配布を192.168.1.150から行うようにし、それ以前の番号は除外する
Router2(config)#ip dhcp excluded-address 192.168.1.1 192.168.1.149
Router2(config)#

```

これで各PCのIP Configurationの設定をDHCPに変更すると、`192.168.1.150`から割り当てられる

![キャプチャ004.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/7f465a32-636c-da55-86b3-5d64d5fec4ea.png)

ただ、このままpingを打ってもRouter3には`192.168.1.0`のセグメントの登録がないため疎通できない。以下の設定を追加で行う

```markdown:Router2スタティックルートの追加と確認
Ruter3(config)#ip route 192.168.1.0 255.255.255.0 10.10.10.1
Ruter3(config)#end
Ruter3#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       10.10.10.0/24 is directly connected, FastEthernet0/0
L       10.10.10.2/32 is directly connected, FastEthernet0/0
S    192.168.1.0/24 [1/0] via 10.10.10.1

```

これで改めてpingを打つと疎通確認できるようになる。

</details>


## DHCPリレーエージェント
異なるネットワーク上に配置されたDHCPサーバにDHCPのメッセージを転送するための機能のこと。ルータに設定を行うと、ブロードキャストアドレス宛のメッセージをユニキャストアドレス宛てに変換してDHCPサーバに転送する。

![キャプチャ4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/71a95c31-14cf-9e26-79ac-a10ef5be9fe7.png)

:::note warn
デフォルト状態ではルータに届いたDHCP-DISCOVERは破棄される
:::


![キャプチャ5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/6ddf7b04-71c1-1dfe-f5c8-58490a21e8ab.png)

### ip helper-addressコマンド
**書式:ip helper-address [DHCPサーバのIPアドレス]**
CiscoルータでDHCPリレーエージェントの設定を行うコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。設定するインターフェイスは、ブロードキャストが着信するインターフェイスとなる。


# DNS(Dynamic Name System)
ドメイン名とIPアドレスの対応情報を管理すること。ドメイン名とIPアドレスの対応は、「1対1」 「多対1」 「1対多」のいずれの設定も可能。ドメイン名からIPアドレスを解決する(**フォワードルックアップ**)、またその逆のことを名前解決(**リバースルックアップ**)という。
ドメインの範囲を分けて分散して管理するために、階層構造を取っている。一番上のルートドメインから始まり、その下にjpやcomといったトップレベルドメイン、更にその下にcoやneなどの第2レベルドメインと続く。
それぞれのドメイン情報を保持しているサーバを**権威サーバ**と呼ぶ。

![キャプチャ6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3238179/c4097238-b7c1-99a6-4b64-af0d32aee175.png)

DNSルートサーバは、**エニーキャストアドレス**を使用して運用されている。複数のDNSルートサーバに同じIPアドレスを割り当て、エニーキャストアドレスとして運用することで、冗長化による耐障害性の向上や、サーバの地理的な分散配置が可能になる。

CiscoルータはDNSサーバとしても、クライアントとしても動作することができる。

### ip dns serverコマンド
DNSサーバ機能を有効化するコマンド。グローバルコンフィギュレーションモードで行う必要がある。

### ip hostコマンド
**書式:ip host [ホスト名] [IPアドレス]**
DNSサーバが回答する名前とIPアドレスのペアを登録するコマンド。グローバルコンフィギュレーションモードで行う必要がある。

### ip domain lookupコマンド
DNSによる名前解決を行うコマンド。グローバルコンフィギュレーションモードで行う必要がある。

### ip name-serverコマンド
**書式:ip name-server [IPアドレス]**
DNS参照先のIPアドレスを指定するコマンド。グローバルコンフィギュレーションモードで行う必要がある。

### ip domain nameコマンド
**書式：ip domain name [ドメイン名]**
自身の所属するドメイン名を登録するコマンド。グローバルコンフィギュレーションモードで行う必要がある。ホスト名のみで問い合わせた場合に自動的に補完される。

### ip domain listコマンド
**書式:ip domain list [ドメイン名]**
ホスト名のみでの問い合わせ時に自動的に補完されるドメイン名のリストコマンド。グローバルコンフィギュレーションモードで行う必要がある。

:::note warn
ip domain nameコマンドと両方が設定されている場合、ip domain nameコマンドで設定したドメイン名は補完には使用されず、**ip domain listコマンドで設定したドメイン名のみ使用される**。複数のドメイン名を指定した場合、その全てのドメイン名が**順に補完**され、問い合わせが行われる。
:::