DNSの静的エントリを変更しても元に戻ってしまう

IPアドレスの変更に伴い、DNSの静的エントリ(Aレコード)を手動で変更したにもかかわらず、しばらく時間がたつと古いアドレスに戻ってしまう…という現象がありました。 現象が発生していたのはドメインコントローラー兼、DNSサーバーでした。もちろんOSとしては新しいIPアドレスに設定されており、動作もDNSレコードを手動で書き換えた直後は問題なし。原因がわからなくて結構悩んでしまったのですが結局DNSサーバーに対してDNSに登録するサービスを固定的に指定しており(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters\PublishAddresses )、そのIPアドレスを変更していなかったのが原因でした。 - [接続のアドレスを DNS に登録しないように設定しても、ホストの A レコードが登録される](http://support.microsoft.com/kb/275554/ja) 複数のNICをもつシステムだったこともあり、クライアントからアクセスできないIPアドレスがDNSサーバーに登録されてしまうことを防ぐために行った設定がきちんと把握、変更されていなかったということになります。検証環境で緩く運用されており、きちんと構成管理していないような環境だとこの手の細かい設定を後追いで確認するのはなかなか手間ですね…。

August 28, 2014 · 1 min · 胡田昌彦

1対1 NAT

今回は前回に引き続いてNATについての話です。前回の記事を読まれていない方は先によんでおいていただくことをお勧めします。 - [NAT(Network Address Translation)の基本 | WindowsServer管理者への道](https://windowsadmin.ebisuda.net/2011/01/12/natnetwork-address-translation%e3%81%ae%e5%9f%ba%e6%9c%ac/) ここまではTCPのポート番号には注目しませんでした。今回はTCPのポート番号まで意識して動きを見ていきます。 NAT 以下は前回のおさらいです。IPアドレスにだけ注目して以下のような変換が行われることを説明しました。 ここにポート番号も書き加えてみます。本当は様々なバリエーションがあるのですが、以下ではNATが書き換えるのはIPアドレスのみとします。 単純にTCPのポート番号を書き加えただけですが、大丈夫でしょうか。PC1から見た宛先サーバーのポート番号はWEBサーバーですので80番となり、ソースポートに関しては、ランダムに選ばれますが、ここでは1024番としてあります。WEBサーバーからの戻りのパケットはソースとデスティネーションのポート番号が入れ替わっています。 複数台のNAT それでは、ここでさらにPCがもう一台ある環境を考えてみましょう。 PC1とPC2が同じブロードバンドルーターの下にある状況です。 TCPでは送信元ポートはランダムに選ばれます。なので「PC1とPC2が同じサーバー(宛先IP)の同じサービス(宛先ポート番号)に同じ送信元番号をつかって接続する」ということは普通に起こりうることです。同一LAN内であればこれは以下のように区別することが可能です。 - 宛先IP:宛先ポート番号 - PC1のIP:送信元ポート番号 - 宛先IP:宛先ポート番号 - PC2のIP:送信元ポート番号 PC1のIPとPC2のIPが異なるので当たり前に区別できるのですが、これが上記の図の中で、同じWEBサーバーに対して接続をしようとし、その時の送信元ポート番号がたまたま同一で、さらにそのパケットがNATされた時にはどうなるでしょうか? 変換前パケットには送信元IPしか違いがなかったのに、それをどちらもGlobal IP Aに変換してしまっては区別がつかなくなってしまいます。これでは通信が混ざっていしまい、うまくいきません。 これを解決するにはどうしたらいいでしょうか。色々やり方はありますが、TCPポートは書き換えずに実現可能な方法を考えてみて下さい。 ・・・・・・。 ・・・・・・。 ・・・・・・。 思いついたでしょうか。正解は「ブロードバンドルータにPC1、PC2に対応するグローバルIPをそれぞれ割り当てる」ということです。以下のように、グローバルIPとプライベートIPの対応を作ってしまう訳です。 プライベートIP グローバルIP 192.168.1.1 Global IP A 192.168.1.2 Global IP C こうする事でインターネットとプライベートネットワークとで相互に通信出来ます。 1対1 NAT この様にグローバルとプライベートのIPを1対1で対応付けするNATを1対1NATと呼びます。 注目すべきは、プライベートネットワーク(PC1, PC2が存在するプライベートIPをつかった192.168.1.0/24のネットワーク)からインターネットへの通信のみならず、インターネットからプライベートネットワークへの通信もきちんと対応付ける事が可能な事です。(実際に通信させるかどうかは別問題ですが、「対応づけを矛盾なく行うことができる」ということです。) そして、グローバルIPアドレスが沢山必要になってしまう事も特徴です。 このNATはインターネット上に複数(WEB、MAIL等々)のサービスを提供するサーバーの公開の時に使われる事が多いです。グローバルIPアドレスが沢山必要になるので、一般家庭ではめったに使われない形態ではあります。 今回は1番シンプルなNATロジックである1対1NATを説明しました。次回以降はTCPのポート番号まで書き換える形態のNATを説明しようと思います。お楽しみに!

January 19, 2011 · 1 min · 胡田昌彦

NAT(Network Address Translation)の基本

今回はNAT(Network Address Translation)について書きます。NATはほとんどのネットワークで、もっと正確にいえばネットワークの接続部分に使われているとても重要なものです。一番身近なところでは、自宅のPCのIPアドレスはプライベートIPアドレスなのに、インターネットの世界に接続できている、さらに言うと複数のPCが同時にインターネットに接続できているという方が多いのではないでしょうか。こんなことができるのはNATのおかげなんです。 NATを理解するにはIPアドレスとTCPのポート番号の理解が必ず必要ですので、まだこのあたりの理解が怪しい場合には先に以下のエントリを参照してもらえればと思います。 - レイヤ3 -ネットワーク層- IPアドレス - レイヤ4 -トランスポート層- ポート番号 NATは何をするものか NATはその名の通りアドレスを変換するものです。具体的にはパケット内のIPアドレスやTCPのポート番号を書き換えます。その書き換えパターンによって様々なバリエーションがあり、呼び方や目的が変わってきます(一部同じものもありますが)。よく耳にするのは以下のようなものです。 - 1対1NAT - NAPT(Network Address Port Translation) - IPマスカレード(IP masquerade) - DNAT(Destination NAT) - SNAT(Source NAT) それでは具体的な利用シーンを想定しながら動きを見て行きましょう。 (NAT無し)自宅PCからインターネットにアクセスする まずは理解を容易にするためにNATを使用しない状態から解説します。以下のような接続を考えます。 - PCがグローバルIPを持っている - PCからゲートウェイまで直接通信する これでなんの問題もなく世界中と通信出来る訳ですが、同時に世界中の誰からも自由にアクセスされる状態にもなっている事がポイントです。NATを考える時には「どこにアクセス出来るか」に加えて「どこからアクセスされるか」が重要になってきます。 因みに、本当にこのように「PCを直接インターネットに接続する」のは非常に危険なので行わないようにして下さい。恐らく数分で攻撃される事になります。 ブロードバンドルータ経由でインターネットに接続する 次に一般家庭でよくあるように、まずブロードバンドルータがインターネットに接続し、その下にPCを接続する構成を考えます。 また、説明のために、インターネットの向こう側にWEBサーバーがある場合を考えてみます。 - PCはプライベートIPを持っている - PCはデフォルトゲートウェイとしてブロードバンドルータを利用する - ブロードバンドルータはグローバルIPを持っている この接続は一般的なもので、PCからインターネットに接続する事ができます。 「プライベートIPはインターネット上では使用できない」ということを知っていれば、「なぜプライベートIPしか持っていないPCがインターネットにアクセスできているのか?」という疑問が出てきます。ここでNATが使われているのです。 簡単にいうと、「PCがインターネットにアクセスしようとする時に、ブロードバンドルータからのアクセスという事にする」ことでアクセスできるようにしています。 この時の動きをIPアドレスに注目してパケットレベルで詳しく見てみましょう。 まず、PCからWEBサーバーに接続要求が出されます。送信元IPアドレスは192.168.1.1, 宛先IPアドレスはGlobalIP Bになります。 このパケットはまず、デフォルトゲートウェイであるブロードバンドルーターに届けられます。ブロードバンドルーターはそのままルーティングするのではなく、送信元IPアドレスを自分自身のグローバルIPに変換して送信します。宛先IPアドレスはGlobal IP Bのまま、送信元IPアドレスはGlobal IP Aになります。 この時、パケット内のIPアドレスが書き換えられています。これこそがNATです。通常のルーターであれば、IPアドレス部分は参照するのみで書き換えることはしません。NATはIPアドレス部分を書き換える(※TCPポート番号まで書き換えるタイプのNATもあります)ここがポイントです。 それでは続きを見てみましょう。 パケットは途中いくつものルーターを経由して、WEBサーバーにまでパケットが届きます。この時WEBサーバーにしてみると、通信をしてきたのは単にブロードバンドルーターであるように見えます。PCの存在はWEBサーバーにはまったくわかりません(わかる必要もありません)。ここも1つのポイントです。NATが行われる場合実際の送信元、送信先とパケット上の送信元、送信先が異なることが多いです(NATの種類にもよります)。 ...

January 12, 2011 · 1 min · 胡田昌彦

レイヤ4 -トランスポート層- ポート番号

今回はTCP/IPのレイヤ4、トランスポート層の、「ポート番号」についての話です。IPアドレスまでは知っていても、TCPのことはよく知らないという人が多いはずです。この層より上の層ははかなりアプリケーションに依存した話になりますので、ネットワークを抑える意味ではこの層が理解の要になります。しっかり理解していきましょう。 どうやってアプリケーションを区別するのか まず、考えてもらいたいことがあります。たとえばブラウザを2つ開いているとします。1つのブラウザではyoutubeでAという動画を再生しています。もうひとつのブラウザではyoutubeでBという動画を再生しています。 さて、このとき自分のPCとyoutubeのサーバーとの間には(少なくとも)2つの通信が確立されています。この2つは「どうして混ざってしまわないのでしょうか?」。どちらも同じブラウザですし、相手も同じyoutubeのサーバーです。不思議だと思いませんか? 通信にはIPアドレスを使っているはずです。仮に自分のPCのIPアドレスをIP1、youtubeのサーバーのIPをIP2としましょう。以下の2つの通信が確立されているはずです。 - IP1 – IP2 - IP1 – IP2 うーん。どう見ても区別できませんね。これは当然のことで、「IPアドレスだけで通信の確立がなされているわけではない」のです。IPアドレスだけではなくてそのPCの中で「どのプログラムと関連づいているのか」、より正確に言うと「どのプロセスと関連づいているのか」ということが管理されているわけです。これが「ポート番号」です。 超有名なポート番号として「HTTP = 80番」というものがあります。ブラウザで接続する時にはHTTPサーバー(Webサーバー)の80番ポートに接続するわけです。 - IP1 – IP2:80 - IP1 – IP2:80 うーん。これでもまだ見分けがつかないですね。普段ポート番号はサーバー側だけが意識されることが多いですが、「クライアント側のポート番号」も意識する必要があるのです。 それでは、クライアントのポート番号は何番になるのかというと、これはもう「何番でもいい」わけです。少なくとも他とバッティングしなければ。このようにクライアント側が接続のために一時的に使用するポート番号のことをエフェメラルポートといいます。 - [エフェメラルポートとは 【ephemeral ports】 - 意味/解説/説明/定義 : IT用語辞典](http://e-words.jp/w/E382A8E38395E382A7E383A1E383A9E383ABE3839DE383BCE38388.html) ここでは適当に1024と1025番だったとしましょう。 - IP1:1024 – IP2:80 - IP2:1025 – IP2:80 うん。これできちんとそれぞれの通信が区別できるようになりました。このようにサーバー、クライアントのIPアドレスとポート番号をつかって接続の状態を表し、これをソケットといいます。 - [ソケットとは 【socket】 - 意味/解説/説明/定義 : IT用語辞典](http://e-words.jp/w/E382BDE382B1E38383E38388.html) このように、プログラムが通信をする際には、それぞれの動的なポート番号が割り当てられるので、混ざることが無いわけです。 繰り返しになりますが、サーバー側のポート番号だけではなく、クライアント側のポート番号も意識していきましょう。 接続の状態を確認する ここまで理解できたら、実際に自分が使っているPCの現在の接続の状態を確認してみましょう。接続を確認する方法は沢山ありますが、Windowsの標準コマンドということでいうとnetstatコマンドがあります。コマンド自体の解説は@ITに譲ろうと思います。 - [netstat - ホストのネットワーク統計や状態を確認する](http://www.atmarkit.co.jp/fnetwork/netcom/netstat/netstat.html) 私がよく使うオプションを紹介しておきます。実際に試しながら見てみてください。 netstat –an いつも何も考えずに使うのは -anオプションです。-aで接続状態に加えて、待ち受けているポートの状態を表示しています。「状態」が「LISTENING」になっているものが待ち受けているものです。いわゆるサーバーですね。 ...

October 6, 2009 · 1 min · 胡田昌彦

レイヤ3 -ネットワーク層- IPアドレス

今回はレイヤ3、ネットワーク層のIPアドレスのお話です。 IPアドレスはTCP/IPで通信をする際に必ず設定されるもので、よく「住所」にたとえられます。ネットワーク上の住所がIPアドレスで、ネットワーク上のデータはIPアドレスを宛先として届けられるんだよ、と。 この説明は全く間違いではないのですが、あえて言うならIPアドレスは「レイヤ3での宛先」です。すでに説明したように「レイヤ2での宛先」はMACアドレスなわけです。つまり - 同一ネットワーク内の通信であればMACアドレスが宛先となる(レイヤ2) - 別ネットワークへの通信であればIPアドレスが宛先となる(レイヤ3) というわけです。つまりIPアドレスは「宛先のホストが存在するネットワークへ送り届ける」という目的で主に使用されています。 たらいまわす IPアドレスを宛先とした通信の特徴は「たらいまわし」にすることです。例えば自分のPCのTCP/IPの設定を見てみると、基本的に以下のものしか設定しません。 - IPアドレス - サブネットマスク - デフォルトゲートウェイ 「IPアドレス」と「サブネットマスク」があれば、宛先のIPアドレスが同一ネットワークかどうかは判別がつきます(詳細はレイヤ3 -ネットワーク層- サブネットマスク参照)。しかし、それ以外に関してはどこからどのように繋がっているのかということは全く関与していません、単純に「デフォルトゲートウェイにお願いしておけば届けてくれるんでしょ?」程度の認識です。で、デフォルトゲートウェイに届けることを依頼します。 では、デフォルトゲートウェイとなっているルーターでは、宛先ネットワークを全てしっているのかというと、大抵の場合そうではありません。ルーターはいくつかのネットワークの宛先は知っていますが、「その他」に関しては特によくしらず、ルーターもさらに上位の「ゲートウェイ」に届けることを依頼します。 で、同じようなことが何段も続くわけです。たらいまわしです。「とりあえずあの人にお願いしておけば大丈夫でしょ」的な。 で、いつかは誰かがきちんと「このネットワークであればこっち」という判断をしなければいけません。これはISPのなかでも大規模なところが世界中のネットワークを理解しているルーターを管理してくれているので、そこで行われます。 そうすると今度は逆に世界の中心的な場所から末端の端末まで通信が行われるわけですが、ここではルーターはさすがに「自分が管理しているネットワーク」がどのようなものかは理解しているので、届く、というわけです。こうして世界中で繋がるわけです。

July 13, 2009 · 1 min · 胡田昌彦

レイヤ2 –データリンク層- 宛先はMACアドレス

今回はレイヤ2の話です。 レイヤ2と一口に言ってもPPPやHDLCやADCCP等多数のデータリンクプロトコルがありますが、まずはなんといってもイーサネットに関しての理解が必要です。 MACアドレス レイヤ2において色々と理解すべきことはありますが、まずは何と言っても「MACアドレス」を理解しなくてはいけません。大げさに言えば、私はMACアドレス、レイヤ2の概念をきちんと理解しているかどうかが素人とプロのまず大きな違いだと思っています。そのくらい重要です。 昨今ではTCP/IPが全盛なので、「コンピューターはIPアドレスを持っていて、IPアドレスを住所のように使って通信している」という理解をしている人が多いですし、確かにそれは間違いではありません。ですが、それはレイヤ3を考えた時の話です。レイヤ2で同じようなレベルで理解をするならば「NICはMACアドレスを持っていて、MACアドレスを住所のように使って通信している」ということになります。 「NIC」というのは「Network Interface Card」の略で「LANカード」などとも言われます。このNICに、MACアドレスというものが指定されているわけです。 MACアドレスを確認する 「IPアドレスは設定したことあるけど、MACアドレスなんて設定したことないよ?」という人も多いと思います。まずは自分が今使っているコンピューター(についているNIC)のMACアドレスを確認してみましょう。 コマンドプロンプトで「ipconfig /all」を実行してみてください。 「Physical Address. . . . . . . . . : XX-XX-XX-XX-XX-XX」という行があります。これがMACアドレスです。上の例だと「00-0F-B5-8E-0B-54」ですね。 このMACアドレスはメーカーが工場でNICを生産する際に埋め込みます。ですので基本的に私たちが設定するものではありません。(例外はありますがまずはこの理解でいいでしょう。) MACアドレスからベンダーを調べる このMACアドレスは重複しないようにメーカーごとに割り当てることができる範囲が決まっています。ですので、MACアドレスを見ればどのメーカーのNICなのかわかるようになっています。具体的にはMACアドレスの先頭24ビットがベンダーをあらわしています。具体的には以下のようなサイトで調べることができます。 IEEE Registration Authority - IEEE OUI and Company_id Assignments サイトに行って「Search the public OUI listing . . .」という項目に自分のNICのMACアドレスの先頭24ビットの値を入力して「Search!」して見ましょう。 上の例であれば「00-0F-B5」というのは「NETGEAR Inc」のNICであることがわかります。 フレームの構造 レイヤ2のレベルで考えたときには宛先、送信元にMACアドレスが入力され、Ethernetに電気信号として伝えられます。これの塊をレイヤ2では「フレーム」と呼びます。「フレーム」は以下のような構造をしています。 「プリアンブル」「タイプ」「FCS」などの理解はとりあえず後回しで大丈夫です。重要なのは「宛先MACアドレス」と「送信元MACアドレス」です。 原則としてEthernetでは全てのフレームが全てのコンピューターに届けられます。レイヤ1レベルではただの電気信号なので繋がっている全てのコンピューターまで届くわけです。NICはフレーム内の宛先MACアドレスが自分のMACアドレスと等しいかを確認し、自分宛のものであれば上位の層(具体的にはレイヤ3)にデータを渡す、という動きをします。(※例外あり、後述) どうやって通信相手のMACアドレスを知るのか では、何か通信をしたい時、送信元MACアドレスには自分が知っている自分自身のMACアドレスを入れればいいとして、宛先MACアドレスはどうしたらいいでしょうか?どうしたらわかるでしょうか? たとえばpingを考えてみましょう。「ping x.x.x.x」という形でコマンドを打つときには、宛先のipアドレスはコマンドを打つ人が入力してくれますが、このときにMACアドレスを入力するということはしません。 ですので、IPアドレスからMACアドレスを知る仕組みが必要になるわけです。NICの気持ちになって考えてみると「x.x.x.xのIPアドレスを持っている人MACアドレス教えて」という事をネットワークに流せばよさそうです。そしてMACアドレスを教えてもらう。このやり取りを**ARP(Address Resolution Protocol)**と言います。 ARPは正確にはレイヤ3に属するプロトコルなのですがレイヤ2のMACアドレスを理解するために重要なのでここで登場してもらいました。 ブロードキャスト ところで、「x.x.x.xのIPアドレスを持っている人MACアドレス教えて」という時には宛先MACアドレスには何を入れればいいでしょうか?宛先MACアドレスを知るための通信をするときの宛先MACアドレスです。 なかなか難しいですが、正解は「全員宛て」です。全員に通信を受け取ってもらって、受けとったコンピューターのうち、x.x.x.xのIPアドレスを持っているコンピューターからのみ返事をもらえればいいわけです。 このような「全員宛て」という意味で「FF-FF-FF-FF-FF-FF」というMACアドレスが使われます。先ほど「NICはフレーム内の宛先MACアドレスが自分のMACアドレスと等しいかを確認し、自分宛のものであれば上位の層(具体的にはレイヤ3)にデータを渡す」というように説明しましたが、より正確にはここで宛先MACアドレスとして「ブロードキャストアドレス(FF-FF-FF-FF-FF-FF)」やマルチキャストアドレス「01-00-5E…」であっても受け取って上位層に渡します。 MACアドレスだけではなぜいけないのか? さて、MACアドレスというものを知りました。宛先のアドレスはブロードキャスト、ARPを使って知ることができます。この仕組みだけあれば他にアドレスは必要ないようにも思います。なぜMACアドレスだけでは駄目なのでしょうか? 実際、昔Windowsネットワークで使われていたNETBEUIというプロトコルには他にアドレスは存在しません。NETBIOS名というものはつけますが、NETBEUIにおいてNETBIOS名はMACアドレスと一対一に対応付けられます。サブネットマスクだのデフォルトゲートウェイだのルーティングだの面倒なことはなにもありません。ネットワークに接続しさえすればきちんと通信できるのです。こっちのほうが楽でいいのではないでしょうか? この問いへの答えはブロードキャストのことを考えるとわかります。実際にデータを届けるには相手のMACアドレスが必要なわけですからブロードキャストするわけです。そのフレームは全コンピューターに届かなくてはいけません。これは小規模なネットワークなら問題にならないでしょう。ですが、今日最大のネットワークであるインターネットではどうでしょうか? インターネット上の全てのコンピューターの発するブロードキャストが全てのコンピューターが受信する必要があるとしたら、おそらくブロードキャストパケットだけでネットワークは飽和してしまうでしょう。 ...

February 12, 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 · 胡田昌彦