Floodlight SDN Controller 及 Open vSwitch 已經配置妥當,下一步就是從 Floodlight SDN Controller 分配 Flow 規則到指定的 Open vSwitch 之中,那我們怎樣知道那台 Open vSwitch 分配指定的 Flow 規則?其實每一台支援 OpenFlow 協定的交換器連接了 Floodlight SDN Controller 後,每台交換器會被分配一組 DPID 號碼,而這組號碼很像 MAC 位置,總共有 14 個號碼及英文字母。
因為這次只有一台 Open vSwitch,在分配 Flow 規則時指定一個 DPID 便可,Floodlight SDN Controller 的 Flow 規則類似 JSON 程式一樣,讓封包知道傳送到什麼方向。
Step 1
於 Floodlight SDN Controller 網頁介面 Switches 部份,便能對應 Open vSwitch DPID 屬於那台 Open vSwitch 網路地置。下方 Hosts 是顯示同一網段的電腦 MAC 位置及網路位置。
Step 2
大家先設定好 Host01 和 Web Server 的網路位置、電腦名稱、系統更新、修改 /etc/hosts 和安裝 SSH 服務,不想再多講。因為 Open vSwitch 經已連接 Floodlight SDN Controller,預設每個埠口打通,嘗試 Host01 和 Web Server 是否能成功互 ping 通。
Step 3
接著於 Floodlight SDN Controller 分配兩條 Flow 規則,目的是將 Host01 不能 ping 通 Web Server。因為 Flow 是雙向的,所以要輸入兩次, curl 指令通過 REST API 經由 Floodlight SDN Controller 分配 Static Flow Pusher,格式是以 JSON 選寫,以下是這示範 Static Flow 格式講解。
curl -X POST -d ‘{“switch": “00:00:00:0c:29:6c:4a:8f", “name":"host1-webserver", “cookie":"0″, “priority":"0″, “eth_type":"0x0800″, “ip_proto":"1″, “icmpv4_type":"8″, “ipv4_src":"192.168.0.10″, “ipv4_dst":"192.168.0.20″, “active":"true", “actions":""}’ http://192.168.0.203:8080/wm/staticflowpusher/json
curl -X POST -d ‘{“switch": “00:00:00:0c:29:6c:4a:8f", “name":"webserver-host1″, “cookie":"0″, “priority":"2″, “eth_type":"0x0800″, “ip_proto":"1″, “icmpv4_type":"0″, “ipv4_src":"192.168.0.20″, “ipv4_dst":"192.168.0.10″, “active":"true", “actions":""}’ http://192.168.0.203:8080/wm/staticflowpusher/json
1. curl -X POST -d – 溝通方式是以 HTTP POST 達成。
2. switch – 這裡分配 Static Flow 到那台 OpenFlow 交換器 DPID。
3. name – Static Flow 名稱。
4. cookie – Floodlight 的 Static Flow Pusher 可安裝模組,在這裡加入模組名稱即可使用。
5. priority – 是用作 Static Flow 的先後次序。
6. eth_type – 代表 Ethernet 是使用 ipv4﹑ipv6 或 arp。
7. ip_proto – 代表什麼網路協定類型,1 是 ICMP 類型。
8. icmpv4_type – 8 代表 ICMP Echo Request,而 0 代表 ICMP Echo Reply。
9. ipv4_src – 來源地網路位置。
10. ipv_dst – 目的地網路位置。
11. active – true 代表啟動。
12. actions –不加入任何東西,代表 drop。
13. http://192.168.0.203:8080/wm/staticflowpusher/json – 以 HTTP POST 加入到 staticflowpusher 之中。
最後看見 status: “Entry pushed” 表示成功分配。
相關文章:
初探 Open vSwitch!按部就班:搭配 Floodlight 打造 SDN 開源方案
初探 Open vSwitch!深入淺出、圖解測試環境網絡讓你輕易上手
初探 Open vSwitch!部署開源 SDN 方案前的準備工作
繼續 SDN 實戰:Floodlight 安裝與設定一篇搞掂!
繼續 SDN 實戰:Open vSwitch 安裝設定全攻略
繼續 SDN 實戰:如何分配 Flow 規則到指定的 Open vSwitch 之中(上)?
繼續 SDN 實戰:如何分配 Flow 規則到指定的 Open vSwitch 之中(上)?
https://www.facebook.com/hkitblog