kakiro-webカキローウェブ

システム開発情報とコンピューター書籍の紹介サイト

CentOS7.2 64bit インストール後にVirtualBoxでNAT、ホストオンリーアダプターに変更する場合のネットワークの設定

CentOS7.2 64bitのインストール後に、VirtualBoxのネットワークのアダプターをNATとホストオンリーアダプターに変更する場合のネットワークの設定について、以下に示します。

※VirtualBoxでのNAT、ホストオンリーアダプターの設定については、当サイトのVirtualBox CentOS7 64bitでNAT、ホストオンリーアダプターを使用のページをご覧ください。

※CentOS7 64bitのインストール時にVirtualBoxでNAT、ホストオンリーアダプターを使用する場合のネットワークの設定については、当サイトのCentOS7 64bit インストール時にVirtualBoxでNAT、ホストオンリーアダプターを使用する場合のネットワークの設定のページをご覧ください。

CentOS7 64bitのインストール後にNATとホストオンリーアダプターに変更する場合のネットワークの設定

VirtualBoxでネットワークのアダプターをNATとホストオンリーアダプターに変更した後に、CentOS7 64bitを起動した際のネットワークインターフェイスの状態は、以下のようになっています。

# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    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: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet xxx.xxx.xxx.xxx/xx brd xxx.xxx.xxx.xxx scope global dynamic enp0s8
       valid_lft xxxxxsec preferred_lft xxxxxsec
    inet6 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/xxx scope link
       valid_lft forever preferred_lft forever
3: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet xxx.xxx.xxx.xxx/xx brd xxx.xxx.xxx.xxx scope global dynamic enp0s9
       valid_lft xxxxxsec preferred_lft xxxxxsec
    inet6 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/xxx scope link
       valid_lft forever preferred_lft forever

ネットワークインターフェイス「enp0s8」が「NAT」に、「enp0s9」が「ホストオンリーアダプター」に割り当てられています。

※割り当てられるネットワークインターフェイスの名前は、環境によって異なります。

※「xx:xx:xx:xx:xx:xx」の部分に表示されているMACアドレスは、VirtualBoxのネットワークの設定で、アダプターの高度な設定を開いたときに確認できるMACアドレスになっています。これによりNATとホストオンリーアダプターの区別が付きます。

ブリッジアダプターのネットワークインターフェイスをOSの起動時にネットワークの接続が自動で行われないようにする

ブリッジアダプターは使用しないようになりますので、ブリッジアダプターのネットワークインターフェイス「enp0s3」の設定ファイル「/etc/sysconfig/network-scripts/ifcfg-enp0s3」を、nmcliコマンドを使用して以下のように編集します。

OSの起動時にネットワークの接続が自動で行われないようにするには、以下のコマンドを実行します。

# nmcli connection modify enp0s3 connection.autoconnect no
  • nmcliコマンドで接続に関する操作を行う際には、引数に「connection」を指定します。

  • 接続設定の編集を行う際には、引数の「connection」に続けて「modify」と、編集するネットワークインターフェイスの名前(ここでは「enp0s3」)を指定し、続けて編集するプロパティの名前と値を指定します。

  • 「connection.autoconnect」の値に「no」と指定すると、OSの起動時にネットワークの接続が自動で行われないようになります。

このコマンドの実行により、設定ファイル「ifcfg-enp0s3」に「ONBOOT=no」の設定が行われます。

NAT、ホストオンリーアダプターのネットワークインターフェイスの設定ファイル「ifcfg-enp0s8」、「ifcfg-enp0s9」を作成

NATのネットワークインターフェイス「enp0s8」と、ホストオンリーアダプターのネットワークインターフェイス「enp0s9」については、IPアドレスが割り当てられるようになっていますが、設定ファイル「/etc/sysconfig/network-scripts/ifcfg-enp0s8」、「/etc/sysconfig/network-scripts/ifcfg-enp0s9」は作成されていません。

このままではネットワークの設定を行うことができませんので、以下のように設定ファイル「ifcfg-enp0s8」、「ifcfg-enp0s9」の作成を行います。

以下のコマンドを実行して、ネットワークインターフェイス「enp0s8」の設定ファイル「ifcfg-enp0s8」の作成を行います。

# nmcli connection add type ethernet con-name enp0s8 ifname enp0s8
  • nmcliコマンドで接続に関する操作を行う際には、引数に「connection」を指定します。

  • 接続設定の追加を行う際には、引数の「connection」に続けて「add」と指定します。

  • 「type」に「ethernet」と指定し、接続にはEthernetを使用するようにします。

  • 「con-name」に接続の名前を指定します。接続の名前は設定ファイルの名前「ifcfg-xxxxx」の「xxxxx」の部分にも使用されます。接続の名前は自由に付けてもよいですが、CentOSで自動で作成されるときはネットワークインターフェイスの名前と同じになっていますので、ここでもNATの「enp0s8」を指定します。

  • 「ifname」にNATのネットワークインターフェイスの名前「enp0s8」を指定します。

