はじめに
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
この中にファイル追加します。
# 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
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