2台のPCをネットワークで接続する

今回の話題はWindowsネットワークに関してです。まずは一番基本的なところから、ということで2台のWindowsPCをネットワークで接続することから始めます。 まず接続する(レイヤー1) まず2台のPCを接続する必要があります。接続するには主に以下のような方法があります。 ハブ(スイッチングハブ、あるいはリピータハブ)を用意し、それぞれのPCをハブに接続する。ケーブルにはストレートケーブルを使う。 クロスケーブルを使い、2台のPCを直接接続する。 それぞれ無線LANのアクセスポイントに接続する。 どの方法でも構いません。下位レイヤに上位レイヤが無影響でいられるところがOSI参照モデルのメリットです。(参照:OSI参照モデルとTCP/IP) APIPA(Automatic Private Ip Addressing)を理解する 接続がすんだら次はネットワークの設定…なのですがその前に今の状態を確認してみましょう。 何もネットワークの設定をしていない状態で以下のコマンドを実行してみてください。 ping もう一台のコンピューター名 どうでしょうか?何も設定していないのにpingに応答があったと思います。(応答がない場合には後述する「通信できない原因」を参照してください)もうちょっと見てみましょう。「スタート」→「ファイル名を指定して実行」にて「\もう一台のコンピューター名」を入力してみてください。結果は環境やパスワードの設定などによって異なるのですが以下のような挙動のはずです。 パスワード入力を求められた コンピュータに接続でき、ウインドウが開いた さらに言うと、「マイネットワーク」を開いて適当にたどってもらうと、そこにもう一台のコンピューターも表示されているはずです。表示されるまでには時間がかかるのでまだ表示されていないようであれば10分程度待ってからもう一度表示してみてください。 つまり、何も設定していないのにもうネットワーク的に接続されていて、しかも、コンピューター名をお互いに認識できているわけです。Windowsは知識がないユーザーのために「とりあえず刺せば繋がる」ようになっているわけですね。 このときネットワークの設定はAPIPAという機構が働いて設定されています。アドレスは169.254.0.0/16の範囲から重複しないように選ばれます。ipconfig /allで設定を確認することができます。 この機能、親切だし便利ではあるのですが「設定されるまでに時間がかかる」「インターネットには接続できない」という致命的な問題もあり、実際にはよく分かっていない人がわけもわからず使ってしまっていることをのぞけばまず使われていません。 ネットワークの設定をする(レイヤー3) では、きちんとネットワークの設定をしていきましょう。現在はTCP/IPがデファクトスタンダードですので、WindowsのネットワークにおいてもTCP/IPの設定をすることになります。設定は以下の手順で行えます。 「マイネットワーク」を右クリック→「プロパティ」→「ローカルエリア接続」(※使用するネットワークアダプタ)を右クリック→「プロパティ」→「インターネットプロトコル(TCP/IP)」→「プロパティ」 ここで2台のコンピューターのネットワーク設定を以下のように設定します。 同一のネットワーク 重複しないIPアドレス 今はプライベートなネットワークを作ろうとしていますのでIPアドレスとしてはプライベートIPアドレスを設定すべきです。具体的には以下のアドレスの範囲から選択します。 範囲 サブネットマスク 10.0.0.0 - 10.255.255.255 255.0.0.0 172.16.0.0 - 172.31.255.255 255.240.0.0 192.168.0.0 - 192.168.255.255 255.255.0.0 実際には2台であれば192.168.1.0/24のネットワークを使って、192.168.1.1, 192.168.1.2というIPを割り当てることが慣習的に多いです。 しかし、上記のプライベートIPアドレスの範囲であれば何を使っても構いません。さらに言うと上記のプライベートIPアドレスの範囲を超えてグローバルIPアドレスの範囲を使っても通信は問題なく行えます。ただし、特殊用途のIPアドレスとして割り当てられている範囲もあるため、適当に設定すると通信できないこともあり得ますので、素直にプライベートIPアドレスを使うべきでしょう。 デフォルトゲートウェイとサブネットマスク このとき、デフォルトゲートウェイとDNSサーバーに何を入れればいいのか迷うかもしれませんが、今回の構成ではネットワーク上に存在しないわけですから何も入力しなくて構いません。あるいは何か適当なIPアドレスを入力しても構いません。このような構成は検証環境等ではよくあります。 ここでひとつ注意点です。たまにデフォルトゲートウェイに値が入っていないと正常に動作しないアプリケーションがありますので注意してください。(単にソフトウェアのつくりが悪いだけなのですが) 例:Outlook 2007 と Exchange Server の接続を試みたときに、エラー メッセージ “アクションを完了できません。Microsoft Exchange Server への接続が利用できません” または “Your Microsoft Exchange Server is unavailable” が表示される 通信してみる ここまででWindowsネットワークの設定が完了しました。 ...

February 5, 2009 · 1 min · 胡田昌彦

「インターネットに繋がらない」 - 初級編

