情報ネットワーク入門
【対象読者】本資料は,ネットワークの基礎を学ぶ学生および技術者を対象とする.プログラミングの基礎知識があることを前提とするが,ネットワークの事前知識は不要である.
【目次】
1. 序論:情報ネットワークの基本
情報ネットワークとは,複数のコンピュータを相互に接続し,データの送受信を可能にする仕組みである.現代のインターネットは,世界中のネットワークが相互接続された大規模なネットワークである.
専門用語の基本説明
ネットワークの基本概念を身近な例えで説明する.
- 「パケット」とは
- データを小さな単位に分割して送信する仕組みである.
- 例:大きな手紙が投函口に入らない場合に,複数の封筒に分けて送ることに相当する.
- 「プロトコル」とは
- 通信における取り決めやルールのことである.
- 例:電話での「もしもし」から始まる応答手順のような決まり事に相当する.
- 「DNS」とは
- ドメイン名とIPアドレスを対応付けるシステムである.電話帳に例えられる.
- 例:「anthropic.com」という名前を「20.81.111.85」というIPアドレスに変換する.
2. プロトコルとTCP/IP
この章では,ネットワーク通信の基盤となるプロトコルの概念と,標準的な通信プロトコルであるTCP/IPについて説明する.
2.1 基本的な通信の仕組み
LANやインターネットなどのコンピュータネットワークを介して通信を行うためには,通信方式(プロトコル)を定める必要がある.通信を行う機器間で同じプロトコルを使用することにより,OSや機種の違いに関係なく通信が可能になる.
現在,広く使用されているネットワークプロトコルは「TCP/IP(Transmission Control Protocol/Internet Protocol)」である.TCP/IPはUNIXが標準で実装する通信プロトコルであり,インターネットにおける標準的な通信プロトコルでもある.
2.2 TCP/IP系のサービス
TCP/IPネットワークでは,様々な基本サービスが提供されており,これらが現代のインターネットの基盤となっている.
【関連する用語のグループ】
- タイミングサービス(NTP:Network Time Protocol):ネットワーク上の機器間で時刻を同期する
- ファイルサービス(NFS:Network File System):ネットワーク経由でファイルを共有する
- ネームサービス(DNS:Domain Name System):ドメイン名をIPアドレスに変換する
3. IPアドレスとネットワーク構成
この章では,ネットワーク上の機器を識別するIPアドレスの仕組みと,実際のネットワーク構成について説明する.
3.1 IPアドレスの基本
現代のインターネットでは,IPv4とIPv6の2種類のIPアドレスが併用されている.IPv4はアドレス空間の枯渇問題があるため,IPv6への移行が進められている.
IPv4アドレスの基本構成
- 全長は32ビット
- 8ビット×4つのオクテット(8ビットの数値単位,第1オクテットから第4オクテット)で構成
- 各オクテットは0から255の範囲の値をとる
IPv6アドレスの基本構成
- 全長は128ビット
- 16ビット×8つのフィールドで構成
- 各フィールドは16進数4桁で表記し,コロン(:)で区切る
- 表記例:2001:0db8:85a3:0000:0000:8a2e:0370:7334
- 省略表記:連続する0のフィールドは「::」で1回のみ省略可能
- 例:2001:db8::8a2e:370:7334
- 約340澗(約3.4×1038,340兆の1兆倍の1兆倍)個のアドレス空間を持ち,事実上,枯渇の問題が生じない
IPアドレスの管理体系
IPアドレスは,世界規模で一意性を保証するため,階層的な組織によって管理されている.
- IANA(Internet Assigned Numbers Authority)
- インターネット資源を管理する上位組織である
- 現在はICANN(Internet Corporation for Assigned Names and Numbers)の一部門として運営されている
- 地域レジストリ(RIR:Regional Internet Registry)
- 世界に5つ存在する:APNIC,ARIN,RIPE NCC,LACNIC,AFRINIC
- 日本はAPNIC(Asia Pacific Network Information Center)の管轄下にある
- 国別レジストリ(NIR:National Internet Registry)
- 日本ではJPNIC(Japan Network Information Center)が該当する
- ローカルレジストリ(LIR:Local Internet Registry)
- 主にインターネットサービスプロバイダ(ISP)が担当する
例:
バイナリ表記:11000000 00000000 00000010 00000001
10進数表記:192.0.2.1
3.2 実践的なネットワーク構成例
ここでは,家庭や企業で使用されるネットワーク構成の具体例を示す.これらの例を通じて,IPアドレスの割り当て方法や設定項目について理解する.
家庭内LANの構成例
インターネット
↓
ルータ(192.168.0.1)
├── PC1(192.168.0.10)
├── PC2(192.168.0.11)
├── スマートフォン(192.168.0.12)
└── プリンタ(192.168.0.13)
設定すべき項目:
1. 各機器のIPアドレス
2. サブネットマスク(通常255.255.255.0)
3. デフォルトゲートウェイ(ルータのIP)
4. DNS設定(通常ルータのIPか,8.8.8.8など)
社内LANの構成例
IPアドレス: 192.168.1.xxx
サブネットマスク: 255.255.255.0
具体的な割り当て:
- サーバ機: 192.168.1.1(ゲートウェイ)
- プリンタ: 192.168.1.2
- 一般PC: 192.168.1.10 ~ 192.168.1.50
※192.168.1.0(ネットワークアドレス:ネットワーク自体を表す)と
192.168.1.255(ブロードキャストアドレス:全機器への一斉送信用)は
個別の機器には割り当て不可
3.3 サブネットマスク
サブネットマスクは,IPアドレスをネットワーク部とホスト部に分割するための仕組みである.これにより,大きなネットワークを複数の小さなネットワークに分割し,効率的に管理できる.
例:
サブネットマスク:255.255.255.0
バイナリ表記:11111111 11111111 11111111 00000000
この場合:
- 上位24ビット → ネットワーク番号(どのネットワークに属するか)
- 下位8ビット → ホスト番号(ネットワーク内のどの機器か)
3.4 ARPとMACアドレス
MACアドレスの基本
- 定義:LANカードなどのネットワークハードウェアに製造時から付与された固有の識別番号
- 長さ:48ビット
- 形式:XX:XX:XX:XX:XX:XX(XXは16進数2桁)
- 用途:同一ネットワーク内での機器識別に使用される
ARP(Address Resolution Protocol)
ARPは,通信相手のIPアドレスからMACアドレスを取得するためのプロトコルである.同一ネットワーク内で実際にデータを送信するにはMACアドレスが必要となるため,この変換処理が不可欠である.
- 動作:
- 通信先のIPアドレスに対応するMACアドレスを問い合わせる
- 該当機器が自身のMACアドレスを応答する
- ARPテーブルの確認方法:
arp -a # 現在のARPテーブルを表示
ネットワークインターフェースの詳細情報
ネットワークインターフェースの状態を確認することで,接続問題の診断に役立つ.
- 物理アドレス(MACアドレス)
- インターフェースのフラグ(UP:有効,BROADCAST:ブロードキャスト対応,RUNNING:動作中,等)
- パケット統計:
- 送受信(RX/TX)パケット数
- バイト数
- エラー数
- ドロップ数(破棄されたパケット数)
- MTU(Maximum Transmission Unit):1回の通信で送信可能な最大データサイズ
3.5 動的IPアドレス割り当て(DHCP)
DHCPの基本概念
DHCP(Dynamic Host Configuration Protocol)は,ネットワーク内の機器にIPアドレスを自動的に割り当てるプロトコルである.DHCPを使用することで,管理者が各機器に手動でIPアドレスを設定する手間が省け,設定ミスによるアドレス重複も防止できる.
DHCPの動作プロセス
- DHCP Discover:クライアントがネットワーク内のDHCPサーバを探索する
- DHCP Offer:サーバが利用可能なIPアドレスを提示する
- DHCP Request:クライアントが提示されたIPアドレスの使用を要求する
- DHCP Ack:サーバが設定を承認し,クライアントがIPアドレスを使用開始する
DHCPで配布される主な情報
- IPアドレス
- サブネットマスク
- デフォルトゲートウェイ
- DNSサーバアドレス
- リース期間:IPアドレスの有効期限.期限が切れると再取得が必要
3.6 グローバルアドレスとプライベートアドレス
グローバルアドレス
グローバルアドレスは,インターネット上で一意性が保証されたアドレスである.インターネットに直接接続する機器に割り当てられる.
プライベートアドレス
プライベートアドレスは,組織内ネットワークなど閉じた環境で使用するために予約されたアドレスである.インターネット上では使用できないが,異なる組織で同じアドレスを重複して使用できるため,限られたIPv4アドレス空間を節約できる.
- RFC 1918(IPアドレス割り当てに関する技術仕様書)で定義された範囲:
- 10.0.0.0~10.255.255.255(クラスA相当,大規模ネットワーク向け)
- 172.16.0.0~172.31.255.255(クラスB相当,中規模ネットワーク向け)
- 192.168.0.0~192.168.255.255(クラスC相当,小規模ネットワーク向け)
4. 名前解決とDNS
この章では,人間が理解しやすいドメイン名と,コンピュータが使用するIPアドレスを相互に変換する仕組みについて説明する.
4.1 ホスト名とドメイン名
インターネット上のコンピュータを識別する方法として,数値によるIPアドレスと,人間が理解しやすい文字列(ドメイン名)の2つのシステムが存在する.
ドメイン名の基本概念
- インターネット上のリソースを識別するための階層的な名前システムである
- ASCII文字(英数字)とハイフン(-)で構成される
- 大文字と小文字は区別されない
- 全体で253文字以内という制約がある
server.example.university.ac.jp
構成:
- server:ホスト名(個々のコンピュータの名前)
- example.university.ac.jp:ドメイン名(組織を表す)
4.2 ドメイン名の階層構造
ドメイン名は,右から左に向かって,より具体的な組織や部門を表す階層構造になっている.
トップレベルドメイン(TLD)の分類
- gTLD(generic Top Level Domain:分野別トップレベルドメイン)
- 「.com」(企業・商用)
- 「.net」(ネットワーク関連)
- 「.org」(非営利組織)
- ccTLD(country code Top Level Domain:国コードトップレベルドメイン)
- ISO 3166-1(国名コードの国際規格)に基づく2文字の国別コード
- 例:.jp(日本),.uk(イギリス)
完全修飾ドメイン名(FQDN:Fully Qualified Domain Name)の例:
example.university.ac.jp
university.ac.jp
ac.jp
jp
4.3 DNSの仕組み
DNS(Domain Name System)は,インターネット上のドメイン名とIPアドレスを相互に変換するシステムである.階層的な分散データベースとして実装されている.
DNSの不正使用問題と対策
- サイバースクワッティング:悪意のあるドメイン名の先取り登録
- JPドメイン名紛争処理方針(JP-DRP)による対応
- 不正目的の定義:
- 不当な利益を得る目的での転売行為
- 正当な権利者の使用妨害
- 競合他社の事業活動妨害
- 商標権侵害による誤認誘発
5. アプリケーション層プロトコル
この章では,ユーザが直接利用するサービスを提供するプロトコルについて説明する.
主なプロトコル:
- SMTP(Simple Mail Transfer Protocol):電子メールをサーバ間で転送するプロトコル
- SSH(Secure Shell):暗号化された安全な遠隔操作を実現するプロトコル
- SFTP(SSH File Transfer Protocol):SSHを利用した安全なファイル転送プロトコル
- HTTP(Hypertext Transfer Protocol):WebブラウザとWebサーバ間の通信プロトコル
6. ネットワーク操作とトラブルシューティング
この章では,ネットワークの状態を確認し,問題を診断するためのコマンドと手順について説明する.
6.1 基本的な診断コマンド
- ping:指定したホストとの通信が可能かを確認する
ping ホスト名用途:ネットワーク障害時に,どの区間で問題が発生しているかを切り分ける
- ifconfig/ip:自機のネットワーク設定を確認する
ifconfig -a # 全インターフェース表示 ip addr # 新しい形式用途:IPアドレスが正しく設定されているか,インターフェースが有効かを確認する
- traceroute:目的地までの経路を表示する
traceroute ホスト名用途:通信経路上のどのルータで遅延や障害が発生しているかを特定する
- netstat/ss:現在のネットワーク接続状態を表示する
ss -tuln # TCPとUDPの待ち受けポート表示用途:サービスが正しくポートで待ち受けているか,不審な接続がないかを確認する
- nslookup:DNSによる名前解決を確認する
nslookup ホスト名用途:ドメイン名が正しくIPアドレスに変換されるかを確認する
6.2 セキュアなファイル転送(SFTP)
SFTPは,SSHプロトコルを使用した暗号化ファイル転送システムである.通信内容が暗号化されるため,パスワードやファイル内容を第三者に盗聴される危険性を低減できる.
基本的な使用方法
sftp ユーザ名@ホスト名
注意事項:
- 接続先のSSHサーバが稼働している必要がある
- 初回接続時にはサーバの公開鍵の確認を求められる
- 大容量ファイルの転送時は回線状況に注意する
詳細な転送手順例
手順1: SFTP接続
$ sftp user@remote.example.com
(パスワード入力)
手順2: ローカルディレクトリ移動
sftp> lcd ~/documents/reports
手順3: リモートディレクトリ移動
sftp> cd /home/user/uploads
手順4: ファイル転送
sftp> put important_doc.pdf
手順5: 転送確認
sftp> ls -l important_doc.pdf
手順6: 接続終了
sftp> bye
主要SFTPコマンド
- pwd/lpwd:リモート/ローカルの現在のディレクトリを表示
- cd/lcd:リモート/ローカルのディレクトリを移動
- ls/lls:リモート/ローカルのファイル一覧を表示
- put:ローカルからリモートへファイルをアップロード
- get:リモートからローカルへファイルをダウンロード
- help:利用可能なコマンド一覧を表示
6.3 トラブルシューティング
ネットワーク障害が発生した際は,以下の手順で原因を切り分ける.
問題1:「ping: unknown host example.com」
原因:DNSによる名前解決ができていない
対処:
1. DNS設定の確認
$ cat /etc/resolv.conf
2. IPアドレス直接指定で疎通確認(DNS以外の問題かを切り分け)
$ ping 8.8.8.8
問題2:「Connection refused」
原因:接続先でサービスが起動していないか,接続が拒否されている
対処:
1. サービスの稼働状況を確認
$ systemctl status sshd
2. ファイアウォールの設定を確認
$ sudo iptables -L
問題3:「Permission denied」
原因:ファイルやディレクトリへのアクセス権限がない
対処:
1. 現在の権限を確認
$ ls -l filename
2. 実行ユーザを確認
$ whoami
3. 必要に応じて権限を変更(管理者権限が必要な場合あり)
$ chmod 644 filename
付録:技術用語リスト
本資料で使用した技術用語をカテゴリ別にまとめる.
ネットワーク基本概念
- LAN(Local Area Network):建物内など限られた範囲のネットワーク
- インターネット:世界規模で相互接続されたネットワーク
- プロトコル:通信を行うための規約や手順
- パケット交換:データを小さな単位に分割して転送する方式
プロトコル関連
- TCP/IP:インターネットの標準通信プロトコル
- IPv4:32ビット長のIPアドレス体系
- IPv6:128ビット長のIPアドレス体系
セキュリティ関連
- 公開鍵暗号:暗号化と復号に異なる鍵を使用する暗号方式
- SSH:暗号化された安全な遠隔操作プロトコル
- SFTP:SSHを利用した暗号化ファイル転送プロトコル