読者です 読者をやめる 読者になる 読者になる
演習Index

DHCPクライアントの設定

次に、DHCPクライアントを設定しましょう。

DHCPクライアントの設定 

  1. client1の仮想マシンをシャットダウンしておきます。
  2. 仮想マシンのネットワーク設定でNATを解除します。

    f:id:wave1008:20170213034557p:plain

  3. 内部ネットワークを設定します。名前はnetwork1とします。プロミスキャスモードはWiresharkでキャプチャするために必要なのですべて許可とします。

    f:id:wave1008:20170213034611p:plain

  4. 仮想マシンを起動してログインします。
  5. ネットワーク接続を開きます。アダプターの名前をnetwork1に変更します。ダブルクリックします。

    f:id:wave1008:20170213034826p:plain

  6. プロパティをクリックします。

    f:id:wave1008:20170213034855p:plain

  7. 演習で使用しないのでTCP/IPv6はオフにします。

    f:id:wave1008:20170213035056p:plain

  8. TCP/IPv4をダブルクリックします。
  9. [IPアドレスを自動的に取得する]と[DNSサーバーのアドレスを自動的に取得する]を選択します。

    f:id:wave1008:20170213035337p:plain

 

 

DHCPの動作確認

仮想マシンclient1においてipconfig /all を実行します。

f:id:wave1008:20170401145256p:plain

IPv4アドレスとサブネットマスクが、10.0.1.2のDHCPサーバーからリースされて割り当たっています。

 

ping 10.0.1.1を実行してみます。

f:id:wave1008:20170401145619p:plain

正しく応答していることがわかります。

 

 

DHCPサーバーの設定

DHCP(Dynamic Host Configuration Protocol)

server1とserver2は固定のIPアドレスを手動で設定しました。このようにサーバーのIPアドレスは一般的にはシステム管理者によって手動で設定されます。

 

一方、個々の従業員に配布されるPCは、LANに接続したときに自動でIPアドレスを設定します。このときに使用するプロトコルDHCPです。DHCPIPアドレスを設定する対象となるクライアントと、IPアドレスの配布を管理するサーバーによって構成されます。

 

まずは演習用ネットワーク環境Aの構成のとおりserver2に2DHCPサーバーを設定しましょう。

  

DHCPサーバーの設定

  1. server2の仮想マシンを起動し、ログインします。
  2. サーバーマネージャーで[役割と機能の選択]をクリックします。

    f:id:wave1008:20170401142932p:plain

  3. [役割ベースまたは機能ベースのインストール]を選択します。

    f:id:wave1008:20170401143033p:plain

  4. [サーバープールからサーバーを選択]をクリックすします。

    f:id:wave1008:20170401143123p:plain

  5. [DHCPサーバー]にチェックを入れます。

    f:id:wave1008:20170401143154p:plain

    f:id:wave1008:20170401143205p:plain

  6.  [次へ]

     

    f:id:wave1008:20170401143247p:plain

  7.  

     [次へ]

    f:id:wave1008:20170401143328p:plain

  8.  [インストール]

    f:id:wave1008:20170401143435p:plain

  9.  [閉じる]

    f:id:wave1008:20170401143458p:plain

  10. [その他]

    f:id:wave1008:20170401143613p:plain

  11.  [DHCP構成を完了する]

    f:id:wave1008:20170401143641p:plain

  12.  [コミット]

    f:id:wave1008:20170401143715p:plain

  13.  DHCPサーバーサービスを再起動します(またはserver2を再起動します)。

    f:id:wave1008:20170401143736p:plain

  14.  サーバーマネージャーからDHCPマネージャーを起動します。

    f:id:wave1008:20170401143923p:plain

  15.  IPv4を右クリックして[新しいスコープ]を選択します。

    f:id:wave1008:20170401144008p:plain

  16. [次へ]

    f:id:wave1008:20170401144026p:plain

  17. スコープ名としてscope1を入力します。

    f:id:wave1008:20170401144135p:plain

  18. アドレス範囲として10.0.1.100-10.0.1.200を指定します。サブネットマスクは255.255.255.0を指定します。

    f:id:wave1008:20170401144214p:plain

  19. [次へ]

    f:id:wave1008:20170401144253p:plain

  20. [次へ]

    f:id:wave1008:20170401144312p:plain

  21. [後でオプションを構成する]を選択します。

    f:id:wave1008:20170401144529p:plain

  22.  [今すぐアクティブにする]を選択します。

    f:id:wave1008:20170401144634p:plain

  23.  [完了]

    f:id:wave1008:20170401144658p:plain

     

  24.  スコープが定義されました。

    f:id:wave1008:20170401144744p:plain

     

