masakazu-takewakaのブログ

たまに書きます。

VirtualBoxのマシン(Ubuntu)に原始的なやり方で固定IPを割り当てる

"漫画でわかるLinux シス管系女子3" の1章で原始的(?)な固定IPの割り当て方法が紹介されていた。具体的にはUbuntu/etc/network/interfacesを編集するやり方。

Amazon CAPTCHA

ネットワークの基本的な知識が確かめられるので、経験しておくのもいいと思いVirtualBoxで試してみた。(漫画に出てくる色んな技術を試すのに、コンテナより仮想マシンの方がいいのかなという割とふわっとした考え)

Ubuntuのバージョンは18.04。

/etc/network/interfacesを開いてみる

まだループバックアドレスしか定義されていない。このファイルに固定IPアドレスの情報を追加していく。

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

インターフェースのIPアドレスを調べる

eth0がなくて、代わりにenp0s3が存在していることに気づく。

調べたところenp0s3というのはsystemdが導入したもので、ハードウェアのコネクター(?)の名前らしい。従来のネーミングだと不都合があるっぽい。

https://askubuntu.com/a/704121

$ ip a

#...

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:15:b1:d2 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3
       valid_lft 86276sec preferred_lft 86276sec
    inet6 fe80::893:8d2b:c542:f28b/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

動的IPアドレスで、値は10.0.2.15サブネットマスク255.255.255.0

ちなみになぜ192.168.1.15のような感じではなく10.0.2.15なのかを調べてみたら、VirtualBox10.0.2.xのプライベートネットワークを作るからだった。(これは昔仕事でVirtualBoxを使っていた時に目にした記憶がある)

virtualbox - Trying to SSH to local VM Ubuntu with Putty - Unix & Linux Stack Exchange

ゲートウェイIPアドレスを調べる

ゲートウェイIPアドレス10.0.2.2

$ ip r
# default via 10.0.2.2 dev enp0s3 onlink
# 10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.20
# 169.254.0.0/16 dev enp0s3 scope link metric 1000

/etc/network/interfacesを編集する

こんな感じで書く。

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto enp0s3
iface enp0s3 inet static
address 10.0.2.20
netmask 255.255.255.0
gateway 10.0.2.2

設定したインターフェースを起動する

$ sudo ifup enp0s3

意図通りに値が更新されている。10.0.2.1510.0.2.20

$ ip a

#...

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:15:b1:d2 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.20/24 brd 10.0.2.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe15:b1d2/64 scope link
       valid_lft forever preferred_lft forever

ホストからsshできるか検証

VirtualBoxがつくるプライベートネットワークにホストからアクセスできないのでまずポートフォワーディングする。

f:id:masakazu-takewaka:20200203161633p:plain

host:~$ ssh -p 3022 take@127.0.0.1
take@take-VirtualBox:~$                  # VirtualBox machine

sshすることができたので、きちんと設定できてた模様。