码迷,mamicode.com
首页 > 其他好文 > 详细

期末作业验收

时间:2018-01-26 00:36:24      阅读:314      评论:0      收藏:0      [点我收藏+]

标签:搭建   抓包   code   超时   时间   stream   oge   http   logger   

期末作业验收

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的理论知识也是比较缺乏的。

期末作业验收

标签:搭建   抓包   code   超时   时间   stream   oge   http   logger   

原文地址:https://www.cnblogs.com/karen-m/p/8353671.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!