SDN期末作業 負載均衡的實現

2022-03-09 01:46:55 字數 1676 閱讀 3951

採用參考場景一作為專案的目標。

伺服器h2 h3上各自有不同的服務,h1是客戶端。實現乙個負載均衡的北向程式,當h2和h3向h1傳輸資料時,北向應用根據鏈路的使用狀況動態的調整路由規則。

通過odl的流量監控實時下發不同的流表,(圖一)通過改變優先順序使流表生效或者失效。h3的資料根據s1和s2之間的鏈路使用情況選擇傳送的路線。

圖一

建立拓撲

from mininet.topo import topo

class mytopo( topo ):

def __init__( self ):

# initilaize topology

topo.__init__( self )

# add hosts and switches

host1 = self.addhost( 'h1' )

host2 = self.addhost( 'h2' )

host3 = self.addhost( 'h3' )

switch1 = self.addswitch( 's1' )

switch2 = self.addswitch( 's2' )

switch3 = self.addswitch( 's3' )

# add links

self.addlink(host1,switch1)

self.addlink(switch1,switch2)

self.addlink(switch1,switch3)

self.addlink(switch2,switch3)

self.addlink(switch2,host2)

self.addlink(switch2,host3)

topos =

建立的拓補圖形:

在這次作業中,我負責編寫**,例如拓補建立的指令碼,負載均衡程式中監控流量的部分。還有一些比較細微但又影響專案推進的工作,比如對執行環境的搭建,debug等。

本次實驗,一開始我是想通過sflow來完成流量監控功能的,因為它可以比較精確統計,並且不會對被統計裝置產生太大負擔,稍微實驗幾次後感覺效果不錯,不過由於對python比較陌生,對我實現有比較大的困難,呼叫sflow的工作一直沒做好,後來在助教的幫助下,我改用odl控制器下的/restconf/operational/opendaylight-inventory:nodes/node//node-connector/,通過查詢埠接受的位元組和時間,兩者相除間接得到鏈路流量。

這學期的sdn這門課對我來說,是一門實用性和實踐性都很高的一門課,是這學期對專業知識收穫很多的幾門課之一,讓我對現在網路前沿的發展方向有了乙個大體的認識,並且接觸了不少控制器,例如floodlight,odl等。

總結前幾次作業,sdn課程中我都了解了

通過實踐,將上學期網路課程抽象的知識變得具體化一些,並且能夠憑藉相關知識去得出一些結論並通過實踐去驗證。實踐課讓我掌握到了許多理論課比較不會去側重的小細節,比如第四次和第五次的實驗分別讓我知道了建立拓補失敗時如何去找原因,拓補建立後ping不通如何去排查去解決。而總結全部實踐,涉及的內容有以下幾項:

SDN期末作業 通過SDN的應用實現負載均衡

2.場景 topo 場景描述 伺服器host 2 host 3,host 4上各自有不同的服務,host 1是客戶端。實現乙個負載均衡的北向程式,當host 2,host 3,host 4向host 1傳輸資料時,北向應用根據鏈路的使用狀況動態的調整路由規則。其中限定主機2,3,4,單個鏈路傳送的流...

負載均衡的實現

什麼是負載均衡 負載均衡建立在現有網路結構之上,它提供了一種廉價有效透明的方法擴充套件網路裝置和伺服器的頻寬 增加吞吐量 加強網路資料處理能力 提高網路的靈活性和可用性。負載均衡 load balance 其意思就是分攤到多個操作單元上進行執行,例如web伺服器 ftp伺服器 企業關鍵應用伺服器和其...

Varnish 負載均衡的實現

步驟一 開啟ll3快照,設定ip,主機名,yum源 準備將server4作為第二個web伺服器 這一步在上篇已經詳細介紹,在此省略 步驟二 將server4也作為乙個後端web伺服器 也就是在server4上面搭建乙個web伺服器 檢測一下 curl localhost 步驟三 在server1 伺...