期末做業驗收

期末做業驗收

一、負載均衡程序

負載均衡程序github連接python

二、演示視頻

負載均衡演示視頻github連接ios

三、程序分工


負載均衡場景三:

內容:

該拓撲是數據中心拓撲的一部分,其中h1是數據中心外的一臺客戶機,h2-h5是數據中心內的服務器,請根據該拓撲實現一個負載均衡的北向程序,實現h1訪問數據中心中四臺服務器時能根據鏈路情況動態改變路徑。git

構思和設計

首先設置一個閾值,而且預先記錄全部能夠走的路徑,每隔一段時間就計算每一個底層交換機的每秒的處理速率(數據包/秒),若是速率超過了閾值就全部通過這個交換機的路徑就不走了,實現負載均衡。每次都去監聽,若是發現超過閾值就不走了,變動路徑,實時變動。github

實踐步驟描述

-啓動mininet拓撲
-設置流量初始默認轉發路徑
-啓動控制器,設置閾值及查詢時間間隔
-令主機h1發送高速率流量,觀察可知交換機過載,動態變動轉發路徑
-令主機h1發送低速率流量,觀察可知交換機不過載,路徑不變動
-啓動端口嗅探器,驗證轉發路徑變動;服務器端口數據變化,代表控制器實時變動路徑編程


組內分工:

成員 分工
陳翔 P4程序實現
張昭錫 交換機控制規則的編寫
鍾夢真 Demo環境搭建
孫浩楷 控制器編寫
胡武成 文檔與視頻製做

參與狀況:

主要是負責Demo環境的搭建,安裝步驟以下:ubuntu

安裝deps(安裝依賴):vim

#!/usr/bin/env bash

# Fail on error
set -e

sudo apt-get update

# Install vim and git
sudo apt-get install vim git

# Install  mininet from source codes
git clone https://github.com/mininet/mininet.git
cd mininet/
sudo ./util/install.sh -a

安裝bmv2:bash

#!/usr/bin/env bash

# Fail on error
set -e

sudo git clone https://github.com/p4lang/behavioral-model.git
sudo mv behavioral-model bmv2
cd bmv2
sudo ./install_deps.sh
sudo ./autogen.sh && ./configure --disable-logging-macros --disable-elogger && make && sudo make install

安裝p4c-bm服務器

#!/usr/bin/env bash

# Fail on error
set -e

sudo apt-get install python-pip
git clone https://github.com/p4lang/p4c-bm.git
cd p4c-bm
sudo pip install -r requirements.txt && sudo pip install -r requirements_v1_1.txt
sudo python setup.py install

安裝p4c架構

#!/usr/bin/env bash

# Fail on error
set -e

# Ubuntu 16.04 Requirements

sudo apt-get install g++ git automake libtool libgc-dev bison flex libfl-dev libgmp-dev libboost-dev libboost-iostreams-dev libboost-graph-dev pkg-config python python-scapy python-ipaddr tcpdump cmake
sudo apt-get install -y doxygen graphviz texlive-full

# Install Protobuf

sudo apt-get install autoconf automake libtool curl make g++ unzip
git clone https://github.com/google/protobuf.git
cd protobuf
sudo ./autogen.sh && sudo ./configure && make && make check
sudo make install && sudo ldconfig
cd ..

# Install gcc/g++ 4.9
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9
sudo apt-get install g++-4.9
ln -s /usr/bin/g++-4.9 /usr/bin/g++ -f
ln -s /usr/bin/gcc-4.9 /usr/bin/gcc -f

# Install cmake 3.2
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:george-edison55/cmake-3.x
sudo apt-get update
sudo apt-get install cmake

# Install P4C
git clone --recursive https://github.com/p4lang/p4c.git
cd p4c
mkdir build
cd build
cmake ..
make -j4 && make -j4 check
sudo make install

課程總結


回顧學習過程

(注:詳細的知識點都在博客裏,不一一展開)
一、瞭解SDN。SDN就是將可編程的決策平面(即控制層)從數據平面分離,使控制平面邏輯中心化與自動化。SDN相關的組織ONF等,SDN的將來工做和應用領域,協議:Openflow和SDN架構等有關的一些基礎知識瞭解(詳細知識在博客中)。

二、安裝mininet。用python、可視化、字符命令等來建立拓撲,pingall,net等查看拓撲。安裝flowflood控制器而且利用floodlight查看拓撲圖,用字符界面下發、查看流表,驗證openflow的超時機制等。

三、利用OVS命令下發流表,查看流表,實現VLAN功能。學習ODL控制器的下發流表,查看流表等。並利用ODL流表、組表實現負載均衡。抓包分析。

四、學習P4語言和負載均衡,小組一塊兒討論合做最終實現了負載均衡的。

課程心得

一、負載均衡是個大頭,小組一塊兒分工找資料,而後找論文、資料,也大概對負載均衡有個大概的瞭解和理解。而後一塊兒作小組的結隊做業,實現負載均衡程序。 二、在學的過程也碰到過蠻多問題的,好比中途虛擬機出問題,重現所有安裝過,wireshark抓包失敗(問過學長至今還沒弄明白爲啥),每次實驗都會遇到不一樣的問題,由於平臺或者機子或者別的各類問題,可是在學長們幫助下大部分都被解決了,每次作完實驗後我都會在博客上記錄本身犯的錯誤這樣仍是挺好的。 三、整個的學習過程,以爲時間太過倉促。大三課程比較多,並且下半學期也是比較多事情,因此真正花在SDN上的時間仍是頗有限。因此不少都是比較囫圇吞棗,不少時候缺乏思考和深刻。並且對於SDN的理論知識也是比較缺少的。

相關文章
相關標籤/搜索