1. 程式人生 > >SDN openflow 學習小得

SDN openflow 學習小得

openflow 網段 工作原理 請求 網關 網絡 除了 發送數據 查找

一、openflow 大概的工作原理

  SDN 的一個大概簡陋圖,

  技術分享圖片

  同網段通訊

  1.我們傳統網絡 pc1 10.1.1.1 要找同一子網的 pc2 10.1.1.2 通過廣播洪泛。找到pc2,然後轉發。

  2.在openflow 中是怎麽工作的呢?

    openflow 在轉發層設備上只負責數據的一個轉發,相對傳統的交換機,沒有MAC表,但是有一個流表,根據流表來轉發。

    但是,轉發層設備不會自己計算、學習、維護流表,流表來自sdn控制器。

這裏簡單描述一下PC1 如何發送數據包到PC2,

  先聲明幾個名稱

  openflow packet in 相對於控制器,到控制器的包

  openflow packet out 相對於控制器,從控制器發出的包

  openflow modify 下發流表的包

  流表 類似 路由表,包含 IP, 源mac 目的ip 目的MAC,出接口,時間

  在初始狀態下,轉發器1 還不知道還沒有流表,所以只有直連的 PC1

  1.pc1 發起一個數據包要到達 pc2.

  2.轉發器本著有事找領導的原則(SDN 裏轉發器不學習計算)發送 ARP request 給 SDN控制,openflow packet in

  3.SDN控制收到 arp request後會給 所有的轉發器下發 packet out 包 (arp reply) 在除了設備互聯口上轉發,查找 10.1.1.2 。

    同時下發流表給所有設備,因為控制器已經知道了一條轉發信息 控制器1連接PC1的信息。這個信息是包含在 轉發器給控制的 ARP request 中

  4.pc2收到查詢的包後會 回應轉發器2 ,轉發器收到包,再回復控制器 packet in

  5.控制器收到包之後,再次下發新流表給轉發器。

  6.轉發器收到流表之後,知道10.1.1.2 從g 0/0/1口轉發。

整個過程相對傳統的MAC 洪泛麻煩。效率低。

  跨網段的怎麽通訊呢?

  跟傳統的通訊方式有點類似,先找網關。假設PC1 有一個數據包要發到PC3,轉發器上還沒有任何條目的劉表

  1。轉發器收到請求後,發送 arp request 給 sdn 控制器。

  2。控制器回復它就是網關,答復一條 網關的 mac ,及下發流表(pc1)給設備

  3。轉發器一收到之後,再次發送 arp request (pc3) 給控制器,

  4。控制器再次 packet out 給所有設備,查詢 PC3 的所在,同時宣告自己是 20.1.1.0 的網關。

  5.PC3收到包,回復給轉發器2,轉發器 pcaket in 給控制器,控制器再次下發流表。

  6.轉發器1 收到流表,知道PC3 從gi 0/0/1口,發送。

  7.轉發器2 收到數據包,從 e0/0/2口 轉發數據包。

SDN openflow 學習小得