LoginSignup
0
3

More than 5 years have passed since last update.

VirtualBox上のArch LinuxでNATとホストオンリーアダプタを併用しようとしてハマった話

Posted at

やりたかったこと

VirtualBoxに立てたArchLinuxで、NATとホストオンリーアダプタを併用する。
NATはDHCPでIPアドレスを取得して、
ホストオンリーアダプタは固定IPで利用したかった。

解決方法

netctlのプロファイルを作ってネットワークインタフェースを設定するときは、dhcpcdを無効化する。
いずれかのインタフェースでdhcpcdを使いたいときは、netctlのプロファイルからDHCPの設定を行う。

ハマったところ

ホストオンリーアダプタ(以下インタフェース名のenp0s8と記載)用のプロファイルをきちんと設定しているにも関わらず、下記のようなエラーが解消できなかった。

network[281]: The interface of network profile 'enp0s8' is already up

Wikiに書いてあるように、インタフェースをdown→プロファイルをrestart→インタフェースをupという手順を踏むとプロファイルが動き始め、固定IPをきちんと取得出来る。
しかし、マシンを再起動などすると、またエラーになってしまう。

原因

原因もWikiに書いてありました…

ただし、netctl はネットワークインターフェイスデバイスが既に起動している場合 (例えば dhcpcd を使っている場合) はプロファイルを実行しません。

NATのアダプタはDHCPでIPを取得して欲しかったために、dhcpcdを有効にしていたのが原因でした。

解決

最終的に以下のようなプロファイルを作成し、所望の動作が得られました。
ホストオンリーアダプタの方でGatewayなどを設定するとルーティングがおかしなことになるので注意。

/etc/netctl/enp0s3
Description='VirtualBox NAT Network'
Interface=enp0s3
Connection=ethernet
IP=dhcp
/etc/netctl/enp0s8
Description='VirtualBox Host-only Network'
Interface=enp0s8
Connection=ethernet
IP=static
Address=('192.168.56.56/24')
#DNS=('192.168.56.1')
#Routes=('192.168.0.0/24 via 192.168.1.2')
#Gateway='192.168.56.1'

結論

ArchLinuxのWikiはやっぱり最強だった。

参考

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3