Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
185
Help us understand the problem. What is going on with this article?
@zen3

Ubuntu 20.04 LTSで固定IPアドレスの設定

Ubuntu 20.04 LTS Serverでの固定IPアドレス設定。
17.10から、IPアドレスの変更が/etc/network/interfacesをいじる方式からNetplanへ変更になっているのでメモ。(18.04 LTSも)

Netplan | Backend-agnostic network configuration in YAML

IPアドレス変更

OSインストール直後、設定ファイルのパスには、
(Ubuntu 20.04LTSの場合)
Live DVDからインストールした場合は/etc/netplan/00-installer-config.yaml

(Ubuntu 18.04LTSの場合)
Live CDからインストールした場合は/etc/netplan/50-cloud-init.yaml
mini.isoからインストールした場合は/etc/netplan/01-netcfg.yaml

が作成されてますが、【Ubuntu】 /etc/netplan/50-cloud-init.yamlを編集するの止めろにある通り、これらのファイルは触らない方が良いです。

公式サイトのドキュメント( https://ubuntu.com/server/docs/network-configuration )によれば、/etc/netplan/99_config.yaml を作成し設定を上書きするのが正式なようです。(コメントにてご指摘ありがとうございます。)

/etc/netplan/99_config.yaml を作成しIPアドレスを設定します。
以下は設定例。

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: false
      dhcp6: false
      addresses: [192.168.1.70/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]

KVMやLXDなどで、物理マシンの外に公開するサーバーを建てたい場合にはブリッジの設定をすると思う。その場合には下記のように記述します。(そして仮想nicをbr0に差し込む)

事前準備

設定をする前にブリッジ機能の有効化をしておく

$ sudo apt install -y bridge-utils
$ brctl show
ブリッジ構成時の設定ファイル
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: false
      dhcp6: false
  bridges:
    br0:
      interfaces: [eth0]
      dhcp4: false
      dhcp6: false
      addresses: [192.168.1.70/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]
      parameters:
        forward-delay: 0
        stp: false
      optional: true

IPアドレス設定変更の反映

netplan applyを実行して反映します。再起動不要です。

$ sudo netplan apply

tryコマンド

リモートから設定を変更するときに自信があるならばapplyで一気に反映させてもいいけど、失敗して疎通不能になるのは困る場合、反映後指定秒数以内に[Enter]が押せなかったら、元の設定に戻してくれる機能がある。(但し、ブリッジやボンディングには対応していない。timeoutを設定しない時のデフォルトは120秒)
IPアドレスを変更するときなどは、IPアドレスを変えて再度sshしても別な端末になりEnterが押せないので、tmux等仮想端末上からnetplanコマンドを叩いてssh再接続後アタッチ(tmux a)しなおすのが良いかも。

$ sudo netplan try --timeout 10
Do you want to keep these settings?
Press ENTER before the timeout to accept the new configuration
Changes will revert in  1 seconds
Reverting.

IPアドレスの確認

ifconfigコマンドがデフォルトでインストールされなくなったので、ipコマンドで確認。

$ ip addr

(2020-05-28 自分用にメモ追記)
ネットワークの状態を詳細に確認するなら、下記コマンドが便利。

$ networkctl status -a

フックスクリプト

interfacesファイルの頃は、pre-up , up , down , post-downにコマンドを書いていたが、Netplanにはそういった機能は無く、例えばrendererにnetworkdを指定した場合、networkdが呼び出すnetworkd-dispatcherにそういった設定を追加する。

sudo apt install -y networkd-dispatcher
sudo mv ap_start.sh /etc/networkd-dispatcher/routable.d/
sudo mv ap_stop.sh /etc/networkd-dispatcher/off.d/

(参考)https://netplan.io/faq#use-pre-up-post-up-etc-hook-scripts
(参考)https://roy-n-roy.github.io/Raspberry%20Pi/Network/

参考

How To Configure Static IP Address on Ubuntu 20.04/18.04/19.10
Network - Configuration | Server documentation | Ubuntu
Netplan reference (←WiFi、ブリッジの設定等もある)
【Ubuntu】 /etc/netplan/50-cloud-init.yamlを編集するの止めろ

185
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
zen3
Webシステムの開発をしています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
185
Help us understand the problem. What is going on with this article?