Linuxでネットワーク設定をする方法(NETPLANを使ったDHCPと静的IP設定)

Linuxでネットワーク設定を行う際、「DHCPや静的IP設定ってどうやるんだっけ?」と悩むことがあるかもしれません。特にサーバーを構築する場合や、IPv6でインターネットに公開するケースでは適切な設定が求められます。

Ubuntuをはじめとする多くのLinuxディストリビューションで採用されている「NETPLAN」は、設定ファイルをYAML形式で記述することでネットワーク設定を簡単に管理できるツールです。この記事では、NETPLANを使ったネットワーク設定方法を詳しく解説します。

目次

NETPLANとは?

NETPLANは、Ubuntu 17.10以降でデフォルトのネットワーク設定ツールとして導入されました。シンプルで扱いやすいYAML形式でネットワーク設定を定義し、systemd-networkd または NetworkManager をバックエンドとして利用します。

NETPLANの設定ファイルの場所と構成

NETPLANの設定ファイルは以下のディレクトリに配置されます。

/etc/netplan/

通常、このディレクトリ内には 00-installer-config.yaml のようなファイルが存在しますが、自分で任意の名前で設定ファイルを作成することも可能です。

設定ファイルの書き方(基本構成)

NETPLANの設定ファイルはYAML形式で記述し、IPv4とIPv6の両方の設定を同時に行うことができます。 以下はIPv4とIPv6を両方有効にした基本構成の例です。

network:
  version: 2
  renderer: networkd  # または NetworkManager
  ethernets:
    enp0s3:
      dhcp4: yes
      dhcp6: yes
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
  • version: NETPLANの設定バージョンを指定する
  • renderer: 使用するバックエンド (networkd または NetworkManager) を指定する
  • ethernets: 設定対象のネットワークインターフェースを定義する
  • enp0s3: インターフェース名のこと「ip link」または「ip a」コマンドで確認
  • dhcp4: IPv4でのDHCP利用を有効にする設定
  • dhcp6: IPv6でのDHCP利用を有効にする設定
  • nameservers: DNSサーバーを指定する設定。例として GoogleのDNSサーバー 8.8.8.88.8.4.4 がよく使われる

静的IPアドレスの設定方法

IPv4

IPv4で静的IPアドレスを設定する場合は次のように記述します。

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: no
      addresses:
        - 192.168.1.100/24
      routes:
        - to: 0.0.0.0/0
          via: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
  • addresses: このインターフェースに割り当てる静的IPv4アドレス
  • routes: ネットワークのルーティング経路を手動で指定
    default ルート(0.0.0.0/0)を設定しておくことで、インターネット等への外部通信が可能
  • to: 通信の宛先範囲を指定0.0.0.0/0は「すべてのIPv4アドレス」を意味する
  • via:上記to に対応するゲートウェイのIPv4アドレス 通常はルーターのIPを指定

to: 0.0.0.0/0 は、以下のようにdefault と置き換えることも可能です
routes:
default
via: 192.168.1.1

IPv6

IPv6で静的IPアドレスを設定する場合は次のように記述します。

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp6: no
      addresses:
        - 2001:0db8:85a3:0000:0000:8a2e:0370:7334/64
      routes:
        - to: ::/0
          via: fe80::1
          on-link: true
          scope: link
      nameservers:
        addresses: [2001:4860:4860::8888, 2001:4860:4860::8844]
  • addresses: このインターフェースに割り当てる静的IPv6アドレス
  • routes: ネットワークのルーティング経路を手動で指定
    default ルート(0.0.0.0/0)を設定しておくことで、インターネット等への外部通信が可能
  • to: 通信の宛先範囲を指定::/0は「すべてのIPv6アドレス」を意味する
  • via:上記to に対応するゲートウェイのIPv6アドレス 通常はルーターのIPを指定
  • on-link:via がリンクローカルアドレスの場合に必要になることが多い設定 ルートが直接接続されていると明示する
  • scope:via のアドレスが属するスコープの指定 リンクローカル(fe80::)の場合は link を指定

