MacのVirtualBoxに作ったゲストOSにブリッジアダプターを設定する
MacのVirtualBoxに作ったゲストOSへホストOSから接続できるようにしたので、他のPCからもアクセスできるようにします。
ponsuke-tarou.hatenablog.com
- 目的 : Linux環境でSSHの鍵作成から設定まで勉強したい!
- 環境
- ホストOS : macOS Sierra Version10.12.4
- VirtualBox : Version 5.1.22 r115126 (Qt5.6.2)
- ゲストOSへ接続したいOS : Windows10
これまで設定してきたNAT + ホストオンリーアダプターで、
- ゲストOSでインターネットに接続できる
- ホストOSからゲストOSに接続できる
という状態でした。
しかし、これではホストOSではない「ローカルネットワーク*1にあるPC」からの接続はできません。
そこで、ネットワークをブリッジアダプターにして「ローカルネットワーク」内にあたかもゲストOSが他のPCのように接続している状態を作り、「ローカルネットワークにあるPC」からの接続を試みます。
■ブリッジアダプター
・ゲストOSがホストOSのネットワーク設定をブリッジしてホストOSのネットワークを使用する
(ゲストOSがホストOSと同一のネットワークに存在するかのように動作する)
・ホストOSからゲストOSへの接続可能
・インターネットの相互間通信可能(外部ネットワークと直接つながる)
・ゲストOSも物理的にIPアドレスを利用する(ホストOSのネットワークからゲストOSが見える)
・VirtualBoxのブリッジは少々動作が不安定なので注意が必要
・柔軟性が高いがセキュリティの脅威にさらされやすい
Virtual Boxのネットワーク設定 - ぐ~だらびより。
ブリッジアダプタを設定します。
ゲストOSを起動して状態を確認します。
$ ssh mana@192.168.56.202 $ ip addr show 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:67:e7:fc brd ff:ff:ff:ff:ff:ff inet 192.168.0.9/24 brd 192.168.0.255 scope global dynamic enp0s3 valid_lft 86398sec preferred_lft 86398sec inet6 2408:210:9080:4000:a00:27ff:fe67:e7fc/64 scope global mngtmpaddr dynamic valid_lft 2591936sec preferred_lft 604736sec inet6 fe80::a00:27ff:fe67:e7fc/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:ce:e2:cd brd ff:ff:ff:ff:ff:ff inet 192.168.56.202/24 brd 192.168.56.255 scope global enp0s8 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fece:e2cd/64 scope link valid_lft forever preferred_lft forever $ nmcli c 名前 UUID タイプ デバイス enp0s3 862d8f79-a10c-35d8-8b38-6d982fca83ce 802-3-ethernet enp0s3 enp0s8 0cf4cb12-cd52-463e-91eb-5990197860b6 802-3-ethernet enp0s8 $ nmcli d デバイス タイプ 状態 接続 enp0s3 ethernet 接続済み enp0s3 enp0s8 ethernet 接続済み enp0s8 lo loopback 管理無し --
ブリッジアダプター用のConnectionを作成します。
# Connectionを追加します。 $ sudo nmcli c add type bridge ifname br0 接続 'bridge-br0' (b720a4bd-2dd8-462d-b17d-8967805d64c4) が正常に追加されました。 $ nmcli c 名前 UUID タイプ デバイス bridge-br0 b720a4bd-2dd8-462d-b17d-8967805d64c4 bridge br0 enp0s3 862d8f79-a10c-35d8-8b38-6d982fca83ce 802-3-ethernet enp0s3 enp0s8 0cf4cb12-cd52-463e-91eb-5990197860b6 802-3-ethernet enp0s8 $ nmcli d デバイス タイプ 状態 接続 enp0s3 ethernet 接続済み enp0s3 enp0s8 ethernet 接続済み enp0s8 br0 bridge 接続中(IP 設定を取得中) bridge-br0 lo loopback 管理無し --
ifnameでインターフェースを指定した場合
/etc/sysconfig/network-scripts/ifcfg-bridge-
のファイルが作成される。
DEVICEのエントリ: ifnameの値
NAMEのエントリ: bridge-になる。
STP=yesになる
nmcliでブリッジインターフェースを作成する2 · GitHub
追加したブリッジアダプター用のConnectionを設定します。
# STPを止めます。 $ sudo nmcli c modify bridge-br0 stp no # IPv6は使わない設定にします。 $ sudo nmcli c modify bridge-br0 ipv6.method ignore # IPv4を固定のIPアドレスにします。 $ sudo nmcli c modify bridge-br0 ipv4.method manual ipv4.addresses '192.168.0.6/24' ipv4.gateway '192.168.0.1' ipv4.dns '8.8.8.8' # NetworkManagerを再起動します。 $ sudo systemctl restart NetworkManager # 状態を確認します。 $ ip addr show 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:67:e7:fc brd ff:ff:ff:ff:ff:ff inet 192.168.0.9/24 brd 192.168.0.255 scope global dynamic enp0s3 valid_lft 86393sec preferred_lft 86393sec inet6 2408:210:9080:4000:a00:27ff:fe67:e7fc/64 scope global mngtmpaddr dynamic valid_lft 2591618sec preferred_lft 604418sec inet6 fe80::a00:27ff:fe67:e7fc/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:ce:e2:cd brd ff:ff:ff:ff:ff:ff inet 192.168.56.202/24 brd 192.168.56.255 scope global enp0s8 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fece:e2cd/64 scope link valid_lft forever preferred_lft forever 4: br0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000 link/ether 02:ca:2b:d2:32:7d brd ff:ff:ff:ff:ff:ff inet 192.168.0.6/24 brd 192.168.0.255 scope global br0 valid_lft forever preferred_lft forever $ nmcli c 名前 UUID タイプ デバイス bridge-br0 b720a4bd-2dd8-462d-b17d-8967805d64c4 bridge br0 enp0s3 862d8f79-a10c-35d8-8b38-6d982fca83ce 802-3-ethernet enp0s3 enp0s8 0cf4cb12-cd52-463e-91eb-5990197860b6 802-3-ethernet enp0s8 $ nmcli d デバイス タイプ 状態 接続 br0 bridge 接続済み bridge-br0 enp0s3 ethernet 接続済み enp0s3 enp0s8 ethernet 接続済み enp0s8 lo loopback 管理無し -- $ sudo cat /etc/sysconfig/network-scripts/ifcfg-bridge-br0 DEVICE=br0 STP=no TYPE=Bridge PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=bridge-br0 UUID=b720a4bd-2dd8-462d-b17d-8967805d64c4 ONBOOT=yes IPADDR=192.168.0.6 PREFIX=24 GATEWAY=192.168.0.1 DNS1=8.8.8.8
IPADDRには、ゲストPCに固定で割り当てたいIPアドレスを指定します。ホストPCやLAN上の他のPCとは異なる値を設定してください。<省略>
BOOTPROTOはnoneにすることで動的なIPアドレス割り当てがされないようになります。
ja.stackoverflow.com
デバイスにはそれぞれ独自の設定ファイルがあるため、管理者は、各インターフェースがどう機能するか個別に制御できます。
9.2. インターフェース設定ファイル
奴隷を作ります。
# 奴隷用のConnectionを作成します。 $ sudo nmcli c add type bridge-slave ifname enp0s3 master bridge-br0 接続 'bridge-slave-enp0s3' (f3a0186b-e1ea-439d-84a8-5589863feb91) が正常に追加されました。 # NetworkManagerを再起動します。 $ sudo systemctl restart NetworkManager # 状態を確認します。 $ ip addr show 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:67:e7:fc brd ff:ff:ff:ff:ff:ff inet 192.168.0.9/24 brd 192.168.0.255 scope global dynamic enp0s3 valid_lft 86396sec preferred_lft 86396sec inet6 2408:210:9080:4000:a00:27ff:fe67:e7fc/64 scope global mngtmpaddr dynamic valid_lft 2591879sec preferred_lft 604679sec inet6 fe80::a00:27ff:fe67:e7fc/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:ce:e2:cd brd ff:ff:ff:ff:ff:ff inet 192.168.56.202/24 brd 192.168.56.255 scope global enp0s8 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fece:e2cd/64 scope link valid_lft forever preferred_lft forever 4: br0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000 link/ether 02:ca:2b:d2:32:7d brd ff:ff:ff:ff:ff:ff inet 192.168.0.6/24 brd 192.168.0.255 scope global br0 valid_lft forever preferred_lft forever $ nmcli c 名前 UUID タイプ デバイス bridge-br0 b720a4bd-2dd8-462d-b17d-8967805d64c4 bridge br0 enp0s3 862d8f79-a10c-35d8-8b38-6d982fca83ce 802-3-ethernet enp0s3 enp0s8 0cf4cb12-cd52-463e-91eb-5990197860b6 802-3-ethernet enp0s8 bridge-slave-enp0s3 f3a0186b-e1ea-439d-84a8-5589863feb91 802-3-ethernet -- $ nmcli d デバイス タイプ 状態 接続 br0 bridge 接続済み bridge-br0 enp0s3 ethernet 接続済み enp0s3 enp0s8 ethernet 接続済み enp0s8 lo loopback 管理無し -- # 不要となった既存のConnectionを削除します。 $ sudo nmcli c del enp0s3 接続 'enp0s3' (862d8f79-a10c-35d8-8b38-6d982fca83ce) が正常に削除されました。 # NetworkManagerを再起動します。 $ sudo systemctl restart NetworkManager # ここでうまく設定が反映されない場合はゲストOSを再起動します。 # 状態を確認します。 $ ip addr show 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 master br0 state UP qlen 1000 link/ether 08:00:27:67:e7:fc brd ff:ff:ff:ff:ff:ff 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:ce:e2:cd brd ff:ff:ff:ff:ff:ff inet 192.168.56.202/24 brd 192.168.56.255 scope global enp0s8 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fece:e2cd/64 scope link valid_lft forever preferred_lft forever 4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000 link/ether 08:00:27:67:e7:fc brd ff:ff:ff:ff:ff:ff inet 192.168.0.6/24 brd 192.168.0.255 scope global br0 valid_lft forever preferred_lft forever inet6 2408:210:9080:4000:a00:27ff:fe67:e7fc/64 scope global mngtmpaddr dynamic valid_lft 2591972sec preferred_lft 604772sec inet6 fe80::a00:27ff:fe67:e7fc/64 scope link valid_lft forever preferred_lft forever $ nmcli c 名前 UUID タイプ デバイス bridge-br0 b720a4bd-2dd8-462d-b17d-8967805d64c4 bridge br0 bridge-slave-enp0s3 f3a0186b-e1ea-439d-84a8-5589863feb91 802-3-ethernet enp0s3 enp0s8 0cf4cb12-cd52-463e-91eb-5990197860b6 802-3-ethernet enp0s8 $ nmcli d デバイス タイプ 状態 接続 br0 bridge 接続済み bridge-br0 enp0s3 ethernet 接続済み bridge-slave-enp0s3 enp0s8 ethernet 接続済み enp0s8 lo loopback 管理無し --
こちらを参考にさせて頂きました。
qiita.com
ホストOSからブリッジアダプターのIPアドレスで接続してみます。
$ ssh mana@192.168.0.6 mana@192.168.0.6s password: Last login: Tue Oct 24 01:46:41 2017 from 192.168.56.1 $ nmcli c 名前 UUID タイプ デバイス bridge-br0 b720a4bd-2dd8-462d-b17d-8967805d64c4 bridge br0 bridge-slave-enp0s3 f3a0186b-e1ea-439d-84a8-5589863feb91 802-3-ethernet enp0s3 enp0s8 0cf4cb12-cd52-463e-91eb-5990197860b6 802-3-ethernet enp0s8
接続できました。
ローカルネットワークにあるWindows10からpingで確認してみます。
ping 192.168.0.6 192.168.0.6 に ping を送信しています 32 バイトのデータ: 192.168.0.6 からの応答: バイト数 =32 時間 =94ms TTL=64 192.168.0.6 からの応答: バイト数 =32 時間 =100ms TTL=64 192.168.0.6 からの応答: バイト数 =32 時間 =19ms TTL=64 192.168.0.6 からの応答: バイト数 =32 時間 =34ms TTL=64 192.168.0.6 の ping 統計: パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、 ラウンド トリップの概算時間 (ミリ秒): 最小 = 19ms、最大 = 100ms、平均 = 61ms
つながりました。
*1:今回は、「お家で使っているLANにつながっている」ということです。
MacのVirtualBoxに作ったゲストOSにホストオンリーアダプターを設定する
MacのVirtualBoxに仮想マシンを作ってインターネットに接続できることを確認できたのでホストOSからアクセスできるようにします。
ponsuke-tarou.hatenablog.com
ホストOSからゲストOSへアクセスできるようにホストオンリーアダプタを設定します。
VirtualBoxの仮想マシンではデフォルトでNAT*1に設定されており、DHCPでIPアドレスなども自動的に割り当てられるため何もしないでもインターネットに接続できました。
しかし、この状態ではホストOSからはアクセスできないので、さまざまな検証を行うための環境としては不十分です。
gihyo.jp
■ホストオンリーアダプター
・ゲストOSとホストOS間のみ通信ができるネットワーク
・外部との通信はできない
Virtual Boxのネットワーク設定 - ぐ~だらびより。
VirtualBoxにホストオンリーネットワークを作ります。
- Oracle VM VirtualBox Managerのメニューにある[VirtualBox] > [Preference...]を選択します。
- [Network] > [Host-only Network] > [+]アイコンを選択すると「vboxnet0」が追加されます。
- ドライバアイコンを選択してダイアログを開きます。
- [DHCP Server] > [Enable Server]チェックボックにチェックを入れます。
- 各パラメータに値を設定し、[OK]ボタンを押下して設定を完了します。
サーバーアドレス:VirtualBoxに作成されるDHCPサーバーのIPアドレスを指定
サーバーマスク:ゲストOSにDHCPで割り当てるIPアドレスのネットマスクを指定
アドレス下限:ゲストOSにDHCPで割り当てるIPアドレスの範囲の最小値を指定
アドレス上限:ゲストOSにDHCPで割り当てるIPアドレスの範囲の最大値を指定
VirtualBox CentOS6.7 64bitでNAT、ホストオンリーアダプターを使用 | kakiro-web カキローウェブ
Oracle VM VirtualBox Managerで設定します。
この時点で仮想マシンが起動している場合は停止してから追加します。
$ shutdown -h now
- Oracle VM VirtualBox Managerから仮想マシンを選択して右側のウィンドウから[Network]リンクを押下してダイアログを開きます。
- [Adapter 2] > [Enable Network Adapter]チェックボックにチェックを入れます。
- [Attached to]で「Host-only Adapter」を選択します。(Host-only Adapterが複数無ければ[Name]に先程作成した「vboxnet0」が表示されるはず)。
- [OK]ボタンを押下してダイアログを閉じます。
- ホストオンリーアダプタが追加されました。
ゲストOSの状態を確認します。
- ゲストOSを起動してログインします。
- 「ip addr show」「nmcli c(connection)」「nmcli d(device)」で現状を確認します。
- enp0s8がホストオンリーアダプターです。
- ホストOSから接続できることを確認します。
- ホストオンリーアダプターのIPアドレスはまだ固定されていないので変わることがあります。
ホストOSからゲストOSへ接続してみます。
$ ping 192.168.56.201 PING 192.168.56.201 (192.168.56.201): 56 data bytes 64 bytes from 192.168.56.201: icmp_seq=0 ttl=64 time=0.541 ms 64 bytes from 192.168.56.201: icmp_seq=1 ttl=64 time=0.494 ms 64 bytes from 192.168.56.201: icmp_seq=2 ttl=64 time=0.337 ms <省略> $ ssh mana@192.168.56.201 mana@192.168.56.201s password: Last login: Mon Oct 23 21:39:48 2017 $ nmcli c 名前 UUID タイプ デバイス enp0s3 862d8f79-a10c-35d8-8b38-6d982fca83ce 802-3-ethernet enp0s3 有線接続 1 320cd23e-b9a4-324d-b0ff-3dd16b0544db 802-3-ethernet enp0s8
NetworkManagerを使って新しいConnectionを作成します。
前回は、「nmtuiコマンドを使ってGUIで設定」をやったので
今回は、「nmcliコマンドを使って設定」する方法にします。
# 「enp0s8」Connectionを追加します。 $ sudo nmcli c add type ethernet con-name enp0s8 ifname enp0s8 接続 'enp0s8' (0cf4cb12-cd52-463e-91eb-5990197860b6) が正常に追加されました。 # Connectionが作成されたことを確認します。 $ sudo ls -la /etc/sysconfig/network-scripts/ifcfg-enp0s* -rw-r--r--. 1 root root 226 10月 23 21:20 /etc/sysconfig/network-scripts/ifcfg-enp0s3 -rw-r--r--. 1 root root 282 10月 23 22:36 /etc/sysconfig/network-scripts/ifcfg-enp0s8 $ nmcli c 名前 UUID タイプ デバイス enp0s3 862d8f79-a10c-35d8-8b38-6d982fca83ce 802-3-ethernet enp0s3 有線接続 1 320cd23e-b9a4-324d-b0ff-3dd16b0544db 802-3-ethernet enp0s8 enp0s8 0cf4cb12-cd52-463e-91eb-5990197860b6 802-3-ethernet -- $ nmcli d デバイス タイプ 状態 接続 enp0s3 ethernet 接続済み enp0s3 enp0s8 ethernet 接続済み 有線接続 1 lo loopback 管理無し -- # IPv4を手動に設定します。 $ sudo nmcli c modify enp0s8 ipv4.method manual # IPアドレスを固定します。 $ sudo nmcli c modify enp0s8 ipv4.addresses '192.168.56.202/24' ipv4.dns '8.8.8.8' # IPv6は使わない設定をします。 $ sudo nmcli c modify enp0s8 ipv6.method ignore # NetworkManagerを再起動します。 $ sudo systemctl restart NetworkManager # なぜか既存の「有線接続 1 」のNIC名が「enp0s8」になりました・・・。 $ nmcli c 名前 UUID タイプ デバイス enp0s3 862d8f79-a10c-35d8-8b38-6d982fca83ce 802-3-ethernet enp0s3 enp0s8 cb2d1cde-9064-4dfb-89c2-3a6246ce916e 802-3-ethernet enp0s8 enp0s8 0cf4cb12-cd52-463e-91eb-5990197860b6 802-3-ethernet -- $ nmcli d デバイス タイプ 状態 接続 enp0s3 ethernet 接続済み enp0s3 enp0s8 ethernet 接続済み enp0s8 lo loopback 管理無し -- # 既存の「enp0s8(有線接続 1 )」をNIC名では区別がつかないのでUUIDで削除します。 $ sudo nmcli c del cb2d1cde-9064-4dfb-89c2-3a6246ce916e 接続 'enp0s8' (cb2d1cde-9064-4dfb-89c2-3a6246ce916e) が正常に削除されました。 # 当然ですが、IPアドレスが変わったのでここでホストOSとの接続が一旦切れます。 # 再び新しく設定したIPアドレスで接続します。 $ ssh mana@192.168.56.202 The authenticity of host '192.168.56.202 (192.168.56.202)' can't be established.<------------- ☆' ECDSA key fingerprint is SHA256:j+mhEbwrkV5GaVU8gat34VZs2A4+q4q8HaKjOg9m33I. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.56.202' (ECDSA) to the list of known hosts. mana@192.168.56.201s password: Last login: Mon Oct 23 23:29:33 2017 # NetworkManagerを再起動します。 $ sudo systemctl restart NetworkManager
☆で表示されたメッセージは初回接続(今回はIPアドレスが変わって初回)でしか出ません。
SSHで接続するとホストOS側の公開鍵の有無を確認し、公開鍵がないことからホストOSの~/.ssh/known_hostsファイルに設定するかを尋ねられています。
ここで「yes」を入力することでknown_hostsに公開鍵を保存し、次回接続からはメッセージは表示されなくなるのです。
http://www.turbolinux.co.jp/products/server/11s/user_guide/sshconnect.html
今回使われたのはECDSA*2というデジタル署名です。
やり方はこちらを参考にさせて頂きました。
ゲストOSの状態を確認します。
$ ip addr show 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:67:e7:fc brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3 valid_lft 86387sec preferred_lft 86387sec inet6 fe80::a00:27ff:fe67:e7fc/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:ce:e2:cd brd ff:ff:ff:ff:ff:ff inet 192.168.56.202/24 brd 192.168.56.255 scope global enp0s8 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fece:e2cd/64 scope link valid_lft forever preferred_lft forever $ nmcli c 名前 UUID タイプ デバイス enp0s3 862d8f79-a10c-35d8-8b38-6d982fca83ce 802-3-ethernet enp0s3 enp0s8 0cf4cb12-cd52-463e-91eb-5990197860b6 802-3-ethernet enp0s8 $ nmcli d デバイス タイプ 状態 接続 enp0s3 ethernet 接続済み enp0s3 enp0s8 ethernet 接続済み enp0s8 lo loopback 管理無し --
設定できました。
MacのVirtualBoxに作ったゲストOSにNATを設定する
MacのVirtualBoxに仮想マシンを作ってCentOSをインストールしたので仮想マシンのネットワークを確認します。
ponsuke-tarou.hatenablog.com
NATを設定することでゲストOSからホストOSを利用してインターネットに接続できるようにします。
ネットワークを設定してみます。
Oracle VM VirtualBox Managerで設定します。
ゲストOSの状態を確認します。
- VirtualBoxの仮想マシンを起動してログインします。
- 「ip addr show」「nmcli c(connection)」「nmcli d(device)」で現状を確認します。
enp0s3がNATです。
IPアドレスは、DHCPなのでグローバルのアドレスではありません。
インストール時にネットワーク接続の設定を行っていないため、DHCP*1を使って自動的にIPアドレスが取得されるようになっています。
gihyo.jp
NetworkManagerを使って設定します。
CentOS7においてネットワークの設定方法はいくつかあります。
- /etc/sysconfig/network-scripts配下のifcfg-eth*ファイルを編集して設定する(CentOS7から非推奨)
- nmcliコマンドを使って設定する
- nmtuiコマンドを使ってGUIで設定する
今回は、「nmtuiコマンドを使ってGUIで設定する」やり方です。
- 「nmtui」コマンドを打って[NetworkManager TUI]画面を起動します。
- ここからは矢印キーとEnterで操作します。
- [Edit a connection] > [enp0s3]を選択します([enp0s3]がない場合は[Add]で作ります)。
- 以下を設定します。
- [OK] > [Back] > [Quit]を押下して画面を閉じます。
- Network Managerを再起動します。
$ sudo systemctl restart NetworkManager
設定を確認します。
- /etc/sysconfig/network-scripts配下のifcfg-eth*ファイルを確認します。
- [ONBOOT]が「no」になっている場合
- インターネットに接続できません。[NetworkManager TUI]画面で[Automatically connect] にチェックが入っているか確認します。
- [ONBOOT]が「no」になっている場合
- 「curl」コマンドでインターネットに接続できることを確認します。
$ curl ifconfig.me // ちょっと時間がかかりますがインターネットに繋がっていればグローバルIPアドレスが取得できます。
MacのVirtualBoxに作った仮想マシンへCentOSをインストールする
- ISOイメージをダウンロードする
- ISOイメージを仮想マシンへマウントする
- 仮想マシンへOSをインストールする
- ログインしてみる
- CentOSのバージョンを確認してみる
- ログアウトしてみる
- OSをシャットダウンしてみる
- 参考
MacのVirtualBoxに仮想マシンを作ったのでそこへCentOSをインストールします。
ponsuke-tarou.hatenablog.com
ISOイメージをダウンロードする
- Download CentOSサイトで[DVD IOS]を押下する
- 想像によると「[Actual Country -]=実際の国=日本=距離が近い」ので[Actual Country -]に列挙されているURLのいずれかを押下してISOイメージをダウンロードする
- URLを眺めると地域名が含まれているものがあるので近所のものがあればそれを選択するといいのかもしれない
- お茶しながらダウンロードが終わるのを待つ
ISOイメージを仮想マシンへマウントする
ログインしてみる
- 仮想マシンを起動して作成したユーザでログインする
ログアウトしてみる
$ logout
OSをシャットダウンしてみる
$ shutdown -h now
MacのVirtualBoxに仮想マシンを作る
- VirtualBoxとの対話をはじめる
- 初めてなのでとにかくContinueを押下する
- 仮想ハードドライブファイルのサイズ方式を選ぶ
- VirtualBoxに仮想マシンをCreateしてもらう
- 参考図書
インストールしたVirtualBoxにCentOSを入れたいので仮想マシンを作ります。
ponsuke-tarou.hatenablog.com
- 目的 : Linux環境でSSHの鍵作成から設定まで勉強したい!
- 環境
- OS : macOS Sierra Version10.12.4
- VirtualBox : Version 5.1.22 r115126 (Qt5.6.2)
VirtualBoxとの対話をはじめる
- VirtualBoxを起動する
- Newを押下する
- Nameに「CentOS7」(自分が認識できる仮想マシン名)を入力したらTypeとVersionが自動で選択される(はず)
初めてなのでとにかくContinueを押下する
仮想ハードドライブファイルのサイズ方式を選ぶ
PCに余裕があるかないかわからないので余裕があると信じてStrage on physical hard diskでFixed Sizeを選択してContinueを押下する
容量に余裕があれば固定サイズの方が高速です。
www.task-notes.com
VirtualBoxに仮想マシンをCreateしてもらう
- 数日後には忘却の上わからなくなるので、仮想ハードドライブファイルの名前は最初に指定したNameと同じものを入力してCreateを押下する
- できる
参考図書
MacにVirtualBoxをインストールする
- 目的 : Linux環境でSSHの鍵作成から設定まで勉強したい!
- 環境
- OS : macOS Sierra Version10.12.4
- インストールするVirtualBox : Version 5.1.22 r115126 (Qt5.6.2)
インストーラをダウンロードする。
Oracle VM VirtualBox からOSに合うインストーラをダウンロードする。
今回ダウンロードしたのは「VirtualBox-5.2.18-124319-OSX.dmg」である。
インストーラでインストールする。
- 「VirtualBox-5.2.18-124319-OSX.dmg」を押下する。
- VirtualBox.pkgをDouble click on this iconする。
- [続ける]を押下する。
- [インストール]を押下する。
- インストール完了を待って[閉じる]を押下する。
VirtualBoxを起動してみる。
参考図書
ラベンダーのポプリを無駄なく作る方法
ポプリというのは、花などを乾燥させ「熟成」させたものです。
sinsin-kenkou.net
ポプリは花で作ると見た目が良い。が、ラベンダーは枝と葉が多い。
とても勿体無いのでポプリはいつも葉・茎を大量に混ぜています。
今年は花メインで作ってみます。
材料
- ラベンダー40cmぐらいのを5本ほど
- フリンジラベンダー
- エストカスラベンダー
- 紐(リース用)
- 流しのゴミネット(入浴剤用)
- ポプリの入れ物(ポプリ用)
今年またエストカスラベンダーを買ってしまった。いろいろ頭を使わないと小さな花壇がラベンダー園になってしまう。
① ラベンダーを刈る
穂先だけを取ると必要な部位だけを採取できるものの刈戻しを別途行わければ、その後芽が育たない。
別途刈戻しをすればその時に葉と茎が結局出てしまう。
なのでバッサリ刈る
② ポプリを作る
花を採取してザルにでも入れて風通しの良い何処かにおいておく。
1ヶ月以上後に思い出したらメッシュの袋かなんかに入れてポプリ完成。
③ リースを作る
残った枝に葉をつけたまま紐を巻くように巻きつけて円状にしてリースにする。
繁茂するラベンダーの使い道
入浴剤
用意するもの
- 台所の流しで使うゴミネット
- 繁茂するラベンダー
やること
- ラベンダーをゴミネットに入る大きさにちぎる
- ゴミネットに入れる
- 浴槽に投げ込む
- お風呂を入れる
下駄箱の消臭剤
用意するもの
- 台所の流しで使うゴミネット
- 繁茂するラベンダー
やること
- ラベンダーをゴミネットに入る大きさにちぎる
- ゴミネットに入れる
- 下駄箱に投げ込む
ドライフラワー
用意するもの
- キッチンペーパー
- お菓子とかいただき物についているリボンかゴム
- 繁茂するラベンダー
やること
- ラベンダーを手頃な長さで収穫する
- 下葉を取る
- からげる
- キッチンペーパーで邪魔にならないぐらいの太さに巻く
- リボンかゴムでしばる
- どっかに吊り下げて放置する
- 思い出したらリボンかゴムを締める
「Log4J」と「SLF4J」ってなんだ?ログの出力先探索記
ことのきっかけ
お仕事でコンソールにバーって出てるけどログファイルはどこにあるんだろうと探していた時のことでした。
こんなのを見た、「Logger」だからログはいてくれるのでしょう。
import org.slf4j.Logger;
ログは見るけど出力とかよくわからない・・・いつもはBossや先輩に設定場所と内容の指示をもらってやっているだけ・・・ソフトウェアデザインの2017-03月号でも特集していた「ログ」・・・自分関わっているのだけでも知らなきゃ!となったのがきっかけでした。
「slf4j Logger」でググってみました。「SLF4J」は他のものと一緒に使われるようで、よく目にしたのが・・・
① 「Log4J」
Log4J は Jakarta プロジェクトで開発が進められている Java プログラム用のログ API です。Log4J を利用することで、様々なロギングが可能になります。
1. Log4J の基本 | TECHSCORE(テックスコア)
Log4J はロギングのためのクラス・ライブラリである。開発元は言わずと知れた Apache のサブプロジェクトの一つである。
www.nurs.or.jp
log4jはjavaで最もポピュラーなロギングフレームワークだと思います。
log4jだけでも良いのですが、SLF4Jを使うことでprintfライクな文法でログを出力できるところが気に入り利用することにしました。
yokuno.hatenablog.com
いろいろ読んでみてを理解しはじめました。
www.slideshare.net
www.bunkei-programmer.net
「SLF4J」はインターフェース的なログファサードライブラリ。
Facadeパターンは、既存のクラスを複数組み合わせて使う手順を、「窓口」となるクラスを作ってシンプルに利用できるようにするパターンです。
15.Facadeパターン | TECHSCORE(テックスコア)
「SLF4J(Simple Logging Facade For Java)」はいろんなログ出力ライブラリを切り替えて使うためのインターフェース的なもの。
だから実装的なライブラリと一緒に使うということになるのですね。
で、結局出力するログの出力先はどこなんでしょう?
① ログ出力ライブラリを調べる
ライブラリなのでまずはMavenさんのpom.xmlをみてみました。
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.x.x</version> </dependency>
ぐぐったら実装的なログ出力ライブラリは「Log4j」のようでした。
② 設定ファイルを探す
「Log4j」の代表的な設定ファイル名は「log4j.properties」「log4j.xml」で、
このファイルがなかったらソースから追えば設定ファイルが見つかるようです。
設定ファイルを使用するには、org.apache.log4j.PropertyConfigurator クラスを使用します。クラスメソッドconfigure( ) メソッドで設定ファイルを読み込みます。
2. 設定ファイルの利用 | TECHSCORE(テックスコア)
③ 設定方法を知る
大きな構成は3つで「Loggerさん」「Appenderさん」「Layoutさん」
Logger は Log4J パッケージの中心クラスで、ロギングを行う部分をグループ化し、必要なグループのログだけを出力したり、カテゴリーに優先順位をつけることにより様々な出力方法を指定することができます。
Appender はログの出力先を指定するものです。Appender で設定できる出力先は、冒頭でも述べたように、ファイル、OutputStream、Java.io.Writer、リモート Log4J サーバ、リモート Unix Syslog デーモン、Windows NT イベントログなどです。
Layout はその名の通り、ログの出力フォーマットを指定するものです。単純なテキスト出力、ユーザが指定したレイアウト、HTML のテーブルレイアウトなどを指定することができます。
1. Log4J の基本 | TECHSCORE(テックスコア)
Logger
ここに「Loggerさんの名前」「ログレベル」「Appenderさんの名前」を設定します。
# RootLogger log4j.rootLogger={ログレベル},{Appenderさんの名前} # Logger log4j.logger.{Loggerさんの名前}={ログ出力レベル|INHERITED},{Appenderさんの名前}
RootLoggerのログレベルを継承したいときは、「INHERITED」と書きます。
↓Loggerさん
This is the central class in the log4j package. Most logging operations, except configuration, are done through this class.
Logger (Apache Log4j 1.2.17 API)
Appender
カンマ区切りで複数指定できます。複数指定できるのでログを、コンソールとファイルに同時に出力することが可能です。
gungnir-odin.hatenablog.com
Appener
Appenderさんの「クラス」「オプション」「使うLayoutのクラス」の設定をします。
# 使用するAPPENDERの設定 log4j.appender.{Appenderさんの名前}={Appenderさんのクラス} # オプションの設定 log4j.appender.{Appenderさんの名前}.{オプション}={オプションの設定値} log4j.appender.{Appenderさんの名前}.layout={使うLayoutさんのクラス}
↓{Appenderさんのクラス}は「All Known Implementing Classes:」から選びます。
Interface Appender
All Known Implementing Classes:
AppenderSkeleton, AsyncAppender, ConsoleAppender, DailyRollingFileAppender, ExternallyRolledFileAppender, FileAppender, JDBCAppender, JMSAppender, LF5Appender, NTEventLogAppender, NullAppender, RewriteAppender, RollingFileAppender, SMTPAppender, SocketAppender, SocketHubAppender, SyslogAppender, TelnetAppender, WriterAppenderImplement this interface for your own strategies for outputting log statements.
Appender (Apache Log4j 1.2.17 API)
- ConsoleAppender (Apache Log4j 1.2.17 API) : コンソールに出力
- SyslogAppender (Apache Log4j 1.2.17 API) : Syslogに出力
- ローカルでのデバックに使えると思ったら・・・
org.apache.log4j.net.SyslogAppender であることからも判るように、実際にはネットワーク系の Appender である。つまり、root でこれを使ったアプリを動かしても、ローカルマシンの syslog で取り扱って貰えるわけではない、ということを最初に言っておこう。
www.nurs.or.jp
- FileAppender (Apache Log4j 1.2.17 API) : ファイルに出力
- DailyRollingFileAppdender : 週や日時毎にファイル出力
- 書き方サンプルはこんな感じです >>> log4j.propeties の書き方
log4j.category.com.fc2web.himtodo.test=DEBUG, TEST log4j.appender.TEST=org.apache.log4j.DailyRollingFileAppender log4j.appender.TEST.File=C:/logs/test.log log4j.appender.TEST.DatePattern='.'yyyy-MM-dd log4j.appender.TEST.layout=org.apache.log4j.PatternLayout log4j.appender.TEST.layout.conversionPattern=%d{yyyy/MM/dd HH:mm:ss.SSS} [%p] - %m%n
↓{使うLayoutさんのクラス}は「Direct Known Subclasses:」から選ぶか実装します。
Class Layout
Direct Known Subclasses:
DateLayout, EnhancedPatternLayout, HTMLLayout, PatternLayout, SimpleLayout, XMLLayoutExtend this abstract class to create your own log layout format.
Layout (Apache Log4j 1.2.17 API)
他は見たら調べよう・・・覚えられないし・・・。
論理演算の応用系を勉強します。
論理演算の基本系を勉強します。
勉強のきっかけになった過去問
論理式P,Qがいずれも真であるとき,論理式Rの真偽にかかわらず真になる式はどれか。ここで," ̄"は否定,"∨"は論理和,"∧"は論理積,"→"は含意("真→偽"となるときに限り偽となる演算)を表す。
基本編
論理和は「OR」です。
論理積は「AND」です。
否定は「NOT」です。
否定は「1」なら「0」になります。
A | NOT |
1 | 0 |
0 | 1 |
- 否定の論理回路はこれです。
- ベン図はこうなります。
- 否定はで表されます。
- キーボードで何を打てば出るかわかりませんでした。「¬」も否定の記号です。「ひてい」とうって変換したら出ました。
含意は「AならばB」ということらしいです。
「ふくい」ではなく「がんい」とよみます。
kotobank.jp
言葉遊びのようで日本語が弱いためよくわかりません。
含意の命題「ならば」をあらわす論理記号 A⇒B [数学についてのwebノート]
他の方法で考えます。
英語でわかるわけがありません。
connotation、entailment、implication、implicature、intent、connote、imply、imply、stand for、signify、intend、meanなどなど
記号はわかりません。
「A→B」「A⇒B」「A⊃B」
※. 正しくは「A→B」と「A⇒B」は異なるらしいけれどそんなレベルにはいません。
論理包含 - Wikipedia
真理値表はよくわかりません。
A | B | 含意 |
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 1 |
0 | 0 | 1 |
- 10進数にしても全くわかりません。
- A = 12 = 1100
- B = 5 = 0101
- A ⊃ B = 1011 = 11
ベン図は不思議に感じます。
解りにくければ、A≦B と覚えればOK!
softwaredevelop.web.fc2.com
NASって何?SANって何?
勉強のきっかけになった過去問
NAS(Network Attached Storage)の特徴と,特徴を生かした適用業務について述べたものはどれか。
- 各種OSからファイルを共有することができるので,データを交換する業務に適している。
- データの読み書きを高速に行うことができるようになるので,負荷が高い業務に適している。
- データベースのデータを扱うことが容易なので,簡易言語で情報検索を行う業務に適している。
- ファイルの改ざんを監視することが容易なので,個人情報を管理する業務に適している。
NASはファイルサーバです。
簡易なコンピュータ本体にハードディスクやSSDなどの記憶装置と、ネットワークインターフェース、OS、管理用ソフトウェアなどを内蔵したファイルサーバ専用機で、記憶装置をネットワークに直に接続したように扱うことができる
e-words.jp
ネットワークに繋ぐのでみんなで使えます。
NASはパソコンに1対1で繋ぐのではありません。
ネットワークに対して繋ぐので、そのネットワークにつながっているパソコンで使えます。
アクセス権限を設定して決まった人々だけで使うことだってできます。
個別にファイル管理するよりもNASのほうが記憶領域の有効活用できます。
個々のパソコンに付いているハードディスクの空きスペースは、それぞれの人がどんな使い方をしているかによってまちまちです。
大量のデータを保存している人のハードディスクスペースが足りなくなる一方で、あまりデータを保存していない人のハードディスクスペースが余るというのは効率が良くありませんが、NAS であればそれぞれの人が必要に応じてスペースを利用できるので有効活用ができます。
navi.dropbox.jp
ネットワークに接続された各種OSでのデータ共有ができます。
SANはネットワークです。
複数のコンピュータとストレージ(外部記憶装置)の間を結ぶ高速なネットワーク。
e-words.jp
SANは2種類あります。
FC-SANはファイバチャネルを使用したネットワークです。
接続にFibre Channel(ファイバーチャネル)を使います。
ファイバーチャネルっていうのは・・・
コンピュータ本体と外部記憶装置を接続するのに利用されているデータ転送方式
e-words.jp
おまけ
NAS電池は電力貯蔵システムです。
多分、ファイルサーバのNASとは関係ないと思います。
負極(マイナス極)にナトリウム(Na)、正極(プラス極)に硫黄(S)、両電極を隔てる電解質にファインセラミックスを用いて、硫黄とナトリウムイオンの化学反応で充放電を繰り返す蓄電池(二次電池)です。
www.ngk.co.jp
暗号方式の種類
- 前回の勉強内容
- 勉強のきっかけになった過去問
- 共通鍵暗号方式では、「送信側で暗号化する鍵」と「受信側で復号化する鍵」は同じ鍵を使います。
- 公開鍵暗号方式では、「送信側で暗号化する鍵」は公開鍵・「受信側で復号化する鍵」は秘密鍵と異なる鍵を使います。
- 共通鍵暗号方式と公開鍵暗号方式を組み合わせたハイブリッド暗号方式
- 出典
前回の勉強内容
勉強のきっかけになった過去問
暗号方式のうち,共通鍵暗号方式はどれか。
ア. AES イ. ElGamal暗号 ウ. RSA エ. 楕円曲線暗号
平成28年春期問37 共通鍵暗号方式はどれか|応用情報技術者試験.com
共通鍵暗号方式では、「送信側で暗号化する鍵」と「受信側で復号化する鍵」は同じ鍵を使います。
メリット : 公開鍵暗号方式にくらべて処理が高速である
デメリット : 複数人と通信する場合は鍵の受け渡しが煩雑になってしまう
https://jp.globalsign.com/knowledge/pki_keycryptosystem.html
昔アメリカで標準規格として採用されていたDES
共通鍵暗号方式を採用した暗号方式です。
鍵長は56ビットです。
e-words.jp
公開鍵暗号方式では、「送信側で暗号化する鍵」は公開鍵・「受信側で復号化する鍵」は秘密鍵と異なる鍵を使います。
メリット : 複数人とやり取りする際に鍵の管理が容易である
デメリット : 処理速度は遅くなってしまう
https://jp.globalsign.com/knowledge/pki_keycryptosystem.html
離散対数問題の困難さを利用したElGamal暗号
公開鍵暗号方式を採用した暗号方式です。
公開鍵や暗号文から秘密鍵が割り出されることを防ぐため、逆算が困難な演算を用いて鍵を造ります。
e-words.jp
大きい数の素因数分解の困難さを利用したRAS
公開鍵暗号方式を採用した暗号方式です。
公開鍵で暗号化、秘密鍵で復号を行うだけでなく、秘密鍵で暗号化、公開鍵で復号できます。
オイラーの定理を使っているそうですが、難しくてよくわかりません。
mathtrain.jp
楕円曲線上の離散対数問題の困難さを利用した楕円曲線暗号
楕円曲線を利用した暗号方式の総称です。
公開鍵暗号方式を採用していることが多いそうです。
暗号通貨の「ビットコイン」で採用されました。
RSA暗号と比べて、短い鍵長で同レベルの安全性が実現できます。
公開鍵暗号方式は暗号化・復号に要する計算量が多いため、RSAの鍵長は処理負荷の面でネックとなっています。代わりに、鍵長が少なくて済む楕円曲線暗号の人気が高まってきています。
平成31年春期問39 楕円曲線暗号の特徴はどれか|基本情報技術者試験.com
公開鍵暗号方式でありTLSにも利用されています。
楕円曲線によって定義された有限可群上の離散対数問題を解く際の計算量の多さを安全性の根拠とし、同じ強度を想定した場合、RSAより鍵長を短くできる利点があります。
平成30年秋期問37 楕円曲線暗号に関する記述|応用情報技術者試験.com
公開鍵暗号方式に関する記述として,適切なものはどれか。
答. RSAや楕(だ)円曲線暗号などの暗号方式がある。
平成20年秋期問71 公開鍵暗号方式|応用情報技術者試験.com
クラスタリング方式によるシステムの構成
勉強のきっかけになった過去問
仮想サーバの冗長化設計における可用性評価に関する記述のうち,クラスタソフトウェアを用いた評価として,適切なものはどれか。
- OS,アプリケーション及びハードウェアの障害に対応し,障害時に障害が発生していないサーバに自動的に処理を引き継ぐので,切替え時間の短い安定した運用が求められる場合に有効である。
- 仮想サーバを停止させずに物理サーバ間で仮想サーバを移動することが可能となるので,メンテナンスなど業務移行の際も含めて業務の停止が全く許容できない場合に有効である。
- 物理サーバに備わっている機能を利用するので,ハードウェアの障害にだけ対応し,障害時に業務停止が許容される場合に有効である。
- 物理サーバのリソース(CPU,メモリなど)をブロック単位に物理的に分割し,あるブロックの障害が他のブロックに影響しないようにするので,障害時に業務の停止が許容できない場合に有効である。
クラスタリング方式の概要
複数のサーバでサービスを稼働させます。利用者にはあたかも1つサーバを利用しているかのごとく。
この方式では更に2種類の方式があります。
アクティブ・スタンバイクラスタ
スポーツの大会で選手と補欠がいて、選手が怪我しても補欠がいるからなんとかなるイメージです。
稼働(アクティブ)しているサーバと停止(スタンバイ)しているサーバを使います。
停止しているサーバはサボっているのではなく稼働しているサーバを監視しています。
稼働しているサーバで故障などので停止したら、停止しているサーバが稼働してサービスを引継ぎます。
稼働するサーバを切り替えることをフェールオーバーといいます。
故障は直してまた使えるようにします。
使えるようになったらまた稼働して、稼働していたサーバがまた停止します。
これで、故障前の状態に戻ります。
停止したサーバがまた稼働して元の状態に戻ることをフェールバックといいます。
注意ポイント : サーバを切換える時に蓄積データを移行する方法が必要であること。
データを蓄積しているメールサーバやファイルサーバ、データベースサーバでこの方式を使う時は注意する必要があります。
負荷分散クラスタ
会社で1つの作業を複数人で作業して、1人だけ残業し内容にしたり誰かがインフルエンザで休んでも作業が止まらないようにするイメージです。
複数のサーバを一緒に稼働させて処理を分散させます。
ロードバランサなどで処理を振分けていきます。
問題が発生したサーバには処理を振分けないようにします。
停止したサーバに処理を振分けてもできないものはできません。
特定のサーバのスペックが残念な場合は、処理が滞らないようにそのサーバに振分ける処理を少なくしたりもします。
注意ポイント : データをサーバ間で共有する方法が必要であること。
使っているサーバみんなで違うデータを見ていたら悲しい状態になります。
注意ポイント : 処理を振り分ける装置にはサーバを監視する機能も必要であること。
どのサーバは問題なくて、どのサーバには問題が発生しているかを監視して振分けを決められないといけません。
クラスタリング方式は、停止時間を最小限にしたいサービスに向いています。
IPアドレスとサブネットマスク
- 前回の勉強内容
- 勉強のきっかけになった過去問
- サブネットマスク(subnet mask)というものがあります
- サブネットマスクの10進数表記
- 出典
前回の勉強内容
勉強のきっかけになった過去問
次のIPアドレスとサブネットマスクをもつPCがある。このPCのネットワークアドレスとして,適切なものはどれか。
IPアドレス: 10.170.70.19
サブネットマスク:255.255.255.240ア. 10.170.70.0 イ. 10.170.70.16 ウ. 10.170.70.31 エ. 10.170.70.255
平成31年春期問34 ネットワークアドレス|応用情報技術者試験.com
サブネットマスク(subnet mask)というものがあります
サブネットマスクとは、ネットワーク部がどこからどこまでかを定義する数値です。
IPアドレスは、「ネットワーク部」と「ホスト部」からできています。
その「ネットワーク部」がどこからどこまでかを定義する32ビットの数値です。
そもそもサブネットというのは、小さく分割したネットワークです。
大きなネットワークを複数の小さなネットワークに分割して管理する際の管理単位となる小さなネットワーク。
サブネットとは - IT用語辞典 e-Words
例えば、「Cクラスを使うにはホストが多すぎる」が「Bクラスを使うにはホストが少なすぎる」
こんな場合「Bクラスを小さなネットワークに分割」してその1つを使えばちょうどいい。
この小さなネットワークがサブネットです。
サブネットにするから「ネットワーク部」がクラスとは変わります。
上記の例で考えると「Bクラスを小さなネットワークに分割」したので「Bクラスのネットワーク部」とは違う「ネットワーク部」になります。
そうなると、どこからどこまでが「ネットワーク部」かわからなくなります。
そこで、
サブネットマスクの「ネットワーク部」には見方があります。
サブネットマスクを2進数でみると先頭から途中まで「1」が連続しています。
「1」が連続している範囲が、「ネットワーク部」です。
「0」が連続している範囲が、「ホスト部」です。
「勉強のきっかけになった過去問」で考えます。
サブネットマスクは、「255.255.255.240」です。
これを2進数にすると
11111111 11111111 11111111 11110000
です。
ピンクの部分がCクラスより小さくネットワークを分割しています。
そのネットワークに繋がるIPアドレス「10.170.70.19」のホストがあります。
この「ネットワーク部」を見てみます。
① ホストのIPアドレスを2進数にします。
00001010 10101010 01000110 00010011
② サブネットマスクと見比べます。
00001010 10101010 01000110 00010011
11111111 11111111 11111111 11110000
③ 2つをAND演算(論理積)すると「ネットワーク部」になります。
結果は、00001010 10101010 01000110 00010000 です。
「ネットワーク部」は、00001010 10101010 01000110 00010000 です。
④ 2つをOR演算(論理和)すると「ホスト部」になります。
結果は、11111111 11111111 11111111 11110011 です。
「ホスト部」は、11111111 11111111 11111111 11110011 です。
⑤ 10進数に戻します。
「ネットワーク部」は、10.170.70.16です。
「ホスト部」は、255.255.255.243です。
という感じでサブネットマスクにおける「ネットワーク部」「ホスト部」を見分けます。
対象 | 10進数 | 2進数 |
---|---|---|
サブネットマスク | 255.255.255.240 | 11111111 11111111 11111111 11110000 |
IPアドレス | 10.170.70.19 | 00001010 10101010 01000110 00010011 |
ネットワーク部(AND演算) | 10.170.70.16 | 00001010 10101010 01000110 00010000 |
ホスト部(OR演算) | 255.255.255.243 | 11111111 11111111 11111111 11110011 |