「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>Windowsネットワークの基礎知識、設定・トラブルシュート]] * 目次 [#d31f485d] #contents *概要 [#p3318477] *[[イーサネット>#d90af36c]]上のネットワーク サーバ [#pb33c7f4] -[[イーサネット>#d90af36c]]上でネットワーク基盤として機能するネットワーク サーバ。 -これらのネットワーク基盤として機能するネットワーク サーバの機能により、 --[[IPアドレス>#r678d200]]の付与(など設定 の配布) --[[NetBIOS名>#n3cc4fd9]]・[[FQDN名>#t909255c]]の名前解決 --ネットワーク リソースのグループ化、検索、認証(アクセス許可) >などの自動化が図られ、ネットワーク、ネットワーク中の~ リソース(ファイル サーバ等)の使い易さ・管理のし易さが向上する。 #ref(NetWorkServer.png,left,nowrap,ネットワーク サーバ) **[[IPアドレス>#r678d200]]の、動的割り当て [#cdf92fd1] ***DHCP [#y927ca3b] -DHCPサーバはクライアントに動的に[[IPアドレス>#r678d200]]を割り当てるサーバ。 -ルータを跨ぐ場合は、クライアントが存在するネットワーク内に中継機能を追加する必要がある。 **名前解決のためのサーバ [#r5482bcc] 現在の[[イーサネット>#d90af36c]]ではTCP/IPプロトコルが標準的に使われており、~ ネットワーク上でコンピュータやネットワーク機器につけられた[[名前>#x635df3d]]は、~ [[IPアドレス>#r678d200]]に変換され通信が実行される。これを名前解決と言う。 ***DNSサーバ [#z2fbe35d] -[[FQDN名>#t909255c]]を[[IPアドレス>#r678d200]]に変換する。 -[[NetBIOS名>#n3cc4fd9]]・[[ホスト名>#qc452143]]が対象の場合は利用できない。 ***WINSサーバ [#u7ab8c7b] -[[NetBIOS名>#n3cc4fd9]]を[[IPアドレス>#r678d200]]に変換する。 -[[FQDN名>#t909255c]]・[[ホスト名>#qc452143]]が対象の場合は利用できない。 -非WINS環境では、[[NetBIOS名>#n3cc4fd9]]の名前解決はWINSサーバではなく、NetBIOSブロードキャストにより行われる。 -ルータを跨ぐ場合は、クライアントが存在するネットワーク内に中継機能を追加する必要がある。 ***名前解決のためのファイル(クライアント) [#zd0d9fb8] -lmhostsファイル~ [[NetBIOS名>#n3cc4fd9]]を[[IPアドレス>#r678d200]]に変換する。 -hostsファイル~ [[ホスト名>#qc452143]]・[[FQDN名>#t909255c]]を[[IPアドレス>#r678d200]]に変換する。 **ネットワーク資源管理のサーバ [#z2ff547a] -ネットワーク リソースをグループ化するサーバについて纏める。 -ネットワーク リソースのグループ化の仕組みには、ワークグループとドメインがある。 ***ワークグループ環境 [#y51bf172] -NetBIOSのブラウジング機能を使用した、ネットワーク資源のグループ化の基本的な仕組み。 -ブラウジング機能 --同一ネットワーク内の同一ワーク グループに属するホストの一覧を集中管理し、~ ワーク グループ内のホストにこのホスト一覧を展開する機能。 --ブラウジング機能を提供するサーバは、ネットワーク中のホストから自動的に選定される。 ***ドメイン環境 [#l37aef94] DNSサーバ、[[ディレクトリ サービス]]、[[LDAPサーバ>LDAPプロトコルでのディレクトリ・エントリ検索処理]]、[[KDCサーバ>ケルベロス認証#i78d6009]]の機能を有する~ [[Active Directory(以下、ADと略す)のドメイン コントローラ(以下、DCと略す)>ドメイン サービス (AD DS)]]~ に管理された、より高度なネットワーク資源のグループ化の仕組み。 **ネットワーク資源 [#m0934427] ***ファイルサーバ [#f3fabb21] ***プリンタサーバ [#a3370f47] *アドレス [#l676e55c] -[[IPアドレス>#r678d200]]と[[MACアドレス>#wad16a9a]]の違いの1つに、ルーティング機能の有無がある。 -[[MACアドレス>#wad16a9a]]に対応するルーティング機能は存在しないため、~ [[MACアドレス>#wad16a9a]]を使用する[[イーサネット>#d90af36c]]などのネットワークで通信可能な範囲は、~ OSI参照モデルの第2層のブロードキャストで名前解決できる範囲となる。 **IPアドレス [#r678d200] ***概要 [#q4c371b9] ここでは、 -IPアドレスと -IPルーティング -IPアドレス割り当てに関連するネットワーク構成 -[[ネットワーク アドレス>#dbc77b5e]]とIPアドレスの割り当て -動的割り当て、静的割り当て -[[MACアドレス>#wad16a9a]]との関連 など、IPアドレスの基礎について説明する。 ***IPアドレスとルーティング [#u7adb5c3] -ブロードキャストで名前解決するようなネットワークでは、ネットワーク上に接続するノード数が増えてくると、~ 名前解決のためのブロードキャストによるトラフィックの負担が大きくなり、ネットワークが飽和し易くなる。 -これらの問題は、IPアドレスとルータを導入し、ネットワークを分割することで解決される。 --ルータは、必要なネットワークにだけパケットを送ったり、離れた場所にあるネットワーク同士を接続したりできるので、~ トラフィックを軽減した状態で、分割されたネットワーク上のノード同士が通信できる。 ***予約済みIPアドレス [#b62f25ad] 予約済みのIPアドレスについて説明する。~ これらのIPアドレスは、通常、ホストのIPアドレスとして利用できないので注意する。 -オール0(0.0.0.0)~ [[BootPプロトコル>#f5dcd7b7]]プロトコルやDHCPプロトコルなどを使って~ TCP/IPの設定を行う際に、自分自身を表すためのアドレスとして使用するIPアドレス。 -APIPA用のLINKLOCALアドレス --DHCPのAPIPA機能で使用される。 --外部と接続されていないローカルな単一のネットワークだけで利用できるIPアドレスで、~ 「169.254.1.0/16~169.254.254.255/16」の範囲が予約されている。 --DHCPサーバからDHCPクライアントにIPアドレスが割り当てられなかった場合に、~ DHCPクライアントが自動的にLINKLOCALアドレスを割り当てる。 -ネットワーク アドレス(ホスト部がオール0)~ [[ホスト部を全て0に設定したIPアドレス。ネットワーク アドレスを表す。>#dbc77b5e]] -ローカル ループバック アドレス(127.xxx.xxx.xxx) --自分自身を指すIPアドレス。 --ローカル ループバック アドレスを使用した通信はNICを経由しないため、NICがないPCでも利用可能である。~ 同一マシン内のプロセス間通信などで利用できる。 -リミテッド ブロードキャスト(255.255.255.255) --UDPで使用できる。 --ローカル ネットワークにいる、すべてのホストを対象とするOSI参照モデルの第3層のブロードキャストに使用するIPアドレス。 --また、OSI参照モデルの第2層のブロードキャストに使用する[[MACアドレス>#wad16a9a]]は、FF:FF:FF:FF:FF:FF である。 -ディレクティッド ブロードキャスト(ネットワーク アドレス + オール1) --UDPで使用できる。 --他のネットワークへ向けられたOSI参照モデルの第3層のブロードキャストに使用するIPアドレス。 --対象のネットワークまでルータによってパケットが運ばれてから、ルータによってローカル ネットワークにブロードキャストされる。 -マルチキャスト アドレス(224.0.0.0~239.255.255.255) --UDPで使用できる。 --[[マルチキャスト>#i2cc70c4]]に使用するIPアドレス。 --クラスDのアドレスがマルチキャスト アドレスとして予約されている。 --RFCにより規定されているマルチキャスト アドレス(グループ)を以下に示す。 |#|マルチキャスト アドレス(グループ)|>|用途|h |1|224.0.0.0|>|予約| |2|224.0.0.1|>|同一サブネット上の全ノード| |3|224.0.0.2|>|同一サブネット上の全ルータ| |4|224.0.0.4|ルーティング プロトコル|DVMRP| |5|224.0.0.5|~|OSPF| |6|224.0.0.6|~|OSPF version2| |7|224.0.0.9|~|RIP version2| --マルチキャスト アドレスに対応する[[MACアドレス>#wad16a9a]]もある ---この[[MACアドレス>#wad16a9a]]は、マルチキャスト受信者に設定されたホストのNICに自動的に追加される。 ---これについては本ドキュメントでは割愛する。 **IPアドレスの割当 [#y30e557d] ***プライベートIPアドレスとグローバルIPアドレス [#c75d733a] -プライベートIPアドレス~ プライベートIPアドレスは各組織内だけで~ 自由に使うことが許可されたIPアドレスで、以下の範囲が利用できる。 |#|クラス|>|>|クラスに対応するホスト アドレスの範囲|-|>|>|プライベートIPアドレスの範囲|h |1|クラスA|0.0.0.0|~|127.255.255.255|のうち|10.0.0.0|~|10.255.255.255| |2|クラスB|128.0.0.0|~|191.255.255.255|~|172.16.0.0|~|172.31.255.255| |3|クラスC|192.0.0.0|~|223.255.255.255|~|192.168.0.0|~|192.168.255.255| -グローバルIPアドレス --プライベートIPアドレスと重複しないIPアドレスの範囲を、公的な機関~ (IANAおよびその依頼を受けた組織)によってプロバイダなどに割り当てられる。 --そのIPアドレスが重複しないようにプロバイダのユーザに付与される。 --グローバルIPアドレスの割り当てを、以下の例で説明する。 ---[[BBルータと家庭内LAN>#x2c29e3d]] ---[[企業などで構築する非武装セグメント(DMZ)>#e1cd1ba4]] ***DHCPサーバによるIPアドレスの動的割り当て [#h5877446] IPアドレスの割り当て方法には、 -「静的割り当て」と「動的割り当て」がある。 -動的割り当てをするには、DHCPサーバが必要になる。 -IPアドレスの動的割り当ての仕組み~ IPアドレスの割り当ての仕組みについて以下説明する。 --DHCPサーバ ---DHCPサーバは、UDPポート67番でIPアドレスの動的割り当て要求(ブロードキャスト)を受信し、~ DHCPクライアントにIPアドレスを動的に割り当てるシステムである。 ---DHCPクライアントは、UDPポート68番で応答(ユニキャスト)を受信する。 --DHCPリレー エージェント ---DHCPクライアントからDHCPサーバに送信されるIPアドレスの動的割り当て要求は、ローカル ネットワークにブロードキャストされる。 ---このため、DHCPサーバが他のネットワークにある場合はDHCPサーバとの通信ができない。 ---これを解決にするには、DHCPリレー エージェントをローカル ネットワークに導入し、~ IPアドレスの動的割り当てのブロードキャストを中継、DHCPサーバでのIPアドレスの割り当てを代行する。 --IPアドレスを要求する際のシーケンス ---DHCPクライアントがDHCPプロトコルを使用してIPアドレスを要求する際のシーケンスを、以下に示す。 #ref(DHCP_protocol.png,left,nowrap,DHCPプロトコル) ---DHCPサーバからの「肯定(OFFER)」コマンドの応答が複数ある場合、~ DHCPクライアントは、適当な「肯定(OFFER)」コマンドを選択し、~ そのDHCPサーバを使う旨を、「要求(REQUEST)コマンド」を使って返信する。~ この仕組みはDHCPサーバの冗長化などにも利用されている。 -WindowsでのDHCPクライアントの設定 --DHCPの有効化 ---DHCPを有効にすることで、ネットワーク内のDHCPサーバを使用することができるようになる。 ---設定方法 「[[Windows IPアドレスを自動的に取得する>https://www.google.co.jp/search?q=Windows+IP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E8%87%AA%E5%8B%95%E7%9A%84%E3%81%AB%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B]]」などでググる。 --代替構成~ ---DHCPを有効にしている場合、「代替構成」を設定できる。 ---代替の構成は、DHCP クライアントがDHCPサーバを発見できない場合に有効になる。 ---既定値は、[自動プライベートIPアドレス]で、この場合、APIPAのIPアドレスが付与される。 ---設定方法 「[[Windows 代替の構成>https://www.google.co.jp/search?q=Windows+代替の構成]]」などでググる。 ***IPアドレスの静的割り当て [#l45561d6] 「静的割り当て」は、クライアントに直接IPアドレスを指定する方法である。 -WindowsでのIPアドレスの静的割り当て~ 「[[Windows 次のIPアドレスを使う>https://www.google.co.jp/search?q=Windows+IP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E8%87%AA%E5%8B%95%E7%9A%84%E3%81%AB%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B]]」などでググる。 ***割当られたIPアドレスの確認([[ipconfigコマンド]]) [#k5271374] **ネットワーク アドレス [#dbc77b5e] -IPアドレスを構成するビット列のうち、~ 個々の組織が管理するネットワーク(サブネット)を識別するのに使われる部分。 -ネットワーク アドレスとIPアドレスの割り当てについて方法について説明する。 ***クラスフル アドレッシング(FLSM) [#l58f3cce] -ネットワーク アドレスを決定する際に、~ 既定の「アドレス クラス」と「ネット マスク」(ナチュラル マスク)~ を使用するアドレッシング方法を、「クラスフル アドレッシング」(FLSM)と言う。 -「クラスフル アドレッシング」では、それぞれのネットワークに何台のホストを接続するかによって、どの「アドレス クラス」を使用するかを選択する。 --「ネット マスク」(ナチュラル マスク)は「アドレス クラス」に対応したものを適用する。 --クラスD、クラスEというアドレスもあるが、これは通常のホストが使用するIPアドレスではない。~ クラスDはマルチキャスト アドレス、クラスEは実験用アドレスに予約されている。 |#|アドレス クラス|先頭ビットのパターン|ネット マスク|ネットワーク アドレスの範囲|ホスト アドレス長(ホスト台数)&br;ホスト アドレス|h |1|クラスA|0|255.0.0.0|0.0.0.0/8&br;~127.0.0.0/8|24bit(約1677万台)&br;0.0.0.1~0.255.255.254| |2|クラスB|10|255.255.0.0|128.0.0.0/16&br;~191.255.0.0/16|16bit(約6万5000台)&br;0.0.0.1~0.0.255.254| |3|クラスC|110|255.255.255.0|192.0.0.0/24&br;~223.255.255.0/24|8bit(254台)&br;0.0.0.1~0.0.0.254| ***クラスレス アドレッシング(VLSM or CIDR) [#e6290494] -「クラスフル アドレッシング」の場合、ネットワークにネットワーク アドレスを割り当てる場合など、~ 実際に必要となるIPアドレスの数より多すぎたり少なすぎたりすることがある。~ (実際にISPに割り当てるクラスBネットワークが不足する事態になった。) -このため、ユーザ自身が自由に「ネットワーク アドレス」と「サブネット マスク」を決定する~ 「クラスレス アドレッシング」というアドレッシング方法が用意されている。 -このようなアドレッシング方法に「クラスレス アドレッシング」(VLSM or CIDR )がある。 --VLSM~ 組織内のネットワークの細かなホストビットの割り当てに使用される。 --CIDR~ ---インターネット上のAS(自律システム)間の、~ ルーティング情報の集約による「ルーティング性能向上」、「ルーティング情報の管理の簡素化」のために使用される。 ---現在のインターネットでは、必要なグローバルIPアドレス数に合わせてサブネット マスクを決定する「CIDR」が使用されている。 ---AS(自律システム)とは、~ 各組織、企業やプロバイダが保有・運用する、インターネットに繋がるひとつ(時に複数)の~ ルーティング ポリシー配下にあるIPネットワークやルータの集合のことを言う。~ **MACアドレス [#wad16a9a] -MACアドレスは、ネットワーク機器固有の物理アドレスであり、通常はNICのROMに固定値で割り当てられている。 -48ビットの符号で、 --上位24ビットはIEEEがベンダー(製造者)毎に管理・割り当てを行っており、 --下位24ビットは各ベンダーが独自に重複しないように割り当てている。 -この仕組みにより、原則として、MACアドレスは重複しないようになっている。 ***ARPテーブルの確認の作成 [#mb76924b] -ルーティング機能のない[[イーサネット>#d90af36c]]などのネットワークでは、内部的にはIPアドレスではなくMACアドレスを使って通信相手を特定している。 -そのため、[[イーサネット>#d90af36c]]で通信するためには、IPアドレスだけでなく送信先のMACアドレスを知る必要がある。 -ただし、現在のWindowsネットワークではホストのアドレスにIPアドレスが使用される。~ そこで必要になるのがIPアドレスとMACアドレスの対応表であり、これを作成するのが [[ARPプロトコル>#u0762c3a]]である。 -[[ARPプロトコル>#u0762c3a]]により、 --お互いのホストはIPアドレスとMACアドレスの対応表(ARPテーブル)を作成できる。 --以降、このARPテーブルを使用して通信する。 ***ARPテーブルの確認(arpコマンド) [#o2aa7dc0] --「arp -a」コマンドを使用してクライアント マシンのARPテーブルの内容を確認することができる。 ---以下、「arp -a」コマンドの実行例である。 --- Interface: xxx.xxx.xxx.xxx --- 0x10003 → ローカル ホスト Internet Address Physical Address Type yyy.yyy.yyy.yyy zz-zz-zz-zz-zz-zz dynamic → 通信先のホスト |#|アイテム|説明| ||Internet Address|IPアドレス| ||Physical Address|MACアドレス| -ARPテーブルのエントリの寿命 --また、通常はARPテーブルに記録されるエントリには寿命があり、一定時間が経つと、そのエントリは自動的に消滅する。 --Windowsシステムではデフォルトでは10分(600秒) となっている。 --この設定を変更する場合は、以下のレジストリエントリにキャッシュのタイム アウト値を設定する。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters ARPcashlife(DWORD) ---ArpCacheLife~ https://technet.microsoft.com/en-us/library/cc957524.aspx *ネットワーク構成 [#i5ec8030] **ルータによるネットワークの分割・接続 [#o88760ea] -ルータは、以下を目的に導入される。 --リモート ネットワークとの接続 --ブロードキャスト トラフィック負荷増大の回避のためのネットワーク分割 --ルーティング情報の分割(or 集約)のためのネットワーク分割(or 集約) --一般的には、イーサネットの1ネットワーク セグメントを1[[ネットワーク アドレス>#dbc77b5e]]に対応させる。~ そして、それぞれのネットワーク セグメントをルータで接続して、全体的なネットワークを構築する。 #ref(Router1.png,left,nowrap,ルーター1) ***ルータのインターフェイス [#t2c46d9d] ルータには、以下のインターフェイスがある。 -[[イーサネット>#d90af36c]]用のインターフェイス -シリアルポートのインターフェイス #ref(RouterIF.png,left,nowrap,ルーターのインターフェイス) ***ネットワークの分割・接続 [#ee073969] -[[イーサネット>#d90af36c]]のネットワークを分割・接続する場合~ [[イーサネット>#d90af36c]]用のインターフェイスを使用する。 #ref(Router2.png,left,nowrap,ルーター2) -WANを経由してネットワークを接続する場合~ 以下の様な、DCE(データ回線終端装置)をシリアルポートのインターフェイスに接続する。 --モデム --DSU(ISDNなどの加入者回線終端装置) --TA(インターフェイス変換を行う通信機器)などの #ref(Router3.png,left,nowrap,ルーター3) **スイッチ(スイッチング ハブ・L2スイッチ)による[[イーサネット>#d90af36c]]の構成 [#e2e38762] ***スイッチの目的 [#c9388eeb] スイッチ(スイッチング ハブ・L2スイッチ)は、以下の目的で導入される。 -速度の違う[[イーサネット>#d90af36c]](同一ネットワーク)の接続 -[[MACアドレス>#wad16a9a]] フィルタ機能によるコリジョン ドメイン の分割 -[[VLAN>#wde1c343]]機能による[[イーサネット>#d90af36c]]のセグメントに分割 ***スイッチを使用した[[イーサネット>#d90af36c]]を構成 [#q8be844f] -基本的にはスイッチがツリー状になるように構成する。 -また、スイッチの接続では、絶対にループ構造を作ってはいけない #ref(Switch1.png,left,nowrap,スイッチ1) -スイッチの基本的な接続方法 --カスケード ---既存のスイッチのポートに別のスイッチのカスケード ポートを接続する方法である。 ---簡単な拡張方法であるが、信号の減衰や遅延があるため最大で何段のカスケード接続が可能かは~ 規格によって定められている(10BASE-Tで4段、100BASE-TXで2段など)。 #ref(SwitchCascade.png,left,nowrap,スイッチのカスケード) --スタック~ ---複数のスイッチを積み上げることによってポート数を増やす方法である。 ---スタックは、カスケードよりも接続の段数が多くなっている。 #ref(SwitchStack.png,left,nowrap,スイッチのスタック) **VLAN [#wde1c343] ***VLANの構成 [#q57b6fef] -ネットワークをL2スイッチの機能により、仮想的なネットワークを構成し端末をグループ化できる。これをVLANと呼ぶ。 -「アクセス リンク」~ --VLAN に対応したL2スイッチの「アクセス リンク」ポートでは、VLANの識別ために以下の情報を使用する。 ---「L2スイッチのポート」~ ポート ベースVLAN(スタティックVLAN) ---「送信元[[MACアドレス>#wad16a9a]]、IPサブネット アドレス、プロトコル タイプ」~ ポリシー ベースVLAN(ダイナミックVLAN) --このため、下図に示すようにL2スイッチを跨がないVLANでは、「暗黙的なタグ」(所謂「タグ無しパケット」)を使用できる。 #ref(VLAN_AccessLink.png,left,nowrap,VLANアクセス リンク) -「トランク リンク」 --VLAN に対応したL2スイッチの「トランク リンク」ポートでは、VLANの識別ために「明示的なタグ」(所謂「タグ付きパケット」)を使用する。 --下図に示すようにL2スイッチを跨ぐVLANでは、「トランク リンク」を使用する必要がある。 --L2スイッチ上でイーサネット フレームにタグ付けすることを「フレーム タギング」と呼ぶ。~ タギング方式には以下がある。 ---ISL(Cisco独自の方式)と ---IEEE802.1q(標準化された方式) --タグ付けされたフレームは、 ---宛先スイッチまでフォワーディングされ、 ---最終的には宛先スイッチ上でタグを削除する。 ---このため、ノード間でタグを意識する必要はない。 #ref(VLAN_TrunkLink.png,left,nowrap,VLANトランク リンク) ***VLANネットワークの接続 [#neb96f48] -其々のVLANネットワークを接続する場合、ルータに接続する必要がある。 -また、ネットワークを跨いだVLANは構築できないので注意する。 -アクセス リンクの場合 --アクセス リンクの場合、VLANの数だけルータとスイッチにアクセス リンクを作成し、それぞれ個別のケーブルで接続する。 --ただし、スイッチに、ルータと接続するポートをトランク リンクとして設定し、~ ルータのインターフェイスをサブ インターフェイス に分割すれば、1つの物理的な接続で済む。 #ref(VLAN_Router_AccessLink.png,left,nowrap,VLANルーター・アクセス リンク) -トランク リンクの場合~ トランク リンクの場合、トランク リンクに対応した1つのポートに接続する。 #ref(VLAN_Router_TrunkLink.png,left,nowrap,VLANルーター・トランク リンク) *ルーティング [#zeb30195] **ルータによるルーティング [#c109d6cd] ルータを導入し離れた場所にあるネットワーク同士を接続した場合、~ 各ネットワークはツリーではなく、蜘蛛の巣のように相互に接続される。 そのため、あるノードから別のノードへの経路は、一本だけでなく複数存在することになる。 #ref(Routing.png,left,nowrap,ルータによるルーティング) ***ルーティング テーブルの作成 [#s16342a0] -このためルータは、インターフェイスから受信したIPパケットを~ 「ルーティング テーブル」の情報を基に適切なルートへ転送する。 この動作をIPフォワードという。 -また、ルーティング機能、ルーティング テーブルの作成方法は、~ ルータの使用する[[ルーティング プロトコル>#e633f50b]]により異なる。 ***ルーティング テーブルの確認([[route printコマンド]]) [#qa7f8406] **ICMPプロトコルを使用したルーティングの確認 [#j1bb3fae] -IPネットワークでは、~ あるノードから別のノードへの経路は一本だけでなく複数存在するため、~ 経路上のルータなどが故障した際、どこに原因があるか調査が必要になる。 -この場合、[[ICMPプロトコル>#x7b3a784]]を利用した~ [[pingコマンド]]、[[pathpingコマンド]]、[[tracertコマンド]]~ などのコマンドを使用することでルーティングを調査できる。 ***ICMPメッセージの一覧 [#ee805924] -IPルーティングを調査するために使用する~ ICMPメッセージの一覧は次のとおりである。 |タイプ|機能|>|>|区分|h |~|~|調査|制御|エラー| |1|エコー応答(echo reply)|○|-|-| |2|エコー要求(echo request)|○|-|-| |3|タイムスタンプ要求(timestamp request)|○|-|-| |4|タイムスタンプ応答(timestamp reply)|○|-|-| |5|情報要求(information request)|○|-|-| |6|情報応答(information reply)|○|-|-| |7|アドレス マスク要求(address mask request)|○|-|-| |8|アドレス マスク応答(address mask reply)|○|-|-| |9|送信元抑制(source quench)|-|○|-| |10|経路変更要求(redirect)|-|○|-| |11|あて先不達(destination unreachable)|-|-|○| |12|時間超過(time exceeded)|-|-|○| |13|パラメータ異常(parameter problem)|-|-|○| -ただし、すべてのノードが、すべての種類のICMPメッセージをサポートしているわけではなく、~ 非ルータのノードでは、限定的ないくつかのICMPメッセージしかサポートされていない。 -また、ICMPメッセージから、~ ある程度はルーティングに関する障害原因を把握できるが、実際は物理的に問題を調査すべきである。 -例えば、以下のように、それぞれの機器を実際に調査しなければ推測の域を出ない。 --NICの障害なのか、ルータの障害なのか? --ネットワークのルーティングが双方向で設定されていないのか? ***代表的なICMPメッセージの説明 [#reda17c3] -エコー要求・応答(調査) --エコーは、データ パケットを2つのTCP/IPノード間で送受信するメッセージで、~ ノードの動作状態を調査するためには欠かせない機能である。 --エコー要求 ---エコー要求相手のノードに届くと、そのデータがそのままエコー応答として元のノードへと送り返される。~ --エコー応答 ---エコー応答にはアプリケーションは介在せず、TCP/IPの[[プロトコル スタック>OSI参照モデル#se3b608d]]により処理される。 ---TCP/IPをサポートしているノードは必ずこのエコー応答の機能を実装する。 -タイムスタンプ要求・応答(調査)~ タイムスタンプ要求・タイムスタンプ応答は、レスポンスタイムの計測に用いられる。 -経路変更要求(制御) --現在のルーティングではムダにパケットを中継するなど、~ IPパケットの送信先が適切でないことがルータ上で判断された場合、~ 当該するルータは正しいルータにIPフォワードすると共に送信元に経路変更要求メッセージを返す。 --送信元は、この経路変更要求メッセージからルーティング テーブルを変更する。 --これにより、以降無駄なトラフィックが抑えられる。 --参考 ---Ciscoテクニカル ノーツ > ICMPリダイレクトはいつ送信されるか~ http://www.cisco.com/cisco/web/support/JP/100/1007/1007865_43-j.html -あて先不達(エラー) --何らかの理由で、あて先となるサービスへパケットを送ることができない場合に~ ルーティングの途中のルータや、ターゲット ホストから送信元に対して返信されるメッセージ。 --メッセージには、エラーの要因を表す数値がセットされるため、エラーの要因を把握できる。 -時間超過(エラー) --ルーティングの途中で時間(回数)が超過してしまった場合に、~ IPパケットの送信元に対して返信されるメッセージである。 --このメッセージが生成される要因は2つある。 ---要因1~ ルータにフォワードされるうちに、IPヘッダ中のTTL が0になってしまった場合。~ TTLはパケットの有効期間を表す値で、ルータなどを1回経由されるたびに値が1減少する。 ---要因2~ ルーティングの途中でIPパケットのフラグメンテーションが行われた場合、~ IPパケット全体を再構成するために、すべてのフラグメントがそろうまで~ 一定時間待つ必要があるが、この待機がタイムアウトした場合。 *TCP、UDPプロトコル [#p47ecf46] -TCP、UDPプロトコルについて説明する。 -現在のWindowsネットワークでは、TCP、UDPプロトコルが標準的に使われている。 -一般的なサービスやそのクライアント アプリケーションが使用するTCP、UDPのポート番号の一覧は、~ 「%windir%\system32\drivers\etc\services」に記述されている。 **概要 [#ya1b9722] ***UDPプロトコル [#h9fe0c6d] -UDPは、IPアドレスを使用する「データグラム型通信」である。 --「データグラム型通信」は高速で、 --1対1の通信機能(ユニキャスト)だけではなく --1対多の通信機能(ブロードキャスト、マルチキャスト)を提供できる。 -また、ステートレスなサービスを実装しやすいという特徴があるが、~ データが相手に届いたことが保証されないという欠点がある。 ***TCPプロトコル [#nd1e34ab] -TCPは、IPアドレスを使用する「コネクション指向の通信」である。 --「コネクション指向の通信」は、初めに通信する者同士がデータ送受信のための通信路(コネクション)を確保する。 --以後、このコネクションを使ってデータが正しく相手に届くことを保証し、通信が完了後にコネクションを閉じる 。 -TCP/IPの[[プロトコル スタック>OSI参照モデル#se3b608d]](トランスポート層)までの保証になるため、 --トランザクション処理のような、アプリケーションがストレージに結果を書き込むまでの信頼性は保障されない。 --通信媒体上のエラーでデータが相手に届かなかったりデータにエラーがあったりすると、再送処理を行って正しいデータが相手に届くように努力する。 ---一般的には、データを受けた側では必ず確認応答(以下、ACKと略す)を返信して、~ データの送受信が正しく処理されたことを相互に確認する。 ---これによって、エラーのない信頼性のある通信を実現している。~ そして、どうしてもデータを送信できなければアプリケーションに送信失敗という結果を返す。 ***TCPとUDPの比較 [#g99f18d7] 以下の表に、 -UDP: データグラム型通信 -TCP: コネクション指向の通信 の特徴をまとめた。 |#|比較項目|データグラム型通信|コネクション指向の通信|h |1|通信目的|必ずしも応答を要求しない場合や、素早く相手にデータを届ける場合。|2つのアプリケーション間でデータをやり取りするために使う。| |2|プロトコルのオーバーヘッド|小さい。接続の確立処理などを行うことなく、すぐにデータ送信ができる。応答確認やエラー検出なども行わない。|大きい。接続を確立してから通信を開始し、応答確認やエラー検出、再送、エラー訂正処理などを行う。| |3|信頼性|低い。エラーが発生しても再送処理などは行われない。|高い。エラー検出や、エラー訂正処理などが行われる。| |4|適する通信の種類|1対多の通信や、信頼性よりもリアルタイム性が要求される通信|データの送受信が保証される必要がある通信| **TCPプロトコルの伝送制御 [#n1816c39] TCPプロトコルの伝送制御方法について簡単に説明する。 -TCPでは、信頼性のある通信を実現するために、~ 「相手にデータが届いたことをACKから必ず確認する」という手法を採用している。 --ACKにはアプリケーションは介在せず、TCP/IPのプロトコル スタックにより処理される。 --このような仕組みになっているため、上位アプリケーションはTCPプロトコルにおける伝送制御を意識することなく、~ 信頼性のある「コネクション指向の通信」を利用することができる。 -また、TCPでは効率の悪い「コネクション指向の通信」の転送方法を改善するために「ウィンドウ制御」という方式を採用している。 ***ウィンドウ制御 [#f3efcd07] -この方式により、TCPパケットを(ACKの確認なしで)連続して送信することができるようになり、効率よく(ネットワークの帯域幅いっぱいまで)回線を利用できる。 #ref(WindowControl.png,left,nowrap,ウィンドウ制御) -また、「ウィンドウ制御」では「シーケンス番号」と「ウィンドウ サイズ」(送受信用のバッファ)が重要な役割を果たす。 --「シーケンス番号」は「ウィンドウ サイズ」上のデータの位置を表し、パケットの到着順が前後しても問題無いように使用される。 --また、「ウィンドウ サイズ」はデータの流れを許可したり禁止したりすることに使用される -「ウィンドウ制御」における「シーケンス番号」と「ウィンドウ サイズ」の役割は、下記のページを参考にできる。 --[参考]:@IT > 連載 > 基礎から学ぶWindowsネットワーク~ 第14回 信頼性のある通信を実現するTCPプロトコル(その1)~ 2.シーケンス番号とウィンドウ制御~ http://www.atmarkit.co.jp/fwin2k/network/baswinlan014/baswinlan014_03.html ***TCPコネクションの状態 [#fe39f2c5] TCPプロトコルは「コネクション指向の通信」のプロトコルであり、このコネクションには種々の状態が存在する。~ -TCPコネクションの状態の種類 --TCPコネクションには下記の状態がある。 --これは、現時点の状態がTCPコネクションの~ 「オープン」 ⇒ 「通信経路の確保」 ⇒ 「クローズ」~ といったシーケンス中の何処にあるかを示すものである。 |#|区分|状態|意味|h |1|>|>|ポート未使用状態側(双方の側)| |1-1||CLOSED|未使用状態のTCPポート。&br;通常これが表示されることはない。| |2|>|>|リスニング ポートの作成側(パッシブ オープン側)| |2-1||LISTENING|待ち受け状態(リスニング状態)のポート。&br;クライアントからコネクション確立要求(以下、SYN)を受信し、&br;ACK(SYN/ACK)を返信して、SYN_RECEIVEDへ遷移する。| |2-2||SYN_RECEIVED|ACK(SYN/ACK)に対するACKの受信を待機している状態。&br;ACKの受信後、ESTABLISHEDへ遷移する。| |3|>|>|コネクション確立要求の送信側(アクティブ オープン側)| |3-1||SYN_SENT|サーバに対してSYNを送信し、ACK(SYN/ACK)の受信を待機している状態。&br;ACK(SYN/ACK)の受信後、ACKを送信してESTABLISHEDへ遷移する。&br;相手が無応答のときもこの状態になる。| |4|>|>|コネクション確立状態側(双方の側)| |4-1||ESTABLISHED|TCPコネクションが確立して通信している状態。&br;その後、終了処理を経由して以下のいずれかの状態に遷移する。&br;(1) コネクション終了要求(以下、FIN)を送信した場合、FIN_WAIT_1へ遷移する。&br;(2) FINを受信した場合、ACK(FIN ACK)を返信して、CLOSE_WAITへ遷移する。| |5|>|>|コネクション終了要求の送信側(アクティブ クローズ側)| |5-1||FIN_WAIT_1|状況に応じて以下のいずれかの状態に遷移する。&br;(1) ACK(FIN ACK)を受信するとFIN_WAIT_2へ遷移する。&br;(2) 先に相手からのFINを受信するとCLOSINGへ遷移する。| |5-2||FIN_WAIT_2|FINの受信を待機している状態。&br;FINの受信後、ACK(FIN ACK)を返信してTIME_WAITへ遷移する。| |5-3||CLOSING|FINに対するACK返信し、ACK(FIN ACK)の受信を待機している状態。&br;ACK(FIN ACK)を受けるとTIME_WAITへ遷移する。| |5-4||TIME_WAIT|コネクションの終了待ち状態。&br;しばらく待ったあと、CLOSEDへ遷移して終了する。| |6|>|>|コネクション終了要求の受信側(パッシブ クローズ側)| |6-1||CLOSE_WAIT|ソケットを解放し、FINを送信してからLAST_ACKへ遷移する。| |6-2||LAST_ACK|FINに対するACK(FIN ACK)の受信を待機している状態。&br;ACK(FIN ACK)の受信後、CLOSEDへ遷移して終了する。| -状態の状態遷移図 --次に、この状態の状態遷移図を示す。 --ただし、コネクション終了要求(FIN)が重複し、~ FIN_WAIT_1の状態で先に相手からのFINを受け取った時の状態遷移は割愛した。 --TCPコネクションのオープン処理 ---TCPでコネクションを確立するためには、~ 3つのTCPパケット(SYN、ACK / SYN、ACK)の送受信を行う。 ---これを「3ウェイ ハンドシェイク」という。 #ref(TCP_Open.png,left,nowrap,TCPコネクションのオープン処理) --TCPコネクションのクローズ処理~ クローズ処理では、TCPコネクションの両端のアプリケーションがそれぞれクローズを宣言するため、~ 4つのTCPパケット(FIN*2、FIN ACK*2)を送受信することにより、TCPコネクションが終了する。 #ref(TCP_Close.png,left,nowrap,TCPコネクションのクローズ処理) ***TCP,UDPの状態の確認([[netstatコマンド]]) [#v4563a06] ***クライアントとサーバー [#k2d044dd] -一般的には --パッシブ オープン側がサーバ --アクティブ オープン側がクライアント -しかし、TCP/IPは、本質的にはクライアント・サーバを区別しない。 --コネクション確立後は、プログラムからクライアント・サーバを区別しないで、~ ソケットのストリーム バッファにデータを書き込むだけでデータの送受信が可能となる。 --余談:FTP(アクティブ モード)など、クライアント側がパッシブ オープンするというプロトコルもある。 ---クライアント側がパッシブ オープンし、 ---サーバ側が(クライアント側のリスニング ポートに対して)アクティブ オープンする。 ***TCPのチューニング [#k8f781f3] *参考 [#vef56df6] **イーサネット [#d90af36c] イーサネットという表現は元々10MbpsタイプのLAN規格の名称だったが、~ 現在はFast Ethernet(100Mbps)/ Gigabit Ethernet(1Gbps)を含んだ総称としての意味合いが強まっている。 以下、代表的なイーサネットについて列挙する。 ***10BASE-2 [#r38cc0ce] 細い同軸ケーブルを利用したバス型~ (10Mbps、最大伝送距離185m、最大接続機器数30台) ***10BASE-5 [#pa867b3e] 太い同軸ケーブルを利用したバス型~ (通信速度10Mbps、最大伝送距離500m、最大接続機器数100台) ***10BASE-T [#m8c73f4f] TPケーブルを利用したスター型~ (通信速度10Mbps、最大伝送距離100m、ハブ多段接続3段) ***100BASE-TX [#c2985eb0] TPケーブル (UTPカテゴリー5)を利用したスター型~ (通信速度100Mbps、最大伝送距離100m、ハブ段接続2段) ***1000BASE-T [#tc823f13] TPケーブル (UTPカテゴリー5)を利用したスター型~ (通信速度1Gbps、最大伝送距離100m) **名前 [#x635df3d] ***NetBIOS名 [#n3cc4fd9] NetBIOSにてホストを識別する名前 ***ホスト名 [#qc452143] TCP/IPで、hostsファイルに記載したホストを識別する名前 ***FQDN名 [#t909255c] TCP/IPで、ドメイン名、サブドメイン名、ホスト名を省略せずにすべて指定した記述形式 **ネットワーク構成の例 [#f9bb1c5a] ***BBルータと家庭内LAN [#x2c29e3d] -IPアドレスの付与方法 --BBルータのグローバルIPアドレス~ 光ファイバ プロバイダ(FTTH)からPPPの[[NCP>#z21a77ef]]で割り当てられる。 --家庭内LANのプライベートIPアドレス~ BBルータのDHCPサーバ機能で動的に割り当てる。~ 若しくは、ユーザにより、静的に割り当てる。 -BBルータと家庭内LANの例 #ref(BBRouter.png,left,nowrap,BBルータと家庭内LAN) --補足説明 ---家庭LAN(B)上のホストから、家庭LAN(A)上のホストにアクセスするには、家庭LAN(A)上のホストに静的にプライベートIPアドレスを割り当て、BBルータの[[NAT / 静的IPマスカレード>#r8fee19c]]などの機能により家庭LAN(A)のBBルータに割り当てられたグローバルIPアドレス・ポート番号を、家庭LAN(A)上のホストのプライベートIPアドレス・ポート番号に変換する方法がある。 ---DDNSサービスを使用して、BBルータのIPアドレスに対する[[FQDN名>#t909255c]]を登録しておくことで、IPアドレスではなく[[FQDN名>#t909255c]]を使用したアクセスが可能になる(注:PPP接続確立の度に、NCPで割り当てられるグローバルIPアドレスが変わるので、DDNSサービスを利用する場合は常時接続にしておくか接続のたびにDDNSのレコードを更新する必要がある)。 ***企業などで構築する非武装セグメント(DMZ) [#e1cd1ba4] 以前は、企業のネットワークを接続するのにフレームリレーが~ 使われることが多かったが、現在は、IP-VPNや広域Ethernetが主流になっている。 -DMZは --パブリック ネットワークとしてもプライベート ネットワークとしても構築できる。 --ここでは、パブリック ネットワークとして構築する方法について説明する。 -IPアドレスの付与方法 --DMZ上のホストのグローバルIPアドレス~ DMZ(パブリック ネットワーク)のネットワーク アドレスは~ 「CIDR」方式で決定され、ホストにグローバルIPアドレスが割り当てられる。 --LAN上のホストのプライベートIPアドレス~ 任意の方法でネットワーク アドレス、ホスト アドレスを設定できる。 -「三脚境界」の非武装セグメント(DMZ)の例~ #ref(DMZ.png,left,nowrap,非武装セグメント(DMZ)の例) --DMZは、ルータの構成オプションを通じて作られる。 ---各ネットワーク(WAN、DMZ、LAN)はルータにお互い異なるポートを使って連結される。 ---DMZの構築には、「三脚境界」(中小規模)や「フロント ファイア ウォール / バックエンド ファイア ウォール」(大規模)などの手法がある。 **プロトコロル [#x9d9b382] ***NetBIOS [#m67759c5] -NetBIOSのAPIを持つ、LAN Manager向けに開発されたプロトコル。ルーティング能力を持たないので大規模なネットワークを構築できない、ブロードキャストを多用するのでネットワークが飽和しやすいなどの問題を持つ。LAN Managerとは、IBMとMicrosoft、3Comが共同で開発したPC向けネットワークOS。1980~90年代前半にかけて、Novell社のNetWareなどとシェアを争った。 -NetBEUIプロトコル --NetBEUIは、事前に各ノードにユニークなアドレスを割り付けておく必要がない自己調整型のプロトコルで、各ノードに[[NetBIOS名>#n3cc4fd9]]を付けておくと自動的にお互いを識別し通信することができるので、管理の手間も少なくて済む。また、プロトコルの仕様も軽くイーサネット内での通信プロトコルとしては、他のプロトコルと比較して性能が優れている。ただし、IPネットワークに対応しないイーサネット限定のプロトコルであるため、IPネットワークの一般化により特別な用途を除いて利用されなくなった。 --旧Windowsネットワークで利用されていたNetBIOS用のNetBEUIプロトコルなどは[[MACアドレス>#wad16a9a]]のみを使用して通信するイーサネット(単一のネットワーク)専用のプロトコルであったが、現在のWindowsネットワークのNetBIOSではルーティング機能のあるTCP/IPプロトコルを使用するNBTプロトコルを使用している。 -NBTプロトコル このため、現在のWindowsネットワークではイーサネット(単一のネットワーク)内の通信でも内部的にIPアドレスを使用している。 ***ARPプロトコル [#u0762c3a] -ARPプロトコルは、与えられたIPアドレスからMACアドレスを求めるためのプロトコルで、~ ARP要求により送信先のIPアドレスと送信元のIPアドレスとMACアドレスが、~ OSI参照モデルの第2層のブロードキャストで送信される。 -IPアドレスが一致するホストはARP応答によりMACアドレスをユニキャストで返す。 -ARPは、第2層のブロードキャストを直接使用するため、 --ネットワーク モニタを使用してイーサネット内のパケットを監視した場合、ネットワーク モニタによっては、~ ARPプロトコルのブロードキャストに送信元と送信先のIPアドレスが表示される~ (第3層のブロードキャストでは、フローキャスト用のIPアドレスが表示される)。 --このため、一見してTCP/IPのユニキャストをしているように見えてしまうので、注意する。 ***ルーティング プロトコル [#e633f50b] ***ICMPプロトコル [#x7b3a784] ICMPプロトコルとは、 -TCP/IPが動作するために必要な補助的な役割を果たし、 -TCP/IPネットワークが円滑に稼働するためには欠かせない重要なプロトコルである。 ***BootPプロトコル [#f5dcd7b7] -ネットワークに接続されたクライアントが、IPアドレスや[[ホスト名>#qc452143]]、サブネット マスク等をサーバから自動的に取得するためのプロトコル。 -RFC 951で定義された。主にOSがブートする際に用いられる。 -現在ではDHCPプロトコルがBootPプロトコルの上位互換プロトコルとなっており、BootPプロトコルは徐々に使用されなくなってきている。 ***NCPプロトコル [#z21a77ef] -同期式・非同期式ポイントツーポイントのシリアルリンク上で、各種プロトコルを伝送するための標準プロトコルであるPPPプロトコルでは、LCPとNCPという2つのプロトコルを使用している。 -LCPでPAPやCHAPを使ってユーザを認証し、NCPでネットワーク層のプロトコルに対応した制御、ネットワーク アドレスの割り当てや、パケットの圧縮をしてPPP接続が確立する。 **その他 [#v57f29f3] ***ブロードキャスト [#z0bca6f8] ***マルチキャスト [#i2cc70c4] -マルチキャスト送信者は、ネットワーク上にいる、すべてのマルチキャスト受信者に対して同時に同じデータを送信する。 --マルチキャスト送信者 ---送信する「マルチキャスト アドレス(グループ)」に「join」していなくてもデータの送信が可能である。 --マルチキャスト受信者 ---「マルチキャスト アドレス(グループ)」(224.0.0.x、[x = 0...255])~ と呼ばれるグループに「join」することにより、マルチキャスト データを受け取ることができる。 ---データを受け取る必要がなくなった受信者は、グループから「leave」する。 ***NAT / 静的IPマスカレード [#r8fee19c] -パケットに付いている宛先IPアドレス・ポート番号を、別の宛先IPアドレス・ポート番号に変換する技術。 -主にパブリック ネットワーク(WAN)経由で、プライベート ネットワーク(LAN)上のホストへアクセスするために利用される。 ---- Tags: [[:通信技術]], [[:Windows]]