Trema/Pioでパケットを作ろう(2)

続きです。 IP, UDP の話 Checksum 計算 Gist みればわかると思いますが、simple-router の中に router-utils.rb ってのがあるんですね。これの checksum 計算用のルーチンを丸パクリです。チェックサム計算のコード自体はなんか ruby っぽくないので、まだ…

Trema/Pioでパケットを作ろう(1)

trema/pio でいろんなパケットを作ってみよう! という話です。 Trema の packet generate/parse の機能が Pio として分離されています。こいつを使えば任意のパケットの生成・送受信機能を作れる。はず。ということで作ってみました。可変長フィールドのある…

ACLをどうにかしたい話

ちょっとやっては飽きたり挫折したり面倒くさくなって放り投げたりしていた企画を今月になってまたやっていました。 Perl で Cisco ACL Parser を作れないかな? Road to Cisco ACL Parser Road to Cisco ACL Parser(2) Road to Cisco ACL Parser(3) ……あらた…

読了 / マスタリングTCP/IP OpenFlow編

久しぶりに夏休み時期に夏休みを取れたので読みました。マスタリングTCP/IP OpenFlow編作者: あきみち,宮永直樹,岩田淳出版社/メーカー: オーム社発売日: 2013/07/26メディア: 単行本(ソフトカバー)この商品を含むブログ (5件) を見るこの本は SDN につい…

Trema-edge + OVSでOpenFlow1.3テスト環境を作る

はじめに そろそろ OpenFlow 1.3 なテストをやってみたいなあと思ったので Trema-edge のビルドと KVM + Open vSwitch でのテスト環境の構築をやってみた。といっても、Trema-edge でサンプル (learning-switch) が動くってところまで。 環境と下準備 Contro…

Trema/MyRoutingSwitch(7), Topology Change and Re-route(10)

前回の続き。OVS patch port はどうも状態が固定されているらしく、ポートの状態変更ができないとか、ポート消しても link down を検出できないとか、そうなってしまうようです。とはいえ、OpenFlowテスト環境をつくる(7) でやったみたいに、overlay 的な環…

Trema/MyRoutingSwitch(7), Topology Change and Re-route(9)

あいかわらずごちゃごちゃやってます。トポロジ変化と、それに対してどうパケットの経路制御するかというのを見てきたのですが、KVM/OVS 実機でトポロジ変更させるのがやたらと面倒くさいので、基本的には Trema のネットワークエミュレータ機能を使ってテス…

Trema Day #3 参加メモ #tremaday

はじめに 前回に引き続き Trema Day #3 参加してきました。 TremaDay Trema Day #3 | 集客ならイベントアテンド Trema Day #3 #tremaday - Togetter Giving is Taking - Networking: Trema Day #3 に参加してきた(一部) いやあ、今回人多かったですねえ。過…

Ubuntu/KVM/OVSでOpenFlowテスト環境をつくる(7)

一連のシリーズで見てきていますが中身が変わるのでちょっとタイトル変更。連番は継続。これまでは、ポータブルな環境を、という考え方で vmware player 1 KVM Server (OVS+KVM で複数ブリッジ接続環境を模擬) 1 Controller Server (Trema) みたいな構成でど…

Trema/MyRoutingSwitch(6), 全対最短経路(2)

全対最短経路に変えた事によるアレコレ。 Topology based flooding 従来(point-to-point shortest-path) Broadcast/Unknown-unicast による flooding は、いままで management network 経由で全スイッチに対して packet-out していたので、openflow network …

Trema/MyRoutingSwitch(6), 全対最短経路(1)

はじめに MyRoutingSwitch(5) のシリーズ ではトポロジの変化に対してどうやって経路迂回させるか、みたいな話をいろいろやってきました。それで、いろいろ試してみたけど、やっぱりリアクティブでやる方法って今ひとつ拡張性とか微妙だなあと。もうちょっと…

Trema/MyRoutingSwitch(5), Topology Change and Re-route(8)

トポロジ変化の処理についてどういう対応ができそうか、というのについてこれまであれこれ見てきたのですが、気づいたところとかをだらっと上げておきたいと思います。 前提・条件を明示する 作っているうちに暗黙的に仮定している物があって、そういうのが…

Trema/MyRoutingSwitch(5), Topology Change and Re-route(7)

はじめに リンク追加(リンクアップ)に伴うトポロジ変化について。今回は、リンクが増えたときにどういうフロー情報操作が必要になるか? という話を見ていきます。昨日の夜 master にマージした他ので一応ソースも。 training/my-routing-switch at 1131b58f0…

Trema/MyRoutingSwitch(5), Topology Change and Re-route(6)

はじめに routing switch でリンクダウン発生によってトポロジが変化した際にどう対応していくか、というのを、この前の第1回〜第5回でためしてみました。 次はリンクアップに対してどう対応するかという方向に行きます。…記事のタイトル、もうちょっとどう…

Trema/FlowStatsおためし

ちょっと思うところあって、Controller から各スイッチのフロー情報を取得してみる、という処理のテストをしてみた。 参照 Method Method: Trema::Controller#send_message ― Documentation for trema/trema (master) Method: Trema::Controller#stats_reply…

Trema/MyRoutingSwitch(5), Topology Change and Re-route(5)

