LXDコンテナに新しいIPアドレスを設定するには、以下の手順に従ってください。以下の例では、新しいIPアドレスを`192.168.1.100`として設定しますが、必要に応じて適切なIPアドレスを使用してください。
コンテナを停止する
IPアドレスを変更する前に、LXDコンテナを一時停止します。
$ lxc stop コンテナ名
`コンテナ名`は変更したいコンテナの名前に置き換えてください。
LXCネットワーク設定確認
lxd init で作られた設定 profile を確認すると、
nictype: bridged
が反映されなかったのだろうか
$ lxc profile show default
config: {}
description: Default LXD profile
devices:
eth0:
name: eth0
network: lxdbr0
type: nic
root:
path: /
pool: default
type: disk
name: default
used_by:
- /1.0/instances/u2204
ネットワークブリッジ lxdbr0 は、しっかりと tupe: bridge で作られている。
$ lxc network show lxdbr0
config:
ipv4.address: 10.168.153.1/24
ipv4.nat: "true"
ipv6.address: fd42:545c:c191:76b::1/64
ipv6.nat: "true"
description: ""
name: lxdbr0
type: bridge
used_by:
- /1.0/instances/u2204
- /1.0/profiles/default
managed: true
status: Created
locations:
- none
$ ip addr show dev lxdbr0
16: lxdbr0: mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:16:3e:ad:5d:36 brd ff:ff:ff:ff:ff:ff
inet 10.168.153.1/24 scope global lxdbr0
valid_lft forever preferred_lft forever
inet6 fd42:545c:c191:76b::1/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::216:3eff:fead:5d36/64 scope link
valid_lft forever preferred_lft forever
$ lxc exec u2204 ip addr show eth0
17: eth0@if18: mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:16:3e:86:05:de brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fd42:545c:c191:76b:216:3eff:fe86:5de/64 scope global mngtmpaddr noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::216:3eff:fe86:5de/64 scope link
valid_lft forever preferred_lft forever
吾輩は猫である。名前はまだない。どこで生れたか頓と見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。
$ lxc profile create bridge
Profile bridge created
$ lxc profile list
+---------+---------------------+---------+
| NAME | DESCRIPTION | USED BY |
+---------+---------------------+---------+
| bridge | | 0 |
+---------+---------------------+---------+
| default | Default LXD profile | 1 |
+---------+---------------------+---------+
lxc profile set = = ...
$ lxc profile set bridge nictype=bridge
lxc profile device add = = ...
$ lxc profile device add bridge eth0 nic nictype=bridge parent=enp2s0
$ lxc config device remove u2204 eth0
Device eth0 removed from u2204
$ lxc network attach lxdbr0 u2204 eth0 eth0
$ lxc config device set u2204 eth0 ipv4.address 192.168.10.2
$ lxc network list-leases lxdbr0
+-----------+-------------------+---------------------------------------+---------+
| HOSTNAME | MAC ADDRESS | IP ADDRESS | TYPE |
+-----------+-------------------+---------------------------------------+---------+
| lxdbr0.gw | | 192.168.10.1 | GATEWAY |
+-----------+-------------------+---------------------------------------+---------+
| lxdbr0.gw | | fd42:b50c:dfa:2d12::1 | GATEWAY |
+-----------+-------------------+---------------------------------------+---------+
| u2204 | 00:16:3e:fc:35:27 | 192.168.10.2 | STATIC |
+-----------+-------------------+---------------------------------------+---------+
| u2204 | 00:16:3e:fc:35:27 | fd42:b50c:dfa:2d12:216:3eff:fefc:3527 | DYNAMIC |
+-----------+-------------------+---------------------------------------+---------+
$ sudo snap restart --reload lxd
新しいIPアドレスを設定する
LXDコンテナに新しいIPアドレスを設定します。これにはLXDの `config` コマンドを使用します。以下のコマンドを実行します。
$ lxc config device add コンテナ名 デバイス名 nic nictype=bridged parent=ホスト上のブリッジ名 name=ethX
$ lxc config device set コンテナ名 デバイス名 ipv4.address 新しいIPアドレス
– `コンテナ名`: IPアドレスを変更したいコンテナの名前に置き換えてください。
– `デバイス名`: 新しいネットワークデバイスの名前を指定します(例:`eth0`など)。
– `ホスト上のブリッジ名`: LXDホスト上に設定されているブリッジの名前を指定します。通常は`lxdbr0`ですが、適切なブリッジ名を確認してください。
– `新しいIPアドレス`: コンテナに設定したい新しいIPアドレスを指定します(例:`192.168.1.100`など)。
例:bash
$ lxc config device add my-container eth0 nic nictype=bridged parent=lxdbr0 name=eth0
$ lxc config device set my-container eth0 ipv4.address 192.168.1.21
$ lxc config device add my-container eth0 nic nictype=bridged parent=lxdbr0 name=eth0
$ Device eth0 added to my-container
$ lxc config device set my-container eth0 ipv4.address 192.168.1.21
コンテナを再起動する
IPアドレスの変更を反映させるために、コンテナを再起動します。
$ lxc start コンテナ名
`コンテナ名`は変更したいコンテナの名前に置き換えてください。
これで、LXDコンテナに新しいIPアドレスが設定されました。必要に応じて、コンテナ内でネットワーク設定を調整し、新しいIPアドレスを使用して通信できるようにしてください。