SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
Linux女子部 KVM勉強会!
                       オープンクラウド・キャンパス



              Linux女子部 KVM勉強会!




                            ver1.0 中井悦司
                           Twitter @enakai00
1
Linux女子部 KVM勉強会!

    自己紹介
     中井悦司(なかいえつじ)
       – Twitter @enakai00

     日々の仕事
       – Senior Solution Architect and
         Cloud Evangelist at Red Hat K.K.   好評発売中
         企業システムでオープンソースの活用を希望される
         お客様を全力でご支援させていただきます。


     昔とった杵柄
       – 素粒子論の研究(超弦理論とか)
       – 予備校講師(物理担当)
       – インフラエンジニア(Unix/Linux専門)




                                                    Open Cloud Campus
2
Linux女子部 KVM勉強会!

    Contents

       Linux KVMの基礎知識
       仮想化ハイパーバイザの分類とLinux KVMの特徴
       Linuxの仮想ネットワーク機能
       iptablesによるパケットフィルタリング




                                     Open Cloud Campus
3
Linux女子部 KVM勉強会!




                       Linux KVMの基礎知識




4
Linux女子部 KVM勉強会!

    参考書




                           仮想ネットワークと
               KVM全般の勉強に
                            iptablesの勉強に

                                           Open Cloud Campus
5
Linux女子部 KVM勉強会!

    Linux KVMとは

     Kernel-based Virtual Machine
      – イスラエルのQumranet (Avi Kivity)が2006年10月に開発をスタート。
      – 2ヶ月後にメインラインのカーネルにマージ
      – 2008年12月にRed HatがQumranetを買収
      – 2009年9月公開のRHEL5.4より正式サポート開始

     KVMの特徴
      – Linuxカーネルにカーネル・モジュールとして仮想化機能を統合
         • CPUスケジューリング、メモリ管理などは Linux カーネルの既存機能を拡張
         • 仮想デバイスのエミュレーションはQEMUを利用
      – CPUの仮想化支援機構を利用した完全仮想化を採用
         • Intel VT/AMD-Vが必要
         • カーネル開発コミュニティとプロセッサメーカのエンジニアが協力して開発


                          仮想化, Linux, x86サーバ技術の
                       一体的な進化を促進したことがKVMの功績!

                                                        Open Cloud Campus
6
Linux女子部 KVM勉強会!

    KVMはLinux Kernelに継ぐコミュティ開発モデルの成功例
       $ cd linux-2.6
       $ git log -p -M virt/kvm arch/x86/kvm | gitdm -d -u
                                                             (2011/12/27 の実行結果)
                          開発者の所属企業別の
                       KVMソースコード変更行数割合




                                                        プロセッサメーカの開発者
                         35%                           からのコントリビューション

                                                 7%

                                            9%
                                 27%




                                                                         Open Cloud Campus
7
Linux女子部 KVM勉強会!



               仮想化ハイパーバイザの分類と
                  Linux KVMの特徴




8
Linux女子部 KVM勉強会!

    仮想化ハイパーバイザの分類
       基本的には「物理マシン」と同等の「仮想マシン」を複数作り出す技術です。
                                           ハードウェアによる仮想化
                                        (物理マシンにハイパーバイザを内蔵)

                  非仮想化環境                ゲスト    ゲスト   ゲスト   ゲスト
                                         OS     OS    OS    OS
                       OS                仮想     仮想    仮想    仮想
                                        マシン    マシン   マシン   マシン
                   物理マシン
                                        ハイパーバイザ(ファームウェア)

                                                物理マシン


                                            ソフトウェアによる仮想化
               ソフトウェアによる仮想化             (ホストOSにハイパーバイザ機能を追加)
           (物理マシン上にハイパーバイザを導入)
                                         ゲスト   ゲスト   ゲスト
     Xen    ゲスト   ゲスト       ゲスト   ゲスト     OS    OS    OS     Linux KVM
             OS    OS        OS    OS     仮想    仮想    仮想
             仮想    仮想        仮想    仮想    マシン   マシン   マシン
            マシン   マシン       マシン   マシン      ハイパーバイザ
            ハイパーバイザ(ソフトウェア)              (カーネルモジュール)
                                                 ホストOS
                   物理マシン
                                                物理マシン

                                                             Open Cloud Campus
9
Linux女子部 KVM勉強会!

 x86サーバ仮想化技術の歴史
      仮想化支援機能を持つCPUでは、仮想マシン(ゲストOS)を実行するための特権モードを
       提供することで、センシティブ命令の制御をHWレベルで行います。
      一方、初期のハイパーバイザでは、仮想化支援機能を前提としないソフトウェア技術が必
       要でした。
        – VMwareは「Dynamic Binary Translation」を採用しました。センシティブ命令をメモリ上で動的
          に書き換える技術です。
        – Xenは「準仮想化 (Static Binary Translation)」を提唱しました。センシティブ命令を事前にハイ
          パーバイザコールに書き換えた「準仮想化カーネル」を使用します。
        – 現在のバージョンでは、どちらもCPUの仮想化支援機能を利用可能です。

                                    2000        2003                2007
                                  ハイパーバイザ      準仮想化技術             Linuxカーネルに
                                   による仮想化        の提唱              仮想化機能を統合

                                  VMware ESX    Xen                  KVM


         1995                      2000                2005                    2010

     (Virtual PC for Macintosh)                        Intel-VT
        コンシューマーPC                                 HW レベルでの
         初の仮想化(?)                                  仮想化機能

                1996                                    2005                   Open Cloud Campus
10
Linux女子部 KVM勉強会!

 KVMにおける特権モードの利用方法
      KVMでは、仮想マシンはホストLinux上の1プロセスとして実行されます。
      – ゲストOSは、VMX non-rootモードで動作
        して、デバイスアクセスなどのセンシティ
        ブ命令が発行されると、KVMモジュールに                qemu-kvmプロセス
        処理が移行します。
      – KVMモジュールの指示により、VMXroot




                                                 ユーザプロセス


                                                           ユーザプロセス
        モードで動作する、qemuデバイスエミュ




                                                   ゲストの


                                                             ゲストの




                                                                             一般のプロセス



                                                                                         一般のプロセス
                                      qemuデバイス
                                      エミュレータ
        レータが物理デバイスにアクセスします。



                                                   ゲストカーネル
                     VMX rootモード
                                                 KVMモジュール
                    VMX non-rootモード
                                                                ホストLinux
                                                                 カーネル



                         仮想ディスク
                         イメージファイル                                    物理CPU

                                                                               Open Cloud Campus
