SysAdminのための基本的なネットワーク知識:IP、サブネット、ゲートウェイ – 不可欠な基盤

Network tutorial - IT technology blog
Network tutorial - IT technology blog

SysAdminの第一歩:なぜIP、サブネット、ゲートウェイを習得する必要があるのか?

SysAdminとしての道を歩み始めた頃、ネットワーク知識への多くのアプローチに迷いました。「マニュアル通りにやればいい」と言う人もいれば、「マシンのIPさえ知っていれば十分だ」と助言する人もいました。しかし、50人規模のオフィスと小さなデータセンターのネットワークを長年管理してきた結果、IP、サブネット、ゲートウェイについて深く理解することが、安定したシステム運用に不可欠な基盤であると気づきました。

新人向けのネットワーク知識習得方法の比較

新人SysAdminが基本的なネットワーク知識にアプローチする際、主に3つのタイプを見かけます。

  1. タイプ1:「インスタント」学習 – 既存のマニュアルに従って設定。
    • 利点: 単純なタスクを迅速に展開できます。
    • 欠点: 本質を理解していないため、問題発生時や環境変化時にトラブルに巻き込まれやすいです。未知のエラーに遭遇すると、完全に手詰まりになります。
  2. タイプ2:「少しかじった」学習 – 概念は理解しているが、深掘りできていない。
    • 利点: システムがどのように動作するかを部分的に理解でき、基本的な設定には自信を持てます。
    • 欠点: コンポーネント間の相互作用について依然として曖昧で、最適化や複雑な問題の処理が困難です。例えば、IPがマシンのアドレスであることは知っていても、サブネットマスクが何のためにあるのかと聞かれると口ごもってしまいます。
  3. タイプ3:「根幹まで」学習 – 本質と動作原理をしっかり理解。
    • 利点: 各ビット、各パケットの流れを詳細に理解できます。自身でネットワークを設計し、最適化、セキュリティ強化、そして最も重要な効果的なトラブルシューティングと解決を行う能力を身につけます。これは、「できる」SysAdminと「深く理解している」SysAdminの違いを生み出すものです。
    • 欠点: 初期学習に多くの時間と労力を要します。

プロのSysAdminになるためにはどの学習方法を選ぶべきか?

個人的な経験から、タイプ3の学習がSysAdminとして盤石なキャリアを築く上で鍵となる要素であると断言できます。特に、50人のユーザーを抱えるオフィスやデータセンター内の多数のサーバーといった実際の職場環境では、IP、サブネット、ゲートウェイの動作原理を明確に理解していなければ、多くの深刻なネットワーク問題に直面するでしょう。

これらの問題には、インターネットにアクセスできないコンピューター、接続が切断されたサーバー、さらにはセキュリティの脆弱性などが含まれます。原理を理解していなければ、問題を解決することはできません。

それでは、各概念を詳しく掘り下げて、それらがどのように機能するのかを理解していきましょう。

1. IPアドレス:すべてのデバイスのユニークな識別子

ネットワークに接続する各デバイス(コンピューター、サーバー、電話、ルーター、プリンターなど)は、他のデバイスがそれを「見つけ」、データを送信できるように、一意のアドレスを必要とします。それがIPアドレス (Internet Protocol Address)です。

IPv4とIPv6 – 基本的な違い

  • IPv4 (Internet Protocol version 4): 現在最も普及しているバージョンで、ドットで区切られた4つの10進数グループ(例:192.168.1.10)の形式を取ります。各グループの数値は0から255の範囲です。合計で約43億のIPv4アドレスが存在しますが、これらは徐々に枯渇しつつあります。
  • IPv6 (Internet Protocol version 6): IPv4のアドレス枯渇問題を解決するために開発されました。IPv6はより長く(例:2001:0db8:85a3:0000:0000:8a2e:0370:7334)、ほぼ無限のアドレス空間を提供します。ただし、この記事では、多くの企業ネットワークの基盤であり、新人SysAdminにとって最も基本的なものであるIPv4に焦点を当てます。