はじめに これまで、リンクダウンによるトポロジ変化に対して、フローテーブルの修正をして追従して動いてくれることが見えたと思います。今回は、もうちょっと複雑なパターンと特徴的な挙動、トポロジ変化に伴うフロー操作のその他の課題について取り上げま…

Trema/MyRoutingSwitch(5), Topology Change and Re-route(4)

はじめに 引き続き前回の続きということで、arp table が実際にホストが接続されている位置を表すように固定した上で、これまで見えてきたリンクダウンに伴うフロー再書換の不具合が解決するかどうかを確認してみます。 変更 packet-in が起きて arp table u…

Trema/MyRoutingSwitch(5), Topology Change and Re-route(3)

はじめに 前回の話を実際に確認してみます。まずは、単純に、port_status (リンクダウン) が発生したときに、リンクダウンしたポートに対して output しているフローを消すだけだとあまり良くない、という話ところです。 テスト1 変更点 MyRoutingSwitch sta…

Trema/MyRoutingSwitch(5), Topology Change and Re-route(2)

はじめに 前回はトポロジの変化と、現状の MyRoutingSwitch が行う経路制御処理の基礎について、でした。今回は現状の動作の問題点と対応方針についてみていきます。いまはリンクダウンに対応できることを目標として考えます。 問題点 トポロジ変化に対応し…

Trema/MyRoutingSwitch(5), Topology Change and Re-route(1)

はじめに 引き続き MyRoutingSwitch いじり。複数スイッチで経路選択ができるのであればやっぱりトポロジ変更時に物理経路切り替えて通信を継続させる、というのをやりたいわけです。ということで試してみました。 トポロジ変更 複数スイッチ環境におけるト…

Trema/MyRoutingSwitch(4), テスト関連メモ

引き続き routing switch 周りでいじってる。先週〜今週でいじったことのメモ。 Unknown Unicastの取り扱い Trema/MyRoutingSwitch(2) にも書いたけど、L2スイッチとして動作する割には Unknown Unicast の動作をイレギュラーな形 (proxy arp) にしてありま…

読了/OpenFlow本2種

SDN/OpenFlowで進化する仮想ネットワーク入門 (Cloudシリーズ(Next Publishing))作者: 伊勢幸一出版社/メーカー: インプレスR&D発売日: 2013/02/26メディア: オンデマンド (ペーパーバック) クリック: 1回この商品を含むブログ (3件) を見る目次とかはこちら…

Trema/MyRoutingSwitch(3), ダイクストラ法デバッグ

えーと。案の定というかなんというか。最短経路検索の実装がおかしかったですね。下図のようなトポロジでデバッグプリント出して L2 routing の処理を追いかけてみました。非対称なトポロジにしないと動作テストとしてはダメだよねやっぱり。 ofvm01 (192.16…

Trema/MyRoutingSwitch(2)

ちまちま修正している。 機能追加 起動時に予期せぬイベントがきたら無視する switch_ready, features_request/reply があるんだから、そこの処理が終わるまで、指定された dpid での packet_in 処理は受け付けないことにする。 def packet_in dpid, packet_…

Trema/MyRoutingSwitch

10連休! なのでちょっとお試し。 はじめに これまで VMwarePlayer+Ubuntu/KVM/OVSでOpenFlowテスト環境をつくる(6) で複数スイッチ環境でやるための環境セットアップはしたものの、その上でのアプリの実装とか実験とかできていなかったので、連休を利用して…

Trema Day #2 参加メモ #tremaday

はじめに Trema Day #2 参加してきました。 TremaDay Trema Day #2 | 集客ならイベントアテンド Trema Day #2 #tremaday - Togetter Giving is Taking - Networking: Trema Day #2 に参加してきた Trema Day #1 のときは参加できずに Ust 視聴 + Twitter 実…

読了/眼球堂の殺人

眼球堂の殺人 ~The Book~ (講談社ノベルス)作者: 周木律出版社/メーカー: 講談社発売日: 2013/04/04メディア: 新書この商品を含むブログ (26件) を見る帯コメントが森博嗣……あの森先生が! ミステリ小説の帯を! 書くなんて! と思って買ってきて読んだ。(以下…

VMwarePlayer+Ubuntu/KVM/OVSでOpenFlowテスト環境をつくる(6)

はじめに 第5回 に書いた OVS ブリッジ間接続について、 @stereocat OVSのブリッジ間は、仮想リンク以外に、patchでつなぐ方法があるみたいです。どちらが良いのか、よく理解できていませんが、Quantum-OpenvSwitchプラグインでは、patchが活用されています…

VMwarePlayer+Ubuntu/KVM/OVSでOpenFlowテスト環境をつくる(5)

はじめに 第1回〜第4回 までで1つの OVS で KVM 仮想マシンを束ねる形の環境を作りました。その環境上で OpenFlow で仮想マシン間通信をコントロールするというテストをいくつかやってきたのですが、単一のスイッチでやれる範囲って、基本的にはフローの操作…

Trema/PbrLbSwitch(2)

昨日の記事 (Trema/PbrLbSwitch) のデータを見返していて思ったんだけどやっぱりおかしなところがあった。まあ案の定というか。 問題 フロー情報、 root@oftest01:~# sudo ovs-ofctl dump-flows br0 | grep 56085 cookie=0x3, duration=1372.846s, table=0, …