- ベストアンサー
パケットの出口はどこで決まる?デフォルトゲートウェイとの違いは?
- パケットが出ていく場所はどこで決まるのか疑問に思っています。特にデフォルトゲートウェイとは異なる機器を通ってパケットが出ていく理由が知りたいです。
- 送信元PCの設定や送信先のアクセス先によって、パケットの出口が異なることがあります。デフォルトゲートウェイとは異なるIPアドレスからパケットが出ていく可能性があるのは、どのような設定が施されているからなのでしょうか。
- TraceルートやグローバルIPアドレスに対するTraceルートを実行した結果、デフォルトゲートウェイとは異なるIPアドレス(192.168.0.2)を経由してパケットが出ていくことがわかりました。送信元PCの設定やルーターの存在など、パケットの出口に関する詳細が知りたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
考えられる可能性(1) これまでに192.168.0.2 を通してサーバが通信していてルーティング情報が残っていた。 最初の通信はデフォルトゲートウェイを経由するけど、次からは直接通信する可能性があります。 考えられる可能性(2) RIP等のルーティングプロトコルの設定が行われていて、ルータからルーティング情報が広告されていて、サーバはその情報からパケットの送信先を決定した可能性があります。
その他の回答 (2)
- chie65536(@chie65535)
- ベストアンサー率44% (8800/19959)
追記。 以下の記事を読んで下さい。 http://ascii.jp/elem/000/000/562/562311/ 「直接ルーティング」が出来ない場合、ルーティングは「ホストルート」、「ネットワークルート」、「デフォルトルート」の3つから選ばれる、と書いてあります。 「ホストルート」または「ネットワークルート」でルーティングが解決した場合、パケットは「デフォルトゲートウェイじゃないルーター」を経由して送信されます(記事の図1の、上か下のルーター。真ん中の「デフォルトゲートウェイ」は通りません) なお、当方が最初に回答した手順は「最初だけしか行なわない」ので、2回目以降は「最初の時に上手く送れたルートを記録してあるルーティング情報」を信じて送信され「誰に送れば良いの?」という問い合わせはしません。
お礼
追加情報提供ありがとうございます。 ホストルート、ネットワークルート、デフォルトルート、ともに設定内容はroute print で確認することができる(?)ってことですよね? そうであればroute printで出力した内容に192.168.0.2へ送るというような設定は見当たらなかったので、別の理由(設定)で192.168.0.2へ送られているってことなのでしょうか。 もう少し調べてみます。ありがとうございました。
補足
wiresharkをインストールしてパケットを拾ってみました。 プロトコルにHSRP(Hot Standby Router Protocol)がありました。 192.168.0.2から224.0.0.2宛てにstate Activeが、 192.168.0.3から224.0.0.2宛てにstate Standbyが送られていました。 (HSRPについてはここが参考になりました。 http://www.infraexpert.com/study/fhrpz01.html) ルーターを冗長化していたようです。 仮想ルーター:192.168.0.1 ルーター1 :192.168.0.2(調査時点でActive) ルーター2 :192.168.0.3(調査時点でStandby) ルーターを冗長化してもパケットは仮想ルーター(192.168.0.1) から出ていくように見えると思っていました。 (違うのかな?これはこれでまた質問したい。) ひとまず今回の疑問である、どのような設定をしてあるから パケットがデフォルトゲートウェイとは異なる場所から出て いくのか、は判明しました。 どうもありがとうございました。
- chie65536(@chie65535)
- ベストアンサー率44% (8800/19959)
>送信元PCの設定(OS:Windows Server 2012) > IPアドレス :192.168.0.10 >サブネットマスク :255.255.255.0 >デフォルトゲートウェイ:192.168.0.1 これは「デフォルトゲートウェイは、たぶん、このIPアドレスの機器だと思います」と言う設定なだけであって「このIPアドレスの機器がゲートウェイするように設定されているとは限らない」です。 >デフォルトゲートウェイは192.168.0.1なのにどうして >192.168.0.2からパケットが出ていくのかわかりません。 「実際にゲートウェイするように設定されているルーターのIPアドレスが192.168.0.2であり、192.168.0.1の機器にはゲートウェイ機能が設定されていない場合には、パケットは192.168.0.2から出て行く」事になります。 「クライアントで設定してあるゲートウェイアドレス」つまり >送信元PCの設定(OS:Windows Server 2012) >デフォルトゲートウェイ:192.168.0.1 の設定と「実際にゲートウェイするように設定されているルーターのIPアドレス」が食い違っている場合は、以下のように動作します。 1.クライアントPCは、デフォルトゲートウェイの設定に従って「外向けのパケットなんだけど、192.168.0.1に送っても良いですか?」と「192.168.0.1」に対して問い合わせます。 2.すると「192.168.0.1」は「俺は知らん。他所に聞け」と応答します。 3.「知らん」と言われたクライアントPCは「外向けのパケットを受け取れる人、挙手して」と、ブロードキャスト(全員に対して送信)します。 4.すると「実際にゲートウェイするように設定されているルーター」は「あ、俺!俺に送って」と「169.168.0.2に送れ」と応答します(実際には「送るべきMACアドレス」を送ります) 5.その応答を受け取った送信元クライアントPCは「このMACアドレス経由で、外に送って」とパケットを送出します。 6.ルーター(192.168.0.2の人)は「あ、これは俺を(自身のMACアドレスを)経由して送れって言われたパケットだ」と認識して、そのパケットを拾って、外のセグメントに転送します。 Traceルートでは、上記の「1」「2」の手順は表示されないので「いきなり192.168.0.2にパケットが出て行く」ように見えます。 なお、デフォルトゲートウェイの設定と、実際にゲートウェイする機器が一致している場合は、以下のように動作します。 1.クライアントPCは、デフォルトゲートウェイの設定に従って「外向けのパケットなんだけど、192.168.0.1に送っても良いですか?」と「192.168.0.1」に対して問い合わせます。 2.すると「192.168.0.1」は「あ、俺!俺に送って」と「169.168.0.1に送れ」と応答します(実際には「送るべきMACアドレス」を送ります) 3.その応答を受け取った送信元クライアントPCは「このMACアドレス経由で、外に送って」とパケットを送出します。 4.ルーター(192.168.0.1の人)は「あ、これは俺を(自身のMACアドレスを)経由して送れって言われたパケットだ」と認識して、そのパケットを拾って、外のセグメントに転送します。 最初の場合と比べると判るように、デフォルトゲートウェイの設定が正しければ「俺は知らん」という処理と「受け取れる人、挙手して」と言う処理が省略できます。 デフォルトゲートウェイの設定は、このように「受け取れる人、挙手して」の処理を省略し、トラフィックを軽減するためにあるのです。
お礼
アドバイスありがとうございます。 自分の手元にある環境で、本来は192.168.0.1がデフォルトゲートウエイなんだけど、あえて、デフォルトゲートウェイを192.168.0.2に変えて試してみました。 でも192.168.0.2へ投げたパケットは192.168.0.1へ転送(?)されませんでした。 テストに使った192.168.0.2がルーターなどではなく普通のPCだったなので"「俺は知らん。他所に聞け」"って返答してくれず無視されたのでしょうか? もう少し調べてみます。 ありがとうございました。
補足
wiresharkをインストールしてパケットを拾ってみました。 プロトコルにHSRP(Hot Standby Router Protocol)がありました。 192.168.0.2から224.0.0.2宛てにstate Activeが、 192.168.0.3から224.0.0.2宛てにstate Standbyが送られていました。 (HSRPについてはここが参考になりました。 http://www.infraexpert.com/study/fhrpz01.html) ルーターを冗長化していたようです。 仮想ルーター:192.168.0.1 ルーター1 :192.168.0.2(調査時点でActive) ルーター2 :192.168.0.3(調査時点でStandby) ルーターを冗長化してもパケットは仮想ルーター(192.168.0.1) から出ていくように見えると思っていました。 (違うのかな?これはこれでまた質問したい。) ひとまず今回の疑問である、どのような設定をしてあるから パケットがデフォルトゲートウェイとは異なる場所から出て いくのか、は判明しました。 どうもありがとうございました。
お礼
アドバイスありがとうございます。 考えられる可能性(1)について、PCを再起動せずにルーティング情報をクリアする方法があればそれをやってみます。 考えられる可能性(2)について、RIP等になるとよくわからないのでまずはパケットキャプチャできるようにしてみます。 ありがとうございました。
補足
wiresharkをインストールしてパケットを拾ってみました。 プロトコルにHSRP(Hot Standby Router Protocol)がありました。 192.168.0.2から224.0.0.2宛てにstate Activeが、 192.168.0.3から224.0.0.2宛てにstate Standbyが送られていました。 (HSRPについてはここが参考になりました。 http://www.infraexpert.com/study/fhrpz01.html) ルーターを冗長化していたようです。 仮想ルーター:192.168.0.1 ルーター1 :192.168.0.2(調査時点でActive) ルーター2 :192.168.0.3(調査時点でStandby) ルーターを冗長化してもパケットは仮想ルーター(192.168.0.1) から出ていくように見えると思っていました。 (違うのかな?これはこれでまた質問したい。) ひとまず今回の疑問である、どのような設定をしてあるから パケットがデフォルトゲートウェイとは異なる場所から出て いくのか、は判明しました。 どうもありがとうございました。