1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RaspberryPiでOpenvSwitchを動かしてみる

Last updated at Posted at 2017-10-17

結論から先に、
OPENDAYLIGHT Helium + Open vSwitch v2.4.0 では、OpenFlow13は不可で、10で動きました。

Open vSwitch 2.4.0のインストールについては以下リンクを参考にしました(というよりほぼそのまんま)。
http://qiita.com/d4tt/items/45cb002413789b57c8fc#open-vswitchのセットアップソースから

・インストール

pi@raspberrypi:~/openvswitch-2.4.0 $ dpkg -l | grep openvswitch
pi@raspberrypi:~/openvswitch-2.4.0 $ sudo apt-get purge openvswitch-switch
パッケージ 'openvswitch-switch' はインストールされていないため、削除もされません
pi@raspberrypi:~/openvswitch-2.4.0 $ sudo apt-get purge openvswitch-common
パッケージ 'openvswitch-common' はインストールされていないため、削除もされません
pi@raspberrypi:~/openvswitch-2.4.0 $ sudo apt-get install dkms
以下の追加パッケージがインストールされます:
cpp-4.6 firmware-linux-free gcc-4.6 libuuid-perl linux-base
linux-headers-3.6-trunk-common linux-headers-3.6-trunk-rpi
linux-image-3.6-trunk-rpi linux-kbuild-3.6
提案パッケージ:
gcc-4.6-locales libmudflap0-4.6-dev gcc-4.6-doc libgcc1-dbg libgomp1-dbg
libquadmath-dbg libmudflap0-dbg libcloog-ppl1 libcloog-ppl0 libppl-c4
libppl12 libppl9 linux-doc-3.6 debian-kernel-handbook fdutils
推奨パッケージ:
linux-headers-686-pae linux-headers-amd64 linux-headers-generic
linux-headers linux-image
以下のパッケージが新たにインストールされます:
cpp-4.6 dkms firmware-linux-free gcc-4.6 libuuid-perl linux-base
linux-headers-3.6-trunk-common linux-headers-3.6-trunk-rpi
linux-image-3.6-trunk-rpi linux-kbuild-3.6
アップグレード: 0 個、新規インストール: 10 個、削除: 0 個、保留: 0 個。
23.4 MB のアーカイブを取得する必要があります。
この操作後に追加で 87.7 MB のディスク容量が消費されます。

で、dkmsが終わってようなので実行してみたところNG

pi@raspberrypi:~/openvswitch-2.4.0 $ sudo dpkg -i openvswitch-datapath-dkms_2.4.0-1_all.deb
dpkg: アーカイブ openvswitch-datapath-dkms_2.4.0-1_all.deb の処理中にエラーが発生しました (--install):
アーカイブにアクセスできません: そのようなファイルやディレクトリはありません
処理中にエラーが発生しました:
openvswitch-datapath-dkms_2.4.0-1_all.deb
pi@raspberrypi:~/openvswitch-2.4.0 $ sudo dpkg -i openvswitch-common_2.4.0-1_armhf.deb
dpkg: アーカイブ openvswitch-common_2.4.0-1_armhf.deb の処理中にエラーが発生しました (--install):
アーカイブにアクセスできません: そのようなファイルやディレクトリはありません
処理中にエラーが発生しました:
openvswitch-common_2.4.0-1_armhf.deb
pi@raspberrypi:~/openvswitch-2.4.0 $ sudo service openvswitch-switch start
Failed to start openvswitch-switch.service: Unit openvswitch-switch.service failed to load: No such file or directory.
pi@raspberrypi:~/openvswitch-2.4.0 $

これは一回リブートで解決

pi@raspberrypi:~ $ sudo dpkg -i openvswitch-datapath-dkms_2.4.0-1_all.deb
以前に未選択のパッケージ openvswitch-datapath-dkms を選択しています。
(データベースを読み込んでいます ... 現在 141173 個のファイルとディレクトリがインストールされています。)
openvswitch-datapath-dkms_2.4.0-1_all.deb を展開する準備をしています ...
openvswitch-datapath-dkms (2.4.0-1) を展開しています...
openvswitch-datapath-dkms (2.4.0-1) を設定しています ...

Creating symlink /var/lib/dkms/openvswitch/2.4.0/source ->
/usr/src/openvswitch-2.4.0

DKMS: add completed.
Error! echo
Your kernel headers for kernel 4.1.17-v7+ cannot be found at
/lib/modules/4.1.17-v7+/build or /lib/modules/4.1.17-v7+/source.
pi@raspberrypi:~ $ sudo dpkg -i openvswitch-common_2.4.0-1_armhf.deb
以前に未選択のパッケージ openvswitch-common を選択しています。
(データベースを読み込んでいます ... 現在 142332 個のファイルとディレクトリがインストールされています。)
openvswitch-common_2.4.0-1_armhf.deb を展開する準備をしています ...
openvswitch-common (2.4.0-1) を展開しています...
openvswitch-common (2.4.0-1) を設定しています ...
man-db (2.7.0.2-5) のトリガを処理しています ...

openvswitch-switchでuuid−runtimeがないと言わます。

pi@raspberrypi:~ $ sudo dpkg -i openvswitch-switch_2.4.0-1_armhf.deb
以前に未選択のパッケージ openvswitch-switch を選択しています。
(データベースを読み込んでいます ... 現在 142383 個のファイルとディレクトリがインストールされています。)
openvswitch-switch_2.4.0-1_armhf.deb を展開する準備をしています ...
openvswitch-switch (2.4.0-1) を展開しています...
dpkg: 依存関係の問題により openvswitch-switch の設定ができません:
openvswitch-switch は以下に依存 (depends) します: uuid-runtime ...しかし:
パッケージ uuid-runtime はまだインストールされていません。
dpkg: パッケージ openvswitch-switch の処理中にエラーが発生しました (--install):
依存関係の問題 - 設定を見送ります
man-db (2.7.0.2-5) のトリガを処理しています ...
systemd (215-17+deb8u3) のトリガを処理しています ...
処理中にエラーが発生しました:
openvswitch-switch

