LoginSignup
1
0

More than 3 years have passed since last update.

tremaでHello,Trema!をやってみる

Last updated at Posted at 2021-04-05

はじめに

openflowに興味があり、tremaを触ってみようと思いましたが、環境構築に手間取ってしまったので、備忘録です。

目次

1.VirtualVoxを使って環境構築
2.openvswitchをインストール
3.必要なもののインストール
4.Hello,Trema!をやってみる

1.VirtualVoxを使って環境構築

準備

ubuntu-20.04.2.0-desktop-amd64.isoファイルを使って仮想環境の構築をします。このファイルは公式サイトにあります。

メモリ HDD
1GB 15GB
アダプター ネットワーク
アダプター1 NAT
アダプター2 内部ネットワーク
アダプター3 内部ネットワーク
アダプター4 内部ネットワーク

vmのネットワークは上記の表のように後で拡張しやすいように設定しました。

インストール

user: openflow
passward: openflow
※日本語の設定にしました。

2.openvswitchをインストール

NATでWANに繋がっているかを確認します。

$ping 8.8.8.8

もしつながっていなければ、

$sudo nmtui

から接続をアクティベートするを選びenter。
         ↓
Ethernet(enp0s3)を選びenter。
そして戻る→終了の手順をするとWANに繋がります。

openvswitchをインストール

$sudo apt-get install openvswitch-switch

ついでに起動もしましょう!

$sudo systemctl start openvswitch-switch

3.必要なもののインストール

$sudo apt-get install -y  gcc  ruby ruby-dev libpcap-dev rubygems
$sudo gem install trema

tremaのバージョン: 0.10.1
rubyのバージョン : 2.7.0p0

4.Hello,Trema!をやってみる

こちらのサイトのhello_tremaをやっていこうと思います。

$mkdir -p hello_trema/lib
$cd hello_trema

この中にファイル追加します。

lib/hello_trema.rb
# Hello World!
class HelloTrema < Trema::Controller
  def start(_args)
    logger.info 'Trema started.'
  end

  def switch_ready(datapath_id)
    logger.info "Hello #{datapath_id.to_hex}!"
  end
end
trema.conf
vswitch { datapath_id 0xabc }

そしてすでにtremaはインストールされているので、実行してみます。

$trema run ./lib/hello_trema.rb -c trema.conf
Trema started.
Hello, 0xabc!

正しく実行されていることが確認できます。

私は、tremaをインストールするのに苦労したので、openflowをtremaでやりたい方は参考にしていただければ幸いです。

参考にしたサイト

https://yasuhito.github.io/trema-book/
https://www.atmarkit.co.jp/ait/articles/1306/11/news004.html

1
0
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
0