Linux Container(LXC)機能簡易ドキュメント(ver6.7.0+LXC)

Linux Container(LXC)機能簡易ドキュメント(ver6.7.0+LXC)
センチュリー・システムズ(株)
1.
Linux Container の利用
Linux Container (以下 LXC)は仮想化技術の一つで、この機能を利用することにより LXC 内に作成し
た IP ソケットアプリケーションからルーティングや IPsec VPN など NXR-G100 のルータ機能を利用
できるようになります。
2.
LXC を使用するための準備
2-1.
LXC 用ファームウェアおよび LXC 用 SD カードイメージを弊社ホームページよりダウンロードし
ます。
2-2.
NXR-G100 のファームウェアを LXC 用ファームウェアに更新します。
2-3.
LXC 用 SD カードイメージを SD カードに書き込みます。
SD カード容量(8G バイト以上)
Linux での LXC 用 SD カードイメージ書き込み例
#dd if=./NSDA-008GK.img of=/dev/sdX
(NSDA-008GK.img は LXC 用イメージファイル、sdX は SD カードのデバイス名)
※dd コマンドで書き込む場合、SD カードに保存されているデータは消えてしまいますのでご注意
下さい。
2-4.
3.
SD カードを NXR-G100 に挿入します。
NXR-G100 で LXC を使用するためのコンフィグ設定
LXC は、ホスト(NXR-G100)上のブリッジを介して外部と通信できます。LXC 内部のネットワーク
と、NXR-G100 のブリッジとの間をつなぐために、仮想インターフェース「veth」を使用します。
3-1.
ネットワーク構成
LXC
eth0
ホスト(NXR-G100)
vethX
br0
eth0
仮想ブリッジ
外部ネットワーク
3-2.
NXR-G100 の bridge0 インタフェースを使用する場合の設定例
!
interface bridge 0
bridge port 1 ethernet 0
bridge port 2 veth 0
# veth0 を bridge0 にアタッチ
ip address 192.168.2.254/24
!
interface veth 0
no ip address
lxc-link 1 # lxc container1 との仮想ブリッジ設定
!
lxc container 1 # container 数は 1 固定
!
4.
NXR-G100 から LXC への接続・切断
4-1.
LXC へのコンソール接続
cli から以下のコマンドで接続できます。
nxrg100#connect lxc console
アカウント:ubuntu
初期パスワード: ubuntu
ログイン後、LXC のコマンドラインを利用できるようになります。
4-2.
LXC のコンソールからの切断
"Ctrl+b q" で LXC コンソールを exit します。
LXC のネットワーク設定後は、SSH 経由でも接続できます。
5.
LXC のネットワーク設定について
LXC の eth0 インタフェースがホストの veth0 インタフェースと仮想的にペアリングされています。
外部と通信するためには、ホストの bridge0 インタフェースと同じネットワークアドレスを設定しま
す。また LXC の IP アドレスなどのネットワーク設定は、/etc/network/interfaces ファイルを編集し
て行います。編集には vim(※)等のコマンドを利用することができます。なお、下記 eth0 の設定例は
コメント行で記載されております。
※vim コマンドの利用方法は下記サイトなどが参考になります。
https://help.ubuntu.com/community/VimHowto
なお LXC には vimtutor コマンドがインストールされており、このコマンドを実行することで vim
の使い方を確認することができます。
$ sudo vim /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
# iface eth0 inet static
#
address 192.168.2.1
#
netmask 255.255.255.0
#
network 192.168.2.0
#
broadcast 192.168.2.255
#
gateway 192.168.2.254
#
dns-nameservers 192.168.2.254
IP アドレス設定後は、設定を反映するために以下のコマンドを実行します。
$ sudo ifdown eth0 && sudo ifup eth0
6.
NXR-G100 経由での通信準備
LXC 内のアプリケーションなどを NXR-G100 のルータ機能経由で利用するためには NXR-G100 の設
定が必要になります。
NXR-G100 の設定については弊社ホームページにあります設定例が参考になります。
・FutureNet 製品活用ガイド
http://www.centurysys.co.jp/futurenet-tech-wiki/
NXR,WXR シリーズのカテゴリ内に様々な設定例を掲載しています。
※VPN を使用する場合は IPsec 編をご参照下さい。
7.
LXC からの通信
NXR-G100 のルータ設定完了後、LXC から通信可能か確認を行います。
下記例は FutureNet 製品活用ガイド「2-5. PPPoE を利用した IPsec 接続設定例」の NXR_B ルータで
LXC をセットアップし、IPsec 経由で対向ルータ(NXR_A)の LAN 側 IP アドレス宛に Ping および
SSH アクセスを実行した例になります。
※2-5. PPPoE を利用した IPsec 接続設定例
http://www.centurysys.co.jp/futurenet-tech-wiki/setting/setting-752/
<LXC からの Ping 実行例>
$ ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data.
64 bytes from 192.168.10.1: icmp_seq=1 ttl=63 time=3.40 ms
64 bytes from 192.168.10.1: icmp_seq=2 ttl=63 time=1.95 ms
64 bytes from 192.168.10.1: icmp_seq=3 ttl=63 time=1.83 ms
64 bytes from 192.168.10.1: icmp_seq=4 ttl=63 time=1.86 ms
--- 192.168.10.1 ping statistics --4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 1.831/2.389/3.960/0.907 ms
<LXC からの SSH 実行例>
$ ssh 192.168.10.1 -l admin
admin@192.168.10.1's password:
Century Systems NXR-G100 Series ver 6.7.1 (build 14/12:55 26 06 2015)
NXR_A#
通信確認完了後、LXC 内のアプリケーションなどを使った通信を NXR-G100 経由で利用できます。
なお LXC にはコンパイラや make コマンドなども用意しておりますので、プログラムの作成を行うこ
とができます。