パブリックIPとプライベートIP – 内部ネットワークとインターネットの境界線

  • プライベートIP (Private IP Address): あなたの内部ネットワーク(LAN)で使用されるアドレスです。一般的なプライベートIPアドレス帯:
    • 10.0.0.0 から 10.255.255.255 (Class A)
    • 172.16.0.0 から 172.31.255.255 (Class B)
    • 192.168.0.0 から 192.168.255.255 (Class C)

    内部ネットワーク内のデバイスはプライベートIPを使って相互に通信できます。これらのアドレスはインターネットから直接アクセスすることはできません。あなたのルーターは、インターネットにアクセスする際にプライベートIPをパブリックIPに変換するためにNATを実行します。

  • パブリックIP (Public IP Address): このアドレスは、インターネットサービスプロバイダー(ISP)によってあなたのネットワークに割り当てられます。これは全世界で一意であり、あなたのデバイス(ルーター経由)がインターネットに接続し、表示されることを可能にします。

実例:Linuxで自分のマシンのIPを確認する

LinuxでインターフェースのIPアドレスを知るには、ip aコマンド(または、慣れていない場合はifconfig)を使用します。


# すべてのインターフェースを確認
$ ip a

# 結果は次のようになる場合があります。
# 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
#     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
#     inet 127.0.0.1/8 scope host lo
#        valid_lft forever preferred_lft forever
# 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
#     link/ether 00:0c:29:1d:2a:13 brd ff:ff:ff:ff:ff:ff
#     altname enp0s25
#     inet 192.168.1.10/24 brd 192.168.1.255 scope global dynamic ens33
#        valid_lft 42805sec preferred_lft 42805sec
#     inet6 fe80::20c:29ff:fe1d:2a13/64 scope link 
#        valid_lft forever preferred_lft forever

# ここでは、「inet 192.168.1.10/24」がens33インターフェースのIPv4アドレスです。
# 「/24」はサブネットマスクの一部であり、これについてはすぐに学習します。

仕事を始めたばかりの頃、私はコンピューターが接続するにはIPを知っているだけで十分だと考えていました。しかし、オフィスでネットワーク障害が発生し、IPがあるにもかかわらずマシン同士が「見えなく」なった時、IPは話の半分に過ぎないということに愕然としました。

2. サブネットマスクとサブネット化:より良い管理のためにネットワークを分割する

サブネットマスク (Subnet Mask) はIPアドレスの不可欠な一部であり、IP内でどの部分がネットワークアドレス (Network ID) で、どの部分がホストID (Host ID) であるかを識別するために使用されます。言い換えれば、同じサブネット内の「隣人」が誰であるかをコンピューターが知るのに役立ちます。

なぜサブネット化が必要なのか?

サブネット化 (Subnetting) は、大規模なネットワークを複数の小さなサブネットワークに分割するプロセスです。このプロセスには多くの利点があります。

  • 効率的な管理: ネットワークをより小さなセグメントに分割することで、デバイスグループの管理が容易になります(例:経理部門、IT部門、サーバーファームエリア用のプライベートネットワークを作成する)。
  • セキュリティの強化: デバイスグループを分離し、攻撃やネットワーク障害の拡散を制限します。
  • ブロードキャストトラフィックの削減: 各サブネットワークは独自のブロードキャストドメインを持ち、ネットワーク全体のブロードキャストトラフィックを大幅に削減します。
  • IPアドレスの節約: IPアドレスの割り当てを最適化し、無駄をなくします。

サブネットマスクの動作原理(簡単な説明)

サブネットマスクも(IPv4の場合)32ビットアドレスですが、IPとは異なり、連続する1ビットの列と、それに続く連続する0ビットの列で構成されています。

  • 1ビットの部分はネットワークIDに対応します。
  • 0ビットの部分はホストIDに対応します。

IPアドレスとサブネットマスクの間で論理AND演算を実行すると、そのサブネットワーク全体を表すアドレスであるネットワークアドレス (Network Address) が結果として得られます。