11
Linux女子部 KVM勉強会!

 EPTによるメモリアクセスの高速化
      非仮想化環境では、ユーザプロセスが認識する仮想アドレスと物理アドレスの変換はCPU
       に搭載のMMU(Memory Management Unit)がハードウェアレベルで処理します。

      一方、仮想マシン環境では、2 段階のアドレス変換が必要です。
       – ユーザプロセスの仮想アドレス ⇒ ゲストOSの「仮想」物理アドレス(GPFN) ⇒ 物理アドレ
         ス(MPFN)
       – EPT (Extended Page Tables) を利用すると、2段階のアドレス変換をハードウェアレ
         ベルで処理します。
         • Xeon 5500番台(Nehalem)以降のCPUがEPTに対応しています。EPT未対応のCPUでは、
           シャドウページテーブルなどのソフトウェア処理が必要です。

                                                Xen/KVM仮想化環境

           非仮想化環境                             ゲストOSのプロセスA
                                              論理アドレス空間
     プロセスA      プロセスB
     論理アドレス空間   論理アドレス空間   MMUが変換    EPT対応の           qemu-kvmプロセス
                                    MMUが変換              GPFN


                           PFN                                            PFN



           搭載物理メモリ                                搭載物理メモリ
                                                               Open Cloud Campus
12
Linux女子部 KVM勉強会!

 virtioドライバによるI/Oの高速化
      virtioは、KVM仮想化環境に最適化されたディスク/NICのエミュレーション形
       式です。
      – QEMUが用意したI/Oバッファ領域にvirtioドライバが直接アクセスするため仮想化の
        オーバヘッドが削減されます。

       一般のドライバを使用する場合                  virtioドライバを使用する場合
                     ゲストOSの                          ゲストOSの
       QEMUプロセス      メモリ空間             QEMUプロセス      メモリ空間

                                            メモリマッピング

             メモリマッピング
                                        IOリクエスト      IOリクエスト
                                          バッファ         バッファ

                    入出力データ              入出力データ       入出力データ




        入出力データ       トラップ


             ホストLinux                        ホストLinux


                  ゲストドライバのI/O処理をトラップ              virtioドライバは、共有メモリ上の
         物理I/O                           物理I/O    バッファを使用(ゲストOSとQEMU
                  して、QEMU経由でIOを実施
                                                  間のデータコピーが発生しない)
                                                                Open Cloud Campus
13
Linux女子部 KVM勉強会!

 仮想化APIライブラリ- libvirt
      libvirtは、複数のハイパーバイザを統一的に操作するAPIライブラリです。
       – C言語、Pythonから使用するためのライブラリを標準で提供します。現在
         は、Xen/KVM/LXC(Linuxコンテナ)などが対応しています。
       – ゲストOSの起動・停止などの操作以外に、仮想ネットワーク構成、ストレージ管理の
         ためのAPIを提供します。
       – 図は、Python用のライブラリを使用して、KVMのすべての仮想マシンをまとめて起
         動/停止するスクリプトの例です。
                                        すべての仮想マシンを起動するスクリプト

      RHEL6では次のようなツールがlibvirtを利用       #!/usr/bin/python

       しています。                           import libvirt, time
                                        Conn = libvirt.open( "qemu:///system" )
       – virsh(コマンドライン管理ツール)            for name in Conn.listDefinedDomains():
                                            vm = Conn.lookupByName( name )
       – virt-manager(GUI管理ツール)             print "Starting " + vm.name()
                                            vm.create()
       – virt-install(コマンドラインのゲストOSイン       time.sleep( 1 )

         ストールツール)                       すべての仮想マシンを停止するスクリプト
                                        #!/usr/bin/python
      Euclyptus / OpenStackなどのクラウド基盤   import libvirt, time
       ソフトウェアが内部的にlibvirt経由で仮想化         Conn = libvirt.open( "qemu:///system" )
                                        for id in Conn.listDomainsID():
       ハイパーバイザを操作する場合もあります。                 vm = Conn.lookupByID( id )
                                            print "Stopping " + vm.name()
                                            vm.shutdown()
                                            time.sleep( 1 )

                                                                     Open Cloud Campus
14
Linux女子部 KVM勉強会!

 virt-managerによる仮想化環境の管理
      Virt-managerはRHEL6が標準で提供する仮想化環境の管理ツールです。次のよ
       うな操作をGUIで行うことができます。
      – 仮想マシンの構成、ゲストOSのインストール
      – 仮想マシンのコンソール表示、起動、停止
      – 仮想ネットワークの構成、仮想ディスク用ストレージの管理
      – など


      ネットワーク経由で複数の仮想
       化ホストを管理することもでき
       ます。




                                             Open Cloud Campus
15
Linux女子部 KVM勉強会!




                 Linuxの仮想ネットワーク機能




16
Linux女子部 KVM勉強会!

 KVMの仮想ネットワーク
      KVMのホストLinuxは「TAPデバイス」を経由して仮想マシンの仮想NICとパケッ
       トを交換します。TAPデバイスを「仮想ブリッジ」に接続することで、仮想マシ
       ン間のプライベートネットワークが構成されます。
      – TAPデバイスは、ユーザプロセスと仮想的なネットワーク通信を行うLinuxの機能です。
      – 仮想ブリッジは、Linux上に仮想的なネットワークスイッチを構成する機能です。


      外部ネットワークに接続する方法                         仮想マシン              仮想マシン
       は2種類あります。
                                                eth0   仮想NIC          eth0    仮想NIC
      – ホストLinuxの物理NICを仮想ブ
        リッジに接続します。              ホストLinux          TAPデバイス                TAPデバイス
      – iptablesによるNAT/マスカレード
                                               vnet0                  vnet1
        で仮想ブリッジから外部ネット          ② NAT/マスカレード
        ワークにパケット転送します。
                                                       virbr0 / br0

                                                       仮想ブリッジ

                                      eth0         ① ブリッジ接続



                                                       外部ネットワーク

                                                                         Open Cloud Campus
17
Linux女子部 KVM勉強会!

 仮想ネットワークの構成パターン
      複数の仮想ブリッジを使用することで、複数の仮想ネットワークが構成できます。
       仮想ネットワークの構成パターンには次のようなものがあります。
      – 物理NICをブリッジ接続して外部ネットワークに同一サブネットとして接続
      – NAT/マスカレードを利用して、外部ネットワークとは独立したサブネットとして接続
        • マスカレードを利用する場合、外部ネットワークから仮想ネットワークに向けた接続はできま
          せん。
        • 外部ネットワークと相互通信する場合は、外部のIPアドレスと内部のIPアドレスをDNAT/SNAT
          で1対1にひも付ける必要があります。
      – 外部ネットワークには接続しないホストマシン内部のプライベートネットワークを構成
        • 仮想ブリッジにIPアドレスを設定することで、ホストLinuxと仮想マシンの通信は可能になりま
          す。
                                                           仮想マシンは外部とは通信しない

             仮想マシン                        仮想マシン            仮想マシン         仮想マシン

             eth0                         eth0             eth0             eth0
