05. Ubuntu Server のネットワークの基礎:包括的ガイド

ネットワークはサーバー管理の基本的な側面であり、特に Ubuntu Server を使用する場合は重要です。クラウド環境でサーバーをセットアップする場合でも、オンプレミスのインフラストラクチャを管理する場合でも、ネットワーク インターフェースの構成方法、静的 IP アドレスの割り当て、ネットワーク サービスの管理、接続の問題のトラブルシューティング方法を理解することは非常に重要です。このガイドでは、Ubuntu Server におけるネットワークの基本について説明します。取り上げる内容は、Netplan(Ubuntu 22.04 の既定のネットワーク構成ツール)の使用、cloud-init によって生成された構成の処理、ネットワーク サービスの管理、一般的な問題のトラブルシューティングです。


前の記事:

01. Ubuntu Server 入門 – SysOSX: AI & Cloud

02. 初めての Ubuntu Server のセットアップ方法:初心者ガイド – SysOSX: AI & Cloud

03. Ubuntu Server のための Linux コマンドラインを極める – SysOSX: AI & Cloud

04. Ubuntu Server のユーザーと権限の管理:包括的ガイド – SysOSX: AI & Cloud



1. Ubuntu Server におけるネットワークの概要

Ubuntu Server は Netplanを Ubuntu 17.10 以降の既定のネットワーク構成ツールとして使用しています。Netplan は、YAML ファイルを使用してネットワーク構成を定義するプロセスを簡素化します。Ubuntu Server 22.04 では、systemd-networkdがネットワーク管理のための既定のバックエンド サービスであり、NetworkManagerは通常、デスクトップ環境や、高度なネットワーク管理を必要とする特定のサーバー構成で使用されます。

既定のネットワーク バックエンド

  • Ubuntu Server 22.04:systemd-networkdを既定のネットワーク サービスとして使用します。
  • Ubuntu Desktop 22.04:NetworkManagerを既定のネットワーク サービスとして使用します。

Ubuntu Desktop を使用している場合、または Ubuntu Server に NetworkManagerを手動でインストールした場合は、それを使用してネットワーク インターフェースを管理できます。ただし、NetworkManagerは既定では Ubuntu Server エディションにインストールされていません。


2. Netplan によるネットワーク インターフェースの構成(Cloud-Init の更新)

クラウド環境では、Netplan 構成ファイルの名前は通常/etc/netplan/50-cloud-init.yamlです。このファイルはcloud-initによって生成され、cloud-init のネットワーク構成機能を無効にしない限り、変更はインスタンスの再起動後も保持されません。

Cloud-Init のネットワーク構成を無効にする

cloud-init のネットワーク構成機能を無効にするには、次の場所にファイルを作成します。/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg:

sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

次の内容を追加します。

network: {config: disabled}

cloud-init のネットワーク構成を無効にした後、永続的な Netplan 構成ファイルを手動で作成および管理できます。


例:Netplan による静的 IP アドレスの構成

Netplan 構成ファイルが/etc/netplan/50-cloud-init.yamlの場合は、それを直接変更するか、新しい構成ファイル(例:/etc/netplan/01-netcfg.yaml)を作成して、設定を永続化できます。

  • Netplan 構成ファイルを開きます。
sudo nano /etc/netplan/50-cloud-init.yaml
  • 静的 IP アドレスを設定するために内容を変更します。
network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      addresses:
        - 192.168.1.100/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
  • eth0:ネットワーク インターフェースの名前に置き換えます(ip aを使用してインターフェースを一覧表示します)。
  • addresses:静的 IP アドレスを割り当てます。
  • routes:
    • to: default:既定のルートを指定します。
    • via: 192.168.1.1:ゲートウェイ アドレスを定義します。
  • nameservers:DNS サーバーを指定します。
  • 構成を適用します。
sudo netplan apply
  • 構成を確認します。
ip a

3. 静的 IP アドレスの設定

