前回までにVirtualBox のインストールとCentOS7 のインストールが完了していると思います。
今回は、ネットワークの設定を行っていきます。
アダプター1:「NAT」⁼ ゲストOSからWANへの接続、HTTP、HTTPS、SSH接続を設定します。
アダプター2:「ホストオンリーアダプター」= ホストOS<=>ゲストOS間の接続を設定します。
今回の想定では特に必要ありませんが、ホストOS側でIISを使用している。
ゲストOSを複数立ち上げる等の場合には必要になりますので、設定しておきます。
Windowsのコマンドプロンプトを立ち上げます。「ipconfig」と入力し、ネットワークの設定を確認します。
以下のように表示がされます。(ネットワークの構成により、Wi-Fiのアダプターが表示されたりします。)以下の例では、自分のPCは、192.168.203.20 のアドレスが割り振られ、ホストオンリーアダプターには192.168.56.1が設定されている事がわかります。
C:\User\myname> ipconfig Windows IP 構成 イーサネット アダプター ローカル エリア接続: 接続固有の DNS サフィックス . . . . .: IPv4 アドレス . . . . . . . . . . . .: 192.168.203.20 サブネット マスク . . . . . . . . . .: 255.255.255.0 デフォルト ゲートウェイ . . . . . . .: 192.168.203.1 イーサネット アダプター VirtualBox Host-Only Network: 接続固有の DNS サフィックス . . . . .: リンクローカル IPv6 アドレス. . . . .: fe80::b534:d8aa:34da:f21f%10 IPv4 アドレス . . . . . . . . . . . .: 192.168.56.1 サブネット マスク . . . . . . . . . .: 255.255.255.0 デフォルト ゲートウェイ . . . . . . .: Tunnel adapter Teredo Tunneling Pseudo-Interface: 接続固有の DNS サフィックス . . . . .: IPv6 アドレス . . . . . . . . . . . .: 2001:0:4137:9e76:97:222c:3f57:34eb リンクローカル IPv6 アドレス. . . . .: fe80::97:222c:3f57:34eb%9 デフォルト ゲートウェイ . . . . . . .: ::
次に、CentOS のネットワークを確認します。仮想マシンを立ち上げて、「root」ユーザーでログインしてください。「ip addr」と入力します。
[root@localhost ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 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: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:90:14:a6 brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3 valid_lft 85043sec preferred_lft 85043sec inet6 fe80::e3b2:bc3d:af9c:ffd4/64 scope link valid_lft forever preferred_lft forever 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:1b:bd:11 brd ff:ff:ff:ff:ff:ff inet 192.168.56.125/24 brd 192.168.56.255 scope global enp0s8 valid_lft forever preferred_lft forever inet6 fe80::e48a:6a4f:ee67:b1a4/64 scope link valid_lft forever preferred_lft forever
2: enp0s3(環境によって異なります。)を確認します。ここでは「10.0.2.15」というipアドレスが割り振ら手ています。アダプター1でNATを選択した場合、だいたいこのアドレスが割り当てられます。
3:emp0s8はホストオンリーアダプターとなっています。ここでは、「192.168.56.125/24」というアドレスが割り当てられています。先ほどWindows 側で確認したアドレス「192.168.56.1」と192.168.56までが同じになっています。
上記のようになっていない場合は、設定を修正します。同じになっている場合は修正は不要ですので、疎通の確認に進んでください。
ディレクトリーを移動しまます。 [root@localhost ~]# cd /etc/sysconfig/network-scripts ディレクトリー内のファイルを確認します。 [root@localhost network-scripts]# ls ifcfg-enp0s3 ifdown-Team ifdown-eth ifdown-ipv6 ifdown-ppp ifcfg-lo ifdown ifdown-bnep ifdown-ippp ifup ifdown-TeamPort ifdown-ib ifdown-isdn ifdown-routes
enp0s3 用の設定ファイル「ifcfg-enp0s3」が確認できます。
編集には、vi エディタを使用します。必要最低限の操作方法は以下の通りです。
編集モード
操作 | 動作 |
---|---|
→ | カーソルが右に移動 |
← | カーソルが左に移動 |
↓ | カーソルが次の行に移動 |
↑ | カーソルが前の行に移動 |
i | カーソルのある場所から編集を開始 |
a | カーソルのある次の文字の後から編集を開始 |
Esc | 編集モードからコマンドモードへ変更 |
コマンドモード
操作 | 動作 |
---|---|
:set number | 行番号の表示 |
:w + Enter | 文書の保存 |
:q + Enter | 文書を閉じる |
:wq + Enter | 文書を保存して閉じる |
:q! + Enter | 文書を強制的に閉じます。変更を反映したくない場合などに便利です。 |
※他にも様々な使い方がありますので、興味のある方は調べてみてください。
「ip addr」コマンドで正しくアドレスが割り当てられているか確認してください。
設定ファイルを開きます。 [root@localhost network-scripts]# vi ifcfg-enp0s3 以下のような内容が表示されます。 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=enp0s3 UUID=713e6650-e55e-4860-9d89-59405688c864 DEVICE=enp0s3 ONBOOT=no <=ここを「yes」に修正します。 ONBOOT=yes ONBOOT=yes は起動時にインターフェースを有効にする設定です。他はこのままで構いません。 「:wq」+ 「Enter」で保存してください。次にネットワークを再起動します。 [root@localhost network-scripts]# systemctl restart network
通常は、enp0s8用の設定ファイル「ifcfg-enp0s8」は存在していないと思います。ifcfg-enp0s3をコピーして編集します。
設定ファイルをコピーします。 [root@localhost network-scripts]# cp ifcfg-enp0s3 ifcfg-enp0s8 ネットワークの情報を確認します。 [root@localhost network-scripts]# nmcli connection show 名前 UUID タイプ デバイス enp0s3 713e6650-e55e-4860-9d89-59405688c864 802-3-ethernet enp0s3 有線接続 1 17457336-6b6f-3cce-b06c-ddf0e9e34b5b 802-3-ethernet enp0s8 [root@localhost network-scripts]# nmcli enp0s3: 接続済み to enp0s3 "Intel 82540EM Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter)" ethernet (e1000), 08:00:27:8A:C3:B3, hw, mtu 1500 ip4 デフォルト inet4 10.0.2.15/24 inet6 fe80::ac33:3c2f:e976:60fd/64 enp0s8: 接続済み to 有線接続 1 "Intel 82540EM Gigabit Ethernet Controller (PRO/1000 MT Desktop Adapter)" ethernet (e1000), 08:00:27:52:CA:EE, hw, mtu 1500 inet4 xxx.xxx.xxx.xxx/24 inet6 fe80::ae7f:bfbb:4b4f:4e16/64 lo: 管理無し "lo" loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536 設定ファイルを開きます。 [root@localhost network-scripts]# vi ifcfg-enp0s8 以下のように内容を修正します。 HWADDR=08:00:27:52:CA:EE <=先ほど調べたMACアドレスを追加します TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes <=ここをnoに変更します。 DEFROUTE=no IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=enp0s3 UUID=713e6650-e55e-4860-9d89-59405688c864 <=先ほど調べたUUIDにします。 UUID=17457336-6b6f-3cce-b06c-ddf0e9e34b5b DEVICE=enp0s3 <=デバイスを変更します。 DEVICE=enp0s8 ONBOOT=yes 「:wq」+ 「Enter」で保存してください。次にネットワークを再起動します。 [root@localhost network-scripts]# systemctl restart network
「ip addr」コマンドで正しくアドレスが割り当てられているか確認してください。どうしてもアドレスがうまく割り振られない場合は、以下を設定してみてください。
pingで疎通の確認をします。Windows と違い「Ctrl」+「c」を押すまで延々と続きますので、疎通が確認出来たらCtrl」+「c」を押してください。
自分のPCのアドレスと、10.0.2.2を確認します。疎通の確認が取れたらネットワークの設定は完了です。
仮想ルーターとの疎通を確認します。 [root@localhost network-scripts]# ping 10.0.2.2 PING 10.0.2.2 (10.0.2.2) 56(84) bytes of data. 64 bytes from 10.0.2.2: icmp_seq=1 ttl=64 time=0.099 ms 64 bytes from 10.0.2.2: icmp_seq=2 ttl=64 time=0.412 ms 64 bytes from 10.0.2.2: icmp_seq=3 ttl=64 time=0.386 ms ^C --- 10.0.2.2 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2000ms rtt min/avg/max/mdev = 0.099/0.299/0.412/0.141 ms ホストOSとの疎通を確認します。 [root@localhost network-scripts]# ping 192.168.203.20 PING 192.168.203.20 (192.168.203.20) 56(84) bytes of data. 64 bytes from 192.168.203.20: icmp_seq=1 ttl=127 time=0.385 ms 64 bytes from 192.168.203.20: icmp_seq=2 ttl=127 time=1.24 ms 64 bytes from 192.168.203.20: icmp_seq=3 ttl=127 time=1.12 ms ^C --- 192.168.203.20 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 0.385/0.919/1.247/0.381 ms
ネットワークが正しく設定されているのにping が通らない場合は、ルートを確認します。
正しく設定されている場合はdefault は一つだけです。
ルートを表します。 [root@localhost ~]# ip route default via 10.0.2.2 dev enp0s3 proto static metric 100 10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15 metric 100 default via 192.168.56.1 dev enp0s8 proto static metric 100 192.168.56.0/24 dev enp0s8 proto kernel scope link src 192.168.56.101 metric 100 default が2つ存在する場合は、192.168 のdefault を削除します。 [root@localhost ~]# ip route del 192.168.56.1/24
構築している環境では、外部からの接続はできませんので、ファイアーフォールの設定とSELinux を停止します。
SELinuxの状態を確認します。 [root@localhost ~]# getenforce Enforcing 設定ファイルを開きます。 [root@localhost ~]# vi /etc/selinux/config 設定を修正します。 # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=enforcing この行を修正します。 SELINUX=disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Sec ファイアーウォールを設定します。今回は、httpとhttpsを開放します。 1.現在のゾーンを確認します。 [root@localhost ~]# firewall-cmd --get-active-zones public interfaces: enp0s3 enp0s8 2.現在の設定を確認します。 [root@localhost ~]# firewall-cmd --list-all --zone=public public (active) target: default icmp-block-inversion: no interfaces: enp0s3 enp0s8 sources: services: ssh dhcpv6-client <=ssh と dhcpv6-client だけが開放されている。 ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: 3.http、httpsは許可されていないので追加します。他に必要なサービスがあれば追加します。 --permanent は恒久的に追加する為のオプションです。 [root@localhost ~]# firewall-cmd --add-service=http --zone=public --permanent [root@localhost ~]# firewall-cmd --add-service=https --zone=public --permanent 4.firewall をリロードして設定を確認します。 [root@localhost ~]# firewall-cmd --reload success [root@localhost ~]# firewall-cmd --list-all --permanent --zone=public public target: default icmp-block-inversion: no interfaces: <=恒久化された設定を見ているので interfaces は表示されません。 sources: services: ssh dhcpv6-client http https <= httpとhttpsが追加されています。 ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: 再起動します。 [root@localhost ~]# reboot
再起動後、設定を確認します。
[root@localhost ~]# getenforce
Disabled <=無効化されている