netplanとは

# 環境
Ubuntu 24.04

# ipアドレスを設定したい
>ipアドレスは`/etc/network/interfaces`ファイルに設定を記述します。

https://www.shoeisha.co.jp/book/detail/9784798155760

それらしきディレクトリやファイルがなかったので調べた。

# netplanに変更された
>New since 17.10
>...
>ifupdown has been deprecated in favor of netplan.io and is no longer present on new installs.


https://wiki.ubuntu.com/BionicBeaver/ReleaseNotes#:~:text=netplan.io-,ifupdown%20has%20been%20deprecated%20in%20favor%20of%20netplan.io%20and%20is%20no%20longer%20present%20on%20new%20installs.,-Backend%20configuration%20on

>これらの現代的なネットワーク設定ツールは旧来の "ifupdown" パッケージやその "/etc/network/interfaces" 設定ファイルとの競合を避けるように適正に設定する必要があります。


https://www.debian.org/doc/manuals/debian-reference/ch05.ja.html#_the_modern_network_configuration_for_cloud_with_dhcp:~:text=%E3%81%93%E3%82%8C%E3%82%89%E3%81%AE%E7%8F%BE%E4%BB%A3%E7%9A%84%E3%81%AA%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E8%A8%AD%E5%AE%9A%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AF%E6%97%A7%E6%9D%A5%E3%81%AE%20%22ifupdown%22%20%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%82%84%E3%81%9D%E3%81%AE%20%22/etc/network/interfaces%22%20%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%A8%E3%81%AE%E7%AB%B6%E5%90%88%E3%82%92%E9%81%BF%E3%81%91%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E9%81%A9%E6%AD%A3%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82

とりあえずifupdownが非推奨になったためnetplan.ioが使われるようになったのかもしれない。

# netplanはどんなことをするのか？
>Netplan reads network configuration from /etc/netplan/*.yaml which are written by administrators, installers, cloud image instantiations, or other OS deployments. During early boot, Netplan generates backend specific configuration files in /run to hand off control of devices to a particular networking daemon.

https://netplan.io/#:~:text=Netplan%20reads%20network,particular%20networking%20daemon.

yumファイルでネットワークを構成するのか。
### netplan get
>To show the current configuration

```
user01@user01-VirtualBox:~$ sudo netplan get
[sudo] user01 のパスワード: 
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    enp0s3:
      dhcp4: true
```

ネットワークの構成を確認することができる

### netplan status --all
> The command displays the current network configuration of the system. 
```
root@user01-VirtualBox:/home/user01# netplan status
...
●  2: enp0s3 ethernet UP (NetworkManager: enp0s3)
      MAC Address: 08:00:27:00:f0:ff (Intel Corporation)
        Addresses: *********
                   ********************* (link)
           Routes: ******* from ******* metric 101 (link)
                   ******** metric 256
...
```
現在のシステムのネットワークの構成を映す

### ネットワークを構成するファイルの位置
>Netplan configuration is stored in YAML-formatted files in the /etc/netplan directory. To display the contents of the directory, run:

そこになかったら`lib/netplan`の中にあった
```
user01@user01-VirtualBox:~$ netplan get
Command failed: Cannot open /lib/netplan/00-network-manager-all.yaml: Permission denied
```
```
user01@user01-VirtualBox:~$ sudo netplan get
[sudo] user01 のパスワード: 
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    enp0s3:
      dhcp4: true
```
`etc/netplan`にyamlファイルを作成すると変わった
```
user01@user01-VirtualBox:~$ sudo netplan get

** (process:33196): WARNING **: 09:11:25.813: Permissions for /etc/netplan/second-interface.yaml are too open. Netplan configuration should NOT be accessible by others.
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    enp0s3:
      dhcp4: true
```
### ipアドレスを設定する
>To set a static IP address, use the addresses keyword, which takes a list of (IPv4 or IPv6) addresses along with the subnet prefix length (e.g. /24).

### netplan set 
ネットワーク構成を変更する
```
netplan set --origin-hint second-interface ethernets.enp0s3.addresses=10.0.3.17/24
```
`--origin-hint`は変更対象のファイル名
### netplan try
>Test the new configuration
Applies the new configuration temporarily (120 seconds by default) and waits for confirmation (within the specified time) to make it permanent.

エンターを押しつづける
### netplan apply
>Apply the new Netplan configuration

設定を適用させる

# ping
pingでも通った

# 出典
https://netplan.readthedocs.io/en/stable/netplan-tutorial/#trying-netplan-in-a-virtual-machine

https://netplan.readthedocs.io/en/stable/examples/#how-to-use-networkmanager-as-a-renderer

https://gihyo.jp/admin/serial/01/ubuntu-recipe/0810#sec5

# 感想
読めない英語を読むのは大変で時間もかかった。
これからも英語の記事を読むことを続けようと思う。
日本語の記事も同じようなこと書いてあったのでそれも参考にした。
間違えていることもありますので出典をよく呼んでください。