仮想マシンと外部                     仮想マシンと外部
ネットワークは同じ                    ネットワークは異なる
サブネットに属する。           ホスト     サブネットに属する。           ホスト                               ホスト
             vnet0   Linux                vnet0   Linux    vnet0            vnet1   Linux

              仮想ブリッジ                       仮想ブリッジ                  仮想ブリッジ
                                                 パケット転送   仮想ブリッジにIPアドレスを設定すると
             eth0                         eth0            ホストLinuxと仮想マシンは通信可能



                                                                       Open Cloud Campus
18
Linux女子部 KVM勉強会!

 dnsmasqによるDHCP/DNS機能の提供
      物理NICをブリッジ接続しないタイプの仮想ネットワークは、libvirt API 
       (virsh/virt-managerなど)で構成することができます。
      – 物理NICのブリッジ接続を行う場合は、手動で設定ファイルを構成します。
      – 仮想ブリッジには任意の名称を設定できます。通常は「br0」などを使用します。


      libvirtで構成する仮想ネットワークは、簡易的なDHCP/DNS機能を提供します。
      – これらの機能は、ホストLinuxの「dnsmasqデーモン」が提供します。不要な場合は無効
        化もできます。DNSサーバは、ホストLinuxの「/etc/hosts」の内容と
        「/etc/resolv.conf」で指定された外部DNSを参照します。
      – libvirtで構成した仮想ブリッジの名称は「virbrX」になります。
                                      仮想マシン             仮想マシン

                                        eth0             eth0


                                                                 ホスト
                                       vnet0             vnet1   Linux

                                             仮想ブリッジ (virbr0)

                                             パケット転送
                                                         DHCPサーバ
                                                         DNSサーバ
                                      eth0


                                                           Open Cloud Campus
19
Linux女子部 KVM勉強会!

 (参考)Bonding / VLANデバイスの組み合わせ


                                                      仮想マシン                 仮想マシン
       仮想マシン
                                                       eth0    仮想NIC          eth0   仮想NIC
        eth0        仮想NIC




                                       タグ無しパケット
                                                          TAPデバイス                TAPデバイス

        vnet0       TAPデバイス                            vnet0                 vnet1
                                                                                      仮想ブリッジ

              br0       仮想ブリッジ                         br100                 br200


                                                        eth0.100          eth0.200   VLANデバイス
          bond0         bondingデバイス    タグ付きパケット

       eth0     eth1
                            ホストLinux              ホストLinux         eth0


                                                                          タグVLAN



     ネットワーク・スイッチ
                                                          VLAN100             VLAN200


                                                                                     Open Cloud Campus
20
Linux女子部 KVM勉強会!




          iptablesによるパケットフィルタリング




21
Linux女子部 KVM勉強会!

 iptablesの機能
      iptablesの機能は、大きくは「パケットフィルタリング」と「NAT (Network
       Address Translation)」に分かれます。
      – パケットフィルタリングは、Linux上にファイアウォール機能を提供するもので、IPパ
        ケットの送信、受信、転送のそれぞれについて、許可条件を設定します。
      – NATは、Linuxサーバをルータとして使用する際に利用する機能で、パケットの転送時
        に、パケットに含まれる送信元、もしくは宛先IPアドレスを変換します。
        • 正確には、DNAT(宛先アドレス変換)、SNAT(送信元アドレス変換)、マスカレード
          (SNATの特別版)の3種類があります。


                    インターネットからの
                  接続パケットをフィルタリング           プライベートネットワークから              外部からの接続パケットを
                                          インターネットにマスカレード接続                フィルタリング

                          グローバル
                          IPアドレス
                        XX.XX.XX.XX      ルータ用
        インターネット                          Linuxサーバ

                                      192.168.100.1
                                                      192.168.100.10        192.168.100.11


         iptablesの利用例          プライベートネットワーク
                               192.168.100.0/24



                                                                                  Open Cloud Campus
22
Linux女子部 KVM勉強会!

 iptablesの設定方法
  iptablesの有効化/無効化は、iptablesサービスの起動・停止で行います。
     – # service iptables start : 設定ファイル「/etc/sysconfig/iptables」をアクティブ化し
       ます。
     – # service iptables stop : アクティブな設定がすべて無効になります。

  iptablesの設定は、設定ファイルを編集して再アクティブ化する方法と、iptables
   コマンドでアクティブな設定を直接変更する方法があります。
     – アクティブな設定を直接変更した場合は、別途、設定ファイルに内容を書き出しておかな
       いと、再起動後に変更が失われます。

                                     iptablesの2種類の設定方法
             設定ファイルを編集                                             iptablesコマンドで設定


                                     設定ファイルを再アクティブ化
                                      # service iptables restart




                                      設定ファイルに書き出し
                                      # service iptables save
           /etc/sysconfig/iptables                                  アクティブな設定

                                                                                     Open Cloud Campus
23
Linux女子部 KVM勉強会!

 iptablesにおける処理の流れ
  Linuxサーバを通過するパケットは、いくつかの「チェーン」を通過します。
     – INPUTチェーン : 受信パケットが通過します。
     – OUTPUTチェーン : 送信パケットが通過します。
     – PREROUTING、FORWARD、POSTROUTINGチェーン : 転送パケットが通過します。


  それぞれのチェーンでは、次のテーブルの設定に従ってパケットの処理が行われ
   ます。
     – filterテーブル : パケットフィルタリングの処理を定義します。
     – natテーブル : NATの処理を定義します。

               ネットワーク                 ネットワーク#2            ネットワーク#1

                            受信パケット                転送パケット

        OUTPUTチェーン   INPUTチェーン       POSTROUTINGチェーン    PREROUTINGチェーン
        filterテーブル   filterテーブル         natテーブル            natテーブル


     送信パケット                          SNAT処理                      DNAT処理
                                               FORWARDチェーン
              アプリケーション
                プログラム                             filterテーブル
                                                                 Open Cloud Campus
24
Linux女子部 KVM勉強会!

 パケットフィルタリングの設定例
  パケットフィルタリング設定の基本コマンドは次の通りです。                                                   ターゲット        説明

                                                                                  ACCEPT       パケットの送受信を許可
     – 指定条件にマッチするパケットに対するターゲットの定義
                                                                                  DROP         パケットを破棄する
          • iptables -A <チェーン> <パケット条件> -j <ターゲット>
                                                                                  REJECT       パケットの拒否をICMPで通知
     – デフォルトターゲットの定義
                                                                                  LOG          パケット情報をSyslogに出力
          • iptables -P <チェーン> <ターゲット>
     – -Aオプションで設定した順にパケット条件の評価が行われて、最初にマッチした条件に対す
       るターゲットが実行されます。LOGアクション以外はそこで評価が終了します。
     – どの条件にもマッチしなかった場合は、-Pオプションで指定した、デフォルトアクションが実
       行されます。
     – 現在のアクティブな設定は次のコマンドで表示します。
          • iptables [-v][-n] -L <チェーン>
          • -vオプションは詳細情報を表示します。-nオプションはIPアドレスやTCP/UDPポート番号を数値で表示
            します。(指定しない場合は名前解決を行います。)


     受信パケットに対するフィルタリング設定手順の例
     #   service iptables stop                                                              外部からの接続パケットを
     #   iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT                     フィルタリング
     #   iptables -A INPUT -i lo -j ACCEPT
     #   iptables -A INPUT -d 192.168.100.10 -p tcp -m tcp --dport 22 -j ACCEPT
     #   iptables -A INPUT -j LOG -m limit --log-prefix "[INPUT Dropped] "
     #   iptables -P INPUT DROP
     #   service iptables save                                                             192.168.100.10
     #   service iptables start
                                                                                                       Open Cloud Campus
