メインコンテンツへスキップ
  1. Linux 関連記事一覧/
  2. Ubuntu 26.04 LTS Server/

Ubuntu 26.04 LTS Server ネットワークの設定

目次

Ubuntu 26.04 LTS Server のネットワーク設定手順を紹介します。 Desktop とは設定方法が異なり、今回紹介する手順は Server 設定手順になります。 本記事では IPv4 の設定手順に加え、IPv6 の設定手順もあわせて紹介します。

ネットワーク設定の確認方法

現在のネットワーク設定は、ip コマンドで確認できます。

IPアドレスの確認コマンド
ip a
IPアドレスの確認コマンド実行例
ubuntu@ubuntu2604:~$ 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
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:0e:cf:b9 brd ff:ff:ff:ff:ff:ff
    altname enx5254000ecfb9
    inet 10.100.41.128/22 brd 10.100.43.255 scope global enp1s0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe0e:cfb9/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever
ubuntu@ubuntu2604:~$

デフォルトゲートウェイの確認は ip route、DNS サーバの確認は resolvectl status で行います。

デフォルトゲートウェイの確認コマンド実行例
ubuntu@ubuntu2604:~$ ip route
default via 10.100.40.1 dev enp1s0 proto static
10.100.40.0/22 dev enp1s0 proto kernel scope link src 10.100.41.128
ubuntu@ubuntu2604:~$
DNSサーバの確認コマンド実行例
ubuntu@ubuntu2604:~$ resolvectl status
Global
         Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
  resolv.conf mode: stub

Link 2 (enp1s0)
    Current Scopes: DNS
         Protocols: +DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 10.1.0.1
       DNS Servers: 10.1.0.1 10.1.0.2
     Default Route: yes
ubuntu@ubuntu2604:~$

Netplan について

Ubuntu Server では、Desktop の NetworkManager とは異なり Netplan という仕組みでネットワークを設定します。Netplan は /etc/netplan/ 配下に置かれた YAML 形式の設定ファイルを読み込み、バックエンドである systemd-networkd にネットワーク設定を反映する仕組みです。

インストール時に自動生成される設定ファイルの内容は、以下のコマンドで確認できます。

Netplan設定ファイルの確認コマンド実行例
root@ubuntu2604:/etc/netplan# pwd
/etc/netplan
root@ubuntu2604:/etc/netplan# cat 00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
  ethernets:
    enp1s0:
      addresses:
      - 10.100.41.128/22
      match:
        macaddress: 52:54:00:0e:cf:b9
      nameservers:
        addresses:
        - 10.1.0.1
        - 10.1.0.2
        search: []
      routes:
      - to: default
        via: 10.100.40.1
      set-name: enp1s0
  version: 2
root@ubuntu2604:/etc/netplan#

上記設定ファイルの主な項目は以下の通りです。

項目内容
ethernets設定対象のインターフェース種別(有線LAN)を指定するセクション
enp1s0設定対象のインターフェース名
addresses割り当てるIPアドレスとサブネットマスク(CIDR表記)
match.macaddressMACアドレスでインターフェースを特定するための指定
nameservers.addressesDNSサーバのIPアドレス
nameservers.searchDNS検索ドメインのリスト(ホスト名の名前解決時に自動補完するドメイン)
routesルーティング情報(to: default で既定ルートを指定)
set-namematch で特定したインターフェースに付与する名前
versionNetplan設定ファイルのフォーマットバージョン

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

設定ファイルを編集し、IPアドレスやDNSサーバ、デフォルトゲートウェイを変更します。

Netplan設定ファイルの編集コマンド
sudo vi /etc/netplan/00-installer-config.yaml
静的IPアドレスの設定例
network:
  ethernets:
    enp1s0:
      addresses:
      - 10.100.41.200/22
      nameservers:
        addresses:
        - 10.1.0.1
        - 10.1.0.2
        search:
        - kazulog.info
      routes:
      - to: default
        via: 10.100.40.1
  version: 2

上記は IPアドレスを 10.100.41.200/22 に変更する設定例です。matchset-name はインターフェース名を直接指定する場合は不要です。

search にはDNS検索ドメインを指定します。kazulog.info を指定した場合、ping www のようにホスト名のみを指定すると、www.kazulog.info として自動的に名前解決が試みられます。

DHCPでIPv4アドレスを取得する設定方法

固定IPではなく、DHCPサーバからIPv4アドレスを自動取得したい場合は dhcp4true に設定します。

DHCPv4の設定例
network:
  ethernets:
    enp1s0:
      dhcp4: true
  version: 2

IPv6アドレスの設定方法

Netplan では、ethernets セクション配下に IPv6 用の項目を追加することで IPv6 アドレスの設定が行えます。IPv4 と同様に、静的アドレスを直接指定する方法と、DHCPv6 やルータ広告(RA: Router Advertisement)による自動設定の方法があります。

