Ubuntu 26.04 LTS Server のネットワーク設定手順を紹介します。 Desktop とは設定方法が異なり、今回紹介する手順は Server 設定手順になります。 本記事では IPv4 の設定手順に加え、IPv6 の設定手順もあわせて紹介します。
ネットワーク設定の確認方法
現在のネットワーク設定は、ip コマンドで確認できます。
ip aubuntu@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:~$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 にネットワーク設定を反映する仕組みです。
インストール時に自動生成される設定ファイルの内容は、以下のコマンドで確認できます。
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.macaddress | MACアドレスでインターフェースを特定するための指定 |
| nameservers.addresses | DNSサーバのIPアドレス |
| nameservers.search | DNS検索ドメインのリスト(ホスト名の名前解決時に自動補完するドメイン) |
| routes | ルーティング情報(to: default で既定ルートを指定) |
| set-name | match で特定したインターフェースに付与する名前 |
| version | Netplan設定ファイルのフォーマットバージョン |
静的IPv4アドレスの設定方法
設定ファイルを編集し、IPアドレスやDNSサーバ、デフォルトゲートウェイを変更します。
sudo vi /etc/netplan/00-installer-config.yamlnetwork:
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 に変更する設定例です。match と set-name はインターフェース名を直接指定する場合は不要です。
search にはDNS検索ドメインを指定します。kazulog.info を指定した場合、ping www のようにホスト名のみを指定すると、www.kazulog.info として自動的に名前解決が試みられます。
DHCPでIPv4アドレスを取得する設定方法
固定IPではなく、DHCPサーバからIPv4アドレスを自動取得したい場合は dhcp4 を true に設定します。
network:
ethernets:
enp1s0:
dhcp4: true
version: 2IPv6アドレスの設定方法
Netplan では、ethernets セクション配下に IPv6 用の項目を追加することで IPv6 アドレスの設定が行えます。IPv4 と同様に、静的アドレスを直接指定する方法と、DHCPv6 やルータ広告(RA: Router Advertisement)による自動設定の方法があります。
| 項目 | 内容 |
|---|---|
| addresses | IPv6アドレスもIPv4と同じ addresses に併記可能(プレフィックス長付きで指定) |
| routes | IPv6のデフォルトルートは to: ::/0 で指定 |
| nameservers.addresses | IPv6のDNSサーバアドレスもIPv4と同じ項目に併記可能 |
| dhcp6 | DHCPv6でアドレスを自動取得する場合は true を指定 |
| accept-ra | ルータ広告(RA)を受け入れてアドレスを自動設定する場合は true を指定(既定で有効) |
静的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: trueDHCPv6・RA(ルータ広告)によるIPv6アドレスの自動設定
上位ルータが RA(ルータ広告)でプレフィックスを配布している環境では、accept-ra を true にするだけで IPv6 アドレスが自動設定されます(既定で有効な場合が多いため、明示指定は省略可能です)。
network:
ethernets:
enp1s0:
dhcp4: true
accept-ra: true
version: 2DHCPv6 サーバからアドレスを取得する環境では、dhcp6 を true に設定します。
network:
ethernets:
enp1s0:
dhcp4: true
dhcp6: true
version: 2設定ファイルの文法チェック
設定を反映する前に、YAMLファイルの文法エラーがないか確認できます。
sudo netplan generateインデントの誤りなどがある場合は、コマンド実行時にエラーメッセージが表示されます。
設定の反映方法
編集した設定ファイルは netplan apply で反映します。
sudo netplan applynetplan try で動作確認することを推奨します。sudo netplan trynetplan try を実行すると、一定時間内にキー入力で設定を確定しない限り、自動的に元の設定へロールバックされます。接続が切断されないことを確認したうえで Enter キーを押し、設定を確定してください。
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アドレスが反映されていることを確認します。
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 コマンドで確認します。
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 コマンドで確認します。
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 経由となっていることを確認した実行例です。