25
Linux女子部 KVM勉強会!

 QA




                    Open Cloud Campus
26
Linux女子部 KVM勉強会!
                        オープンクラウド・キャンパス



             日経Linux「クラウド時代のサーバ
             構築・運用の基礎」もよろしくね!




                                 中井悦司
                            Twitter @enakai00
27

Más contenido relacionado

La actualidad más candente

GPU仮想化最前線 - KVMGTとvirtio-gpu -
GPU仮想化最前線 - KVMGTとvirtio-gpu -GPU仮想化最前線 - KVMGTとvirtio-gpu -
GPU仮想化最前線 - KVMGTとvirtio-gpu -zgock
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」Masahito Zembutsu
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門VirtualTech Japan Inc.
 
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~NTT Communications Technology Development
 
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~  - ...「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~  - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...VirtualTech Japan Inc.
 
再考、3つの仮想デスクトップイメージ管理と比較
再考、3つの仮想デスクトップイメージ管理と比較再考、3つの仮想デスクトップイメージ管理と比較
再考、3つの仮想デスクトップイメージ管理と比較Citrix Systems Japan
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較Akihiro Suda
 
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)Takeshi HASEGAWA
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Etsuji Nakai
 
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)Takeshi HASEGAWA
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)NTT DATA Technology & Innovation
 
[Container Runtime Meetup] runc & User Namespaces
[Container Runtime Meetup] runc & User Namespaces[Container Runtime Meetup] runc & User Namespaces
[Container Runtime Meetup] runc & User NamespacesAkihiro Suda
 
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介VirtualTech Japan Inc.
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
Ceph アーキテクチャ概説
Ceph アーキテクチャ概説Ceph アーキテクチャ概説
Ceph アーキテクチャ概説Emma Haruka Iwao
 
マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法Takuya ASADA
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門Masahito Zembutsu
 

La actualidad más candente (20)

GPU仮想化最前線 - KVMGTとvirtio-gpu -
GPU仮想化最前線 - KVMGTとvirtio-gpu -GPU仮想化最前線 - KVMGTとvirtio-gpu -
GPU仮想化最前線 - KVMGTとvirtio-gpu -
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
 
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
 
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~  - ...「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~  - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
 
再考、3つの仮想デスクトップイメージ管理と比較
再考、3つの仮想デスクトップイメージ管理と比較再考、3つの仮想デスクトップイメージ管理と比較
再考、3つの仮想デスクトップイメージ管理と比較
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
[Container Runtime Meetup] runc & User Namespaces
[Container Runtime Meetup] runc & User Namespaces[Container Runtime Meetup] runc & User Namespaces
[Container Runtime Meetup] runc & User Namespaces
 
自宅インフラの育て方 第2回
自宅インフラの育て方 第2回自宅インフラの育て方 第2回
自宅インフラの育て方 第2回
 
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Ceph アーキテクチャ概説
Ceph アーキテクチャ概説Ceph アーキテクチャ概説
Ceph アーキテクチャ概説
 
マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
 

Destacado

姫路ゆるいWeb勉強会のご紹介
姫路ゆるいWeb勉強会のご紹介姫路ゆるいWeb勉強会のご紹介
姫路ゆるいWeb勉強会のご紹介Yuko Taniguchi
 
Xp祭り関西2011 中村lLT
Xp祭り関西2011 中村lLTXp祭り関西2011 中村lLT
Xp祭り関西2011 中村lLTtakepu
 
男女共同ペアプログラミング勉強会関西の紹介
男女共同ペアプログラミング勉強会関西の紹介男女共同ペアプログラミング勉強会関西の紹介
男女共同ペアプログラミング勉強会関西の紹介takepu
 
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会Yasutaka Hamada
 
R勉強会@東京 - Tokyo.Rの紹介
R勉強会@東京 - Tokyo.Rの紹介R勉強会@東京 - Tokyo.Rの紹介
R勉強会@東京 - Tokyo.Rの紹介Yohei Sato
 
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーションDocker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーションMasahito Zembutsu
 
クラウドファンディング勉強会(その2)
クラウドファンディング勉強会(その2)クラウドファンディング勉強会(その2)
クラウドファンディング勉強会(その2)Ryosuke SHIBATO
 
Office365勉強会 の紹介
Office365勉強会 の紹介Office365勉強会 の紹介
Office365勉強会 の紹介mokudai masayuki
 
RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門Etsuji Nakai
 

Destacado (10)

姫路ゆるいWeb勉強会のご紹介
姫路ゆるいWeb勉強会のご紹介姫路ゆるいWeb勉強会のご紹介
姫路ゆるいWeb勉強会のご紹介
 
Xp祭り関西2011 中村lLT
Xp祭り関西2011 中村lLTXp祭り関西2011 中村lLT
Xp祭り関西2011 中村lLT
 
男女共同ペアプログラミング勉強会関西の紹介
男女共同ペアプログラミング勉強会関西の紹介男女共同ペアプログラミング勉強会関西の紹介
男女共同ペアプログラミング勉強会関西の紹介
 
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
 
R勉強会@東京 - Tokyo.Rの紹介
R勉強会@東京 - Tokyo.Rの紹介R勉強会@東京 - Tokyo.Rの紹介
R勉強会@東京 - Tokyo.Rの紹介
 
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーションDocker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
 
Unreal engine4ビギナー勉強会
Unreal engine4ビギナー勉強会Unreal engine4ビギナー勉強会
Unreal engine4ビギナー勉強会
 
クラウドファンディング勉強会(その2)
クラウドファンディング勉強会(その2)クラウドファンディング勉強会(その2)
クラウドファンディング勉強会(その2)
 
Office365勉強会 の紹介
Office365勉強会 の紹介Office365勉強会 の紹介
Office365勉強会 の紹介
 
RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門
 

Similar a #ljstudy KVM勉強会

TechEd2008_T1-407_EffectiveHyper-V
TechEd2008_T1-407_EffectiveHyper-VTechEd2008_T1-407_EffectiveHyper-V
TechEd2008_T1-407_EffectiveHyper-VKuninobu SaSaki
 