引き続いて、DHCPクライアントの設定を行います。

 

ARPキャッシュ

ARPキャッシュを確認または削除する

ARPによってアドレス解決した結果はARPテーブルに保持されます。

arp -aで確認してみましょう。

f:id:wave1008:20170401081554p:plain

 

 

IPアドレスMACアドレスの対応を記録したエントリが複数あることがわかります。

10.0.1.2のエントリはさきほどpingを実行したときに解決されたもので、種類が「動的」であり、有効期限付きでキャッシュされています。

 arp -dでキャッシュを削除してみましょう。

f:id:wave1008:20170401081840p:plain

動的なエントリが削除されました。

 

この状態でping 10.0.1.2を実行すると、ARPが実行されてアドレス解決が実行され、再度キャッシュされることがわかります。

f:id:wave1008:20170401082242p:plain

f:id:wave1008:20170401082531p:plain

 

ここで、仮想マシンのネットワーク設定でケーブル接続をオフにしてみましょう。

f:id:wave1008:20170401083541p:plain

 

arp -aを実行してみましょう。

f:id:wave1008:20170401083631p:plain

「静的」を含めてすべてのエントリがクリアされていることがわかります。

 

再度ケーブルを接続すると、以下のようなパケットが流れます。ARPのほかにIGMPv3というプロトコルのメッセージが流れています。

f:id:wave1008:20170401084511p:plain

 

arp -aを実行してみましょう。

f:id:wave1008:20170401084126p:plain

IGMPv3によって静的なアドレスのエントリが登録されています。

IGMPはマルチキャストを実現するためのプロトコルです。動画や音楽のストリーミングに関するシステムに関わる場合は重要ですが、それ以外では実務で気にすることはないと思います。

Internet Group Management Protocol - Wikipedia

 

 

演習で使用しないメッセージを無効にする

NetBIOS over TCP/IPを無効にする

演習環境でパケットをキャプチャしていると、NBNS(NetBIOS Name Serve)のパケットをキャプチャする場合があります。

 

f:id:wave1008:20170331164306p:plain

 

これは本演習では不要なので、無効化してしまいましょう。

 

  1. ネットワーク接続で、network1のプロパティからTCP/IPのプロパティを開きます。
  2. [詳細設定]をクリックします。
  3. [NetBIOS over TCP/IPを無効にする]をチェックします。

f:id:wave1008:20170401095550p:plain

 

 

 

 

 

 

【ちょっと座学】ネットワークの話

先の記事でpingの通信をWiresharkでキャプチャしていろいろ説明していますが、ARPとか、アドレス解決とか、キーワードを説明していないので、たぶん消化不良ですよね。パケットの世界で何が起きているのかを理解するには、ネットワークについて学習する必要があります。ちょっと座学しましょう。

 

ネットワーク

ネットワークという言葉はいろんなシーンで使われますが、実はTPOにあわせて少しずつニュアンスが違います。基本的にコンピューターの世界でネットワークという言葉は規模の大小にかかわらず、コンピューターとコンピューターを通信でつなぐことを指します。

  • 大きなスケールだと、世界中に張り巡らされたインターネットはネットワークです。
  • 中小のスケールだと、企業や家庭などの組織内のLANもネットワークです。
  • 企業の拠点のLAN同士(東京~大阪など)を接続するために通信キャリアが提供するものはWANと呼ばれますが、これもネットワークです。
  • PCとルーターの間を無線LANで接続する場合、これもネットワークです。
  • PCとPCをLANケーブルで直接接続した場合、このLANケーブルはネットワークです。

 最小構成のネットワーク