このコマンドの実行により、設定ファイル「/etc/sysconfig/network-scripts/ifcfg-enp0s8」が作成されます。

以下のコマンドを実行して、ネットワークインターフェイス「enp0s9」の設定ファイル「ifcfg-enp0s9」の作成を行います。

# nmcli connection add type ethernet con-name enp0s9 ifname enp0s9
  • nmcliコマンドで接続に関する操作を行う際には、引数に「connection」を指定します。

  • 接続設定の追加を行う際には、引数の「connection」に続けて「add」と指定します。

  • 「type」に「ethernet」と指定し、接続にはEthernetを使用するようにします。

  • 「con-name」に接続の名前を指定します。接続の名前は設定ファイルの名前「ifcfg-xxxxx」の「xxxxx」の部分にも使用されます。接続の名前は自由に付けてもよいですが、CentOSで自動で作成されるときはネットワークインターフェイスの名前と同じになっていますので、ここでもホストオンリーアダプターの「enp0s9」を指定します。

  • 「ifname」にホストオンリーアダプターのネットワークインターフェイスの名前「enp0s9」を指定します。

このコマンドの実行により、設定ファイル「/etc/sysconfig/network-scripts/ifcfg-enp0s9」が作成されます。

作成された設定ファイル「ifcfg-enp0s8」の内容

作成された設定ファイル「ifcfg-enp0s8」の内容は、以下のようになっています。

TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s8
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
DEVICE=enp0s8
ONBOOT=yes

作成された設定ファイル「ifcfg-enp0s9」の内容

作成された設定ファイル「ifcfg-enp0s9」の内容は、以下のようになっています。

TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s9
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
DEVICE=enp0s9
ONBOOT=yes

設定ファイルを追加後の接続の状態

設定ファイルを追加後の接続の状態は、以下のようになっています。

# nmcli connection show
名前        UUID                                  タイプ          デバイス
有線接続 2  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  802-3-ethernet  enp0s8
有線接続 1  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  802-3-ethernet  enp0s9
enp0s3      xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  802-3-ethernet  --
enp0s9      xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  802-3-ethernet  --
enp0s8      xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  802-3-ethernet  --
  • nmcliコマンドで接続に関する操作を行う際には、引数に「connection」を指定します。

  • 接続の状態を確認する際には、引数の「connection」に続けて「show」を指定します。

NATの「enp0s8」とホストオンリーアダプターの「enp0s9」が、元々あった「有線接続 2」、「有線接続 1」と表示されているものと、後から追加したものに分かれてしまっています。

この状態はコマンド「systemctl restart network.service」を実行してネットワークの再起動を行っても解消されませんので、これらに対する設定を行っていきます。

NATとホストオンリーアダプターの不要な接続を削除

NATとホストオンリーアダプターの設定ファイルの追加後に不要となる「有線接続 2」、「有線接続 1」の接続を削除するには、以下のコマンドを実行します。

# nmcli connection delete xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  • nmcliコマンドで接続に関する操作を行う際には、引数に「connection」を指定します。

  • 接続の削除を行う際には、引数の「connection」に続けて「delete」と、削除する接続のUUIDを指定します。

    ここでは、「有線接続 2」と「有線接続 1」のUUIDを指定します。

不要な接続を削除後の接続の状態

不要な接続を削除後の接続の状態は、以下のようになっています。

# nmcli connection show
名前    UUID                                  タイプ          デバイス
enp0s3  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  802-3-ethernet  --
enp0s9  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  802-3-ethernet  enp0s9
enp0s8  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  802-3-ethernet  enp0s8

ホストオンリーアダプターのネットワークインターフェイスで固定のIPアドレスを使用するようにする

ホストオンリーアダプターで、IPアドレスをホストオンリーネットワークのDHCPから自動で割り当てるようにしていると、複数のゲストOSを同じホストオンリーネットワークのホストオンリーアダプターで使用している場合に、IPアドレスがゲストOS間で入れ替わったりすることがあります。

IPアドレスが変更されないようにするには、DHCPは使用せず固定のIPアドレスを使用するようにします。

固定のIPアドレスを使用するようにするには、以下のコマンドを実行します。

※NATのほうのネットワークインターフェイス「enp0s8」は、外部から接続されることはないため、固定のIPアドレスにする必要はありません。