足します

pi@raspberrypi:~ $ sudo apt-get install uuid-runtime
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
uuid-runtime
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
1 個のパッケージが完全にインストールまたは削除されていません。
73.6 kB のアーカイブを取得する必要があります。
この操作後に追加で 115 kB のディスク容量が消費されます。
取得:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main uuid-runtime armhf 2.25.2-6 [73.6 kB]
73.6 kB を 1秒 で取得しました (62.2 kB/s)
以前に未選択のパッケージ uuid-runtime を選択しています。
(データベースを読み込んでいます ... 現在 142420 個のファイルとディレクトリがインストールされています。)
.../uuid-runtime_2.25.2-6_armhf.deb を展開する準備をしています ...
uuid-runtime (2.25.2-6) を展開しています...
man-db (2.7.0.2-5) のトリガを処理しています ...
systemd (215-17+deb8u3) のトリガを処理しています ...
uuid-runtime (2.25.2-6) を設定しています ...
グループ uuidd' (グループ ID 115) を追加しています... 完了。 警告: 指定されたホームディレクトリ /run/uuidd にアクセスできません: そのようなファイルやディレクトリはありません システムユーザ uuidd' (UID 110) を追加しています...
新しいユーザ uuidd' (UID 110) をグループ uuidd' に追加しています...
ホームディレクトリ `/run/uuidd' は作成しません。
openvswitch-switch (2.4.0-1) を設定しています ...
systemd (215-17+deb8u3) のトリガを処理しています ...

openvswitch-switchリベンジ。

pi@raspberrypi:~ $ sudo dpkg -i openvswitch-switch_2.4.0-1_armhf.deb
(データベースを読み込んでいます ... 現在 142433 個のファイルとディレクトリがインストールされています。)
openvswitch-switch_2.4.0-1_armhf.deb を展開する準備をしています ...
openvswitch-switch (2.4.0-1) で (2.4.0-1 に) 上書き展開しています ...
openvswitch-switch (2.4.0-1) を設定しています ...
man-db (2.7.0.2-5) のトリガを処理しています ...
systemd (215-17+deb8u3) のトリガを処理しています ...

一見うまく行ったように見えましたが、まだあります。
いちおうサービスを確認。

pi@raspberrypi:~ $ sudo service --status-all
[ + ] openvswitch-switch

今度はこちらを参考にして
【SDNチャレンジ】 第5回 Raspberry Pi2にOpen vSwitchをインストール:(http://www.adoc.co.jp/blog/e000190.html)

OpenvSwitchデーモン起動。

pi@raspberrypi:~ $ sudo mkdir /usr/local/etc/openvswitch
pi@raspberrypi:~ $ sudo ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema
ovsdb-tool: failed to read schema: "vswitchd/vswitch.ovsschema" could not be read as JSON (error opening "vswitchd/vswitch.ovsschema": No such file or directory)
pi@raspberrypi:~/openvswitch-2.4.0 $ sudo ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema
pi@raspberrypi:~/openvswitch-2.4.0 $ sudo ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,Open_vSwitch,manager_options --private-key=db:Open_vSwitch,SSL,private_key --certificate=db:Open_vSwitch,SSL,certificate --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert --pidfile --detach
ovsdb-server: /var/run/openvswitch/ovsdb-server.pid: already running as pid 709, aborting
pi@raspberrypi:~/openvswitch-2.4.0 $
pi@raspberrypi:~/openvswitch-2.4.0 $ sudo ovs-vsctl --no-wait init
pi@raspberrypi:~/openvswitch-2.4.0 $ sudo ovs-vswitchd --pidfile --detach
ovs-vswitchd: /var/run/openvswitch/ovs-vswitchd.pid: already running as pid 733, aborting

ブリッジ作ってみる。

pi@raspberrypi:~/openvswitch-2.4.0 $ sudo ovs-vsctl add-br br1

pi@raspberrypi:~/openvswitch-2.4.0 $ ifconfig
br1 Link encap:イーサネット ハードウェアアドレス 9a:9e:8a:fc:a9:44
inet6アドレス: fe80::ff25:e175:2ea6:3e32/64 範囲:リンク
UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1
eth0 Link encap:イーサネット ハードウェアアドレス b8:27:eb:91:35:c2
inetアドレス:192.168.0.14 ブロードキャスト:192.168.0.255 マスク:255.255.255.0
inet6アドレス: 240d:0:1226:9d00:579e:d594:44dc:9471/64 範囲:グローバル
inet6アドレス: fe80::3227:958e:b751:7f06/64 範囲:リンク
UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1
lo Link encap:ローカルループバック
inetアドレス:127.0.0.1 マスク:255.0.0.0
inet6アドレス: ::1/128 範囲:ホスト
UP LOOPBACK RUNNING MTU:65536 メトリック:1
ovs-system Link encap:イーサネット ハードウェアアドレス aa:b7:c1:f3:32:79
inetアドレス:169.254.65.236 ブロードキャスト:169.254.255.255 マスク:255.255.0.0
inet6アドレス: fe80::7141:ce2e:7931:670c/64 範囲:リンク
UP BROADCAST RUNNING MULTICAST MTU:1500 メトリック:1

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?