通信するための大前提

TCP/IPのアプリケーションの通信を行うために前提を考えておきましょう。通信するためには、大前提として以下のことが必要です。

  • 経路上の機器間で物理的な信号をやり取りできるようになっていること
  • 経路上のすべての機器で正しいTCP/IPの設定(ネットワークの設定)がされていること
  • 利用するアプリケーションの設定が正しいこと
通信するための大前提
図 通信するための大前提

「0」と「1」のデータは電気信号、光信号、電波などの物理的な信号に変換されて、伝送媒体(ケーブル、電波)を伝わっていきます。通信ができる大前提は、経路上のすべての機器間で物理的な信号がやり取りできるようになっていなければいけません。有線のネットワークインフラストラクチャであれば、ケーブルが正しく配線できていることが必要です。無線のネットワークインフラストラクチャであれば、電波を捕捉できていることが前提です。

その上で、経路上のすべての機器で正しくTCP/IPの設定がされていなければいけません。TCP/IPの設定は、いわゆる「ネットワークの設定」です。主な機器に必要なTCP/IP設定は、以下の表にまとめています。

表 TCP/IPの設定

機器

主な設定内容

PC、サーバ

IPアドレス/サブネットマスク

デフォルトゲートウェイのIPアドレス

DNSサーバのIPアドレス

ルータ

IPアドレス/サブネットマスク

ルーティング(ルーティングテーブル)

レイヤ2スイッチ

特になし

レイヤ2スイッチは、単にデータを転送するためにTCP/IP設定は特に必要ありません。ただし、レイヤ2スイッチの管理のためPC、サーバと同じくIPアドレス/サブネットマスク、デフォルトゲートウェイのIPアドレスを設定することがあります。
ルータ/レイヤ2スイッチでも名前解決をする必要があれば、DNSサーバのIPアドレスを設定してください。

さらに、利用するアプリケーションの設定が正しいことが必要です。アプリケーションごとに必要な設定は異なります。また、Webブラウザなどクライアント側のアプリケーションによっては、特別な設定が必要ないものもあります。

以降で、PCやサーバのTCP/IP設定について見ていきましょう。


Windows OSでTCP/IP設定を確認するためにipconfigコマンドを使います。ipconfigコマンドについて以下の記事にまとめています。

LinuxでTCP/IP設定を確認するためのコマンドは以下の記事をごらんください。


IPアドレス/サブネットマスクの設定

TCP/IPでは、必ずIPアドレスを利用して通信します。PCやサーバには、イーサネットインタフェースなどネットワークインタフェースに必ずIPアドレス/サブネットマスクを設定しなければいけません。

そして、「インタフェースにIPアドレスを設定する」ということは、「ネットワークに(論理的に)接続する」ことに他なりません。インタフェースに設定したIPアドレスとサブネットマスクから、ホストが接続されるネットワークアドレスがわかります。インタフェースにIPアドレスを設定してはじめて、そのインタフェースを通じてIPパケットを送信したり、受信したりできるようになります。

IPアドレス/サブネットマスクの設定
図 IPアドレス/サブネットマスクの設定

もし、IPアドレスの設定を間違えてしまうと、他のホストからの送信されたIPパケットを正しく受信できなくなります。

IPアドレスの設定ミス

また、サブネットマスクの設定を間違えてしまうと、同じネットワークのホストを異なるネットワークとみなしてしまったり、異なるネットワークのホストを同じネットワークとみなしてしまったり、正しく通信できなくなります。

サブネットマスクの設定ミス
図 サブネットマスクの設定ミス
図中の下段のネットワークの認識は、サブネットマスクの設定を間違えているPC1から見た認識です。PC2とPC3はサブネットマスクの設定を間違っていません。PC2とPC3は、PC1~PC3が同じネットワークと認識していることになります。
図のPC1は168.1.1~192.168.1.126の範囲のIPアドレスを同じネットワークのIPアドレスとして認識していることになります。

デフォルトゲートウェイの設定

デフォルトゲートウェイとは、同じネットワーク上のルータやレイヤ3スイッチです。デフォルトゲートウェイのIPアドレスとして、同じネットワーク上のルータ/レイヤ3スイッチのIPアドレスを指定します。

ルータやレイヤ3スイッチは、ネットワークの相互接続を行うネットワーク機器です。つまり、ホストが接続されているネットワーク以外のネットワークは、ルータまたはレイヤ3スイッチの向こう側にあります。そのため、デフォルトゲートウェイは他のネットワークの入口にあたり、他のネットワーク宛てのデータは、まず、デフォルトゲートウェイへ転送します。

デフォルトゲートウェイの設定
図 デフォルトゲートウェイの設定
入口、出口は相対的なものなので、デフォルトゲートウェイは、自分のネットワークからの出口という認識でもOKです。個人的には、「自分のネットワークからの出口」と考えるほうが好きです。

もし、デフォルトゲートウェイの設定を間違えてしまうと、異なるネットワークへの通信が一切できなくなってしまいます。同じネットワークの通信には問題はありません。

デフォルトゲートウェイの設定ミス
図 デフォルトゲートウェイの設定ミス

デフォルトゲートウェイの設定が正しくても、デフォルトゲートウェイ自体の障害で使えないと、設定が間違っているときと同じ状況になります。デフォルトゲートウェイの障害に対応するためには、デフォルトゲートウェイとなるルータ/レイヤ3スイッチを冗長化してください。そして、その上で、VRRPなどのデフォルトゲートウェイ冗長化のためのプロトコルを利用します。


デフォルトゲートウェイの冗長化についての詳細は、以下の記事をご覧ください。


同じネットワークの通信は問題ないのに、他のネットワークへの通信ができないというときには、デフォルトゲートウェイの設定が正しいかどうか、デフォルトゲートウェイに障害がないかを確認しましょう。

DNSサーバのIPアドレス

TCP/IPの通信には必ずIPアドレスが必要です。ただし、IPアドレスの指定はわかりにくいものです。通常、ユーザにとってIPアドレスを見せずにURLやメールアドレスなどを利用して通信します。URLやメールアドレスなどからIPアドレスを求めるためにDNSサーバに問い合わせて名前解決を行います。DNSサーバのIPアドレスは名前解決のための設定です。

DNSサーバの設定
図 DNSサーバの設定

DNSによる名前解決の仕組みについて、以下の記事をご覧ください。


もし、DNSサーバのIPアドレスの設定を間違えると、名前解決ができなくなります。その結果、通信相手のIPアドレスがわからずにデータの送信自体できなくなります。

DNSサーバの設定ミス
図 DNSサーバの設定ミス

やはり、DNSサーバ自体の障害があると、DNSサーバの設定を間違えてしまったときと同じ状況になります。DNSサーバの障害に備えて、DNSサーバを冗長化しておきます。そして、ホストでプライマリとセカンダリDNSサーバの設定をしておきます。

図では、DNSサーバは同じネットワーク上となっていますが、必ずしも同じネットワーク上である必要はありません。

関連記事

「ネットワークのおべんきょしませんか?」内の記事を検索

TCP/IP