Netplan が推奨されるツールではありますが、静的 IP アドレスを手動で構成することもできます。古い Ubuntu バージョンで使用されていた/etc/network/interfacesやコマンド ライン ツールを使って手動で構成できます。

ip コマンドの使用

ipコマンドは、ネットワーク インターフェースを管理するための汎用的なツールです。以下は、静的 IP アドレスを一時的に割り当てる例です。

sudo ip addr add 192.168.1.100/24 dev eth0
sudo ip route add default via 192.168.1.1
  • ip addr add: ネットワーク インターフェースに IP アドレスを割り当てます。
  • ip route add:既定のゲートウェイを設定します。

注:これらの変更は一時的であり、再起動後に失われます。永続的な構成には Netplan を使用します。


4. ネットワーク サービスの管理

Ubuntu は systemd-networkdをサーバー環境の既定のネットワーク サービスとして使用しています。このサービスを効果的に管理することは、安定したネットワーク接続を確保するために重要です。

ネットワーク サービスの状態を確認する

ネットワーク サービスの状態を確認するには、次のコマンドを使用します。

sudo systemctl status systemd-networkd

これにより、現在の状態とsystemd-networkdサービスに関連するエラーが表示されます。

ネットワーク サービスを再起動する

構成を変更した後にネットワーク サービスを再起動する必要がある場合:

sudo systemctl restart systemd-networkd

ネットワーク サービスを有効化または無効化する

ネットワーク サービスを起動時に自動的に開始するように有効化するには:

sudo systemctl enable systemd-networkd

ネットワーク サービスを無効化するには:

sudo systemctl disable systemd-networkd

NetworkManager の使用(任意)

NetworkManagerをsystemd-networkdの代わりに使用している場合は、次のようにサービスを管理できます。

  • 状態を確認する:
sudo systemctl status NetworkManager
  • サービスを再起動する:
sudo systemctl restart NetworkManager
  • NetworkManager を有効化または無効化する:
sudo systemctl enable NetworkManager 
sudo systemctl disable NetworkManager

5. Netplan における既知の問題と警告

Ubuntu 22.04 サーバーで Netplan を使用して静的 IP を構成する際、次の警告が表示されることがあります。

警告:Cannot call Open vSwitch: ovsdb-server.service is not running

この警告は、Netplan が Open vSwitch(クラウド環境や仮想化環境でよく使用される仮想ネットワーク スイッチ)の検出を試みるために発生します。Open vSwitch がインストールされていない場合、Netplan はこの警告を出します。

警告の解決

Open vSwitch を使用していない場合は、この警告を無視しても問題ありません。ただし、警告を排除するには、openvswitch-switch-dpdkパッケージをインストールします。このパッケージは Open vSwitch に必要なコンポーネントを提供します。

次のコマンドを実行します。

sudo apt install openvswitch-switch-dpdk

インストールが完了すると、Netplan は Open vSwitch の存在を検出し、警告を出さなくなります。

既知のバグの参照

この問題は、Netplan のバグとして正式に報告されています。
https://bugs.launchpad.net/ubuntu/+source/netplan.io/+bug/2041727


6. ネットワーク管理のためのコマンド ライン ツール

Ubuntu には、ネットワーク構成の管理とトラブルシューティングのためのさまざまなツールがあります。最もよく使用されるものの一部を次に示します。

6.1 ip コマンド

ipコマンドは古いifconfigツールに代わるもので、より強力で柔軟です。

  • ネットワーク インターフェースを表示する: ip a
  • ルートを確認する: ip route
  • インターフェースを有効化/無効化する:
sudo ip link set eth0 up 
sudo ip link set eth0 down

6.2 ping コマンド

pingコマンドは、別のホストへの接続をテストするために使用されます。

ping google.com

6.3 traceroute コマンド

tracerouteコマンドは、宛先までのネットワーク パスを特定します。

sudo apt install traceroute
traceroute google.com

6.4 Curl コマンド

curlコマンドは HTTP 接続をテストします。

curl http://example.com


7. 一般的なネットワークの問題のトラブルシューティング