# nmcli connection modify enp0s9 ipv4.method manual ipv4.addresses xxx.xxx.xxx.xxx/xx
  • nmcliコマンドで接続に関する操作を行う際には、引数に「connection」を指定します。

  • 接続設定の編集を行う際には、引数の「connection」に続けて「modify」と、編集するネットワークインターフェイスの名前(ここでは「enp0s9」)を指定し、続けて編集するプロパティの名前と値を指定します。

  • 「ipv4.method」の値に「manual」と指定すると、IPv4で固定のIPアドレスを使用するようになります。

    固定のIPアドレスを使用する場合は、「ipv4.addresses」へのIPv4のIPアドレスの指定も同時に行う必要があります。

    ※「xxx.xxx.xxx.xxx/xx」の「/」の前の「xxx.xxx.xxx.xxx」にIPアドレスを指定し、後の「xx」にサブネットマスクのビット長を指定します。

    ※IPアドレスには、ホストオンリーネットワークと同じネットワークで、DHCPで割り当てるようにしている範囲外のものを指定するようにします。

このコマンドの実行により、設定ファイル「ifcfg-enp0s9」に「BOOTPROTO=none」、「IPADDR=xxx.xxx.xxx.xxx」、「PREFIX=xx」の設定が行われます。

ネットワークの設定を有効化する

ネットワークの設定を有効化するには、以下のコマンドを実行してネットワークサービスを再起動します。

# systemctl restart network.service

※CentOS7になってサービス起動関連のコマンドは、「service」から「systemctl」に変わりました。

ネットワークの設定後の設定ファイル「ifcfg-enp0s8」の内容

ネットワークの設定後の設定ファイル「ifcfg-enp0s8」の内容は、以下のようになっています。

TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s8
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
DEVICE=enp0s8
ONBOOT=yes

ネットワークの設定後の設定ファイル「ifcfg-enp0s9」の内容

ネットワークの設定後の設定ファイル「ifcfg-enp0s9」の内容は、以下のようになっています。

TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s9
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
DEVICE=enp0s9
ONBOOT=yes
IPADDR=xxx.xxx.xxx.xxx
PREFIX=xx
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes

ネットワークの設定後のネットワークインターフェイス「enp0s8」の接続設定の内容

接続設定の内容は、以下のコマンドで確認することができます。

ネットワークの設定後のネットワークインターフェイス「enp0s8」の接続設定の内容は、以下のようになっています。

# nmcli -p connection show enp0s8
===============================================================================
                      Connection profile details (enp0s8)
