LoginSignup
1
1

NAT・DHCP・DNS

Last updated at Posted at 2024-01-21

NAT(Network Address Translation)

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

キャプチャ1.PNG

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

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

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

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

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

キャプチャ3.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

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

設定を行う際は以下の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

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

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

  • 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の変換が行われない。

ACLは用途によって動作が異なるので注意する

NAPT(Network Address Port Translation)

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

キャプチャ6.PNG

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

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

ip nat inside source listコマンド

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

clear ip nat traslationコマンド

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

設定の確認

show ip nat translationsコマンド

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

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

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

debug ip natコマンド

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

スタティックNATの拡張機能

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

キャプチャ24.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

DHCP(Dynamic Host Configuration Protocol)

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

DHCPで割り当てられる主な情報

  • IPアドレスとサブネットマスク
  • デフォルトゲートウェイ
  • DNSサーバ

キャプチャ3.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アドレスが配布される。

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サーバから割り当てることができる。

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

ルータをDHCPクライアントととして設定した場合、デフォルトゲートウェイのIPアドレスの情報を基にデフォルトルートを自動生成する。その際、アドミニストレーティブディスタンス値は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コマンド

running-configで確認することはできない

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

show ip dhcp poolコマンド

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

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

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

show ip dhcp bindingコマンド

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

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

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

clear ip dhcp conflictコマンド

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

DHCP設定例

DHCP設定例

キャプチャ003.PNG

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

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

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の設定を行っていく。

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

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

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を打つと疎通確認できるようになる。

DHCPリレーエージェント

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

キャプチャ4.PNG

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

キャプチャ5.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

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 [ドメイン名]
ホスト名のみでの問い合わせ時に自動的に補完されるドメイン名のリストコマンド。グローバルコンフィギュレーションモードで行う必要がある。

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

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1