期末作业验收

期末作业验收#

1、负载均衡程序##

负载均衡程序github链接

2、演示视频##

负载均衡演示视频github链接

3、程序分工##


负载均衡场景三:###

内容:

该拓扑是数据中心拓扑的一部分,其中h1是数据中心外的一台客户机,h2-h5是数据中心内的服务器,请根据该拓扑实现一个负载均衡的北向程序,实现h1访问数据中心中四台服务器时能根据链路状况动态改变路径。

构思和设计

首先设置一个阈值,并且预先记录所有可以走的路径,每隔一段时间就计算每个底层交换机的每秒的处理速率(数据包/秒),如果速率超过了阈值就所有经过这个交换机的路径就不走了,实现负载均衡。每次都去监听,如果发现超过阈值就不走了,变更路径,实时变更。

实践步骤描述

-启动mininet拓扑
-设置流量初始默认转发路径
-启动控制器,设置阈值及查询时间间隔
-令主机h1发送高速率流量,观察可知交换机过载,动态变更转发路径
-令主机h1发送低速率流量,观察可知交换机不过载,路径不变更
-启动端口嗅探器,验证转发路径变更;服务器端口数据变化,表明控制器实时变更路径


组内分工:###

成员 分工
陈翔 P4程序实现
张昭锡 交换机控制规则的编写
钟梦真 Demo环境搭建
孙浩楷 控制器编写
胡武成 文档与视频制作

参与情况:##

主要是负责Demo环境的搭建,安装步骤如下:

安装deps(安装依赖):

#!/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:

#!/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


课程总结#


回顾学习过程

(注:详细的知识点都在博客里,不一一展开)
1、了解SDN。SDN就是将可编程的决策平面(即控制层)从数据平面分离,使控制平面逻辑中心化与自动化。SDN相关的组织ONF等,SDN的未来工作和应用领域,协议:Openflow和SDN架构等有关的一些基础知识了解(详细知识在博客中)。

2、安装mininet。用python、可视化、字符命令等来创建拓扑,pingall,net等查看拓扑。安装flowflood控制器并且利用floodlight查看拓扑图,用字符界面下发、查看流表,验证openflow的超时机制等。

3、利用OVS命令下发流表,查看流表,实现VLAN功能。学习ODL控制器的下发流表,查看流表等。并利用ODL流表、组表实现负载均衡。抓包分析。

4、学习P4语言和负载均衡,小组一起讨论合作最终实现了负载均衡的。

课程心得

1、负载均衡是个大头,小组一起分工找资料,然后找论文、资料,也大概对负载均衡有个大概的了解和理解。然后一起做小组的结队作业,实现负载均衡程序。
2、在学的过程也碰到过蛮多问题的,比如中途虚拟机出问题,重现全部安装过,wireshark抓包失败(问过学长至今还没弄明白为啥),每次实验都会遇到不同的问题,因为平台或者机子或者别的各种问题,但是在学长们帮助下大部分都被解决了,每次做完实验后我都会在博客上记录自己犯的错误这样还是挺好的。
3、整个的学习过程,觉得时间太过仓促。大三课程比较多,而且下半学期也是比较多事情,所以真正花在SDN上的时间还是很有限。所以很多都是比较囫囵吞枣,很多时候缺少思考和深入。而且对于SDN的理论知识也是比较缺乏的。

posted @ 2018-01-25 23:23  Karen_m  阅读(262)  评论(0编辑  收藏  举报