おにいぽんでもわかるContainer
おにいぽんでもわかるContainerおにいぽんでもわかるContainer
おにいぽんでもわかるContainerTakahiro Morimoto
 
20120822_dstn技術交流会_仮想化について
20120822_dstn技術交流会_仮想化について20120822_dstn技術交流会_仮想化について
20120822_dstn技術交流会_仮想化についてdstn
 
Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!Etsuji Nakai
 
Osc2009 Sendai Xen 0124
Osc2009 Sendai Xen 0124Osc2009 Sendai Xen 0124
Osc2009 Sendai Xen 0124Kazuhisa Hara
 
クラウド概略(プレゼン)
クラウド概略(プレゼン)クラウド概略(プレゼン)
クラウド概略(プレゼン)真乙 九龍
 
/dev/kvmを直接叩いて自作VM
/dev/kvmを直接叩いて自作VM/dev/kvmを直接叩いて自作VM
/dev/kvmを直接叩いて自作VMYuma Ohgami
 
IaaSクラウドを支える基礎技術 v1_0
IaaSクラウドを支える基礎技術 v1_0IaaSクラウドを支える基礎技術 v1_0
IaaSクラウドを支える基礎技術 v1_0Etsuji Nakai
 
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)axsh co., LTD.
 
Try andstudy cloud
Try andstudy cloudTry andstudy cloud
Try andstudy cloudEtsuji Nakai
 
Dockerを使ってみよう
Dockerを使ってみようDockerを使ってみよう
Dockerを使ってみようGIG inc.
 
Technology Used in Virtual Machine (Jan 2008)
Technology Used in Virtual Machine (Jan 2008)Technology Used in Virtual Machine (Jan 2008)
Technology Used in Virtual Machine (Jan 2008)Kuniyasu Suzaki
 
Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門VirtualTech Japan Inc.
 
20120609 cod ws2012概要
20120609 cod ws2012概要20120609 cod ws2012概要
20120609 cod ws2012概要Osamu Takazoe
 
2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)
2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)
2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)Takahiro Shinagawa
 
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティSaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティKuniyasu Suzaki
 
BHyVe: The BSD Hypervisor
BHyVe: The BSD HypervisorBHyVe: The BSD Hypervisor
BHyVe: The BSD HypervisorTakuya ASADA
 

Similar a #ljstudy KVM勉強会 (20)

TechEd2008_T1-407_EffectiveHyper-V
TechEd2008_T1-407_EffectiveHyper-VTechEd2008_T1-407_EffectiveHyper-V
TechEd2008_T1-407_EffectiveHyper-V
 
おにいぽんでもわかるContainer
おにいぽんでもわかるContainerおにいぽんでもわかるContainer
おにいぽんでもわかるContainer
 
20120822_dstn技術交流会_仮想化について
20120822_dstn技術交流会_仮想化について20120822_dstn技術交流会_仮想化について
20120822_dstn技術交流会_仮想化について
 
Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!
 
Osc2009 Sendai Xen 0124
Osc2009 Sendai Xen 0124Osc2009 Sendai Xen 0124
Osc2009 Sendai Xen 0124
 
クラウド概略(プレゼン)
クラウド概略(プレゼン)クラウド概略(プレゼン)
クラウド概略(プレゼン)
 
/dev/kvmを直接叩いて自作VM
/dev/kvmを直接叩いて自作VM/dev/kvmを直接叩いて自作VM
/dev/kvmを直接叩いて自作VM
 
IaaSクラウドを支える基礎技術 v1_0
IaaSクラウドを支える基礎技術 v1_0IaaSクラウドを支える基礎技術 v1_0
IaaSクラウドを支える基礎技術 v1_0
 
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
 
Osc2009 Do Xen Hara
Osc2009 Do Xen HaraOsc2009 Do Xen Hara
Osc2009 Do Xen Hara
 
Try andstudy cloud
Try andstudy cloudTry andstudy cloud
Try andstudy cloud
 
Dockerを使ってみよう
Dockerを使ってみようDockerを使ってみよう
Dockerを使ってみよう
 
VIOPS01: 仮想サーバホスティング
VIOPS01: 仮想サーバホスティングVIOPS01: 仮想サーバホスティング
VIOPS01: 仮想サーバホスティング
 
Technology Used in Virtual Machine (Jan 2008)
Technology Used in Virtual Machine (Jan 2008)Technology Used in Virtual Machine (Jan 2008)
Technology Used in Virtual Machine (Jan 2008)
 
Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門Linux KVMではじめるカンタン仮想化入門
Linux KVMではじめるカンタン仮想化入門
 
20120609 cod ws2012概要
20120609 cod ws2012概要20120609 cod ws2012概要
20120609 cod ws2012概要
 
2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)
2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)
2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)
 
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティSaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
 
BHyVe: The BSD Hypervisor
BHyVe: The BSD HypervisorBHyVe: The BSD Hypervisor
BHyVe: The BSD Hypervisor
 
クラウド入門
クラウド入門クラウド入門
クラウド入門
 

Más de Etsuji Nakai

「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考えるEtsuji Nakai
 
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実Etsuji Nakai
 
Introducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlowIntroducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlowEtsuji Nakai
 
Googleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービスGoogleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービスEtsuji Nakai
 
Spannerに関する技術メモ
Spannerに関する技術メモSpannerに関する技術メモ
Spannerに関する技術メモEtsuji Nakai
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsEtsuji Nakai
 
A Brief History of My English Learning
A Brief History of My English LearningA Brief History of My English Learning
A Brief History of My English LearningEtsuji Nakai
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎Etsuji Nakai
 
TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門Etsuji Nakai
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineEtsuji Nakai
 
Lecture note on PRML 8.2
Lecture note on PRML 8.2Lecture note on PRML 8.2
Lecture note on PRML 8.2Etsuji Nakai
 
Machine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application DevelopersMachine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application DevelopersEtsuji Nakai
 
Your first TensorFlow programming with Jupyter
Your first TensorFlow programming with JupyterYour first TensorFlow programming with Jupyter
Your first TensorFlow programming with JupyterEtsuji Nakai
 
Deep Q-Network for beginners
Deep Q-Network for beginnersDeep Q-Network for beginners
Deep Q-Network for beginnersEtsuji Nakai
 
TensorFlowで学ぶDQN
TensorFlowで学ぶDQNTensorFlowで学ぶDQN
TensorFlowで学ぶDQNEtsuji Nakai
 
DevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかDevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかEtsuji Nakai
 
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜Etsuji Nakai
 

Más de Etsuji Nakai (20)

PRML11.2-11.3
PRML11.2-11.3PRML11.2-11.3
PRML11.2-11.3
 
「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える
 
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
 
Introducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlowIntroducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlow
 
Googleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービスGoogleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービス
 
Spannerに関する技術メモ
Spannerに関する技術メモSpannerに関する技術メモ
Spannerに関する技術メモ
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
 
