猫型エンジニアのブログ

プログラム/ネットワーク系の技術関連をまとめたページです 

Ryu

Ryuのアプリを作る その1

Ryu

上司に「Ryuに何か新しい機能を実装してコミュニティに投稿します」と宣言してしまったために、Ryuで何か新しい機能を実装します。REST経由で設定できるDHCP機能を作成しようと思います。 仕事でよくRyuをいじっているので、動くものを作るだけなくRyuの内部…

rest.pyの動作確認

Ryu

RyuのRESTを扱うサンプルコードの内で、最もシンプルなrest.pyを動かしてみました。ローカルでrest.pyを起動させ、同じくローカルから自身に対してcurlコマンドでhttpリクエストを送信します。 下の例ではGETリクエストでの表示とPOSTリクエストでの登録しか…

Ubuntu12.04にRyuをソースコードからインストール

久しぶりにRyuをインストールしようとしたら、いくつか注意点がありました。うまく行かない場合は以下を参照にしてみてください。 これまでのインストール方法 # apt-get update # apt-get install git python-pip libevent-dev python-dev python-gflags uw…

Ryuのソースコードリーディング その3 パケットの送信

Ryu

パケットを作成して、NICからの送信を行います。 パケットの作成 パケットを作成したのちに、add_protocolでL2、L3各レイヤーのヘッダを入れていきます。ここではL3までのパケットを作成しました。引数に指定していないので、デフォルトで設定されている値が…

Ryuのソースコードリーディング その2 パケットの解析

Ryu

Packetクラス packet.pyのソースコードを読むと以下のことがわかります。 パケットクラスは、パケットのデコード/エンコードを行う パケットクラスは、バイナリデータを引数に持つ 各インスタンスは、protocolsというリストがあり、リストの各要素はプロトコ…

Ryuのソースコードリーディング その1 プロトコル

Ryu

前置き Ryu-bookも出たので、そろそろ本格的にRyuのソースコードリーディングをやってみます。まずはRyuのパケットに関するライブラリに関連するコードから読み始めてみます。 プロトコル Ryu/lib/packet以下の[arp/bgp/bpdu/dhcp/ethernet/icmp/icmpv6/igmp…

Ubuntu12.04にRyuのトポロジーのGUI表示機能を設定

https://github.com/yamada-h/ryu/wiki/GUIのページを参考にしました。Pythonのバージョンが2.6では失敗し、2.7では成功しました。 事前にPythonのバージョン確認を行ってください。Ryuの公式のブランチにはマージされていませんが、トポロジー表示機能も存…

CentOS6.4にRyuをソースコードからインストール

インストール 最新の機能を利用したい場合は、パッケージからではなく、gitの最新のソースコードからインストールする必要があります。プロキシ環境下ではgitやhttpsなどで適切な設定がなされていないと、エラーとなります。 [root@localhost ryu]# yum -y i…

CentOS6.4にRyuをパッケージからインストール

インストール 以下の手順で必要なパッケージをインストールした後に、pipコマンドでRyuのインストールを行います。 ただしパッケージでのインストールでは、ソースコードから落としてきた場合ならば、フォルダに入っているはずのサンプルのコードが一切あり…