例:

  • IPアドレス: 192.168.1.10
  • サブネットマスク: 255.255.255.0

2進数表記:

  • IP: 11000000.10101000.00000001.00001010
  • サブネットマスク: 11111111.11111111.11111111.00000000
  • 結果 (ネットワークアドレス): 11000000.10101000.00000001.00000000 (つまり 192.168.1.0)

同じネットワークアドレス(ネットワークアドレス部分が同じ)を持つすべてのデバイスは、同じサブネットワーク内に存在し、直接通信できます。

CIDR (Classless Inter-Domain Routing) 表記法

255.255.255.0のような冗長なサブネットマスクの表記の代わりに、CIDR (Classless Inter-Domain Routing) 表記法が使用されます。これはスラッシュ (/) の後に続く整数で、サブネットマスク内の1ビットの数を示します。

  • /24255.255.255.0 と同等 (24個の1ビット)
  • /16255.255.0.0 と同等 (16個の1ビット)
  • /8255.0.0.0 と同等 (8個の1ビット)

サブネット内の重要なコンポーネント

  • ネットワークアドレス: サブネットの最初のアドレスで、すべてのホストIDビットが0です。(例: 192.168.1.0/24)
  • ブロードキャストアドレス: サブネットの最後のアドレスで、すべてのホストIDビットが1です。サブネットワーク内のすべてのデバイスにメッセージを送信するために使用されます。(例: 192.168.1.255/24)
  • ホスト範囲: サブネットワーク内のデバイスで利用可能なIPアドレス (ネットワークアドレス + 1 からブロードキャストアドレス – 1まで)。(例: /24の場合、192.168.1.1 から 192.168.1.254まで)

例:サブネットの分析

IP 192.168.10.50/27を持っていると仮定します。このサブネットのパラメータを分析してみましょう。


# これは実行するコードではなく、計算例です。

# IP: 192.168.10.50
# Subnet Mask: /27 (27個の1ビット)
# => 11111111.11111111.11111111.11100000 (255.255.255.224)

# 最後のオクテットの2進数:
# IP Octet 4: 50 = 00110010
# Mask Octet 4:   = 11100000

# 論理AND演算:
# Network ID Octet 4: 00100000 (32)
# Host ID Octet 4:    00000010 (2)

# よって:
# Network Address: 192.168.10.32
# Broadcast Address: 192.168.10.63 (すべてのホストIDビットが1:00111111)
# 利用可能なホスト数: (2^(32-27)) - 2 = 2^5 - 2 = 32 - 2 = 30 hosts
# Host Range: 192.168.10.33 - 192.168.10.62

以前、同僚がクライアントマシン群のサブネットマスクを/24から/27に誤って設定したことがありました。その結果、マシンが同じサブネット内のゲートウェイを「見つけられなく」なったため、部門全体がネットワーク接続を失いました。サブネットをしっかり理解することは、このような基本的で非常に煩わしいエラーを避けるのに役立ちます。

3. ゲートウェイ:外部世界への扉

ゲートウェイ(デフォルトゲートウェイまたは接続ポート)は、あなたのネットワーク内のデバイスがすべてのパケットを送信するデバイス(通常はルーター)のIPアドレスです。これは、デバイスが現在のサブネットワーク外にあるデバイスと通信したい場合に発生します。言い換えれば、ゲートウェイは、LAN内のデバイスがインターネットや他のサブネットワークにアクセスするのを助ける「扉」です。

デフォルトゲートウェイ – 唯一の出口

サブネットワーク内の各デバイスは、デフォルトゲートウェイのアドレスを知っている必要があります。あるコンピューターが、そのサブネットワーク内ではないIPアドレス(IPとサブネットマスクの演算に基づいて)にデータを送信したい場合、そのパケットは自動的にデフォルトゲートウェイに送信されます。その後、ゲートウェイがそのパケットを宛先にルーティングする役割を担います。

実例:Linuxでデフォルトゲートウェイを確認する

