Re: [請益] 想自學SDN與ONOS 求推薦書籍

看板Soft_Job作者 (--_--_-__--__----_-__-_)時間8年前 (2016/02/27 00:18), 8年前編輯推噓9(900)
留言9則, 9人參與, 最新討論串2/2 (看更多)
※ 引述《snsv (子龍出任務)》之銘言: : 大家好 小弟最近想要自學SDN(Software Defined Network) : 與ONOS(Open Network Operating System) : 但發現兩者在網上的教學資源並不多,不像C或Java搜尋後就有一大堆相關的教學 : 之前有先上網看了清華大學OCW 黃能富教授的計算機網路概論 : 還有Coursera上的SDN教學影片 : 也有到onosproject網站上稍微看一下Tutorials : 不過礙於零基礎的關係 所以看完後大概只知道一些概念性的東西 : 對於實際的操作與潛在的應用 還有該用哪些語言、工具 到現在還是不太了解 : 小弟目前只學過C 跟一點點的C++、一點點的Java : 想請問板上的大大有沒有比較推薦的書籍或網路資源 : 最好是比較完整,適合從零開始的初學者 : 希望能在半年到一年之間做出一個小小的作品 : 懇請有涉獵這塊領域的大大們幫忙推薦一下 謝謝~ 自學 SDN 的話,最好要先補些網路的基礎 L2 的 packet forwarding 主要是看 source/destination mac address 來 決定 switch 收到的 packet 要往哪個 port 丟 所以 switch 內有塊 mac address table 記錄哪個 mac address 是從 哪個 port 上線 1. unicast packet 在 switch 不知道 da 的狀況下,會把 packet flood 到 所有的 port。若 mac address table 已經 da 這筆記錄的話,就會往那個 port 丟 2. multicast/broadcast packet 這類的 packet 主要包含 ARP及 DHCP 等 packet。switch 內部在處理 packet 時,會透過 vlan 來限定 multicast broadcast 所能轉發的 port。 3. 在 SDN 比較需要處理的 packet 類型有 0x0800 IPv4 0x0806 ARP 0x88CC LLDP (用來偵測網路拓撲) 0x8100 802.1q (VLAN) L3 的話,則是看 source ip address 及 destination ip address 來決定 routing 的 next hop 問題。假設環境設定如下: 1. Host 1 192.168.10.1, MAC 00:AA 2. Host 2 192.168.10.2, MAC 00:BB 3. Host 3 192.168.20.3, MAC 00:CC 3. Router 10 192.168.10.254, MAC 00:10 4. Router 20 192.168.20.254, MAC 00:20 當 Host 1 要 ping Host 2 時,因為 Host 1 不知道 192.168.10.2 的 mac address,所以它會先發 arp (broadcast) 來詢問 Host 2。問到 mac address 後,就可以把 DA 填成 00:BB 發 ping 給 Host 2 當 Host 1 要 ping Host 3 時,L3 routing 問題就跑出來了 Host 1 知道 192.168.20.3 與 192.168.10.1 不在同一個網段,所以 Host 1 的 IP packet 需要透過 Router 10 來轉發。通常 Router 10 及 Router 20 是有兩個網孔的同一台機器。ping 的順序如下: A. Host 1 icmp packet, SA=00:AA, DA=00:01 指定 packet 要送 給 router 10 轉發 (這裡 Host 1 也需要先發 ARP 問 Router 10 的 MAC Address) B. Router 10 收到 packet 後, 會依 Routing table 把 packet 轉 給另一個網路介面 Router 20。 C. Router 20 發 ARP 問 Host 3 的 MAC Address 4. Router 20 轉發 Host 1 的 icmp packet, 把 SA 改成 00:20, DA 改成 00:CC。這樣就可以把 packet 送給 Host 3 了。 常用工具有: 1. wireshark 看封包 2. mininet 建立網路拓樸,需要寫 python 建立自定的拓撲 3. ovs 虛擬 switch, 搭配 mininet 一起用 ovs-vsctl 查看 switch 設定 ovs-ofctl 設定 openflow flow entry 4. controller 可以試試 ryu, onos, opendaylight 等 ryu 用 pyhton 寫,比較簡單,適合初學及研究 opendaylight 用 JAVA 寫的,若不是要找工作的話 不要碰 太大了 可以先用 mininet 搭配 ovs 的指令進行一些測試,例如: 1. 透過 match inport, output 到特定 port 來切割網路 2. 透過 match tcp 80 來監控網路流量 3. 不要使用 output normal 來實作 L2 forwarding 4. 用 flow entry 來模擬 L3 routing 希望這對你有幫助 我絕對不是為了幫做 SDN 產品的思銳科技打徵材廣告才來回這篇的 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.40.84.201 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1456503538.A.FDF.html

02/27 00:57, , 1F
先推了 謝謝~
02/27 00:57, 1F

02/27 01:04, , 2F
0x0806應是ARP~
02/27 01:04, 2F
感謝,我修一下錯誤 ※ 編輯: Coming (114.40.84.201), 02/27/2016 09:05:54

02/27 09:46, , 3F
專業推!
02/27 09:46, 3F

02/27 09:51, , 4F
徵材的才打錯囉,還是你想徵的是木材,打出真心話了吼
02/27 09:51, 4F

02/27 09:52, , 5F
推!
02/27 09:52, 5F

02/27 10:53, , 6F
這篇認真 推推推
02/27 10:53, 6F

02/27 12:08, , 7F
太專業了不推不行
02/27 12:08, 7F

02/28 21:53, , 8F
推 認真
02/28 21:53, 8F

03/03 02:05, , 9F
03/03 02:05, 9F
文章代碼(AID): #1Mq7ho_V (Soft_Job)
文章代碼(AID): #1Mq7ho_V (Soft_Job)