検索
ubuntu logo
記事の項目

最近の投稿

固定 IP アドレスを設定

サーバー運用する場合、IPアドレスは固定させる必要がある。

この記事の項目

PC環境

Server : Ubuntu-22.04.1 server

PC : MacOS

Ubuntu server を LAN 内に設置して MacOS から ssh , remote desktop で接続する.

固定 IP にする理由

IP アドレスは、ルーターがDHCP「Dynamic Host Configuration Protocol(ダイナミック ホスト コンフィギュレーション プロトコル)」の機能を使って勝手にアドレスを与えて重複を防ぐのがヒューマンエラーを防ぐのに都合が良い.

しかし、ルーターはアクセスする度に異なった IP アドレスを与えてしまう可能性があります.

ネットワーク内にあるサーバーをコントロールする場合、IP アドレスでコントロールする必要があるので、コロコロとIPアドレスが変更されるは困るのだ.

固定IPアドレスならば、複数のクライアントからssh 接続や remote desktop とかも確実に接続可能だ.

大きなネットワークではコンピューター名で名前解決してコンピューター名でアクセスする方法もあるが、小さなネットワークでは、設定がめんどくさい.

したがって、Ubuntuサーバーに固定 IP アドレスを追加する方法を記しておく。

ネットワーク設定の確認

				
					$ 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
valid_lft forever preferred_lft forever

2: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether ……………………..
altname ……………………
inet 192.168.xxx.xxx/24 metric 100 brd 192.168.aaa.aaa scope global dynamic eno2
valid_lft 6818sec preferred_lft 6818sec
inet6 ……………………………….

サーバーによって表示が異なると思いますが、チェックする事柄は

eno2

inet 192.168.xxx.xxx/24

このアドレスはルーターがDHCP で割り振ったアドレス
/24 は サブネットマスク 255.255.255.0 と同じ意味です.

Ubuntu IP アドレス 設定ファイル

ネットワークの設定ファイルは

/etc/netplan/

の中のファイルに記入されています.

				
					$ cd /etc/netplan/
/etc/netplan$ ls 00-installer-config.yaml
				
			

インストール時に設定したネットワークファイル

00-installer-config.yaml

				
					/etc/netplan$ less 00-installer-config.yaml
				
			

DHCP を使った設定になっていました。

# This is the network config written by ‘subiquity’
network:
  ethernets:
    eno2:
      dhcp4: true
  version: 2
00-installer-config.yaml (END)

netplan を使った設定は、ここのサイトに書かれています.

YAML とは?

YAML とは? YAML (YAML Ain’t Markup Language) とは、わかりやすいデータ シリアライズ (serialize) 言語です。 設定ファイルの記述に使用されることが多く、あらゆるプログラミング言語に対応しています。

YAMLはスカラー、シーケンス、マッピングといったデータ形式をインデントで表現するのを基本としている点です。

インデントとは、文章の行頭に空白を挿入して、先頭の文字を右に押しやることです。空白は半角スペースのみOK で tab はダメです。

固定IP の設定ファイルの書き方

To instead set a static IP address, use the addresses key, which takes a list of (IPv4 or IPv6), addresses along with the subnet prefix length (e.g. /24). DNS information can be provided as well, and the gateway can be defined via a default route:

代わりに静的 IP アドレスを設定するには、アドレス キーを使用します。このキーは、アドレス (IPv4 または IPv6) とサブネット プレフィックス長 (/24 など) のリストを受け取ります。 DNS 情報も提供でき、デフォルト ルート経由でゲートウェイを定義できます。

				
					network:
version: 2
renderer: networkd
ethernets:
    enp3s0:
        addresses:
            - 10.10.10.2/24
        nameservers:
            search: [mydomain, otherdomain]
            addresses: [10.10.10.1, 1.1.1.1]
        routes:
            - to: default
              via: 10.10.10.1
				
			

※ renderer: networkd は自分のサイトではエラーが出たのであっさりと削除

固定IP設定ファイル作成

元々合った設定ファイルを最初の番号よりも大きい番号でコピーする.

00-inst…………   –>>  01-inst……………

のような名前にする.

参照順序は、番号、アルファベット順で、ネットワーク設定を上書きしていくようです.

要するに、最初の設定ファイルを読み込み、次の設定ファイルを読み込むと何が良いかというと、後の設定ファイルが間違っていた場合は、先の設定ファイルでネットワークが設定されるので、よりセーフティーにできるからだろうと思っていました.

実は、ネットワーク設定を複数設定できるようです.

				
					/etc/netplan$ sudo cp 00-installer-config.yaml 01-installer-config.yaml
				
			

コピーした設定ファイルを netplan のサイトを参照して書き換えます.

 
				
					/etc/netplan$ sudo vi 01-installer-config.yaml
				
			
network:
version: 2
renderer: networkd
ethernets:
eno2:
addresses:
192.168.xxx.xxx/24
nameservers:
search:
addresses: [192.168.zzz.zzz] ルーターのネームサーバーのアドレス
routes:
– to: default
via: 192.168.yyy.yyy ルーターのアドレスでも良さそう
				
					例)

network:
  version: 2
  ethernets:
    eno2:
      addresses:
        - 192.168.0.30/24
      nameservers:
        addresses: [8.8.8.8, 192.168.1.1]
      routes:
        - to: default
          via: 192.168.0.1
				
			

192.168.xxx.xxx/24

サーバーのアドレスはDHCPが自動で割り振るアドレス領域とルーターや他の機材等が使用していないアドレスならば、ユーザーが適当に決めて良い.(実験している環境は、自宅LAN内なので問題は少ないが)

192.168.zzz.zzz 

サーバーがつながっているルーターのネームサーバーのアドレス

via: 192.168.yyy.yyy

デフォルトルート、繋がっているルーターのアドレスで良さそう.

設定の反映は、下のコマンドでできます.( サーバー本体の再起動は不要のようです )

 

設定を反映

ローカルで設定を反映

ローカルで設定ファイルを弄るのであれば、そのまま apply すれば良いと思います。

				
					$ sudo netplan apply
				
			

リモートで一定時間、設定を反映

設定にエラーがあった場合、リモートでネットワークの設定反映をするとネットワークが切断されます。
sshで接続して設定ファイルを書き直した時は、try オプションを使うのをお勧めします。
netplan try は、一定時間だけ設定を反映して元に戻ります。

–timeout 120

は、120秒間だけ一時的に設定を反映させます。

				
					$ sudo netplan try --timeout 120
				
			

確かめてから、結果が良ければ、netplan apply しよう。

/etc/netplan/

新たに作った設定ファイルをプラスしたので、2つの設定ファイルがあることになった

この場合、2つのIPアドレスでアクセスできることになりました.

つまり、インストール時にDHCP で割り振られた IP と 新たに作った固定IPの2つのIPアドレスで通信が可能になりました.

不必要ならば、一方のファイル名の拡張子を変更して適応すれば良いかな.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Redis

$ sudo apt update $ sudo