PCとPCをLANケーブル(クロスケーブル)で接続した場合、最小構成のネットワークができます。ポイント・ツー・ポイントでつなぐだけでもネットワークと呼んでかまいません。

 

f:id:wave1008:20170207184204p:plain

 

メディア

LANケーブルは銅線です(ここではそう解釈します)。コンピューターはこの銅線に電気信号を流して他のコンピューターに信号を伝えます。

  • 銅線は電気信号を伝えるメディア(媒体)です。
  • 同様に、光ファイバーは光信号を伝えるメディアです。
  • 同様に、空間は電波信号を伝えるメディアです。

 

f:id:wave1008:20170207184613p:plain

 

Media Access Control(MAC)

メディアを介してコンピューター間の相互アクセスを実現する制御のことをMedia Access Control(MAC)と呼びます。具体的には、メディアにどんな信号を流せばどういう意味になるのかを定めたルール(プロトコル)や、それを実装したものです。

 

MACアドレス

メディアに接続されたLANアダプタを識別するために使用する48ビットの識別情報をMACアドレスと呼びます。MACアドレスはLANアダプタに対して重複しないように一意に割り当てられます。

MACアドレスを重複させないため、IEEEという団体が番号を管理しています。上位の24ビットを企業(メーカー)に割り当てます。割り当てられた企業は自分の製品で重複しないように下位の24ビットを決定します。

f:id:wave1008:20170207190142p:plain

 

Ethernet

メジャーなLANの規格です。もともとは同軸ケーブル(太い銅線みたいなもの)に複数のコンピューターを繋いで通信するバス型のネットワークです。バス型なので複数のコンピューターがたまたま同時に喋ろうとすると信号の衝突(コリジョン)が発生します。

 

f:id:wave1008:20170211204740p:plain

 

リピータハブ

同軸ケーブルは扱いにくいので、各コンピューターとハブ状に接続できるようにした、電気信号をリピートする機器(リピータ)をリピータハブといいます。リピータハブは後述のスイッチングハブのように賢くないので、バカハブとも呼ばれます。物理的にはスター型のネットワークですが、論理的には前述の同軸ケーブルを使用したEthernetと同じバス型のネットワークです。

 

f:id:wave1008:20170211204832p:plain 

スイッチングハブ

リピータハブでは、あるコンピューターが流した電気信号はリピータハブに接続されているすべてのコンピューターに伝わってしまう(ブロードキャストされてしまう)ので、ネットワークの使い方が非効率です。本来データを送信したい宛先のMACアドレス以外には電気信号を伝えないようにしてスイッチのように振る舞うのがスイッチングハブです。

 

f:id:wave1008:20170211204909p:plain

 

フレーム(MACフレーム)

Ethernet上でやりとりするデータの単位はフレーム(MACフレーム)と呼びます。

以下の記事を参考に理解を深めてください。(リンクさせていただきます)

Ethernet LAN - イーサネットフレームのフォーマットとMACアドレス

 

フレームのタイプには0x0800(IPv4)や0x0806(ARP)が指定できます。MACフレームの上でIPv4ARPプロトコルは実現されます。

 

Media Access Controlの限界

EthernetのようにMedia Access Controlによってコンピューターを接続するネットワークは、そこにつなぐことができるコンピューターの台数に制限があります。電気信号や電波が効率よく伝わる距離には限界があるため、世界中のコンピューターを一つのメディアに接続して通信することはできません。また、バス型のネットワークでは接続するコンピューターの台数が増えると、ネットワークが混雑して通信速度が低下するという問題もあります。つまり、一つの大きなEthernetを用意して、世界中のみんながそこにつなぐという方法は機能しません。ネットワークの規模を大きくするには複数のEthernetに分割してそれらを相互に接続する技術(インターネットワーキング)が必要になります。

 