A Brief History of My English Learning
A Brief History of My English LearningA Brief History of My English Learning
A Brief History of My English Learning
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
 
TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門
 
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container Engine
 
Lecture note on PRML 8.2
Lecture note on PRML 8.2Lecture note on PRML 8.2
Lecture note on PRML 8.2
 
Machine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application DevelopersMachine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application Developers
 
Your first TensorFlow programming with Jupyter
Your first TensorFlow programming with JupyterYour first TensorFlow programming with Jupyter
Your first TensorFlow programming with Jupyter
 
Deep Q-Network for beginners
Deep Q-Network for beginnersDeep Q-Network for beginners
Deep Q-Network for beginners
 
Life with jupyter
Life with jupyterLife with jupyter
Life with jupyter
 
TensorFlowで学ぶDQN
TensorFlowで学ぶDQNTensorFlowで学ぶDQN
TensorFlowで学ぶDQN
 
DevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかDevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきか
 
PRML7.2
PRML7.2PRML7.2
PRML7.2
 
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
 

Último

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 

Último (9)

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 

#ljstudy KVM勉強会

  • 1. Linux女子部 KVM勉強会! オープンクラウド・キャンパス Linux女子部 KVM勉強会! ver1.0 中井悦司 Twitter @enakai00 1
  • 2. Linux女子部 KVM勉強会! 自己紹介  中井悦司(なかいえつじ) – Twitter @enakai00  日々の仕事 – Senior Solution Architect and Cloud Evangelist at Red Hat K.K. 好評発売中 企業システムでオープンソースの活用を希望される お客様を全力でご支援させていただきます。  昔とった杵柄 – 素粒子論の研究(超弦理論とか) – 予備校講師(物理担当) – インフラエンジニア(Unix/Linux専門) Open Cloud Campus 2
  • 3. Linux女子部 KVM勉強会! Contents  Linux KVMの基礎知識  仮想化ハイパーバイザの分類とLinux KVMの特徴  Linuxの仮想ネットワーク機能  iptablesによるパケットフィルタリング Open Cloud Campus 3
  • 4. Linux女子部 KVM勉強会! Linux KVMの基礎知識 4
  • 5. Linux女子部 KVM勉強会! 参考書 仮想ネットワークと KVM全般の勉強に iptablesの勉強に Open Cloud Campus 5
  • 6. Linux女子部 KVM勉強会! Linux KVMとは  Kernel-based Virtual Machine – イスラエルのQumranet (Avi Kivity)が2006年10月に開発をスタート。 – 2ヶ月後にメインラインのカーネルにマージ – 2008年12月にRed HatがQumranetを買収 – 2009年9月公開のRHEL5.4より正式サポート開始  KVMの特徴 – Linuxカーネルにカーネル・モジュールとして仮想化機能を統合 • CPUスケジューリング、メモリ管理などは Linux カーネルの既存機能を拡張 • 仮想デバイスのエミュレーションはQEMUを利用 – CPUの仮想化支援機構を利用した完全仮想化を採用 • Intel VT/AMD-Vが必要 • カーネル開発コミュニティとプロセッサメーカのエンジニアが協力して開発 仮想化, Linux, x86サーバ技術の 一体的な進化を促進したことがKVMの功績! Open Cloud Campus 6
  • 7. Linux女子部 KVM勉強会! KVMはLinux Kernelに継ぐコミュティ開発モデルの成功例 $ cd linux-2.6 $ git log -p -M virt/kvm arch/x86/kvm | gitdm -d -u (2011/12/27 の実行結果) 開発者の所属企業別の KVMソースコード変更行数割合 プロセッサメーカの開発者 35% からのコントリビューション 7% 9% 27% Open Cloud Campus 7
  • 8. Linux女子部 KVM勉強会! 仮想化ハイパーバイザの分類と Linux KVMの特徴 8
  • 9. Linux女子部 KVM勉強会! 仮想化ハイパーバイザの分類  基本的には「物理マシン」と同等の「仮想マシン」を複数作り出す技術です。 ハードウェアによる仮想化 (物理マシンにハイパーバイザを内蔵) 非仮想化環境 ゲスト ゲスト ゲスト ゲスト OS OS OS OS OS 仮想 仮想 仮想 仮想 マシン マシン マシン マシン 物理マシン ハイパーバイザ(ファームウェア) 物理マシン ソフトウェアによる仮想化 ソフトウェアによる仮想化 (ホストOSにハイパーバイザ機能を追加) (物理マシン上にハイパーバイザを導入) ゲスト ゲスト ゲスト Xen ゲスト ゲスト ゲスト ゲスト OS OS OS Linux KVM OS OS OS OS 仮想 仮想 仮想 仮想 仮想 仮想 仮想 マシン マシン マシン マシン マシン マシン マシン ハイパーバイザ ハイパーバイザ(ソフトウェア) (カーネルモジュール) ホストOS 物理マシン 物理マシン Open Cloud Campus 9
  • 10. Linux女子部 KVM勉強会! x86サーバ仮想化技術の歴史  仮想化支援機能を持つCPUでは、仮想マシン(ゲストOS)を実行するための特権モードを 提供することで、センシティブ命令の制御をHWレベルで行います。  一方、初期のハイパーバイザでは、仮想化支援機能を前提としないソフトウェア技術が必 要でした。 – VMwareは「Dynamic Binary Translation」を採用しました。センシティブ命令をメモリ上で動的 に書き換える技術です。 – Xenは「準仮想化 (Static Binary Translation)」を提唱しました。センシティブ命令を事前にハイ パーバイザコールに書き換えた「準仮想化カーネル」を使用します。 – 現在のバージョンでは、どちらもCPUの仮想化支援機能を利用可能です。 2000 2003 2007 ハイパーバイザ 準仮想化技術 Linuxカーネルに による仮想化 の提唱 仮想化機能を統合 VMware ESX Xen KVM 1995 2000 2005 2010 (Virtual PC for Macintosh) Intel-VT コンシューマーPC HW レベルでの 初の仮想化(?) 仮想化機能 1996 2005 Open Cloud Campus 10
  • 11. Linux女子部 KVM勉強会! KVMにおける特権モードの利用方法  KVMでは、仮想マシンはホストLinux上の1プロセスとして実行されます。 – ゲストOSは、VMX non-rootモードで動作 して、デバイスアクセスなどのセンシティ ブ命令が発行されると、KVMモジュールに qemu-kvmプロセス 処理が移行します。 – KVMモジュールの指示により、VMXroot ユーザプロセス ユーザプロセス モードで動作する、qemuデバイスエミュ ゲストの ゲストの 一般のプロセス 一般のプロセス qemuデバイス エミュレータ レータが物理デバイスにアクセスします。 ゲストカーネル VMX rootモード KVMモジュール VMX non-rootモード ホストLinux カーネル 仮想ディスク イメージファイル 物理CPU Open Cloud Campus 11
  • 12. Linux女子部 KVM勉強会! EPTによるメモリアクセスの高速化  非仮想化環境では、ユーザプロセスが認識する仮想アドレスと物理アドレスの変換はCPU に搭載のMMU(Memory Management Unit)がハードウェアレベルで処理します。  一方、仮想マシン環境では、2 段階のアドレス変換が必要です。 – ユーザプロセスの仮想アドレス ⇒ ゲストOSの「仮想」物理アドレス(GPFN) ⇒ 物理アドレ ス(MPFN) – EPT (Extended Page Tables) を利用すると、2段階のアドレス変換をハードウェアレ ベルで処理します。 • Xeon 5500番台(Nehalem)以降のCPUがEPTに対応しています。EPT未対応のCPUでは、 シャドウページテーブルなどのソフトウェア処理が必要です。 Xen/KVM仮想化環境 非仮想化環境 ゲストOSのプロセスA 論理アドレス空間 プロセスA プロセスB 論理アドレス空間 論理アドレス空間 MMUが変換 EPT対応の qemu-kvmプロセス MMUが変換 GPFN PFN PFN 搭載物理メモリ 搭載物理メモリ Open Cloud Campus 12
  • 13. Linux女子部 KVM勉強会! virtioドライバによるI/Oの高速化  virtioは、KVM仮想化環境に最適化されたディスク/NICのエミュレーション形 式です。 – QEMUが用意したI/Oバッファ領域にvirtioドライバが直接アクセスするため仮想化の オーバヘッドが削減されます。 一般のドライバを使用する場合 virtioドライバを使用する場合 ゲストOSの ゲストOSの QEMUプロセス メモリ空間 QEMUプロセス メモリ空間 メモリマッピング メモリマッピング IOリクエスト IOリクエスト バッファ バッファ 入出力データ 入出力データ 入出力データ 入出力データ トラップ ホストLinux ホストLinux ゲストドライバのI/O処理をトラップ virtioドライバは、共有メモリ上の 物理I/O 物理I/O バッファを使用(ゲストOSとQEMU して、QEMU経由でIOを実施 間のデータコピーが発生しない) Open Cloud Campus 13
  • 14. Linux女子部 KVM勉強会! 仮想化APIライブラリ- libvirt  libvirtは、複数のハイパーバイザを統一的に操作するAPIライブラリです。 – C言語、Pythonから使用するためのライブラリを標準で提供します。現在 は、Xen/KVM/LXC(Linuxコンテナ)などが対応しています。 – ゲストOSの起動・停止などの操作以外に、仮想ネットワーク構成、ストレージ管理の ためのAPIを提供します。 – 図は、Python用のライブラリを使用して、KVMのすべての仮想マシンをまとめて起 動/停止するスクリプトの例です。 すべての仮想マシンを起動するスクリプト  RHEL6では次のようなツールがlibvirtを利用 #!/usr/bin/python しています。 import libvirt, time Conn = libvirt.open( "qemu:///system" ) – virsh(コマンドライン管理ツール) for name in Conn.listDefinedDomains(): vm = Conn.lookupByName( name ) – virt-manager(GUI管理ツール) print "Starting " + vm.name() vm.create() – virt-install(コマンドラインのゲストOSイン time.sleep( 1 ) ストールツール) すべての仮想マシンを停止するスクリプト #!/usr/bin/python  Euclyptus / OpenStackなどのクラウド基盤 import libvirt, time ソフトウェアが内部的にlibvirt経由で仮想化 Conn = libvirt.open( "qemu:///system" ) for id in Conn.listDomainsID(): ハイパーバイザを操作する場合もあります。 vm = Conn.lookupByID( id ) print "Stopping " + vm.name() vm.shutdown() time.sleep( 1 ) Open Cloud Campus 14
  • 15. Linux女子部 KVM勉強会! virt-managerによる仮想化環境の管理  Virt-managerはRHEL6が標準で提供する仮想化環境の管理ツールです。次のよ うな操作をGUIで行うことができます。 – 仮想マシンの構成、ゲストOSのインストール – 仮想マシンのコンソール表示、起動、停止 – 仮想ネットワークの構成、仮想ディスク用ストレージの管理 – など  ネットワーク経由で複数の仮想 化ホストを管理することもでき ます。 Open Cloud Campus 15
  • 16. Linux女子部 KVM勉強会! Linuxの仮想ネットワーク機能 16
  • 17. Linux女子部 KVM勉強会! KVMの仮想ネットワーク  KVMのホストLinuxは「TAPデバイス」を経由して仮想マシンの仮想NICとパケッ トを交換します。TAPデバイスを「仮想ブリッジ」に接続することで、仮想マシ ン間のプライベートネットワークが構成されます。 – TAPデバイスは、ユーザプロセスと仮想的なネットワーク通信を行うLinuxの機能です。 – 仮想ブリッジは、Linux上に仮想的なネットワークスイッチを構成する機能です。  外部ネットワークに接続する方法 仮想マシン 仮想マシン は2種類あります。 eth0 仮想NIC eth0 仮想NIC – ホストLinuxの物理NICを仮想ブ リッジに接続します。 ホストLinux TAPデバイス TAPデバイス – iptablesによるNAT/マスカレード vnet0 vnet1 で仮想ブリッジから外部ネット ② NAT/マスカレード ワークにパケット転送します。 virbr0 / br0 仮想ブリッジ eth0 ① ブリッジ接続 外部ネットワーク Open Cloud Campus 17
  • 18. Linux女子部 KVM勉強会! 仮想ネットワークの構成パターン  複数の仮想ブリッジを使用することで、複数の仮想ネットワークが構成できます。 仮想ネットワークの構成パターンには次のようなものがあります。 – 物理NICをブリッジ接続して外部ネットワークに同一サブネットとして接続 – NAT/マスカレードを利用して、外部ネットワークとは独立したサブネットとして接続 • マスカレードを利用する場合、外部ネットワークから仮想ネットワークに向けた接続はできま せん。 • 外部ネットワークと相互通信する場合は、外部のIPアドレスと内部のIPアドレスをDNAT/SNAT で1対1にひも付ける必要があります。 – 外部ネットワークには接続しないホストマシン内部のプライベートネットワークを構成 • 仮想ブリッジにIPアドレスを設定することで、ホストLinuxと仮想マシンの通信は可能になりま す。 仮想マシンは外部とは通信しない 仮想マシン 仮想マシン 仮想マシン 仮想マシン eth0 eth0 eth0 eth0 仮想マシンと外部 仮想マシンと外部 ネットワークは同じ ネットワークは異なる サブネットに属する。 ホスト サブネットに属する。 ホスト ホスト vnet0 Linux vnet0 Linux vnet0 vnet1 Linux 仮想ブリッジ 仮想ブリッジ 仮想ブリッジ パケット転送 仮想ブリッジにIPアドレスを設定すると eth0 eth0 ホストLinuxと仮想マシンは通信可能 Open Cloud Campus 18
  • 19. Linux女子部 KVM勉強会! dnsmasqによるDHCP/DNS機能の提供  物理NICをブリッジ接続しないタイプの仮想ネットワークは、libvirt API  (virsh/virt-managerなど)で構成することができます。 – 物理NICのブリッジ接続を行う場合は、手動で設定ファイルを構成します。 – 仮想ブリッジには任意の名称を設定できます。通常は「br0」などを使用します。  libvirtで構成する仮想ネットワークは、簡易的なDHCP/DNS機能を提供します。 – これらの機能は、ホストLinuxの「dnsmasqデーモン」が提供します。不要な場合は無効 化もできます。DNSサーバは、ホストLinuxの「/etc/hosts」の内容と 「/etc/resolv.conf」で指定された外部DNSを参照します。 – libvirtで構成した仮想ブリッジの名称は「virbrX」になります。 仮想マシン 仮想マシン eth0 eth0 ホスト vnet0 vnet1 Linux 仮想ブリッジ (virbr0) パケット転送 DHCPサーバ DNSサーバ eth0 Open Cloud Campus 19
  • 20. Linux女子部 KVM勉強会! (参考)Bonding / VLANデバイスの組み合わせ 仮想マシン 仮想マシン 仮想マシン eth0 仮想NIC eth0 仮想NIC eth0 仮想NIC タグ無しパケット TAPデバイス TAPデバイス vnet0 TAPデバイス vnet0 vnet1 仮想ブリッジ br0 仮想ブリッジ br100 br200 eth0.100 eth0.200 VLANデバイス bond0 bondingデバイス タグ付きパケット eth0 eth1 ホストLinux ホストLinux eth0 タグVLAN ネットワーク・スイッチ VLAN100 VLAN200 Open Cloud Campus 20
  • 21. Linux女子部 KVM勉強会! iptablesによるパケットフィルタリング 21
  • 22. Linux女子部 KVM勉強会! iptablesの機能  iptablesの機能は、大きくは「パケットフィルタリング」と「NAT (Network Address Translation)」に分かれます。 – パケットフィルタリングは、Linux上にファイアウォール機能を提供するもので、IPパ ケットの送信、受信、転送のそれぞれについて、許可条件を設定します。 – NATは、Linuxサーバをルータとして使用する際に利用する機能で、パケットの転送時 に、パケットに含まれる送信元、もしくは宛先IPアドレスを変換します。 • 正確には、DNAT(宛先アドレス変換)、SNAT(送信元アドレス変換)、マスカレード (SNATの特別版)の3種類があります。 インターネットからの 接続パケットをフィルタリング プライベートネットワークから 外部からの接続パケットを インターネットにマスカレード接続 フィルタリング グローバル IPアドレス XX.XX.XX.XX ルータ用 インターネット Linuxサーバ 192.168.100.1 192.168.100.10 192.168.100.11 iptablesの利用例 プライベートネットワーク 192.168.100.0/24 Open Cloud Campus 22
  • 23. Linux女子部 KVM勉強会! iptablesの設定方法  iptablesの有効化/無効化は、iptablesサービスの起動・停止で行います。 – # service iptables start : 設定ファイル「/etc/sysconfig/iptables」をアクティブ化し ます。 – # service iptables stop : アクティブな設定がすべて無効になります。  iptablesの設定は、設定ファイルを編集して再アクティブ化する方法と、iptables コマンドでアクティブな設定を直接変更する方法があります。 – アクティブな設定を直接変更した場合は、別途、設定ファイルに内容を書き出しておかな いと、再起動後に変更が失われます。 iptablesの2種類の設定方法 設定ファイルを編集 iptablesコマンドで設定 設定ファイルを再アクティブ化 # service iptables restart 設定ファイルに書き出し # service iptables save /etc/sysconfig/iptables アクティブな設定 Open Cloud Campus 23
  • 24. Linux女子部 KVM勉強会! iptablesにおける処理の流れ  Linuxサーバを通過するパケットは、いくつかの「チェーン」を通過します。 – INPUTチェーン : 受信パケットが通過します。 – OUTPUTチェーン : 送信パケットが通過します。 – PREROUTING、FORWARD、POSTROUTINGチェーン : 転送パケットが通過します。  それぞれのチェーンでは、次のテーブルの設定に従ってパケットの処理が行われ ます。 – filterテーブル : パケットフィルタリングの処理を定義します。 – natテーブル : NATの処理を定義します。 ネットワーク ネットワーク#2 ネットワーク#1 受信パケット 転送パケット OUTPUTチェーン INPUTチェーン POSTROUTINGチェーン PREROUTINGチェーン filterテーブル filterテーブル natテーブル natテーブル 送信パケット SNAT処理 DNAT処理 FORWARDチェーン アプリケーション プログラム filterテーブル Open Cloud Campus 24
  • 25. Linux女子部 KVM勉強会! パケットフィルタリングの設定例  パケットフィルタリング設定の基本コマンドは次の通りです。 ターゲット 説明 ACCEPT パケットの送受信を許可 – 指定条件にマッチするパケットに対するターゲットの定義 DROP パケットを破棄する • iptables -A <チェーン> <パケット条件> -j <ターゲット> REJECT パケットの拒否をICMPで通知 – デフォルトターゲットの定義 LOG パケット情報をSyslogに出力 • iptables -P <チェーン> <ターゲット> – -Aオプションで設定した順にパケット条件の評価が行われて、最初にマッチした条件に対す るターゲットが実行されます。LOGアクション以外はそこで評価が終了します。 – どの条件にもマッチしなかった場合は、-Pオプションで指定した、デフォルトアクションが実 行されます。 – 現在のアクティブな設定は次のコマンドで表示します。 • iptables [-v][-n] -L <チェーン> • -vオプションは詳細情報を表示します。-nオプションはIPアドレスやTCP/UDPポート番号を数値で表示 します。(指定しない場合は名前解決を行います。) 受信パケットに対するフィルタリング設定手順の例 # service iptables stop 外部からの接続パケットを # iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT フィルタリング # iptables -A INPUT -i lo -j ACCEPT # iptables -A INPUT -d 192.168.100.10 -p tcp -m tcp --dport 22 -j ACCEPT # iptables -A INPUT -j LOG -m limit --log-prefix "[INPUT Dropped] " # iptables -P INPUT DROP # service iptables save 192.168.100.10 # service iptables start Open Cloud Campus 25
  • 26. Linux女子部 KVM勉強会! QA Open Cloud Campus 26
  • 27. Linux女子部 KVM勉強会! オープンクラウド・キャンパス 日経Linux「クラウド時代のサーバ 構築・運用の基礎」もよろしくね! 中井悦司 Twitter @enakai00 27