Linuxマシンのデフォルトゲートウェイを確認するには、ip route showコマンドまたはroute -nコマンドを使用できます。


# ルーティングテーブルを確認
$ ip route show

# 結果は次のようになる場合があります。
# default via 192.168.1.1 dev ens33 proto dhcp metric 100 
# 192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.10 metric 100 

# 最初の行「default via 192.168.1.1 dev ens33」は私たちに示しています
# デフォルトゲートウェイが192.168.1.1であり、ens33インターフェースを介してアクセスされることを。

# またはroute -nコマンドを使用(古いですが、まだ役立ちます)
$ route -n

# 結果:
# Kernel IP routing table
# Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
# 0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 ens33

# Destinationが0.0.0.0の行がデフォルトゲートウェイであり、
# アドレスは192.168.1.1です。

私のデータセンターでは、サーバーは多くの場合、複数のネットワークインターフェースと、それぞれの目的(例えば、管理ネットワーク用のゲートウェイ、データネットワーク用のゲートウェイなど)に応じた複数のゲートウェイを持っています。サーバー上でゲートウェイを誤って設定すると、外部サービスやインターネットへの接続を失う可能性があります。この場合の障害診断には、ゲートウェイを通過するパケットの流れを明確に理解している必要があります。

実践:LinuxでIP、サブネット、ゲートウェイを静的に設定する

サーバー環境では、IPアドレスが変更されず、管理が容易であることを保証するために、DHCPではなく静的IPを設定することがよくあります。以下に、Linuxシステム(例:Ubuntu ServerまたはCentOS/RHEL)で一時的(再起動まで)または永続的に静的IPを設定する方法を示します。

一時的な設定(ipコマンドを使用)

これはIPを設定する最も速い方法で、テストやトラブルシューティングに適しています。これらの設定は、マシンの再起動時に失われます。


# インターフェースがens33であると仮定します。
# 1. IPアドレスとサブネットマスクを割り当てる
# ip addr add [IP_Address]/[CIDR_Mask] dev [Interface_Name]
$ sudo ip addr add 192.168.1.100/24 dev ens33

# 2. デフォルトゲートウェイを設定する
# ip route add default via [Gateway_IP] dev [Interface_Name]
$ sudo ip route add default via 192.168.1.1 dev ens33

# 3. インターフェースをアクティブにする (UPでない場合)
$ sudo ip link set ens33 up

# 設定を再度確認する
$ ip a show ens33
$ ip route show

永続的な設定(Ubuntu/DebianのNetplanの例)

最新のDebian/Ubuntuシステムでは、Netplanがネットワーク設定の主要ツールです。/etc/netplan/ディレクトリ内の.yamlファイルを編集します。


# Netplan設定ファイルを開く (ファイル名は異なる場合があります。例: 00-installer-config.yaml)
# $ sudo nano /etc/netplan/00-installer-config.yaml

# 次のように内容を追加または編集します。
network:
  version: 2
  renderer: networkd
  ethernets:
    ens33: # あなたのインターフェース名
      dhcp4: no # DHCPv4を無効にする
      addresses: [192.168.1.100/24] # IPアドレスとCIDRマスク
      routes:
        - to: default # これがデフォルトゲートウェイです
          via: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4] # DNSサーバー

ファイルを編集したら、設定を適用します。


$ sudo netplan apply

CentOS/RHELシステムでは、/etc/sysconfig/network-scripts/内の設定ファイル(例:ifcfg-ens33)を編集するか、nmcliを使用します。

まとめ

IP、サブネット、ゲートウェイは、単に教科書の無味乾燥な用語ではありません。これらはすべてのコンピューターネットワーク活動の基盤です。SysAdminとして、これらの隅々まで理解することは、小規模オフィスであろうと複雑なデータセンターであろうと、ネットワークシステムの構築、管理、トラブルシューティングにおいて、はるかに自信を持つ助けとなります。時間をかけて実践し、深く理解することをためらわないでください。それはあなたのキャリアにとって価値ある投資となるでしょう。

Share: