基本情報のネットワーク分野は実務でどう役立つ?IPアドレス・DNS・ルーティングのつながり
基本情報技術者試験のネットワーク分野を勉強していると、IPアドレス、DNS、ルーティングといった言葉が次々に出てきます。
用語の意味は何となく覚えた。でも、これが実際の仕事でどう使われるのかは、いまひとつ見えない。
そんなふうに感じていませんか?
ネットワーク分野は、暗記科目のように見えやすいです。
しかし実務では、Webサイトが開かない、サーバーに接続できない、特定の環境だけ通信できないといった問題を切り分けるための土台になります。
私はエンジニアとして10年以上、Webサービスの開発やサーバー構築、障害対応に関わってきました。
その中で何度も感じたのは、IPアドレス・DNS・ルーティングを別々に覚えるだけでは、実務で使える知識になりにくいということです。
この3つは、一本の通信の流れとしてつながっています。
この記事では、ブラウザにURLを入力してWebサイトが表示されるまでを追いながら、基本情報のネットワーク知識が実務でどう役立つのかを初心者向けに解説します。
基本情報のネットワーク分野は実務でも役立つ¶
先に結論からお伝えします。
基本情報技術者試験のネットワーク分野は、インフラエンジニアだけでなく、Webエンジニアや社内SE、クラウドを扱う人にも役立ちます。
試験に合格しただけでネットワークを構築できるわけではありませんが、通信を確認する順番や、障害が起きそうな場所を考えるための地図は手に入ります。
IPAが公開している基本情報技術者試験のシラバスでも、ネットワーク分野にはIPアドレス、サブネットマスク、ルーティング、DNS、TCP・UDP、HTTPなどが含まれています。
さらに、ping、ip、dig、tracerouteといったネットワーク運用管理ツールも用語例として挙げられています。
試験で学ぶ知識と、現場で入力するコマンドは、思っているより近いところにあるのです。
試験では用語を問われ、実務では原因を問われる¶
試験問題では、DNSの役割やルータの働き、サブネットマスクの計算などを問われます。
一方の実務では、目の前で起きている通信障害の原因を考えます。
両者の違いを整理すると、次のようになります。
| 基本情報で学ぶ内容 | 試験で確認されること | 実務で役立つ場面 |
|---|---|---|
| IPアドレス | アドレスの役割、ネットワーク部とホスト部 | 接続先や自分の端末を確認する |
| サブネットマスク | 同じネットワークかどうか | 通信できる範囲や設計ミスを確認する |
| DNS | ドメイン名をIPアドレスへ変換する仕組み | 名前解決できない障害を調べる |
| ルーティング | 宛先へ転送する経路の仕組み | 別ネットワークやインターネットへ出られない原因を調べる |
| TCP・UDP | 通信方式の特徴 | 接続確認やポート設計に使う |
| HTTP・HTTPS | Web通信の仕組み | Webサーバーや証明書の問題を切り分ける |
試験では正しい選択肢を選び、実務では複数の可能性を一つずつ消します。
基本情報で覚えた用語が、その切り分けの見出しになります。
IPアドレス・DNS・ルーティングは一本の流れで考える¶
3つの用語を別々のページで覚えると、頭の中でつながりません。
そこで、ブラウザからWebサイトへアクセスする場面を一緒に追ってみましょう。
たとえば、ブラウザに次のURLを入力したとします。
https://giji-academy.com/
この短い操作の裏側では、ざっくり次の処理が行われます。
| 順番 | 起きていること | 関係する知識 |
|---|---|---|
| 1 | ドメイン名から接続先を調べる | DNS |
| 2 | 接続先のIPアドレスが決まる | IPアドレス |
| 3 | 自分と宛先が同じネットワークか判断する | IPアドレス・サブネットマスク |
| 4 | 別ネットワークならルータへ渡す | デフォルトゲートウェイ |
| 5 | ルータが経路を選びながら転送する | ルーティング |
| 6 | WebサーバーとHTTPSで通信する | TCP・TLS・HTTP |
DNSが住所を調べ、IPアドレスが相手を示し、ルーティングがそこまでの道を選ぶと考えると整理しやすいです。
IPアドレスは通信相手を特定する住所¶
まずはIPアドレスです。
IPアドレスは、ネットワーク上で端末やサーバーを識別するための番号です。
IPアドレスだけではなく所属するネットワークも見る¶
IPアドレスは端末についた番号として覚えがちですが、実務では、その端末がどのネットワークに所属しているかも確認します。
たとえば、次の2台があるとします。
PC-A: 192.168.10.20/24
PC-B: 192.168.10.50/24
/24は、先頭から24ビットがネットワーク部分であることを表します。
この場合、どちらも192.168.10.0/24という同じネットワークに所属しています。
では、PC-Bが次のアドレスだったらどうでしょうか。
PC-B: 192.168.20.50/24
今度は所属するネットワークが異なります。
直接同じLAN内へ送るのではなく、通常はルータへ渡して別のネットワークへ転送してもらいます。
サブネットマスクは計算問題のためだけではなく、通信相手が同じネットワークにいるのか、ルータの先にいるのかを判断するために使います。
実務では最初に自分のIPアドレスを確認する¶
サーバーに接続できないとき、私はまず複雑な原因を考えません。
最初に、自分の端末や対象サーバーに想定どおりのIPアドレスが設定されているかを確認します。
Linuxでは、次のコマンドが使えます。
ip addr
ルーティング情報も含めて確認したい場合は、次のコマンドを使います。
ip route
Windowsでは、次のコマンドが定番です。
ipconfig
設定したつもりでも、別のネットワークインターフェースを見ていたり、DHCPで違うアドレスが設定されていたりします。
実務では、現在の状態を正しく確認することが大切です。
DNSは人が使う名前をIPアドレスへ変換する¶
続いてDNSです。
DNSは、giji-academy.comのようなドメイン名を、通信に使うIPアドレスへ変換する仕組みです。
DNSはインターネットの電話帳に近い¶
人間は、数字のIPアドレスを何個も覚えるのが得意ではありません。
そこで、覚えやすいドメイン名を使い、DNSに対応するIPアドレスを問い合わせます。
DNSは電話帳にたとえられます。
名前から電話番号を調べるように、ドメイン名から接続先のIPアドレスを調べます。実際には階層的に管理され、キャッシュも使われます。
IPアドレスでは通信できるのにドメイン名では失敗する¶
DNSの知識が実務で特に役立つのは、次のような状況です。
IPアドレスを指定すると接続できる
ドメイン名を指定すると接続できない
この場合、通信経路は通っていても、DNS設定やレコードに問題があるかもしれません。
LinuxやmacOSでは、次のように確認できます。
dig giji-academy.com
環境によっては、次のコマンドも使えます。
nslookup giji-academy.com
ここで期待するIPアドレスが返るかを確認します。
返らない場合は、いきなりWebサーバーを再起動するのではなく、まず名前解決の問題として切り分けられます。
私が実務で何度も見たDNSの落とし穴¶
エンジニア歴10年の中で、DNSが原因のトラブルは何度も経験しました。
新しいサーバーへ切り替えたのに古いIPアドレスへ接続される、設定したレコードが反映されない、一部の環境だけ古い情報を参照するといったケースです。
原因はレコードの設定ミスだけでなく、TTLや端末のキャッシュ、社内DNS、CDNなど複数の層にあります。
DNSは暗記で終わらせず、どの名前が、どのIPアドレスへ変換されたのかを確認する習慣をつけてください。
ルーティングは目的地までの道を選ぶ仕組み¶
IPアドレスがわかっても、パケットが自動的に相手へ届くわけではありません。
別のネットワークへ届けるには、ルータが経路を判断して転送します。
ルータは宛先ごとに次の行き先を決める¶
ルータは、ルーティングテーブルを見て、宛先へ送るための次の転送先を決めます。
宅配便が複数の拠点を経由するイメージに近いです。
Linuxでは、次のコマンドで経路情報を確認できます。
ip route
表示例は次のようになります。
default via 192.168.10.1 dev eth0
192.168.10.0/24 dev eth0 proto kernel scope link
2行目は同じネットワークへ直接送り、1行目はそれ以外を192.168.10.1へ渡す設定です。
この転送先がデフォルトゲートウェイです。
デフォルトルートがなければ外へ出られない¶
同じネットワーク内のサーバーには接続できる。
しかし、インターネット上のサイトには接続できない。
このような場合は、デフォルトルートが設定されているか、ゲートウェイまで到達できるかを確認します。
経路を調べるには、次のコマンドも役立ちます。
traceroute giji-academy.com
Windowsでは、次のコマンドです。
tracert giji-academy.com
通信がどのルータを経由しているかを確認できます。
途中の機器が応答を返さない場合もあるため、アスタリスクだけで障害と断定しないようにしましょう。
3つの知識を使って通信障害を切り分ける¶
ここまでの内容を、実務の障害対応へつなげてみましょう。
Webサイトが開かないときに、私は最初から原因を一つに決めつけません。
上からではなく下から順番に確認する¶
確認の仕方はいくつかありますが、初心者は次の順番で進めると整理しやすいです。
| 確認すること | コマンド例 | わかること |
|---|---|---|
| IPアドレスが設定されているか | ip addr |
自分の端末やサーバーの状態 |
| ルートが設定されているか | ip route |
同一ネットワーク外へ出る経路 |
| ゲートウェイへ届くか | ping 192.168.10.1 |
LAN内の基本的な通信 |
| 外部IPへ届くか | ping 8.8.8.8 |
インターネットへの経路 |
| 名前解決できるか | dig example.com |
DNSの状態 |
| 経路の途中を確認する | traceroute example.com |
どこを経由しているか |
| Webポートへ接続できるか | curl -I https://example.com |
HTTP・HTTPSの応答 |
一つずつ確認すると、問題の範囲を狭められます。
外部IPには届くのにドメイン名だけ失敗するならDNSを疑い、ゲートウェイにも届かないならIP設定やLAN、ルータを先に確認します。
擬似言語の条件分岐と障害対応は似ている¶
実は、この切り分けは擬似言語のif文に似ています。
条件を上から確認し、どこまで成功して、どこから失敗したのかを追うからです。
もし IPアドレスが設定されていない なら
IP設定を確認する
そうでなく、ゲートウェイに到達できない なら
LANやルータを確認する
そうでなく、名前解決できない なら
DNSを確認する
そうでなく、Webへ接続できない なら
ポートやWebサーバーを確認する
処理を順番に追う力は、障害対応で可能性を一つずつ消すときにも使えます。
条件分岐の読み方に不安がある方は、擬似言語のifで迷子になる人へ。条件分岐をスラスラ追う読み方も確認してみてください。
基本情報の知識はAWSでもそのまま登場する¶
ネットワークの知識は、AWSなどのクラウドでも使います。
VPCとサブネットにもIPアドレスの設計がある¶
AWSでは、VPCという仮想ネットワークを作成します。
その中を複数のサブネットに分け、EC2などのリソースへIPアドレスを割り当てます。
たとえば、VPCを10.0.0.0/16として、次のように分割できます。
パブリックサブネット: 10.0.1.0/24
プライベートサブネット: 10.0.2.0/24
ここでも、基本情報で学ぶネットワーク部、ホスト部、サブネットマスクの考え方が使われます。
AWSのルートテーブルも考え方は同じ¶
AWSには、サブネットの通信先を決めるルートテーブルがあります。
インターネットへ公開する構成では、たとえば0.0.0.0/0宛ての通信をインターネットゲートウェイへ向けます。
送信先: 0.0.0.0/0
ターゲット: インターネットゲートウェイ
これはLinuxのデフォルトルートと同じく、宛先ごとの次の行き先を決める仕組みです。
試験のサブネットやルーティングを学んだあとに読むと、知識が実際のクラウド構成へつながりやすくなります。
AWSを学習したい方はこちらのAWS入門講座がおすすめです。
基本情報の勉強を実務につなげる学習方法¶
実務につなげたいなら、読む、確認する、構築するの3段階で進めるのがおすすめです。
まずは用語同士を線で結ぶ¶
IPアドレス、DNS、ルーティングを一語ずつ暗記するのではなく、通信の順番に並べてください。
ブラウザへURLを入力したらDNSでIPアドレスを調べ、ルーティングによってWebサーバーまで届ける。この一本の流れを説明できれば、理解はかなり深まっています。
基本情報技術者試験の全体的な勉強方法に迷っている方は、基本情報技術者試験は文系でも合格できる?初心者向けの勉強法も参考にしてください。
次に自分の端末でコマンドを試す¶
コマンドは暗記するものではなく、自分のIPアドレスやDNSの結果、通信経路を観察する道具です。
まずは、次の4つだけでも構いません。
ip addr
ip route
dig giji-academy.com
traceroute giji-academy.com
Linux環境がなければ、Windowsのipconfig、nslookup、tracertから始めても大丈夫です。
最後にネットワークを自分で構築する¶
PC、スイッチ、ルータを配置し、別ネットワーク間で通信させると、ルーティングの意味が具体的になります。
InfraAcademyでは、Linuxやネットワーク、AWSなどを実践的に学べます。
シミュレーターを使って、ハンズオン形式で学ぶことができます。
まとめ:ネットワーク知識は通信を追うための地図になる¶
IPアドレス、DNS、ルーティングは、別々の暗記項目ではありません。
DNSがドメイン名からIPアドレスを調べ、ルーティングが目的地までパケットを運びます。
実務で通信できないときは、この流れを逆向きに確認します。
IPアドレスは正しいか、ルートはあるか、ゲートウェイへ届くか、DNSで名前解決できるか、Webサーバーは応答するかと順番に調べます。
私もエンジニアとして障害対応をするとき、最初から難しい原因を当てようとはしません。
基本的な項目を一つずつ確認し、問題が起きている範囲を狭めます。
基本情報のネットワーク分野は実務の完成形ではありませんが、通信を理解し、LinuxやAWSを学ぶための地図になります。
まずはGiji Academyで基本情報の科目Bも含めて学習を進めてください。
そのうえで、ネットワークを実際に構築したくなったら、インフラ学習サイトInfraAcademyで手を動かしてみましょう。
知識が画面の中で動いた瞬間、ネットワークは暗記科目ではなくなります。