1

mininet を使用したネットワーク トポロジがあります。トポロジは RYU simple_switch.py​​ プログラムに接続されています。ネットワーク上に 6 つのスイッチと 6 つのホストがあります。

6 つのスイッチのフロー テーブルの内容を以下に示します。

TABLE FOR s1
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=10.97s, table=0, n_packets=11, n_bytes=561, priority=65535,dl_dst=01:80:c2:00:00:0e,dl_type=0x88cc actions=CONTROLLER:51
TABLE FOR s2
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=10.947s, table=0, n_packets=11, n_bytes=561, priority=65535,dl_dst=01:80:c2:00:00:0e,dl_type=0x88cc actions=CONTROLLER:51
TABLE FOR s3
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=10.921s, table=0, n_packets=11, n_bytes=561, priority=65535,dl_dst=01:80:c2:00:00:0e,dl_type=0x88cc actions=CONTROLLER:51
TABLE FOR s4
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=10.893s, table=0, n_packets=11, n_bytes=561, priority=65535,dl_dst=01:80:c2:00:00:0e,dl_type=0x88cc actions=CONTROLLER:51
TABLE FOR s5
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=10.86s, table=0, n_packets=11, n_bytes=561, priority=65535,dl_dst=01:80:c2:00:00:0e,dl_type=0x88cc actions=CONTROLLER:51
TABLE FOR s6
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=10.834s, table=0, n_packets=11, n_bytes=561, priority=65535,dl_dst=01:80:c2:00:00:0e,dl_type=0x88cc actions=CONTROLLER:51

とはaction=CONTROLLER:51どういう意味ですか? PACKET_INこれは、すべてのパケットをコントローラに送信するということですか?

4

2 に答える 2

2

これは、スイッチがパケットの最初の 51 バイトのみをコントローラに送信する必要があることを意味します。詳細については、ofp_output_action の max_len フィールドを参照してください。

于 2014-06-29T07:05:45.013 に答える
0

はい。アクションが「CONTROLLER」に設定されている場合、パケットがどのフロー テーブル エントリとも一致しない場合、パケットは代わりにコントローラに送信されます。

私はPOXを使用し、コントローラーで以下のコードを使用し、デフォルトのエントリを「すべてのパケットをコントローラーに転送する」としてインストールします

 def insertDefaultFlow(self,connection):
        """ method to insert default flow of send to controller , called in connectionup handler"""
    msg = of.ofp_flow_mod()
    msg.actions.append(of.ofp_action_output(port=of.OFPP_CONTROLLER))
    connection.send(msg)


dpctl dump-flows output as below:

s3 -------------------------------------------------- -----------------------

in_port(2),eth(src=de:37:0c:3b:64:cf,dst=33:33:00:00:00:02),
eth_type(0x86dd),
         ipv6(src=fe80::dc37:cff:fe3b:64cf,dst=ff02::2,label=0,proto=58,tclass=0,hlimit=255,frag=no,icmpv6(type=133,code=0), 
    packets:2, 
    bytes:140, 
    used:1.516s, 
    **actions**:userspace(pid=4294960954,**controller**,length=4294901762)

ご覧のとおり、すべてのパケットをコントローラに転送するように指示するフロー エントリがインストールされています。

于 2014-06-26T13:18:03.493 に答える