===============================================================================
connection.id:                          enp0s8
connection.uuid:                        xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
connection.interface-name:              enp0s8
connection.type:                        802-3-ethernet
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.timestamp:                   xxxxxxxxxx
connection.read-only:                   no
connection.permissions:
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:
connection.gateway-ping-timeout:        0
connection.metered:                     不明
-------------------------------------------------------------------------------
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          yes
802-3-ethernet.mac-address:             --
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.mac-address-blacklist:
802-3-ethernet.mtu:                     自動
802-3-ethernet.s390-subchannels:
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:
802-3-ethernet.wake-on-lan:             1 (default)
802-3-ethernet.wake-on-lan-password:    --
-------------------------------------------------------------------------------
ipv4.method:                            auto
ipv4.dns:
ipv4.dns-search:
ipv4.addresses:
ipv4.gateway:                           --
ipv4.routes:
ipv4.route-metric:                      -1
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
-------------------------------------------------------------------------------
:(略)
-------------------------------------------------------------------------------
===============================================================================
      Activate connection details (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
===============================================================================
GENERAL.名前:                           enp0s8
GENERAL.UUID:                           xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
GENERAL.デバイス:                       enp0s8
GENERAL.状態:                           アクティベート済み
GENERAL.デフォルト:                     はい
GENERAL.デフォルト6:                    いいえ
GENERAL.VPN:                            いいえ
GENERAL.ゾーン:                         --
GENERAL.DBUS パス:                      /org/freedesktop/NetworkManager/ActiveConnection/4
GENERAL.CON パス:                       /org/freedesktop/NetworkManager/Settings/3
GENERAL.スペックオブジェクト:           /
GENERAL.マスターパス:                   --
-------------------------------------------------------------------------------
IP4.アドレス[1]:                        xxx.xxx.xxx.xxx/xx
IP4.ゲートウェイ:                       xxx.xxx.xxx.xxx
IP4.DNS[1]:                             xxx.xxx.xxx.xxx
IP4.ドメイン[1]:                        xxxxx.xxx
-------------------------------------------------------------------------------
:(略)
-------------------------------------------------------------------------------
  • nmcliコマンドで接続に関する操作を行う際には、引数に「connection」を指定します。

  • 接続設定の内容を確認する際には、引数の「connection」に続けて「show」と、確認するネットワークインターフェイスの名前(ここでは「enp0s8」)を指定します。

  • 「-p」オプションを指定すると、表示内容が見やすいように線で区切られて表示されます。

ネットワークの設定後のネットワークインターフェイス「enp0s9」の接続設定の内容

接続設定の内容は、以下のコマンドで確認することができます。

ネットワークの設定後のネットワークインターフェイス「enp0s9」の接続設定の内容は、以下のようになっています。

# nmcli -p connection show enp0s9
===============================================================================
                      Connection profile details (enp0s9)
===============================================================================
connection.id:                          enp0s9
connection.uuid:                        xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
connection.interface-name:              enp0s9
connection.type:                        802-3-ethernet
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.timestamp:                   xxxxxxxxxx
connection.read-only:                   no
connection.permissions:
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:
connection.gateway-ping-timeout:        0
connection.metered:                     不明
-------------------------------------------------------------------------------
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          yes
802-3-ethernet.mac-address:             --
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.mac-address-blacklist:
802-3-ethernet.mtu:                     自動
802-3-ethernet.s390-subchannels:
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:
802-3-ethernet.wake-on-lan:             1 (default)
802-3-ethernet.wake-on-lan-password:    --
-------------------------------------------------------------------------------
ipv4.method:                            manual
ipv4.dns:
ipv4.dns-search:
ipv4.addresses:                         xxx.xxx.xxx.xxx/xx
ipv4.gateway:                           --
ipv4.routes:
ipv4.route-metric:                      -1
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
-------------------------------------------------------------------------------
:(略)
-------------------------------------------------------------------------------
===============================================================================
      Activate connection details (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
===============================================================================
GENERAL.名前:                           enp0s9
GENERAL.UUID:                           xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
GENERAL.デバイス:                       enp0s9
GENERAL.状態:                           アクティベート済み
GENERAL.デフォルト:                     いいえ
GENERAL.デフォルト6:                    いいえ
GENERAL.VPN:                            いいえ
GENERAL.ゾーン:                         --
GENERAL.DBUS パス:                      /org/freedesktop/NetworkManager/ActiveConnection/5
GENERAL.CON パス:                       /org/freedesktop/NetworkManager/Settings/4
GENERAL.スペックオブジェクト:           /
GENERAL.マスターパス:                   --
-------------------------------------------------------------------------------
IP4.アドレス[1]:                        xxx.xxx.xxx.xxx/xx
IP4.ゲートウェイ:
-------------------------------------------------------------------------------
:(略)
-------------------------------------------------------------------------------
  • nmcliコマンドで接続に関する操作を行う際には、引数に「connection」を指定します。

  • 接続設定の内容を確認する際には、引数の「connection」に続けて「show」と、確認するネットワークインターフェイスの名前(ここでは「enp0s9」)を指定します。

  • 「-p」オプションを指定すると、表示内容が見やすいように線で区切られて表示されます。

再度ブリッジアダプターのみを使用するように戻す場合

再度ブリッジアダプターのみを使用するように戻す際は、以下の設定を行います。

VirtualBoxのネットワークの設定を、以下のように行います。

  • アダプター1のブリッジアダプターを有効化。

  • アダプター2のNATと、アダプター3のホストオンリーアダプターを無効化。

CentOSのネットワーク設定で「connection.autoconnect」の値をnmcliコマンドを使用して、以下のように指定します。

  • ブリッジアダプターのネットワークインターフェイス「enp0s3」は「yes」として、OSの起動時にネットワークの接続が自動で行われるようにする。

  • NATのネットワークインターフェイス「enp0s8」と、ホストオンリーアダプターのネットワークインターフェイス「enp0s9」は「no」として、OSの起動時にネットワークの接続が自動で行われないようにする。

今後NATとホストオンリーアダプターを使用するように変更する場合

今後はNATとホストオンリーアダプターを使用するように変更する際は、以下の設定を行うのみで可能となります。

VirtualBoxのネットワークの設定を、以下のように行います。

  • アダプター1のブリッジアダプターを無効化。

  • アダプター2のNATと、アダプター3のホストオンリーアダプターを有効化。

CentOSのネットワーク設定で「connection.autoconnect」の値をnmcliコマンドを使用して、以下のように指定します。

  • ブリッジアダプターのネットワークインターフェイス「enp0s3」は「no」として、OSの起動時にネットワークの接続が自動で行われないようにする。

  • NATのネットワークインターフェイス「enp0s8」と、ホストオンリーアダプターのネットワークインターフェイス「enp0s9」は「yes」として、OSの起動時にネットワークの接続が自動で行われるようにする。

CentOS7.2 64bit インストール後にVirtualBoxでNAT、ホストオンリーアダプターに変更する場合のネットワークの設定については、以上です。

Linuxの基礎知識に関するおすすめの書籍

当サイトの書籍紹介ページで、Linuxの基礎知識に関するおすすめの書籍の紹介も行っておりますので、ご覧ください。