目次
通信するための大前提
TCP/IPのアプリケーションの通信を行うために前提を考えておきましょう。通信するためには、大前提として以下のことが必要です。
- 経路上の機器間で物理的な信号をやり取りできるようになっていること
- 経路上のすべての機器で正しいTCP/IPの設定(ネットワークの設定)がされていること
- 利用するアプリケーションの設定が正しいこと

「0」と「1」のデータは電気信号、光信号、電波などの物理的な信号に変換されて、伝送媒体(ケーブル、電波)を伝わっていきます。通信ができる大前提は、経路上のすべての機器間で物理的な信号がやり取りできるようになっていなければいけません。有線のネットワークインフラストラクチャであれば、ケーブルが正しく配線できていることが必要です。無線のネットワークインフラストラクチャであれば、電波を捕捉できていることが前提です。
その上で、経路上のすべての機器で正しくTCP/IPの設定がされていなければいけません。TCP/IPの設定は、いわゆる「ネットワークの設定」です。主な機器に必要なTCP/IP設定は、以下の表にまとめています。
機器 |
主な設定内容 |
PC、サーバ |
IPアドレス/サブネットマスク デフォルトゲートウェイのIPアドレス DNSサーバのIPアドレス |
ルータ |
IPアドレス/サブネットマスク ルーティング(ルーティングテーブル) |
レイヤ2スイッチ |
特になし |
さらに、利用するアプリケーションの設定が正しいことが必要です。アプリケーションごとに必要な設定は異なります。また、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パケットを正しく受信できなくなります。

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

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

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

デフォルトゲートウェイの設定が正しくても、デフォルトゲートウェイ自体の障害で使えないと、設定が間違っているときと同じ状況になります。デフォルトゲートウェイの障害に対応するためには、デフォルトゲートウェイとなるルータ/レイヤ3スイッチを冗長化してください。そして、その上で、VRRPなどのデフォルトゲートウェイ冗長化のためのプロトコルを利用します。
デフォルトゲートウェイの冗長化についての詳細は、以下の記事をご覧ください。
同じネットワークの通信は問題ないのに、他のネットワークへの通信ができないというときには、デフォルトゲートウェイの設定が正しいかどうか、デフォルトゲートウェイに障害がないかを確認しましょう。
DNSサーバのIPアドレス
TCP/IPの通信には必ずIPアドレスが必要です。ただし、IPアドレスの指定はわかりにくいものです。通常、ユーザにとってIPアドレスを見せずにURLやメールアドレスなどを利用して通信します。URLやメールアドレスなどからIPアドレスを求めるためにDNSサーバに問い合わせて名前解決を行います。DNSサーバのIPアドレスは名前解決のための設定です。

DNSによる名前解決の仕組みについて、以下の記事をご覧ください。
もし、DNSサーバのIPアドレスの設定を間違えると、名前解決ができなくなります。その結果、通信相手のIPアドレスがわからずにデータの送信自体できなくなります。

やはり、DNSサーバ自体の障害があると、DNSサーバの設定を間違えてしまったときと同じ状況になります。DNSサーバの障害に備えて、DNSサーバを冗長化しておきます。そして、ホストでプライマリとセカンダリDNSサーバの設定をしておきます。
TCP/IP
- TCP/IPの階層
- IP(Internet Protocol) ~データを送り届ける~
- ICMP ~きちんとIPで転送できますか?~
- Ping ~きちんとデータは届きますか?~
- Windows OSのPingコマンド
- トレースルート ~データはどのルータを通っていますか?~
- tracertコマンド(Windows OS)
- ICMPリダイレクト
- トラブルはどこ? ~Pingとトレースルート~
- ARP ~IPアドレスとMACアドレスを対応付け~
- ARPフォーマット
- Gratuitous ARP(GARP)
- ポート番号 ~どのアプリケーションのデータなの?
- TCPの概要
- TCPの動作
- UDPの概要
- アプリケーションのデータが届くまでのまとめ
- DNS ~宛先IPアドレスを求める~
- nslookupコマンド ~DNSの名前解決の確認~
- DHCP ~IPアドレスを自動割り当て~
- Ciscoルータ DHCPサーバの設定例
- TCP/IPの設定のまとめ
- ipconfigコマンド ~Windows OSのTCP/IP設定を確認~
- Linux(Ubuntu)でのTCP/IP設定の確認
- Webサイト
- HTMLとCSS ~Webページを作る~
- URL ~Webサイト(Webページ)のアドレス~
- HTTP ~HTMLファイルを転送する~
- Webアプリケーション ~Webブラウザだけあればいい~
- HTTP Cookie
- Webアプリケーションのセッション管理
- Webプロキシサーバ ~Webアクセスを代わりに~
- Webアクセスのまとめ
- 電子メール
- SMTP ~電子メール送信用プロトコル~
- POP3 ~メール受信用プロトコル~
- IMAP4 ~メールサーバ上でメールを管理~
- 電子メールのまとめ
- FTP ~代表的なファイル転送プロトコル~
- TFTP ~簡易的なファイル転送プロトコル~
- Windows10のTFTPクライアント
- ネットワークのトラブルの切り分け手順