2016年8月28日日曜日

VirtualBoxのCentOS7入れて、sshでログインできるようにするまで

今までVMware使ってたけど、Mac環境なのでVirtualBoxを入れてみた。
そして、CentOS7をインストールして環境準備したけど。。

ホスト→ゲストに繋がらない。。
WindowsでVMware使ってたときは、ゲストOSのネットワーク設定をブリッジにしたら、ちゃんと別のIPアドレスが割り当てられたのに、VirtualBoxだと別セグメントのIPアドレスが割り当てられている。


色々調べてみると、2種類のNICを準備する必要があることが判明。
  • NAT
  • ホストオンリーアダプター(ネットワーク)
NATのNICで、【VMゲスト(CentOS)】ー【インターネット】との通信を行う。
ホストオンリー〜のNICで、【VMゲスト(CentOS)】ー【VMホスト(Mac)】の通信を行う。
詳細は以下で行うが、ネットワークのイメージはこんな感じ。
(IPアドレス、NIC名はウチで試した結果なので、環境によって異なります)



ホストオンリーアダプターの作成

まずVirtualBoxの設定で、ホストオンリーアダプターを準備する。

  1. VirtualBoxの「環境設定」メニューを選択
  2. 「ネットワーク」⇒「ホストオンリーネットワーク(H)」をクリック
  3. 右側にある一番上のボタンをクリックし、ホストオンリーネットワークを作成



仮想マシンにNICを割り当てる

次に、VMゲストの設定で、NICを2つ割り当てる。
  1. VirtualBoxで作成したVMを選択し、「設定」ボタンをクリック
  2. 「ネットワーク」をクリック
    (デフォルトでアダプター1にNATが割り当てられていることを確認、なければNATを割り当てる)
  3. アダプター2を選択し、ネットワークアダプターを有効化を選択。名前は先程作成したホストオンリーネットワークを選ぶ



仮想マシン上のOSでNICを有効化


最後に、VMゲストのOS上の設定で、NICを有効化する。
ただ、うまく行ってれば、自動的に認識され、有効化されているはず。
確認はifconfigを実行してみる。

# ifconfig
enp0s3: flags=4163  mtu 1500
        ether 08:00:27:4c:ef:c2  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s8: flags=4163  mtu 1500
        inet 192.168.56.101  netmask 255.255.255.0  broadcast 192.168.56.255
        inet6 fe80::a00:27ff:fe8e:fbd2  prefixlen 64  scopeid 0x20
        ether 08:00:27:8e:fb:d2  txqueuelen 1000  (Ethernet)
        RX packets 48  bytes 7479 (7.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 42  bytes 7737 (7.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 0  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


一瞬、3つ認識されているから大丈夫かと思ったが、インターネットへの通信に失敗している。
よくみると、NATのNIC(enp0s3)がIPアドレス割り当てられていない。
NICの設定を見る。

# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

 すると、「ONBOOT=no」となっており、有効化されていなかった。
「ONBOOT=yes」に書き換えてネットワークを再起動。

すると、今度はちゃんとIPアドレスが割り当てられており、インターネットへの接続も成功した。

# ifconfig
enp0s3: flags=4163  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::a00:27ff:fe4c:efc2  prefixlen 64  scopeid 0x20
        ether 08:00:27:4c:ef:c2  txqueuelen 1000  (Ethernet)
        RX packets 2  bytes 1180 (1.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 9  bytes 1254 (1.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s8: flags=4163  mtu 1500
        inet 192.168.56.101  netmask 255.255.255.0  broadcast 192.168.56.255
        inet6 fe80::a00:27ff:fe8e:fbd2  prefixlen 64  scopeid 0x20
        ether 08:00:27:8e:fb:d2  txqueuelen 1000  (Ethernet)
        RX packets 578  bytes 51817 (50.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 334  bytes 57715 (56.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 0  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ちなみに、ルーティングテーブルはこんな感じになってるはず。

# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.0.2.2        0.0.0.0         UG        0 0          0 enp0s3
10.0.2.0        0.0.0.0         255.255.255.0   U         0 0          0 enp0s3
192.168.56.0    0.0.0.0         255.255.255.0   U         0 0          0 enp0s8


以上、VirtualBoxでVM作った際のネットワーク設定についてでした。

0 件のコメント:

コメントを投稿