4th - Arista DirectFlow
Arista の DirectFlow はなかなか面白い。
SDN はもう「ソフトウェアで制御できればなんでもいいよ」くらいの位置づけになった、と僕は12/1 の投稿で書いた。
その意味でちょっと面白いなと思っていたのが Arista の DirectFlow だったりする。DirectFlow は 以下のような(かなり OpenFlow っぽい)フロー制御を EOS の CLI で直接スイッチに打ち込む、というものだ。(以下は複数の EOS コマンドを組み合わせて一つのフローに対する設定を組み上げ、それを show コマンドで出したもの。中身は説明しなくても分かると思う。)
switch# show directflow flows Flow Test-1: priority: 0 match: VLAN ID: 0xa/0x1 Ethernet type: IPv4 source IPv4 address: 192.168.100.10 actions: set destination Ethernet address to: 00:01:40:ef:9a:88 output interfaces: Port-Channel10 matched: 0 packets, 0 bytes switch#
OpenFlow との違いは、コントローラのようなものを必要としない、という点が一番大きい。Arista の Basic OpenFlow 同様、このくらいの処理であればスイッチ ASIC (Trident) をそのままプログラムしてハードウェア処理でこなす。
そして Arista には "ほぼ CLI のコマンドをそのまま JSON RPC over HTTPS に収めて投げつける” eAPI なるインタフェイスがある。これを通せば、はい、簡単お手軽 SDN、というわけ。悪くない。
そして Arista には "ほぼ CLI のコマンドをそのまま JSON RPC over HTTPS に収めて投げつける” eAPI なるインタフェイスがある。これを通せば、はい、簡単お手軽 SDN、というわけ。悪くない。
ただちょっと気になるのは,恐らくはその実装構造上、Arista の一般的なスイッチポートの制御から DirectFlow で扱いたいポートについては完全に隔離する、ということができない点だ。つまり Arista の OpenFlow 実装ではポート番号直接か、あるいは VLAN 指定によって OpenFlow 制御の対象とされたポートは Arista の一般的なスイッチポートの制御対象から完全に外れる。実はこれが結構都合が良い。
しかし DirectFlow はそうならず、DirectFlow の match 指定によって対象とならなかったパケットについては、そのポートの通常の処理(DirectFlow が動いていなかった時のパケット処理)に回されてしまう。
このあたり改善されるともうちょっと使い出があるように思う。
( Trident ベースの Arista をお持ちの方はぜひ一度お試し下さい。)
しかし DirectFlow はそうならず、DirectFlow の match 指定によって対象とならなかったパケットについては、そのポートの通常の処理(DirectFlow が動いていなかった時のパケット処理)に回されてしまう。
このあたり改善されるともうちょっと使い出があるように思う。
( Trident ベースの Arista をお持ちの方はぜひ一度お試し下さい。)
References