期末做业验收

期末做业验收

一、负载均衡程序

负载均衡程序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的理论知识也是比较缺少的。

相关文章
相关标签/搜索