「インターネットに繋がらない!」という発言をよく聞きます。テクノロジーを理解していないお客さんならともかく、プロとしてはこのような発言はしたくないものです。「インターネットに繋がらない」時には具体的にどのようなことが原因として考えられるのか考えてみます。 ※ここでは「インターネットに繋がる」という言葉の正確さに関しては議論しないことにします。 大まかな流れとその確認確認ポイント 通常お客さんが「インターネットに繋がらない」と言ったときにはブラウザでWeb上のコンテンツを表示できなくなったときでしょうから、そのときの大まかな流れを見てみます。 PCが起動する 有線または無線にてEthernetに接続する 固定またはDHCPにてTCP/IPの設定がなされる ブラウザにてURLが指定される DNSにホスト名に対応するIPアドレスを問い合わせ、回答を得る 該当のWeb Serverに接続する Web Serverからコンテンツを得る ブラウザにコンテンツを表示する これはかなり大まかな流れであって、実際にはまだまだいくらでも細かく処理を記述することが可能ですが、最低この程度の粒度では事象を抑えてもらいたいです。 このレベルでの確認ポイントは以下です。 きちんとケーブルが刺さっているか IPアドレス、サブネットマスク、デフォルトゲートウェイ、DNSの設定がきちんとなされているか DNSでの名前解決(ホスト名からIPアドレスへの変換)がきちんとなされているか 該当のWeb Serverに接続できているか コンテンツを得られるか それぞれ確認方法を紹介してみましょう。 きちんとケーブルが刺さっているか これはどうやって確認すればいいかというと・・・・。目で見て確認してください(笑)。でも、せっかくなのでコマンドで確認する方法も紹介しましょう。 このように「ipconfig」というコマンドを使うとネットワークの状態を見ることができます。今、上の図ではきちんとIPアドレス等が表示されているので、この状態であれば「ケーブルがきちんと刺さっている」と言うことがわかります。ケーブルがきちんと刺さっていない場合にはここには「media disconnected」と表示されます。このように表示された場合にはケーブルが刺さっていない状態ですので、ケーブルの確認をしてください。 IPアドレス、サブネットマスク、デフォルトゲートウェイ、DNSの設定がきちんとなされているか ケーブルが刺さっていることを確認したら次はIPアドレス、サブネットマスク、デフォルトゲートウェイ、DNS等のTCP/IPの設定がきちんとなされているかを確認します。これも先ほどと同じく「ipconfig」コマンドで確認できるのですが、「ipconfig」コマンドだけではDNSの設定が確認できないので「ipconfig /all」コマンドを実行することで確認します。 ここできちんとIPアドレス(IP Address)、サブネットマスク(Subnet Mask)、デフォルトゲートウェイ(Default Gateway)、DNS(DNS Servers)が設定されていることを確認します。 ここでこれらのパラメータを自分で設定している人(固定的に設定している人)と自動的に設定している人とで若干確認、修正方法が異なります。 固定になっているのか、自動になっているのかの判別は上記コマンド結果の「Dhcp Enabled」の部分がYesになっているかNoになっているかでわかります。上記のサンプルではDHCPが有効になっていて、DHCPサーバー(192.168.1.254)からTCP/IPの設定を自動取得していることがわかります。 固定で設定している場合には「インターネットプロトコル(TCP/IP)」のプロパティから手動で値を設定、修正します。 自動になっている場合にはDHCPサーバーがきちんと稼動して、正しい設定を配布してくれている必要があります。自動的に取得する設定になっているにもかかわらず「169.254.x.x」、あるいは「0.0.0.0」というアドレスになっている場合には正常にDHCPサーバーから設定を取得できていない状態です。DHCPサーバーの正常動作を確認するか、あるいは固定で設定してしまうかなどの対応が必要です。 参考:APIPA - Wikipedia そもそもどんな値を設定すればいいのか、設定されていればいいのかわからない人はTCP/IPの基礎を勉強しなくてはいけないですね。後日書く予定です。 ここまでの設定の確認としては、「デフォルトゲートウェイまでのpingが通ることを確認する」という方法が有効です。 「ping デフォルトゲートウェイのIPアドレス」を実行して、Pingに対してReplyがあることを確認しましょう。 DNSでの名前解決(ホスト名からIPアドレスへの変換)がきちんとなされているか 次にDNSでの名前解決がきちんとなされているかの確認方法です。「nslookup」というコマンドをつかって「nslookup ホスト名」とすることで調べられます。「ホスト名」というのはURLのうち下の例で言うとxxxx.xxx.xxの部分です。 「http://xxxx.xxx.xx/yyy/xxx/」 http://の直後からはじめの「/」の前までの部分ですね。 このようにホスト名からIPアドレスへの変換がうまくいっている必要があります。そもそもここでスペルミスなどをすると以下のように答えが返ってきません。 ここがうまくいかない場合には以下の2つの可能性があります。 TCP/IPの設定でDNSの設定を間違えている(正しいDNSサーバーを利用していない) 接続しようとしている先のサイトの情報を保持しているDNSサーバーに障害が起きている どちらなのかを判断するためには、その他のホスト名の名前解決ができるかどうかを調べましょう。私はいつも「www.google.com」が解決できるかどうか試しています。 ここまでのこと(ケーブル、TCP/IP設定、DNS)を一度に試す方法があります。それは「ping www.google.com」を実行することです。 ケーブルが繋がっていなければPingに応答があるわけはありませんし、TCP/IPの設定がただしいからgoogleのサーバーまで通信できています。また、www.google.comをDNSをつかってIPアドレスに変換できているからPingが打てているのです。www.google.comのホストはきちんとpingのReplyを返してくれるので確認が取れるわけです。 該当のWeb Serverに接続できているか ここまでの確認でクライアント側のTCP/IPおよびDNSの設定は問題ないことがわかりました。もう少し上の層に視点を切り替えていきます。まずは、該当のWeb Serverに接続できているかどうかです。 ...

December 14, 2008 · 1 min · 胡田昌彦