目次
概要
TCP/IPで通信するためには、正しくTCP/IPの設定をしていることが大前提です。IT技術者として、TCP/IP設定の意味をきちんと理解しておきましょう。TCP/IPの設定の意味について解説します。
通信するための大前提
TCP/IPのアプリケーションの通信を行うために前提を考えておきましょう。通信するためには、大前提として以下のことが必要です。
- 経路上の機器間で物理的な信号をやり取りできるようになっていること
- 経路上のすべての機器で正しいTCP/IPの設定(ネットワークの設定)がされていること
- 利用するアプリケーションの設定が正しいこと
「0」と「1」のデータは電気信号、光信号、電波などの物理的な信号に変換されて、伝送媒体(ケーブル、電波)を伝わっていきます。通信ができる大前提は、経路上のすべての機器間で物理的な信号がやり取りできるようになっていなければいけません。有線のネットワークインフラストラクチャであれば、ケーブルが正しく配線できていることが必要です。無線のネットワークインフラストラクチャであれば、電波を捕捉できていることが前提です。
その上で、経路上のすべての機器で正しくTCP/IPの設定がされていなければいけません。TCP/IPの設定は、いわゆる「ネットワークの設定」です。主な機器に必要なTCP/IP設定は、以下の表にまとめています。
機器 | 主な設定 |
---|---|
PC/スマートフォン/サーバ | IPアドレス/サブネットマスク デフォルトゲートウェイのIPアドレス DNSサーバのIPアドレス |
ルータ/レイヤ3スイッチ | IPアドレス ルーティング(ルーティングテーブル) |
レイヤ2スイッチ | 特になし |
レイヤ2スイッチは、単にデータを転送するためにTCP/IP設定は特に必要ありません。ただし、レイヤ2スイッチの管理のためPC、サーバと同じくIPアドレス/サブネットマスク、デフォルトゲートウェイのIPアドレスを設定することがあります。ルータ/レイヤ3スイッチ/レイヤ2スイッチでも名前解決をする必要があれば、DNSサーバのIPアドレスを設定してください。
さらに、利用するアプリケーションの設定が正しいことが必要です。アプリケーションごとに必要な設定は異なります。また、Webブラウザなどクライアント側のアプリケーションによっては、特別な設定が必要ないものもあります。
以降で、PCやサーバのTCP/IP設定について見ていきましょう。
関連記事
TCP/IPの設定は、ほとんどDHCPによる自動設定です。DHCPの仕組みについて、以下の記事もあわせてご覧ください。
Windows OSでTCP/IP設定を確認するためにipconfigコマンドを使います。ipconfigコマンドについて以下の記事にまとめています。
LinuxでTCP/IP設定を確認するためのコマンドは以下の記事をごらんください。
Ciscoルータ/スイッチで名前解決するための設定について、以下の記事をご覧ください。
IPアドレス/サブネットマスクの設定
TCP/IPでは、必ずIPアドレスを利用して通信します。そのため、PCやサーバには、イーサネットインタフェースなどネットワークインタフェースに必ずIPアドレス/サブネットマスクを設定しなければいけません。
そして、「インタフェースにIPアドレスを設定する」ということは、「ネットワークに(論理的に)接続する」ことに他なりません。インタフェースに設定したIPアドレスとサブネットマスクから、ホストが接続されるネットワークアドレスがわかります。インタフェースにIPアドレスを設定してはじめて、そのインタフェースを通じてIPパケットを送信したり、受信したりできるようになります。
もし、IPアドレスの設定を間違えてしまうと、他のホストからの送信されたIPパケットを正しく受信できなくなります。
また、サブネットマスクの設定を間違えてしまうと、同じネットワークのホストを異なるネットワークとみなしてしまったり、異なるネットワークのホストを同じネットワークとみなしてしまったり、正しく通信できなくなります。
図中の下段のネットワークの認識は、サブネットマスクの設定を間違えているPC1から見た認識です。PC2とPC3はサブネットマスクの設定を間違っていません。PC2とPC3は、PC1~PC3が同じネットワークと認識していることになります。図のPC1は168.1.1~192.168.1.126の範囲のIPアドレスを同じネットワークのIPアドレスとして認識していることになります。
関連記事
デフォルトゲートウェイの設定
デフォルトゲートウェイとは、PC/サーバと同じネットワーク上のルータやレイヤ3スイッチです。デフォルトゲートウェイのIPアドレスとして、同じネットワーク上のルータ/レイヤ3スイッチのIPアドレスを指定します。
ルータやレイヤ3スイッチは、ネットワークの相互接続を行うネットワーク機器です。つまり、ホストが接続されているネットワーク以外のネットワークは、ルータまたはレイヤ3スイッチの向こう側にあります。そのため、デフォルトゲートウェイは他のネットワークの入口にあたり、他のネットワーク宛てのデータは、まず、デフォルトゲートウェイへ転送します。そこで、転送するべきデフォルトゲートウェイのIPアドレスを正しく設定しておかなければいけません。
入口、出口は相対的なものなので、デフォルトゲートウェイは、自分のネットワークからの出口という認識でもOKです。個人的には、「自分のネットワークからの出口」と考えるほうが好きです。
もし、デフォルトゲートウェイの設定を間違えてしまうと、異なるネットワークへの通信が一切できなくなってしまいます。同じネットワークの通信には問題はありません。
デフォルトゲートウェイの設定が正しくても、デフォルトゲートウェイ自体の障害で使えないと、設定が間違っているときと同じ状況になります。デフォルトゲートウェイの障害に対応するためには、デフォルトゲートウェイとなるルータ/レイヤ3スイッチを冗長化してください。そして、その上で、VRRPなどのデフォルトゲートウェイ冗長化のためのプロトコルを利用します。
同じネットワークの通信は問題ないのに、他のネットワークへの通信ができないというときには、デフォルトゲートウェイの設定が正しいかどうか、デフォルトゲートウェイに障害がないかを確認しましょう。
関連記事
デフォルトゲートウェイの詳細について、以下の記事もあわせてご覧ください。
デフォルトゲートウェイの冗長化についての詳細は、以下の記事をご覧ください。
DNSサーバのIPアドレス
TCP/IPの通信には必ずIPアドレスが必要です。ただし、IPアドレスの指定はわかりにくいものです。通常、ユーザにとってIPアドレスを見せずにURLやメールアドレスなどを利用して通信します。URLやメールアドレスなどからIPアドレスを求めるためにDNSサーバに問い合わせて名前解決を行います。DNSサーバのIPアドレスは名前解決のための設定です。
もし、DNSサーバのIPアドレスの設定を間違えると、名前解決ができなくなります。その結果、通信相手のIPアドレスがわからずにデータの送信自体できなくなります。
やはり、DNSサーバ自体の障害があると、DNSサーバの設定を間違えてしまったときと同じ状況になります。DNSサーバの障害に備えて、DNSサーバを冗長化しておきます。そして、ホストでプライマリとセカンダリDNSサーバの設定をしておきます。
図では、DNSサーバは同じネットワーク上となっていますが、必ずしも同じネットワーク上である必要はありません。
まとめ
ポイント
- 通信するための前提
- 経路上の機器間で物理的な信号をやり取りできるようになっていること
- 経路上のすべての機器で正しいTCP/IPの設定(ネットワークの設定)がされていること
- 利用するアプリケーションの設定が正しいこと
- IPアドレス/サブネットマスクを設定することで、「ネットワークに接続」します。IPパケットを送受信するために、IPアドレス/サブネットマスクを正しく設定します。
- 他のネットワーク宛てにデータを転送するためにデフォルトゲートウェイのIPアドレスを正しく設定します。
- 宛先IPアドレスを問い合わせるためにDNSサーバのIPアドレスを正しく設定します。
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 IOS DHCPサーバの設定と確認コマンド
- Ciscoルータ DHCPサーバの設定例
- DHCPリレーエージェント
- DHCPリレーエージェントの設定例[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/11のTFTPクライアント
- ネットワークのトラブルの切り分け手順