Submit Search
Using rump on NetBSD 7.0
3 likes
1,881 views
Masaru Oki
Installing and using rump on NetBSD 7.0 platform.
Software
Read more
1 of 15
Download now
Downloaded 10 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
More Related Content
What's hot
(20)
PDF
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
Kenichiro MATOHARA
PDF
hpingで作るパケット
Takaaki Hoyo
PDF
ちょっと古いマシンにLinuxを
Kenichiro MATOHARA
PDF
Raspberry Piにdiskless modeのalpine linuxを導入してみる
Kenichiro MATOHARA
PDF
Ryu+Lagopusで OpenFlowの動きを見てみよう
Masaru Oki
PPTX
Trema での Open vSwitch
kazuyas
KEY
OpenvswitchでVPS
Daisuke Nakajima
PPTX
Hello, systemd
Emma Haruka Iwao
PDF
Rps・rfs等最新linux kernel事例
Takuya ASADA
PDF
Open vSwitchソースコードの全体像
Sho Shimizu
PPTX
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Takuya ASADA
PDF
OpenFlowでいろんなプロトコルを 話そうとするとどうなるか
Masaru Oki
ODP
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
Kenichiro MATOHARA
PDF
Open stack+lagopus できるかな
Masaru Oki
PDF
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
Kenichiro MATOHARA
PDF
Lxc cf201207-presen
Kouhei Maeda
PDF
Lagopus 0.2
Masaru Oki
PDF
Open flow tunnel extension on lagopus vswitch
Masaru Oki
PDF
Ethernetの受信処理
Takuya ASADA
PPTX
ラズパイ2で動く Docker PaaSを作ってみたよ
npsg
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
Kenichiro MATOHARA
hpingで作るパケット
Takaaki Hoyo
ちょっと古いマシンにLinuxを
Kenichiro MATOHARA
Raspberry Piにdiskless modeのalpine linuxを導入してみる
Kenichiro MATOHARA
Ryu+Lagopusで OpenFlowの動きを見てみよう
Masaru Oki
Trema での Open vSwitch
kazuyas
OpenvswitchでVPS
Daisuke Nakajima
Hello, systemd
Emma Haruka Iwao
Rps・rfs等最新linux kernel事例
Takuya ASADA
Open vSwitchソースコードの全体像
Sho Shimizu
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Takuya ASADA
OpenFlowでいろんなプロトコルを 話そうとするとどうなるか
Masaru Oki
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
Kenichiro MATOHARA
Open stack+lagopus できるかな
Masaru Oki
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
Kenichiro MATOHARA
Lxc cf201207-presen
Kouhei Maeda
Lagopus 0.2
Masaru Oki
Open flow tunnel extension on lagopus vswitch
Masaru Oki
Ethernetの受信処理
Takuya ASADA
ラズパイ2で動く Docker PaaSを作ってみたよ
npsg
Viewers also liked
(20)
PDF
SDNソフトウェアスイッチlagopus for FreeBSD
Masaru Oki
PDF
Lagopus+pcap pmd
Masaru Oki
PDF
Net bsd advent calendar 2015 bpf
Masaru Oki
PDF
Lagopus 0.2.2
Masaru Oki
PDF
Lagopus 0.2.4
Masaru Oki
PDF
Lagopus as open flow hybrid switch
Masaru Oki
PDF
GPD WINが来た!
Masaru Oki
PDF
新生Lagopus2017(仮称)
Masaru Oki
PDF
Running Applications on the NetBSD Rump Kernel by Justin Cormack
eurobsdcon
PPTX
Dracula presentation with answers ok
alexteacherproa
PPTX
Myanmar (Political Setting)
Jose Radin Garduque
PPTX
Singapore (Political Setting)
Jose Radin Garduque
PPT
8 Marks of the Kalki
Jose Radin Garduque
PPTX
Historia del Cine
miiikeeelooodiiiuuum
PPTX
K overview
Grigore Rosu
PDF
Richards key 3
richardskd
PPTX
Myanmar: Socio-Cultural Setting
Jose Radin Garduque
PPT
8 Colorful Ideas for My Country (The Filipino Youth)
Jose Radin Garduque
PPS
Ngfkbm intro for pastor dudley
jentracy2
PPTX
Singapore: Economic Setting
Jose Radin Garduque
SDNソフトウェアスイッチlagopus for FreeBSD
Masaru Oki
Lagopus+pcap pmd
Masaru Oki
Net bsd advent calendar 2015 bpf
Masaru Oki
Lagopus 0.2.2
Masaru Oki
Lagopus 0.2.4
Masaru Oki
Lagopus as open flow hybrid switch
Masaru Oki
GPD WINが来た!
Masaru Oki
新生Lagopus2017(仮称)
Masaru Oki
Running Applications on the NetBSD Rump Kernel by Justin Cormack
eurobsdcon
Dracula presentation with answers ok
alexteacherproa
Myanmar (Political Setting)
Jose Radin Garduque
Singapore (Political Setting)
Jose Radin Garduque
8 Marks of the Kalki
Jose Radin Garduque
Historia del Cine
miiikeeelooodiiiuuum
K overview
Grigore Rosu
Richards key 3
richardskd
Myanmar: Socio-Cultural Setting
Jose Radin Garduque
8 Colorful Ideas for My Country (The Filipino Youth)
Jose Radin Garduque
Ngfkbm intro for pastor dudley
jentracy2
Singapore: Economic Setting
Jose Radin Garduque
Ad
Similar to Using rump on NetBSD 7.0
(20)
PDF
OpenStackでつくる開発環境と外道塾
外道 父
PDF
RubyConfの話の続きのおはなし
yamanekko
PDF
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
maebashi
PDF
Nseg20120825
hiro345
PPTX
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
NTT DATA Technology & Innovation
PDF
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
Izumi Tsutsui
PDF
sysloadや監視などの話(仮)
Takanori Sejima
PPTX
Node.jsで使えるファイルDB"NeDB"のススメ
Isamu Suzuki
PDF
Tokyo.R#16 wdkz
Kazuya Wada
PDF
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.
YASUKAZU NAGATOMI
PDF
Getting Started GraalVM (再アップロード)
tamtam180
PDF
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
tamtam180
PDF
197x Timer with Your Messages
Kuniaki Igarashi
PDF
ゆるふわLinux-HA 〜PostgreSQL編〜
Taro Matsuzawa
PDF
RでGPU使ってみた
Kazuya Wada
PDF
Debian Testing on Windows Tablet T100TA
Netwalker lab kapper
PDF
そろそろRStudioの話
Kazuya Wada
PDF
自分色のLinuxホームサーバーを作ってみよう
Masahiko Hashimoto
PDF
OSS Product feat. Gradle
Yasuharu Nakano
PDF
Djangoとweb2pyをapacheに組込む
2bo 2bo
OpenStackでつくる開発環境と外道塾
外道 父
RubyConfの話の続きのおはなし
yamanekko
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
maebashi
Nseg20120825
hiro345
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
NTT DATA Technology & Innovation
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
Izumi Tsutsui
sysloadや監視などの話(仮)
Takanori Sejima
Node.jsで使えるファイルDB"NeDB"のススメ
Isamu Suzuki
Tokyo.R#16 wdkz
Kazuya Wada
Webアプリ開発向け ゆるふわDocker使いがCloud Naive開発に必要そうなetc.
YASUKAZU NAGATOMI
Getting Started GraalVM (再アップロード)
tamtam180
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
tamtam180
197x Timer with Your Messages
Kuniaki Igarashi
ゆるふわLinux-HA 〜PostgreSQL編〜
Taro Matsuzawa
RでGPU使ってみた
Kazuya Wada
Debian Testing on Windows Tablet T100TA
Netwalker lab kapper
そろそろRStudioの話
Kazuya Wada
自分色のLinuxホームサーバーを作ってみよう
Masahiko Hashimoto
OSS Product feat. Gradle
Yasuharu Nakano
Djangoとweb2pyをapacheに組込む
2bo 2bo
Ad
More from Masaru Oki
(15)
PDF
NetBSD移植の昔話
Masaru Oki
PDF
Rust-DPDK
Masaru Oki
PDF
Rust-DPDK
Masaru Oki
PDF
Lagopusとvagrant
Masaru Oki
PDF
今よりも少し(?)昔、 Windowsを作ろうとした話
Masaru Oki
PDF
Onieで遊んでみようとした話
Masaru Oki
PDF
LagopusでPPPoEを使えるか考えてみた件
Masaru Oki
PDF
Lagopus どれだけ速いのか
Masaru Oki
PDF
Lagopus 0.2.7
Masaru Oki
PDF
Lagopus match improvements
Masaru Oki
PDF
Xeon dとlagopusと、pktgen dpdk
Masaru Oki
PDF
Running lagopus on Xeon D
Masaru Oki
PDF
Using Xeon D 10GBase-T
Masaru Oki
PDF
DPDK QoS
Masaru Oki
PDF
Xeon d
Masaru Oki
NetBSD移植の昔話
Masaru Oki
Rust-DPDK
Masaru Oki
Rust-DPDK
Masaru Oki
Lagopusとvagrant
Masaru Oki
今よりも少し(?)昔、 Windowsを作ろうとした話
Masaru Oki
Onieで遊んでみようとした話
Masaru Oki
LagopusでPPPoEを使えるか考えてみた件
Masaru Oki
Lagopus どれだけ速いのか
Masaru Oki
Lagopus 0.2.7
Masaru Oki
Lagopus match improvements
Masaru Oki
Xeon dとlagopusと、pktgen dpdk
Masaru Oki
Running lagopus on Xeon D
Masaru Oki
Using Xeon D 10GBase-T
Masaru Oki
DPDK QoS
Masaru Oki
Xeon d
Masaru Oki
Using rump on NetBSD 7.0
1.
rumpを使ってみる NetBSD 7.0編 Dec 5,
2015 Masaru OKI @masaru0714
2.
はじめに NetBSD上でrumpを使ってみた報告になります。 さわりはじめて2日たったくらいの理解度ですので、ボケてる可能性も大いにあります。 今回はNetBSD 7.0で試しています。(2015年10月8日にリリースされています) 数日前にNetBSD 6.1.5で試したのですが、NetBSDつながりの友人いわく NetBSD
6.1.5は古すぎてダメ。7.0と-currentもわりと違うかも? みなさん、これがNetBSDです。覚悟を決めて臨みましょう。
3.
rump? http://rumpkernel.org/ 本来カーネル用に書かれたネットワークスタックやデバイスドライバを ユーザプログラムで動かすためのフレームワーク? ライブラリ? rumpkernelと、 それを中心にした各種コンポーネントの総称。。 anykernel(元となるカーネルコンポーネント;現在はNetBSD
kernel)から ユーザプログラム用としてビルドしたライブラリ(rumpkernel)を作り、 アプリケーションをrump用バイナリ(unikernelというらしい)としてビルドする。 Linux(CentOS, Fedora, Debian, Ubuntu等), NetBSD, FeeeBSD, Solaris等で動作。
4.
rumpの動かし方いくつか server-client方式 ● rumpkernelをリンクして作られたrump_serverを起動しておく ● rump.clientライブラリをリンクして各種プログラム(lsとかpingとか)をビルド。 ●
各種プログラムを実行し、rump_serverのリソースを操作。 unikernel方式 ● rumprunを用いて各種プログラムの単一バイナリをビルド。 ● rumprun qemuで起動したQEMU上で実行。 ● rumprun qemuの各種パラメータでIPアドレスなどを設定する。
5.
こんなかんじ(server-client) native OS kernel rump_server
rump_client native OS apps NetBSDカーネルの 機能を提供する。 native OSで実行でき るNetBSDのアプリ kernel userland socket通信
6.
環境を整える 下記、事前にgmakeをインストールしないと失敗するので注意。 SSL certificate云々言われたときは pkgin
insall mozilla-rootcerts-openssl します。 ● Building rump_server git clone http://repo.rumpkernel.org/buildrump.sh cd buildrump.sh ./buildrump.sh ● Building rump_client binaries (using rumpctrl) git clone http://repo.rumpkernel.org/rumpctrl cd rumpctrl git submodule update --init ./buildnb.sh
7.
rump_serverの起動 全部入りrump_allserverの起動(下記例では2つ起動している) ./buildrump.sh/rump/bin/rump_allserver unix:///tmp/rump1sock ./buildrump.sh/rump/bin/rump_allserver unix:///tmp/rump2sock バックグラウンド動作する。 個別指定はたとえば下記のようにする。 rump_server
-lrumpnet -lrumpnet_net -lrumpnet_netinet -lrumpvfs -lrumpdev - lrumpdev_bpf -lrumpnet_virtif unix:///tmp/rump1sock ネットワークを使いたいときは(tapを読み書きするので)root権限で起動すること。
8.
rumpctrlによるrump clientの実行 # cd
rumpctrl # . ./rumpctrl.sh rumpctrl (NULL)$ export RUMP_SERVER=unix:///tmp/rump1sock rumpctrl (unix:///tmp/rump1sock)$ ifconfig lo0: flags=0x8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33648 inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 rumpctrl (unix:///tmp/rump1sock)$ rump_serverをroot権限で起動した場合、クライアントもroot権限の必要あり。
9.
rumpctrl TIPS rump clientとして使えるコマンド一覧 rumpctrl_listcmds rumpctrlモードのままホストのコマンドを実行 rumpctrl_hostcmd
コマンド... わざわざこれを使わなくてもフルパスでコマンドを叩けば普通に実行できる。 rumpctrlモードから通常状態への復帰 rumpctrl_unload
10.
ホストとの通信の方法 1. ホストでtapインタフェースを作る。名前はtapN(Nは任意の数値) 2. rumpctrlでifconfig
virtN createすると、tapN (Nが同じtap)とつながる host rump_server rump_server tap0 tap1 virt0 virt1 ifconfig tap0 create ifconfig virt0 create
11.
1. ホスト上でtap0とtap1をブリッジする 2. virt0に172.21.0.1,
virt1に172.21.0.2を付ける 3. pingを投げる host bridge テスト rump_server rump_server tap0 tap1 virt0 virt1ping 172.21.0.2 172.21.0.1 172.21.0.2
12.
tap0とtap1のブリッジ ここでは無理に、Lagopus http://lagopus.github.io の開発版を使ってみます。 普通にやる場合はbridge(4)を使ってください。 $
sudo pkgin install gmp $ ./configure; gmake; sudo gmake install $ sudo lagopus -C 2port-tap.dsl $ sudo pkgin install py27-pip $ sudo pip27 install ryu $ ryu-manager port1-2.py tap0とtap1をLagopus bridgeに接続する設定 port 1とport 2の間で パケット転送する設定
13.
IPアドレスの割り当て $ sudo -s #
cd rumpctrl # . ./rumpctrl.sh # rumpctrl (NULL) $ export RUMP_SERVER=unix:///tmp/rump1sock # rumpctrl(unix:///tmp/rump1sock)$ ifconfig virt0 create # rumpctrl(unix:///tmp/rump1sock)$ ifconfig virt0 172.21.0.1/24 up # rumpctrl(unix:///tmp/rump1sock)$ RUMP_SERVER=unix:///tmp/rump2sock # rumpctrl(unix:///tmp/rump2sock)$ ifconfig virt1 create # rumpctrl(unix:///tmp/rump2sock)$ ifconfig virt1 172.21.0.2/24 up
14.
server起動した。ifconfigもできた。いざping! rumpctrl (unix:///tmp/rump1sock)$ ifconfig
virt0 virt0: flags=0x8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 address: b2:0a:8e:0b:0e:00 inet 172.21.0.1 netmask 0xffffff00 broadcast 172.21.0.255 inet6 fe80::b00a:8eff:fe0b:e00%virt0 prefixlen 64 scopeid 0x2 rumpctrl (unix:///tmp/rump1sock)$ ping 172.21.0.2 PING 172.21.0.2 (172.21.0.2): 56 data bytes 64 bytes from 172.21.0.2: icmp_seq=0 ttl=255 time=0.000000 ms 64 bytes from 172.21.0.2: icmp_seq=1 ttl=255 time=0.000000 ms 動く! 動くぞ!!
15.
まとめ pingだけしか試してないけれど、 NetBSD 7.0であれば比較的素直に動いてくれた。よかった。 おしまい。
Download