::/0 は、以下のようにdefault と置き換えることも可能です
routes:
default
via: fe80::1
on-link: true
scope: link

on-linkscopeは、必須ではなく省略しても動作することが多いです
ただし、viaにリンクローカルアドレス(fe80::)を使う場合は推奨 or 必要になるケースがあるため、設定しておいた方が安定します
リンクローカルアドレスではネットワーク機器が正しくルートを解釈できない場合があるため、明示することで経路が確実に認識されるようになります

IPv4とIPv6の両方を静的IPで設定する方法

IPv4とIPv6を同時に静的IPで設定することも可能です。

addresses:nameservers: にはIPv4とIPv6を混在させて記述できます。routes: もそれぞれのデフォルトルートを定義しておくことで、双方向の通信が可能になります。

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: no
      dhcp6: no
      addresses:
        - 192.168.1.100/24
        - 2001:db8::1234/64
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
          - 2001:4860:4860::8888
          - 2001:4860:4860::8844
      routes:
        - to: 0.0.0.0/0
          via: 192.168.1.1
        - to: ::/0
          via: fe80::1
          on-link: true
          scope: link
  • addresses: に複数書くことで IPv4とIPv6を併用可能
  • routes: 同じキーでも - を使えばリスト化で記述が可能
  • nameservers: にIPv4・IPv6のDNSを混在させた記述が可能

IPv6の設定は必要か?

IPv6の設定が必要かどうかは用途によって異なります。

LAN内の通信の場合

LAN内での通信は通常、IPv4を利用する方が分かりやすく管理もしやすいため、IPv6の設定は不要です。IPv6を利用する必要がなければ dhcp6: true と設定しなくても問題ありません。

サーバー公開する場合

IPv6アドレスを使ってサーバーをインターネット上に公開する場合は、IPv6の設定が必要です。しかし、dhcp6: true としておけば、上位にあるルーターが自動的にIPv6アドレスを割り当てるため、特別な設定をする必要はほとんどありません。

さらに、IPv6アドレスはプロバイダから割り当てられるプレフィックスが変化しない限り基本的に変わりません。つまり、プロバイダを変更しない限りプレフィックスは維持されるため、静的IP設定を行わなくても安定して利用できるケースがほとんどです。

もし、特定のIPv6アドレスで常時アクセスを確実にしたい場合は、プロバイダの契約内容を確認し、プレフィックスが変更される可能性があるかを調べると良いでしょう。

設定を適用する

設定ファイルを保存した後に以下のコマンドで設定を適用します。

sudo netplan apply

設定内容にエラーがある場合は表示されるので、エラーメッセージを確認し修正してください。

設定内容の確認

設定を試す際は、次のコマンドを使用できます。

sudo netplan try

このコマンドは設定を一時的に適用し、エラーがないか確認するためのものです。問題がなければ「Enter」を押して設定を保存し、問題がある場合は「Ctrl+C」で取り消してください。

トラブルシューティング

NETPLANの設定でエラーが発生する場合の原因と対処方法をいくつか紹介します。

  1. YAML形式のエラー: インデントやスペースのミスを確認してください。
  2. インターフェース名の誤り: ip link コマンドで正しいインターフェース名を確認してください。
  3. バックエンドの設定ミス: renderer の指定が正しいか確認しましょう。

まとめ

NETPLANを使ったネットワーク設定方法について解説しました。IPv4とIPv6の設定方法を網羅し、特にサーバー運用で重要になる 静的IPアドレスの設定方法 についても紹介しました。

  • IPv4の設定方法: DHCPによる自動設定 dhcp4: true と、静的IP設定の方法を解説
  • IPv6の設定方法: 基本的には dhcp6: true と設定するだけで、ルーターから自動的にIPv6アドレスが割り当てられるため、静的IPを設定する必要はほとんどない
  • IPv6で静的IPが不要な理由: プレフィックスが変化しない限り、IPv6アドレスは変更されないため。プロバイダを変更しない限り、プレフィックスも維持されるケースが多い
  • サーバーをIPv6で公開する場合のポイント: 静的IPの設定をせずとも dhcp6: true の設定で問題なく運用可能
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次