2

Mininet、RYU コントローラー、および OpenFlow 1.3 を使用して、次の方法でスイッチを使用しh1てホストがホストに接続されるトポロジを作成しています。h2p0es0

h1 h1-eth0:p0es0-eth3
h2 h2-eth0:p0es0-eth4

私の Ryu Controller アプリケーションには、p0es0スイッチにルールをインストールして、h2 から h1 に、またはその逆に到達できるようにするための次のコード スニペットがあります。

    # Install rule to forward packets destined to "10.0.0.2" (h2) via port 3
    ofproto = sw.ofproto        
    match = sw.ofproto_parser.OFPMatch( eth_type = 0x0800, ipv4_dst="10.0.0.1")
    action = sw.ofproto_parser.OFPActionOutput(4)
    inst = [sw.ofproto_parser.OFPInstructionActions(sw.ofproto.OFPIT_APPLY_ACTIONS, [action])]
    mod = sw.ofproto_parser.OFPFlowMod(datapath=sw, match=match,
           instructions=inst, cookie=0, command=ofproto.OFPFC_ADD, idle_timeout=0, 
           hard_timeout=0, priority=100, flags=ofproto.OFPFF_SEND_FLOW_REM)
    sw.send_msg(mod)


    # Install rule to forward packets destined to "10.0.0.1" (h1) via port 4
    match = sw.ofproto_parser.OFPMatch( eth_type = 0x0800, ipv4_dst="10.0.0.1")
    action = sw.ofproto_parser.OFPActionOutput(4)
    inst = [sw.ofproto_parser.OFPInstructionActions(sw.ofproto.OFPIT_APPLY_ACTIONS, [action])]
    mod = sw.ofproto_parser.OFPFlowMod(datapath=sw, match=match,
           instructions=inst, cookie=0, command=ofproto.OFPFC_ADD, idle_timeout=0, 
           hard_timeout=0, priority=100, flags=ofproto.OFPFF_SEND_FLOW_REM)
    sw.send_msg(mod)

私の dump-flow コマンドは、期待どおりにスイッチにルールが正しくインストールされていることを確認します。

*** p0es0 -------------------------------------------------- -------------------

OFPST_FLOW 応答 (OF1.3) (xid=0x2):

cookie=0x0、期間=1103.417s、テーブル=0、n_packets=0、n_bytes=0、send_flow_rem 優先度=100、ip、nw_dst=10.0.0.2 アクション=出力:4

cookie=0x0、期間=1103.414s、テーブル=0、n_packets=0、n_bytes=0、send_flow_rem 優先度=100、ip、nw_dst=10.0.0.1 アクション=出力:3


ただし、ping を実行しようとするとh2h1Destination Host Unreachable エラーが発生します。tcpdump を on で使用してみましたp0es0-eth3-- ARP Request パケットしか表示されません。

ここで何か不足していますか?

ありがとう。

4

1 に答える 1

1

私は arp フラグなしで Mininet を実行していました。arp オプションを追加すると、問題が解決しました。

すなわち、sudo mn --arp --custom fTreeTopo.py --topo ftreetopo --controller=remote,ip=127.0.0.1

于 2016-03-25T18:49:37.220 に答える