f:id:wave1008:20170208134632p:plain

  

ルーターゲートウェイ

EthernetEthernetを接続する機器がルーターです。 正確に言うと、接続されるネットワークは違う規格のものでも構わないので、Ethernet光回線でも、無線LANでもかまいません。ここでは話を単純にするため、すべてEthernetとします。

ルーターを導入する場合、1つ1つのEhternetはセグメントと呼ばれます。ネットワーク全体をみたとき、分割されたものの一部という意味です。ルーターはセグメントの出入り口の役割を果たすのでゲートウェイという呼び方もされます。デフォルトゲートウェイでおなじみですね。

 

f:id:wave1008:20170208135434p:plain

 

 セグメントの数を増やしてルーター間をネットワークで相互に接続すれば、ネットワークの規模を拡大することができます。

 

f:id:wave1008:20170208142512p:plain

 

EthernetのようなMedia Access Controlではメディアにブロードキャストして通信相手にフレームを送信しますが、ルーターの接続によって拡大されたネットワークでブロードキャストしてしまうと、ネットワークはすぐに飽和してまともに機能しなくなります。したがって、ブロードキャスト以外の方法でルーター間で効率よくデータを転送する仕組みが必要になります。IP(Internet Protocol)のようなネットワーク層プロトコルがこの問題を解決します。

 

IP(Internet Protocol)

ネットワーク間でパケットを中継する仕組みを提供するプロトコルです。現在のインターネットのような世界規模の巨大なネットワークが実現できているのは、IPが貢献するところが大きいです。IPv4IPv6のバージョンがありますが、ここではIPv4で話を進めます。

 

パケット

Ethernet上でやりとりするデータの単位はフレーム(MACフレーム)でしたが、Internet Protocol上でやりとりするデータの単位はパケットと呼びます。パケットはサイズが大きい場合、複数のフレームに分割され送信されます。逆に受信側はフレームを組み立ててパケットを復元します。

 

IPアドレス

Internet Protocolでは、IPアドレスという、MACアドレスとは別のアドレス体系を使用します。IPアドレスはネットワーク部とホスト部で構成されています。つまり、IPアドレスはネットワークを識別することができるようになっています。この点はMACアドレスとの大きな違いです。

 

詳細は以下のサイトを参考にして理解を深めてください。(リンクさせていただきます)

IPアドレスとは

ただし、クラスAとかクラスBといったIPアドレスのクラスは現在では重要ではないので、さらっと読み飛ばしてください。現在はアドレスクラスではなくCIDRという仕組みを使います。以下のサイトを参考にしてください。(リンクさせていただきます)

CIDRによる割り当て | IPラーニング

 

ルーティング

IPアドレスを導入することでネットワークを識別できるようになったので、ルーターは受信したパケットのIPアドレスのネットワーク部をもとに、パケットをどのネットワークに中継すればよいのかを判別できます。ルーターに直接つながっているネットワーク宛のパケットならば、そのネットワークのセグメントにパケットを流します。セグメント内で特定のコンピューターにフレームを届けるのは、従来通りEthernetのようなMedia Access Controlの役割です。

 

IPアドレスMACアドレス

前述のように、ルーターをまたがって宛先ネットワークへパケットを届けるためにはIPアドレスを使用します。Ethernetのセグメント内でフレームを届けるにはMACアドレスを使用します。LANアダプターは製造時にMACアドレスが割り振られます。IPアドレスは組織内のネットワークの管理者がMACアドレスに対して割り当てます。

 

アドレス解決

