その他knokさくらインターネットの提供するVPSサービスではDebianが利用できます。VPSのホストはKVMで提供されているようです。VPSのインスタンス一つで別の仮想的な環境が欲しくなったので、LXCを使ってみました。ループバックインターフェースを持つだけのホストは簡単に作れるのですが、VPSに割り当てられているNICインターフェースをブリッジにするわけにもゆきません。そこで今回はdummynetを利用してホストオンリーネットワークを構築してみました。dummynetは物理NICとは結びつかない、完全なダミーのネットワークインターフェースを提供します。インターフェース名はdummy0などとなります。dummy等としてdummy.koをロードするだけです。Debianで起動時に有効にするためには、/etc/modulesに一行”dummy”と追加しておけばよいです。次にdummy0をLXCから使えるよう、ブリッジを作ります。bridge-utilsを実行してネットワークブリッジデバイスを扱うためのツール一式を入れておきます。次に/etc/network/interfacesに以下のような記述を追加します。0IPアドレスやネットワークは、別途自分が普段使う範囲とバッティングしない、適当なプライベートネットワークを設定してください。br0を実行すれば、dummy0デバイスに紐づいたブリッジデバイスbr0が作られます。br0を入れてあるので、再起動時にも自動的にbr0がifupします。この状態で、lxc-create等を使ってLXCコンテナのインスタンスを作成します。wheezyのlxcパッケージはかなりbuggyで、あんまり動作が信用なりません。私は個人的にsidのlxcをバックポートしたものを使っています。以下は私の作ったlxcコンテナのconfigの一部です。eth0私は、コンテナ側の/etc/network/interfacesにeth0のネットワーク設定を書いて設定しています。基本的にはこれでホストオンリーな環境ができます。メンテナンス上コンテナ側でも毎日apt-getはしたいので、私の環境ではNAT(masquerade)をできるようにしています。この時に問題になるのがarpとfowardingです。何も設定しない状態では、br0から外に出ることができません。arpを有効化します。/proc/sys/net/ipv4/conf/br0/proxy_arpを実行するかして有効化します。これでbr0から他のインターフェース(eth0等)へ届くようになります。起動時に有効にするためには、interfacesにさらなる設定を追加します。/proc/sys/net/ipv4/conf/br0/proxy_arp次はforwardingです。これもprocでも設定できますが、私は以下の内容を書いたファイルを/etc/sysctl.d/ip_forward.confとしています。1最期にNATの設定です。/etc/iptables/rules.v4に以下のような行を書いておきます。MASQUERADEという具合です。MASQUERADEこれで、VPS上でも外部ネットワークに到達可能なLXCインスタンスを持つことができます。静的NATを組み合わせれば、一部のポートをインターネット側で受けることもできます。