Netplan によるネットワーク設定
Ubuntu では Netplan でネットワークを設定します。/etc/netplan/ 配下の YAML ファイルを読み込み、実際の設定はバックエンド(renderer)が行う仕組みです。
renderer には systemd-networkd と NetworkManager があり、Server 版の既定は systemd-networkd、Desktop 版の既定は NetworkManager です。本記事は Server 版を対象とします。
静的アドレス、DHCP、IPv6 の自動設定(ルータ広告)、DHCPv6 の設定方法を、実際にルータと通信した結果とあわせて解説します。
現在の設定を確認する
インタフェースとアドレスは ip コマンドで確認します。-br(brief)を付けると一覧で表示されます。
ip -br a
ip a show [INTERFACE]kazulog@sv1:~$ ip -br a
lo UNKNOWN 127.0.0.1/8 ::1/128
ens2 UP 10.19.12.11/16 fe80::5054:ff:fedc:e2c5/64
ens3 UP 192.168.100.100/24 metric 1024 2001:db8:100:0:5054:ff:feba:7498/64 fe80::5054:ff:feba:7498/64
kazulog@sv1:~$ ip a show ens3
3: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:ba:74:98 brd ff:ff:ff:ff:ff:ff
altname enp0s3
altname enx525400ba7498
inet 192.168.100.100/24 metric 1024 brd 192.168.100.255 scope global dynamic ens3
valid_lft 2319sec preferred_lft 2319sec
inet6 2001:db8:100:0:5054:ff:feba:7498/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 2591997sec preferred_lft 604797sec
inet6 fe80::5054:ff:feba:7498/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
kazulog@sv1:~$経路と名前解決は ip route と resolvectl status で確認します。
kazulog@sv1:~$ ip route
default via 10.19.0.1 dev ens2 proto static
default via 192.168.100.1 dev ens3 proto dhcp src 192.168.100.100 metric 1024
10.19.0.0/16 dev ens2 proto kernel scope link src 10.19.12.11
192.168.100.0/24 dev ens3 proto kernel scope link src 192.168.100.100 metric 1024
192.168.100.1 dev ens3 proto dhcp scope link src 192.168.100.100 metric 1024
kazulog@sv1:~$ ls -l /etc/netplan/
total 4
-rw------- 1 root root 243 Sep 11 11:59 50-cloud-init.yaml
kazulog@sv1:~$Netplan から見た状態は netplan status で確認できます。どのアドレスがどこから来たか(静的、DHCP、ルータ広告)まで表示されるため、設定の確認に便利です。
sudo netplan status --allkazulog@sv1:~$ sudo netplan status --all 2>&1 | head -30
Online state: online
DNS Addresses: 127.0.0.53 (stub)
DNS Search: kazulog.example
● 1: lo ethernet UNKNOWN/UP (unmanaged)
MAC Address: 00:00:00:00:00:00
Addresses: 127.0.0.1/8
::1/128
● 2: ens2 ethernet UP (networkd: ens2)
MAC Address: 52:54:00:dc:e2:c5 (Red Hat, Inc.)
Addresses: 10.19.12.11/16
fe80::5054:ff:fedc:e2c5/64 (link)
DNS Addresses: 10.1.0.1
10.1.0.2
Routes: default via 10.19.0.1 (static)
10.19.0.0/16 from 10.19.12.11 (link)
fe80::/64 metric 256
● 3: ens3 ethernet UP (unmanaged)
MAC Address: 52:54:00:ba:74:98 (Red Hat, Inc.)
Addresses: 192.168.100.100/24 (dynamic, dhcp)
2001:db8:100:0:5054:ff:feba:7498/64 (dynamic, ra)
fe80::5054:ff:feba:7498/64 (link)
DNS Addresses: 192.168.100.1
2001:db8:100::1
DNS Search: kazulog.example
Routes: default via 192.168.100.1 from 192.168.100.100 metric 1024 (dhcp)
192.168.100.0/24 from 192.168.100.100 metric 1024 (link)
192.168.100.1 from 192.168.100.100 metric 1024 (dhcp, link)Netplan が管理していないインタフェースにアドレスが付いていることがあります。 上の例では ens3 が (unmanaged) と表示されているのに DHCP のアドレスを持っています。これは起動時の仕組み(initramfs)が用意した予備の設定が残っているためで、環境によって状態が異なります。
kazulog@sv1:~$ networkctl status ens3 | head -20
● 3: ens3
Link File: /usr/lib/systemd/network/99-default.link
Network File: /run/systemd/network/zzzz-dracut-default.network
State: routable (configured)
Online state: online
Type: ether
Path: pci-0000:00:03.0
Driver: virtio_net
Vendor: Red Hat, Inc.
Model: Virtio network device
Alternative Names: enp0s3
enx525400ba7498
Hardware Address: 52:54:00:ba:74:98
MTU: 1500 (min: 68, max: 65535)
QDisc: pfifo_fast
IPv6 Address Generation Mode: eui64
Number of Queues (Tx/Rx): 1/1
Auto negotiation: no
Address: 192.168.100.100 (DHCPv4 via 192.168.100.1)
2001:db8:100:0:5054:ff:feba:7498
kazulog@sv1:~$ ls /run/systemd/network/
10-netplan-ens2.network zzzz-dracut-default.network
kazulog@sv1:~$Network File が /run/systemd/network/zzzz-dracut-default.network になっています。Netplan で設定すると 10-netplan-*.network が生成され、そちらが使われます。
設定ファイルの構成
設定ファイルは /etc/netplan/ に置きます。クラウドイメージやインストーラが作成したファイルが既にある場合が多く、複数のファイルがある場合はファイル名順に読み込まれ、同じ項目は後のファイルが優先されます。
| ファイル | 内容 |
|---|---|
50-cloud-init.yaml | cloud-init が作成(クラウドイメージ) |
00-installer-config.yaml | インストーラが作成(通常のインストール) |
60-*.yaml など | 管理者が追加するファイル |
kazulog@sv1:~$ sudo cat /etc/netplan/50-cloud-init.yaml
network:
version: 2
ethernets:
ens2:
addresses:
- "10.19.12.11/16"
nameservers:
addresses:
- 10.1.0.1
- 10.1.0.2
dhcp4: false
routes:
- to: "default"
via: "10.19.0.1"
kazulog@sv1:~$設定ファイルの権限は 600 にします。 それ以外の場合、Netplan が警告を出します。パスワードなどを書くことがあるためです。
kazulog@sv1:~$ sudo chmod 644 /etc/netplan/60-ens3.yaml
kazulog@sv1:~$ sudo netplan generate
** (configure:3014): WARNING **: 13:00:58.443: Permissions for /etc/netplan/60-ens3.yaml are too open. Netplan configuration should NOT be accessible by others.
kazulog@sv1:~$ sudo chmod 600 /etc/netplan/60-ens3.yaml静的 IPv4 アドレスを設定する
新しいファイルを作成して設定します。
sudo vi /etc/netplan/60-[NAME].yaml
sudo chmod 600 /etc/netplan/60-[NAME].yamlnetwork:
version: 2
ethernets:
ens3:
dhcp4: false
addresses:
- 192.168.100.10/24
routes:
- to: default
via: 192.168.100.1
metric: 200
nameservers:
addresses: [192.168.100.1]
search: [kazulog.example]| 項目 | 内容 |
|---|---|
ethernets | 有線インタフェースのセクション |
ens3 | 設定対象のインタフェース名 |
dhcp4 | DHCP でアドレスを取得するか |
addresses | 割り当てるアドレスとプレフィックス長(CIDR表記) |
routes | 経路。to: default がデフォルトルート、via が次の転送先 |
metric | 経路の優先度。値が小さいほど優先される |
nameservers.addresses | DNS サーバー |
nameservers.search | 検索ドメイン。ping www が www.kazulog.example として解決される |
routes にはデフォルトルートだけでなく、宛先ごとの経路も書けます。metric による経路の選択、on-link、IPv6 の経路、ポリシールーティングはスタティックルート設定(Netplan)で解説しています。
設定を反映する
反映の前に netplan generate で文法を確認します。誤りがあれば行番号付きで指摘されます。
sudo netplan generate
sudo netplan applykazulog@sv1:~$ sudo netplan generate
/etc/netplan/99-broken.yaml:5:18: Error in network definition: expected sequence
addresses: 192.168.100.10/24
^
kazulog@sv1:~$ echo exit=$?
exit=1
kazulog@sv1:~$問題がなければ netplan apply で反映します。
kazulog@sv1:~$ sudo cp /tmp/60-ens3.yaml /etc/netplan/60-ens3.yaml && sudo chmod 600 /etc/netplan/60-ens3.yaml
kazulog@sv1:~$ sudo cat /etc/netplan/60-ens3.yaml
network:
version: 2
ethernets:
ens3:
dhcp4: false
addresses:
- 192.168.100.10/24
routes:
- to: default
via: 192.168.100.1
metric: 200
nameservers:
addresses: [192.168.100.1]
search: [kazulog.example]
kazulog@sv1:~$ sudo netplan generate
kazulog@sv1:~$ echo $?
0
kazulog@sv1:~$ sudo netplan apply
kazulog@sv1:~$ ip a show ens3
3: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:ba:74:98 brd ff:ff:ff:ff:ff:ff
altname enp0s3
altname enx525400ba7498
inet 192.168.100.10/24 brd 192.168.100.255 scope global ens3
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:feba:7498/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
kazulog@sv1:~$ ip route
default via 10.19.0.1 dev ens2 proto static
default via 192.168.100.1 dev ens3 proto static metric 200
10.19.0.0/16 dev ens2 proto kernel scope link src 10.19.12.11
192.168.100.0/24 dev ens3 proto kernel scope link src 192.168.100.10 リモート作業中に設定を誤ると、接続できなくなります。 netplan try を使うと、一定時間内に確定操作をしない限り自動的に元の設定へ戻ります。接続が切れないことを確認してから Enter キーを押して確定してください。
sudo netplan try疎通を確認する
設定したアドレスでルータと他のサーバーへ通信できることを確認します。
kazulog@sv1:~$ ping -c 3 192.168.100.1
PING 192.168.100.1 (192.168.100.1) 56(84) bytes of data.
64 bytes from 192.168.100.1: icmp_seq=1 ttl=255 time=1.42 ms
64 bytes from 192.168.100.1: icmp_seq=2 ttl=255 time=1.62 ms
64 bytes from 192.168.100.1: icmp_seq=3 ttl=255 time=1.59 ms
--- 192.168.100.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 1.417/1.544/1.622/0.090 ms
kazulog@sv1:~$ ping -c 3 192.168.100.20
PING 192.168.100.20 (192.168.100.20) 56(84) bytes of data.
64 bytes from 192.168.100.20: icmp_seq=1 ttl=64 time=1.61 ms
64 bytes from 192.168.100.20: icmp_seq=2 ttl=64 time=1.86 ms
64 bytes from 192.168.100.20: icmp_seq=3 ttl=64 time=1.73 ms
--- 192.168.100.20 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 1.612/1.734/1.862/0.102 ms
kazulog@sv1:~$設定後は netplan status の表示も変わり、インタフェースが Netplan の管理下(networkd: ens3)に入ったことを示します。
DHCP でアドレスを取得する
network:
version: 2
ethernets:
ens3:
dhcp4: true
dhcp6: true
accept-ra: truekazulog@sv1:~$ sudo cat /etc/netplan/60-ens3.yaml
network:
version: 2
ethernets:
ens3:
dhcp4: true
dhcp6: true
accept-ra: true
kazulog@sv1:~$ sudo netplan apply
kazulog@sv1:~$ ip a show ens3
3: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:ba:74:98 brd ff:ff:ff:ff:ff:ff
altname enp0s3
altname enx525400ba7498
inet 192.168.100.102/24 metric 100 brd 192.168.100.255 scope global dynamic ens3
valid_lft 3584sec preferred_lft 3584sec
inet6 2001:db8:100:0:5054:ff:feba:7498/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 2591998sec preferred_lft 604798sec
inet6 fe80::5054:ff:feba:7498/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
kazulog@sv1:~$ ip route show dev ens3
default via 192.168.100.1 proto dhcp src 192.168.100.102 metric 100
192.168.100.0/24 proto kernel scope link src 192.168.100.102 metric 100
192.168.100.1 proto dhcp scope link src 192.168.100.102 metric 100
kazulog@sv1:~$ resolvectl status ens3 | head -8
Link 3 (ens3)
Current Scopes: DNS
Protocols: +DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
DNS Servers: 192.168.100.1 2001:db8:100::1
DNS Domain: kazulog.example
Default Route: yesアドレスに加えて、デフォルトルート、DNS サーバー、検索ドメインも DHCP から受け取ります。ip a の表示が dynamic になり、valid_lft(有効期限)が付きます。
配布したルータ側でも、払い出しの状況を確認できます。
R1#show ip dhcp binding
Bindings from all pools not associated with VRF:
IP address Client-ID/ Lease expiration Type State Interface
Hardware address/
User name
192.168.100.102 ffb5.5e67.ff00.0200. Sep 11 2026 05:03 AM Automatic Active GigabitEthernet2
00ab.114a.b5bc.4a7e.
5a3d.87やりとりをキャプチャーすると、DHCP の4つのメッセージ(Discover / Offer / Request / ACK)が確認できます。
11 1.688958 0.0.0.0 → 255.255.255.255 DHCP 333 DHCP Discover - Transaction ID 0xb6d08892
12 1.692413 192.168.100.1 → 192.168.100.102 DHCP 366 DHCP Offer - Transaction ID 0xb6d08892
13 1.693148 0.0.0.0 → 255.255.255.255 DHCP 343 DHCP Request - Transaction ID 0xb6d08892
14 1.697570 192.168.100.1 → 192.168.100.102 DHCP 366 DHCP ACK - Transaction ID 0xb6d08892IPv6 をルータ広告で自動設定する(SLAAC)
IPv6 では、ルータが定期的に送るルータ広告(RA)を受け取って、アドレスとデフォルトルートを自動で設定できます。Netplan では accept-ra で制御し、既定で有効です。
network:
version: 2
ethernets:
ens3:
dhcp4: false
dhcp6: false
accept-ra: true
addresses:
- 192.168.100.10/24kazulog@sv1:~$ ip -6 a show ens3
3: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
altname enp0s3
altname enx525400ba7498
inet6 2001:db8:100:0:5054:ff:feba:7498/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 2591995sec preferred_lft 604795sec
inet6 fe80::5054:ff:feba:7498/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
kazulog@sv1:~$ ip -6 route show dev ens3
2001:db8:100::/64 proto ra metric 1024 expires 2591994sec pref medium
fe80::/64 proto kernel metric 256 pref medium
default nhid 3108948397 via fe80::5054:ff:fe92:855c proto ra metric 1024 expires 1794sec pref medium
kazulog@sv1:~$| 確認する箇所 | 内容 |
|---|---|
inet6 2001:db8:100:0:5054:ff:feba:7498/64 | ルータが広告したプレフィックスから自動生成されたアドレス。後半64ビットは MAC アドレス(52:54:00:ba:74:98)から作られている |
dynamic | 自動設定されたアドレスであることを示す |
valid_lft / preferred_lft | ルータ広告で指定された有効期限と推奨期限 |
2001:db8:100::/64 proto ra | 広告されたプレフィックスへの経路 |
default ... via fe80::... proto ra | デフォルトルート。宛先はルータのリンクローカルアドレス |
networkctl status では、生成方式(IPv6 Address Generation Mode: eui64)も確認できます。
kazulog@sv1:~$ networkctl status ens3 | grep -A6 'Address:'
Hardware Address: 52:54:00:ba:74:98
MTU: 1500 (min: 68, max: 65535)
QDisc: pfifo_fast
IPv6 Address Generation Mode: eui64
Number of Queues (Tx/Rx): 1/1
Auto negotiation: no
Address: 192.168.100.10
2001:db8:100:0:5054:ff:feba:7498
fe80::5054:ff:feba:7498
Gateway: 192.168.100.1
fe80::5054:ff:fe92:855c
DNS: 192.168.100.1
2001:db8:100::1
kazulog@sv1:~$ resolvectl status ens3 | head -8
Link 3 (ens3)
Current Scopes: DNS
Protocols: +DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 2001:db8:100::1
DNS Servers: 192.168.100.1 2001:db8:100::1
DNS Domain: kazulog.example
Default Route: yesルータ広告の中身
ルータ広告をキャプチャーすると、自動設定に必要な情報が入っていることが分かります。
Internet Control Message Protocol v6
Type: Router Advertisement (134)
Code: 0
Cur hop limit: 64
Flags: 0x40, Other configuration, Prf (Default Router Preference): Medium
0... .... = Managed address configuration: Not set
.1.. .... = Other configuration: Set
Router lifetime (s): 1800
Reachable time (ms): 0
Retrans timer (ms): 0
ICMPv6 Option (Source link-layer address : 52:54:00:92:85:5c)
ICMPv6 Option (MTU : 1500)
ICMPv6 Option (Prefix information : 2001:db8:100::/64)
Type: Prefix information (3)
Length: 4 (32 bytes)
Prefix Length: 64
Flag: 0xc0, On-link Flag (L), Autonomous Address Configuration Flag (A)
1... .... = On-link Flag (L): Set
.1.. .... = Autonomous Address Configuration Flag (A): Set
Valid Lifetime: 2592000 (30 days)
Preferred Lifetime: 604800 (7 days)
Prefix: 2001:db8:100::| フィールド | 意味 |
|---|---|
Autonomous Address Configuration Flag (A) | このプレフィックスからアドレスを自動生成してよい。これが立っているため SLAAC が働く |
Valid Lifetime / Preferred Lifetime | そのまま ip -6 a の valid_lft / preferred_lft になる |
Router lifetime | デフォルトルートとして使える時間。経路の expires に反映される |
Managed address configuration (M) | アドレスを DHCPv6 から取得するか。ここでは立っていない |
Other configuration (O) | DNS などの情報を DHCPv6 から取得する。ここでは立っている |
ルータ広告を受け取らない設定
accept-ra: false にすると、アドレスもデフォルトルートも自動設定されません。
kazulog@sv1:~$ sudo cp /tmp/60-ens3-nora.yaml /etc/netplan/60-ens3.yaml && sudo chmod 600 /etc/netplan/60-ens3.yaml
kazulog@sv1:~$ sudo netplan apply
kazulog@sv1:~$ ip -6 a show ens3
3: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
altname enp0s3
altname enx525400ba7498
inet6 fe80::5054:ff:feba:7498/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
kazulog@sv1:~$ ip -6 route show dev ens3
fe80::/64 proto kernel metric 256 pref mediumリンクローカルアドレスだけが残ります。
DHCPv6 で情報を取得する
上のルータ広告では Other configuration (O) が立っていました。この場合、アドレスは自動生成でまかない、DNS などの情報だけを DHCPv6 から取得します(ステートレス DHCPv6)。
18 3.156809 fe80::5054:ff:feba:7498 → ff02::1:2 DHCPv6 114 Information-request XID: 0xd2fc29
20 3.162109 fe80::5054:ff:fe92:855c → fe80::5054:ff:feba:7498 DHCPv6 139 Reply XID: 0xd2fc29応答には DNS サーバーと検索ドメインが入っています。
DNS recursive name server
Option: DNS recursive name server (23)
Length: 16
1 DNS server address: 2001:db8:100::1
Domain Search List
Option: Domain Search List (24)
Length: 17
Domain name suffix search list
List entry: kazulog.example.アドレスの割り当てを DHCPv6 から受ける(ステートフル DHCPv6)場合は、ルータ側で Managed address configuration (M) を立て、DHCPv6 サーバーにアドレスプールを設定します。
静的 IPv6 アドレスを設定する
IPv6 も addresses に併記し、デフォルトルートは to: "::/0" で指定します。
network:
version: 2
ethernets:
ens3:
dhcp4: false
dhcp6: false
accept-ra: false
addresses:
- 192.168.100.10/24
- 2001:db8:100::10/64
routes:
- to: default
via: 192.168.100.1
metric: 200
- to: "::/0"
via: 2001:db8:100::1
metric: 200
nameservers:
addresses: [192.168.100.1, "2001:db8:100::1"]
search: [kazulog.example]kazulog@sv1:~$ sudo cp /tmp/60-ens3-v6.yaml /etc/netplan/60-ens3.yaml && sudo chmod 600 /etc/netplan/60-ens3.yaml
kazulog@sv1:~$ sudo netplan apply
kazulog@sv1:~$ ip -6 a show ens3
3: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
altname enp0s3
altname enx525400ba7498
inet6 2001:db8:100::10/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:feba:7498/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
kazulog@sv1:~$ ip -6 route show dev ens3
2001:db8:100::/64 proto kernel metric 256 pref medium
fe80::/64 proto kernel metric 256 pref medium
default via 2001:db8:100::1 proto static metric 200 pref medium
kazulog@sv1:~$ ping6 -c 3 2001:db8:100::1
PING 2001:db8:100::1 (2001:db8:100::1) 56 data bytes
64 bytes from 2001:db8:100::1: icmp_seq=1 ttl=64 time=21.6 ms
64 bytes from 2001:db8:100::1: icmp_seq=2 ttl=64 time=3.29 ms
64 bytes from 2001:db8:100::1: icmp_seq=3 ttl=64 time=2.23 ms
--- 2001:db8:100::1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2005ms
rtt min/avg/max/mdev = 2.226/9.040/21.606/8.895 ms
kazulog@sv1:~$ ping6 -c 2 2001:db8:100::20
PING 2001:db8:100::20 (2001:db8:100::20) 56 data bytes
64 bytes from 2001:db8:100::20: icmp_seq=1 ttl=64 time=3.53 ms
64 bytes from 2001:db8:100::20: icmp_seq=2 ttl=64 time=1.57 ms
--- 2001:db8:100::20 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 1.573/2.553/3.534/0.980 msゲートウェイがインタフェースのプレフィックスの外にある場合(VPS などで /128 が割り当てられる構成)は、経路に on-link: true を足して同一リンク上にあることを明示します。
addresses:
- "2001:db8::200/128"
routes:
- to: "::/0"
via: "2001:db8::1"
on-link: trueゲートウェイがリンクローカルアドレス(fe80:: で始まるもの)で案内される場合は、常に同一リンク上の経路が存在するため on-link は不要です。
cloud-init による上書きを止める
クラウドイメージでは、cloud-init が起動時に 50-cloud-init.yaml を生成します。管理者が編集しても、条件によっては上書きされることがあります。止めるには次のファイルを作成します。
printf 'network: {config: disabled}\n' | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfgkazulog@sv1:~$ uptime -p
up 0 minutes
kazulog@sv1:~$ ls -l /etc/netplan/
total 8
-rw------- 1 root root 243 Sep 11 11:59 50-cloud-init.yaml
-rw------- 1 root root 449 Sep 11 13:05 60-ens3.yaml
kazulog@sv1:~$ ip -br a show ens3
ens3 UP 192.168.100.10/24 2001:db8:100::10/64 fe80::5054:ff:feba:7498/64
kazulog@sv1:~$再起動後も追加した設定ファイルが残り、アドレスも維持されています。cloud-init でネットワークを設定する方法は初期設定を自動化する(cloud-init)で解説しています。
検証環境と実行ログ
本記事の実行例は、CML 上に次の構成を作って採取しました。sv1 が設定対象、R1 が DHCP サーバーとルータ広告の送信元です。
sv1 (Ubuntu 26.04) sv2 (Ubuntu 26.04) R1 (IOS XE)
ens3 ens3 Gi2
192.168.100.10/24 192.168.100.20/24 192.168.100.1/24
2001:db8:100::10/64 2001:db8:100::20/64 2001:db8:100::1/64
| | |
+----------------------+------- LAB-SW --------+| 手順 | 実行ログ |
|---|---|
| 初期状態の確認 | log |
| Netplan 管理外のインタフェースの調査 | log |
| 静的 IPv4 の設定 | log |
| 疎通確認 | log |
| 文法エラーと権限の警告 | log |
| DHCP による取得 | log |
| ルータ広告による自動設定 | log |
| アドレス生成方式の確認 | log |
| ルータ広告を無効にした場合 | log |
| 静的 IPv6 の設定と疎通 | log |
| cloud-init の無効化と再起動 | log |
ルータ(R1)側は、設定変更のたびに show 一式・syslog・running-config の3種類を採取しています。検証Configはこの ..._run.txt です。
| R1 の状態 | show出力 | syslog | running-config |
|---|---|---|---|
| 静的 IPv4 を設定したとき | show | log | run |
| DHCP でアドレスを払い出したとき | show | log | run |
| RA と DHCPv6 が動いているとき | show | log | run |
..._show.txt には次を含みます。
show version / show interfaces description / show ip interface brief / show ipv6 interface brief /
show ip route / show ipv6 route / show ipv6 interface GigabitEthernet2 /
show ip dhcp pool / show ip dhcp binding / show ip dhcp server statistics / show ip dhcp conflict /
show ipv6 dhcp pool / show ipv6 dhcp binding / show ipv6 dhcp interface / show ipv6 neighborscrypto key generate rsa は設定ではなく実行コマンドのため、show running-config には現れないためです。ルータへ SSH で接続する場合は、起動後に鍵の生成が必要です。キャプチャー全体は次からダウンロードできます。
ルータ広告のキャプチャー(全体)をダウンロード
DHCP と DHCPv6 のキャプチャー(全体)をダウンロード
関連記事
参考リンク
関連記事
- Ubuntu 26.04 LTS Server のホスト名の変更(hostnamectl)
- Ubuntu 26.04 LTS Server のパッケージ更新(apt update / upgrade)
- Ubuntu 26.04 LTS Server のタイムゾーン設定と時刻同期
- Ubuntu 26.04 LTS Server のユーザー作成と sudo 権限の設定
- Ubuntu 26.04 LTS Server の SSH サーバー設定(公開鍵認証)
- Ubuntu 26.04 LTS Server の telnet サーバー設定
- Ubuntu 26.04 LTS Server の inetd(スーパーサーバー)設定
- Ubuntu 26.04 LTS Server の TFTP サーバー設定(tftpd-hpa)
- Ubuntu 26.04 LTS Server の FTP サーバー設定(vsftpd)
- Ubuntu 26.04 LTS Server の syslog サーバー設定(rsyslog)
- Ubuntu 26.04 LTS Server のサービス管理(systemctl)とログ確認(journalctl)
- Ubuntu 26.04 LTS Server の自動更新設定(unattended-upgrades)
- Ubuntu 26.04 LTS Server の初期設定を自動化する(cloud-init)
- Ubuntu 26.04 LTS Server のカーネルパラメータ設定(sysctl)
- Ubuntu 26.04 LTS Server のネットワーク設定(Netplan)
- Ubuntu 26.04 LTS Server の名前解決設定(systemd-resolved)
- Ubuntu 26.04 LTS Server の NTP 同期先の変更(chrony)
- Ubuntu 26.04 LTS Server のスタティックルート設定(Netplan)
- neovim 公式サイトから最新バージョンをインストールする手順 Ubuntu 26.04 LTS Server