ovs-ofctl と mininet で SDN を学び始めており、いくつかのチュートリアルに従ってスイッチを構成していますが、何かがわかりません。
トポロジを次のように開始すると:
sudo mn --topo single,2 --controller remote --switch ovsk
h1 と h5 の間に単純なフローを追加する場合は、次のようにします。
sh ovs-ofctl add-flow s1 in_port=1,actions=output:2
sh ovs-ofctl add-flow s1 in_port=2,actions=output:1
ホスト間の接続をテストすると、すべて問題ありません。
しかし、今、すべてのフローを削除すると、次のようになります。
sh ovs-ofctl add-flow s1 in_port=1,dl_type=0x806,nw_dst=10.0.0.2,actions=output:2
sh ovs-ofctl add-flow s1 in_port=2,dl_type=0x806,nw_dst=10.0.0.1,actions=output:1
ここで ping を実行しようとすると、到達可能性はありませんが、実行すると:
sh ovs-ofctl add-flow s1 action=NORMAL
これで、ホスト間で再度 ping を実行できるようになりました。
ここで何が欠けていますか?コマンドで指定するだけでは、 ARP トラフィックを使用するイーサネットだけdl_type=0x806
を許可するのに十分ではありませんか? ping がそこで失敗するのはなぜですか?