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

看板 Soft_Job
作者 Coming (--_--_-__--__----_-__-_)
時間 2016-02-27 00:18:54
留言 9則留言 (9推 0噓 0→)

: 大家好 小弟最近想要自學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

snsv: 先推了 謝謝~ 02/27 00:57

k3521: 0x0806應是ARP~ 02/27 01:04

swinds24: 專業推! 02/27 09:46

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

javy0521: 推! 02/27 09:52

zhuzii: 這篇認真 推推推 02/27 10:53

g12288: 太專業了不推不行 02/27 12:08

Rlearnerk: 推 認真 02/28 21:53

vettelhsiao: 推 03/03 02:05

您可能感興趣