ネットワークの問題は、サーバー環境ではよく発生します。シナリオとトラブルシューティングの手順の一部を次に示します。

シナリオ 1:ネットワーク インターフェースが動作しない

  • インターフェースの状態を確認する:
ip a
  • インターフェースを有効化する:
sudo ip link set eth0 up

    シナリオ 2:外部ホストに Ping できない

    1. 既定のゲートウェイを確認する:ip route
    2. DNS 解決を確認する:nslookup google.com DNS が解決されない場合は、Netplan 構成のネームサーバーを更新します。

    シナリオ 3:Netplan の構成の問題

    1. Netplan YAML ファイルを検証する:sudo netplan try これにより、構成を永続的に適用することなくテストできます。
    2. 構成を再適用する:sudo netplan apply

    シナリオ 4:ネットワーク サービスを確認する

    ネットワーク接続の問題が解決しない場合は、ネットワーク サービスの状態を確認します。

    sudo systemctl status systemd-networkd
    
    

    エラーが報告された場合は、サービスを再起動します。

    sudo systemctl restart systemd-networkd
    
    

    シナリオ 5:ファイアウォールがトラフィックをブロックしている

    • ファイアウォール ルールを確認する:
    sudo ufw status
    
    • 必要なトラフィックを許可する:
    sudo ufw allow 22/tcp sudo ufw allow 80/tcp
    

      シナリオ 6:パケット損失または遅延の問題

      • パケット損失を確認するには、pingを使用します。
      ping -c 10 google.com
      
      • ネットワークのボトルネックを特定するには、tracerouteを使用します。
      traceroute google.com
      

        8. まとめ

        ネットワークは、Ubuntu Server 管理者にとって重要なスキルです。このガイドでは、ネットワーク インターフェースの構成、ネットワーク サービスの管理、Netplan の警告への対処、静的 IP の設定、コマンド ライン ツールの使用、一般的な問題のトラブルシューティングの基本について説明しました。Netplan、ipとpingなどのツールを習得することで、サーバー上のネットワーク関連の課題を効率的に管理および解決できます。

        詳細については、Ubuntu の公式ドキュメントの Netplanとネットワークの基礎.

        次のステップ:パッチ適用、パッケージ管理、セキュリティ

        このシリーズの次のセクションでは、Ubuntu Server 管理の重要な側面についてさらに詳しく説明します。重点を置くのは、パッチ適用、パッケージ管理、セキュリティです。これらのトピックは、安全で安定した効率的なサーバー環境を維持するために不可欠です。

        1. ソフトウェアのインストールと管理

        Ubuntu Server でaptやその他のパッケージ管理ツールを使用してソフトウェアをインストール、更新、管理するための基本を習得します。依存関係とリポジトリを効率的に管理して、サーバーに必要なソフトウェアが備わっていることを確認する方法を学びます。

        2. Ubuntu Server のパッチ適用と更新

        • パッチ適用がセキュリティと安定性にとって重要な理由。
        • aptを使用してサーバーを更新およびアップグレードします。
        • 次の違いを理解する:apt update, apt upgradeとapt full-upgrade.
        • 更新の自動化:unattended-upgrades.
        • カーネルの更新の処理と適切な再起動:reboot-required.

        3. Ubuntu Server の保護

        • サーバーを保護するための実践的な手順。ファイアウォールの構成(ufw)、SSH の安全なセットアップ、fail2banのような攻撃から保護するツールの使用を含みます。
        • 脆弱性や不正アクセスからサーバーを強化する方法を学びます。

        4. Ubuntu Server における監査とログ記録

        • システム監査の概要とログの重要性。
        • auditdを使用してシステム イベントを追跡および記録します。
        • ログ ローテーションの構成:logrotate.
        • /var/logディレクトリを監視して重要なイベントを把握し、プロアクティブなサーバー管理を確保します。

        4 thoughts on “05. Networking Basics for Ubuntu Server: A Comprehensive Guide”

        コメントを残す