項目内容
addressesIPv6アドレスもIPv4と同じ addresses に併記可能(プレフィックス長付きで指定)
routesIPv6のデフォルトルートは to: ::/0 で指定
nameservers.addressesIPv6のDNSサーバアドレスもIPv4と同じ項目に併記可能
dhcp6DHCPv6でアドレスを自動取得する場合は true を指定
accept-raルータ広告(RA)を受け入れてアドレスを自動設定する場合は true を指定(既定で有効)

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

静的IPv6アドレスの設定例
network:
  ethernets:
    enp1s0:
      addresses:
      - 10.100.41.200/22
      - "2001:db8:41::200/64"
      nameservers:
        addresses:
        - 10.1.0.1
        - 10.1.0.2
        - "2001:db8:1::1"
        search:
        - kazulog.info
      routes:
      - to: default
        via: 10.100.40.1
      - to: "::/0"
        via: "2001:db8:41::1"
  version: 2

上記は IPv4 アドレス(10.100.41.200/22)に加えて、IPv6 アドレス 2001:db8:41::200/64 を静的に設定する例です。IPv6 のデフォルトルートは to: ::/0 で指定し、via にIPv6のゲートウェイアドレスを指定します。

上記の例では via に指定したゲートウェイアドレス(2001:db8:41::1)が、インターフェースに設定したプレフィックス(2001:db8:41::/64)内にあるため問題なく経路として認識されます。ISPから リンクローカルアドレス(fe80::~) がゲートウェイとして案内される場合など、via のアドレスがインターフェースの直接接続プレフィックス外にあるときは、ルート設定に on-link: true を追加する必要があります。

ゲートウェイがプレフィックス外の場合の設定例
routes:
- to: "::/0"
  via: "fe80::1"
  on-link: true

DHCPv6・RA(ルータ広告)によるIPv6アドレスの自動設定

上位ルータが RA(ルータ広告)でプレフィックスを配布している環境では、accept-ratrue にするだけで IPv6 アドレスが自動設定されます(既定で有効な場合が多いため、明示指定は省略可能です)。

RAによるIPv6自動設定の例
network:
  ethernets:
    enp1s0:
      dhcp4: true
      accept-ra: true
  version: 2

DHCPv6 サーバからアドレスを取得する環境では、dhcp6true に設定します。

DHCPv6の設定例
network:
  ethernets:
    enp1s0:
      dhcp4: true
      dhcp6: true
  version: 2

設定ファイルの文法チェック

設定を反映する前に、YAMLファイルの文法エラーがないか確認できます。

Netplan設定ファイルの文法チェックコマンド
sudo netplan generate

インデントの誤りなどがある場合は、コマンド実行時にエラーメッセージが表示されます。

設定の反映方法

編集した設定ファイルは netplan apply で反映します。

Netplan設定の反映コマンド
sudo netplan apply
リモートで作業している場合、IPアドレスの変更内容に誤りがあると、接続が切断されたまま再接続できなくなる恐れがあります。事前に netplan try で動作確認することを推奨します。
Netplan設定の一時反映(動作確認)コマンド
sudo netplan try

netplan try を実行すると、一定時間内にキー入力で設定を確定しない限り、自動的に元の設定へロールバックされます。接続が切断されないことを確認したうえで Enter キーを押し、設定を確定してください。

Netplan設定の一時反映(動作確認)コマンド実行例
ubuntu@ubuntu2604:~$ sudo netplan try
Do you want to keep these settings?


Press ENTER before the timeout to accept the new configuration


Changes will revert in 118 seconds
Configuration accepted.
ubuntu@ubuntu2604:~$

設定反映後の確認

netplan apply 実行後、ip a コマンドで新しいIPv4アドレスが反映されていることを確認します。

IPv4アドレスの確認コマンド実行例
ubuntu@ubuntu2604:~$ 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
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:0e:cf:b9 brd ff:ff:ff:ff:ff:ff
    altname enx5254000ecfb9
    inet 10.100.41.200/22 brd 10.100.43.255 scope global enp1s0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe0e:cfb9/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever
ubuntu@ubuntu2604:~$

上記は IPアドレスが 10.100.41.200/22 に変更されたことを確認した実行例です。

IPv6アドレスは ip -6 a コマンドで確認します。

IPv6アドレスの確認コマンド実行例
ubuntu@ubuntu2604:/etc/netplan$ ip -6 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2001:db8:41::200/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe0e:cfb9/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever
ubuntu@ubuntu2604:/etc/netplan$

IPv6のデフォルトルートは ip -6 route コマンドで確認します。

IPv6デフォルトルートの確認コマンド実行例
ubuntu@ubuntu2604:/etc/netplan$ ip -6 route
2001:db8:41::/64 dev enp1s0 proto kernel metric 256 pref medium
fe80::/64 dev enp1s0 proto kernel metric 256 pref medium
default via 2001:db8:41::1 dev enp1s0 proto static metric 1024 pref medium
ubuntu@ubuntu2604:/etc/netplan$

上記は IPv6 アドレスが 2001:db8:41::200/64 として設定され、デフォルトルートが 2001:db8:41::1 経由となっていることを確認した実行例です。

関連記事

参考サイト

関連記事