1.オープンフロー1.3プロトコル、ホスト名、および正しいに対応したスイッチポートの名前mininet必要なトポロジのサポートを使用してトポロジを作成し、与えてくださいトポロジMininet結果は、接続ポートを表示
Pythonスクリプトを使用してトポロジを作成します。
mininet.topoインポートトポから mininet.netインポートMininetから mininet.nodeインポートリモートコントローラから、CPULimitedHost mininet.linkインポートTCLinkから mininet.utilインポートdumpNodeConnectionsのから クラスMyTopo(TOPO): 「単純なトポロジの例」 デフ__init __(自己): トポ.__ INIT __(自己) = []スイッチ #1追加スイッチ(S1およびS2) の範囲でiについて(2): 。SW = self.addSwitch( "S {}"形式(I + 1) ) switches.append(SW) #アドインホストおよびリンク = 1カウント スイッチでSWのために: iについての範囲(3): 。H = self.addHost( "H {}"形式(カウント)) self.addLink(SW、H) カウント+ = 1つの #は、2つのスイッチ間のリンク追加 self.addLink(スイッチ[0]、スイッチ[1]) トポス= { "mytopo":(ラムダ:myTopo())}
スクリプトの実行
sudoのMN --custom newtopo.py --topo mytopo - スイッチ ovsk、プロトコル= OpenFlow13
接続性チェック
ポートの正しさを確認してください
2. vSwitchがVLANの仮想ネットワークでは、次のセグメントを得るために、フローテーブルに直接作られた、箇条書きにしてくださいフローテーブルの意味が発行され
- H1 - H4の交換
- H2 - H5交流
- H3 - H6交流
-
どこにもホストの休息
別のターミナルを開き
須藤のOVS-ofctl -O OpenFlow13追加フローS1優先順位= 1、IN_PORT = 1、アクション= push_vlan:0x8100、SET_FIELD:4096 - \> vlan_vid、出力:4 須藤OVS -ofctl -O OpenFlow13追加フローS1優先順位= 1、IN_PORT = 2、アクション= push_vlan:0x8100、SET_FIELD:4097 - \> vlan_vid、出力:4 須藤OVS -ofctl -O OpenFlow13追加フローS1優先順位= 1、IN_PORT = 3、アクション= push_vlan:0x8100、SET_FIELD:4098 - \> vlan_vid、出力:4
ポート4に転送S2を介して、積層VLANタグの同じVLAN、パケットS1外層に設けられたH1、H2、H3:意味の。
前記SET_FIELD = 4096 + VLAN_ID。H1、H2、H3をそれぞれ0、1、2 VLAN_ID。
須藤OVS-ofctl -O OpenFlow13加算流れS1優先順位= 1、dl_vlan = 0、アクション= pop_vlan、出力:1 須藤OVS -ofctl -O OpenFlow13追加フローS1優先順位= 1、dl_vlan = 1、アクション= pop_vlan、出力:2 須藤OVS -ofctl -O OpenFlow13追加フローS1優先順位= 1、dl_vlan = 2、アクション= pop_vlan、出力:3
意味:送信されたS1、S2、受信したデータグラムを、ポート1、2、3転送し、次にdl_vlanによれば、VLANタグをポップ。
須藤のOVS-ofctl -O OpenFlow13追加フローS2優先順位= 1、IN_PORT = 1、アクション= push_vlan:0x8100、SET_FIELD:4096 - \> vlan_vid、出力:4 須藤OVS -ofctl -O OpenFlow13追加フローS2優先順位= 1、IN_PORT = 2、アクション= push_vlan:0x8100、SET_FIELD:4097 - \> vlan_vid、出力:4 須藤OVS -ofctl -O OpenFlow13追加フローS2優先順位= 1、IN_PORT = 3、アクション= push_vlan:0x8100、SET_FIELD:4098 - \> vlan_vid、出力:4
意味:同じVLAN上に設けられたH4、H5、H6を、外部VLANタグメッセージS2に及び4つの転送をS1ポートを介して積層。
前記SET_FIELD = 4096 + VLAN_ID。H4、H5、H6 VLAN_IDの0、1、2です。
須藤OVS-ofctl -O OpenFlow13加算流れS2優先順位= 1、dl_vlan = 0、アクション= pop_vlan、出力:1 須藤OVS -ofctl -O OpenFlow13追加フローS2優先順位= 1、dl_vlan = 1、アクション= pop_vlan、出力:2 須藤OVS -ofctl -O OpenFlow13追加フローS2優先順位= 1、dl_vlan = 2、アクション= pop_vlan、出力:3
意味:送信S2、S1受信データグラムを、ポート1、2、3転送し、次にdl_vlanによれば、VLANタグをポップ。
オープンvSwitchのフローテーブルビューの実装3.直接の結果は、コマンドを提出OVS
S1、S2、現在のフローテーブルを使用して説明書をご覧ください。
sudo OVS-ofctl -O OpenFlow13 dump- 流れS1
のsudo OVS -ofctl -O OpenFlow13ダンプは、流れS2
結果
ホスト接続テストの結果は、フローテーブルの妥当性を検証提出4.
以下の手順は、以前の端末を使用して実行します
5. Wiresharkのキャプチャ、検証するために、特定のパケットを分析します
パケットをフェッチS1-eth2のポートを選択します。
データの最下部以下のスクリーンショットは、パケットのハイライト部分を示します。
H2とH5が通信することができますので、我々はスクリーンショットでH5からのメッセージを見ることができます。