同じEthernetにつながっているコンピューター間でIPで通信するケースを考えましょう。IPでパケットの送信を開始する際、宛先IPアドレスは事前に何らかの方法で分かっているものとします。パケットを分割してフレームにする際、宛先のMACアドレスが必要となります。IPアドレスから対応するMACアドレスを決定することを「アドレスを解決する」という言い方をします。アドレスを解決するには、IPアドレスMACアドレスの対応テーブルを保持し、それを利用することで実現します。この対応テーブルは静的に設定する方法と、動的に問い合わせを行って設定する方法があります。後者を実現するプロトコルARP(Address Resolution Protocol)です。また、この対応テーブルをARPテーブルと呼びます。

詳細については以下のサイトを参考にしてください。(リンクさせていただきます)

アドレス解決とARP

 

 

コンピューターネットワークがどういうものなのかという、わりと壮大な回り道をして、最後はアドレス解決の話に戻ってきました。なんとなく理解したところで、前回のパケットキャプチャの内容を読み返してみてください。

 

Windows Serverへのpingのトラブルシューティング

トラブルシューティング

先の手順ではpingは失敗してしまいます。一体何が問題なのでしょうか?Wiresharkでパケットを覗いてみましょう。

  1. server1でWiresharkを起動し、network1のキャプチャを開始します。
  2. pingを実行します。要求がタイムアウトします。

    f:id:wave1008:20170207001232p:plain

  3. Wiresharkでキャプチャ結果を確認します。

    f:id:wave1008:20170207001357p:plain

1行目

ARP(Adress Resolution Protocol)のrequestメッセージがnetowork1にブロードキャストされています。Info欄に要約が示されているように、10.0.1.1(server1)が10.0.1.2(server2)のMACアドレスを問い合わせています。

2行目

10.0.1.2のIPアドレスに対応するMACアドレスは08:00:27:27:56:ffですよというARPのreplyメッセージが返ってきています。これで、10.0.1.2のIPアドレスの宛先にパケットを送信するためのMACアドレスが解決できました。

3行目

10.0.1.2のIPアドレスに対応するMACアドレスを宛先に設定し、network1にパケットを送信しています。しかし、応答は返ってきませんでした。([No response seen])

 

これらのことから以下のことがわかります。

 

こうなると、どこかでパケットがフィルターされているのではないかという疑いが出てきます。実は、Windows Serverはデフォルトでpingが使用するICMPv4のメッセージをWindowsファイアーウォールが許可していません(フィルターしています)。これは最初はみんなハマります。WindowsファイアーウォールでICMPv4を許可しましょう。

 

WindowsファイアーウォールでICMPv4を許可する

  1. Windowsファイアーウォールを開きます。
  2. [受信の規則]で[新しい規則]をクリックします。

    f:id:wave1008:20170207004531p:plain

  3. カスタムを選択します。

    f:id:wave1008:20170207004742p:plain

     

  4. すべてのプログラムを選択します。

    f:id:wave1008:20170207004803p:plain

  5. ICMPv4を選択します。

    f:id:wave1008:20170207004846p:plain

  6. 任意のアドレスを選択します。

    f:id:wave1008:20170207005014p:plain

  7.  接続を許可するを指定します。

    f:id:wave1008:20170207005033p:plain

  8.  すべてチェックします。

    f:id:wave1008:20170207005102p:plain

  9.  任意の識別しやすい名前をつけます。

    f:id:wave1008:20170207005145p:plain

  10.  上記の手順でserver1とserver2とも設定します。

  11. 10.0.1.1(server1)から10.0.1.2(server2)にIPアドレス指定でpingが通ることを確認します。今度は成功します。パケットをキャプチャするとICMPのreplyメッセージが返っていることがわかります。

    f:id:wave1008:20170207010100p:plainf:id:wave1008:20170207010209p:plain

  12. 10.0.1.2(server2)から10.0.1.1(server1)にIPアドレス指定でpingが通ることを確認します。今度は成功します。

    f:id:wave1008:20170207005554p:plain

 

以上でserver1とserver2の間でpingによる疎通確認ができるようになりました。