计算机网络体系结构课程设计.docx
《计算机网络体系结构课程设计.docx》由会员分享,可在线阅读,更多相关《计算机网络体系结构课程设计.docx(15页珍藏版)》请在冰点文库上搜索。
计算机网络体系结构课程设计
*******************
实践教学
*******************
安徽农业大学
信息与计算机学院
2012年秋季学期
网络体系结构综合训练课程设计
题目:
基于squid和apache的正反向
代理流量分析及其代理服务器监测
专业班级:
10网络工程
(2)班
姓名:
周云扬
学号:
10168134
指导教师:
李旸
成绩:
目录
一.设计目的................................………………………………………...………….....1
一.设计内容和要求............................………………………………...……...….….....1
三.本设计所采用的环境或拓扑结构
3.1环境搭建及其配置1
3.2正向代理2
3.3反向代理2
四.功能模块详细设计
4.1个人的分工情况3
4.2详细设计思想
4.2.1正向代理数据流量分析4
4.2.2反向代理服务器相关介绍6
4.2.3基于snmp协议的代理服务器监测7
4.3总结与收获10
五.参考文献………………………………………...…………...................................11
1设计目的
通过对squid和apache搭建的代理服务器的数据流量分析了解代理服务器的工作原理。
服务器采用的监控软件是Cacti,它是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。
该设计中采用的是科来网络分析系统,它能够对网络中所有传输的数据进行监控、分析、诊断。
通过此设计,使大家对正反向代理的工作原理有所掌握,同时也希望大家会对网络数据进行分析以及网络设备的监测,对于未来从事雨网络管理方向的同学有一定的帮助。
2.设计内容和要求
主要内容包括在对因特网结构、因特网工作原理和常用应用层协议、可靠数据传送原理、TCP拥塞控制和流量控制、路由器、路由选择算法和IP协议、以太网的协议分析、TCP协议与拥塞控制、IP协议与选路、ARP原理、集线器与交换机等原理理解的基础上,在宿舍网或家庭网环境下实现1、对计算机网络网络分析环境建设;2、网络中的异常流量分析;3、对网络中存在P2P应用主机的分析;4、网络总体运行情况分析并进行分析总结;5、提出解决方法与建议并完成分析报告。
3.本设计所采用的环境或拓扑结构
3.1环境搭建及其配置
代理服务器和监控平台分别安装在不同的服务器上,因此可以使用xenserver虚拟机来在同一台机器上虚拟出三台机器,分别用于正向代理(210.45.191.3),反向代理(210.45.176.47)和监控平台(210.45.176.19),采用的系统为Centos5.5.其中所使用的软件如下表所示。
使用软件
作用描述
地址
Xenserver6.1操作系统
宿主机,用于虚拟出三台主机
210.45.191.2
Centos5.5操作系统
软件安装平台
/
Squid
正向代理服务器
210.45.191.3:
81
Apache
反向代理服务器
210.45.176.47
Cacti
监控平台
210.45.176.19
科来网络分析系统
网络数据分析
/
Windowsxp操作系统
用户
114.213.151.22
Windows7操作系统
用户
3.2正向代理
客户端无法直接访问外部的web,需要在客户端所在的网络内架设一台代理服务器,客户端通过代理服务器访问外部的web(需要在客户端的浏览器中设置代理服务器)
适用于:
①局域网的代理服务器(一般是网关,相当于squid的一般用法)
②访问某个受限网络的代理服务器,如教育网访问某些国外网站需要找代理
3.3反向代理
客户端能访问外部的web,但是不能访问目标web,目标web所在的网络内一台机器充当目标web的代理,客户端直接访问代理就像访问目标web一样(此代理对客户端透明,即客户端不用做如何设置,并不知道实际访问的只是代理而已,以为就是访问的目标)
适用于:
①idc的某台目标机器只对内开放web,外部的客户端要访问,就让另一台机器做proxy,外部直接访问proxy即相当于访问目标
②idc的目标机器的某个特殊的web服务跑在非正常端口如9000,而防火墙上只对外开放了80,此时可在80上做proxy映射到9000,外部访问80即相当于9000
拓扑图如下
4.功能模块详细设计
4.1个人的分工情况
(1)整体方案设计及其它(周云扬学号:
10168134)
(2)正向代理流量分析(冯坤元学号:
10168176)
(3)环境搭建及其配置(戴杰清学号:
09068119)
(4)Cacti的相关介绍(钱宇学号:
10168190)
(5)反向代理相关资料(孙古乐学号:
10168153)
(6)PPT制作(方圆学号:
10168148)
4.2详细设计思想
4.2.1正向代理数据流量分析
在安装配置好squid代理服务器之后,打开IE浏览器,设置连接为代理服务器的ip地址和端口,210.45.191.3:
81。
设置好代理之后,打开科来网络分析系统软件,点击右下角的’开始’按钮之后,在浏览器里输入安农大主页,然后查看科来软件的模块分析数据,首先看到的是矩阵分析模块,我们可以看到本机与代理服务器之间的会话
由于代理服务器的端口是81号端口,所以访问安徽农业大学首页的web请求都是发到代理服务器(210.45.191.3.81)这边的,我们来看看与此同时代理服务器的端口状况:
远程登录linix主机
以下为代理主机与本机进行的会话
下图为代理主机访问请求访问安农大首页
从代理服务器抓取安农大首页的过程中我们可以看到会话后面有个TIME_WAIT,说明代理服务器抓取安农首页是需要一定时间的,而这个时间特别的短,给我们的感觉是很迅速的。
我们再看一下科来软件的诊断报告,从下面的图我们可以看到它的诊断是TCP慢应答还有重复的连接,从侧面反映出该代理服务器的性能不佳(虚拟机)。
通过ping测试我们发现安农大的首页所在的主机ip地址就是正与代理主机进行会话的ip地址210.45.176.3
下面来看一下http请求报文内容
从右图我们可以看出代理服务器建立连接的状态:
Keep—Alive,而且是向210.45.191.3主机请求这个web页面。
再来看看网络这个过程中ARP协议的作用,下图中的114.213.151.126是114.213.151.0/25这个子网的默认网关,说明此时网关响应了本地主机的询问。
4.2.2反向代理服务器
校内有些内网资源是不可以访问的,一种方法是通过VPN,还有一种方案是通过反向代理服务器访问。
反向代理(ReverseProxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
编辑摘要
代理服务器是使用非常普遍的一种将局域网主机联入互联网的一种方式,使用代理上网可以节约紧缺的IP地址资源,而且可以阻断外部主机对内部主机的访问,使内部网主机免受外部网主机的攻击。
但是,如果想让互联网上的主机访问内部网的主机资源(例如:
Web站点),又想使内部网主机免受外部网主机攻击,一般的代理服务是不能实现的,需要使用反向代理来实现。
我们这儿使用的apache作的反向代理软件,待apache安装好之后,修改apache服务器安装目录下conf/httpd.conf文件,将配置文件中以下四行注释去掉(去掉#)
LoadModuleproxy_modulemodules/mod_proxy.so
LoadModuleproxy_http_modulemodules/mod_proxy_http.so
LoadModuleproxy_connect_modulemodules/mod_proxy_connect.so
Includeconf/extra/httpd-vhosts.conf
修改apache服务器安装目录下conf/extra/httpd-vhosts.conf文件,建立一个虚拟主机,将对该地址的所有访问转向80端口。
首先修改配置文件中NameVirtualHost值为*:
80
80>
ProxyPreserveHostOn
ProxyPass/
ProxyPassReverse/
其中,“PrysyPass”指令允许将一个远端服务器映射到本地服务器的URL空间中,此时本地服务器并不充当代理角色,而是充当远程服务器的一个镜像。
例如输入本地访问地址http:
//
将会导致对http:
//的本地请求将会在内部转换为一个代理请求。
反向代理服务器的的流量分析这里不再赘述,和正向代理分析过程差不多。
以下是反向代理服务器的工作流程
1)用户通过域名发出访问web服务器的请求,该域名被DNS服务器解析为反向代理服务器的IP地址;
2)反向代理服务器接受用户的请求;
3)反向代理服务器在本地缓存中查找请求的内容,找到后直接把内容发送给用户;
4)如果本地缓存里没有用户所请求的信息内容,反向代理服务器会代替用户向源服务器请求同样的信息内容,并把信息内容发给用户,如果信息内容是缓存的还会把它保存到缓存中。
反向代理的好处:
1)解决了网站服务器对外可见的问题;
2)节约了有限的IP地址资源,企业内所有的网站共享一个在internet中注册的IP地址,这些服务器分配私有地址,采用虚拟主机的方式对外提供服务;
3)保护了真实的web服务器,web服务器对外不可见,外网只能看到反向代理服务器,而反向代理服务器上并没有真实数据,因此,保证了web服务器的资源安全;
4)加速了对网站访问速度,减轻web服务器的负担,反向代理具有缓存网页的功能,如果用户需要的内容在缓存中,则可以直接从代理服务其中获取,减轻了web服务器的负荷,同时也加快了用户的访问速度。
4.2.3基于snmp协议的代理服务器监测
注:
因Linux主机安装snmp协议较麻烦,这里以校园网中实际运行的网络设备来探讨(交换机,路由器)
我们在这里使用的开源软件Cacti,它是通过snmpget来获取数据,使用RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。
它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。
界面友好。
软件Cacti的发展是基于让RRDTool使用者更方便使用该软件,除了基本的Snmp流量跟系统资讯监控外,Cacti也可外挂Scripts及加上Templates来作出各式各样的监控图。
cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。
因此,snmp和rrdtool是cacti的关键。
Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:
主机名、主机ip、snmp团体名、端口号、模板信息等变量。
在Cacti安装完成后,第一次进去之后会有提示,按其步骤可以添加待监测的网络设备或服务器。
下图为已经添加好的校园网分布在各楼宇的交换机某时刻的状态截图,其中绿色图标的表示为当前状态正常,红色的表示其网络设备已宕机。
这个对网络管理员来说是非常有用的。
我们不可能时刻都登陆cacti的后台查看交换机信息,这里我们想到了调用飞信接口来配合cacti的监测。
Cacti每间隔一段时间通过snmp协议监测已添加的主机状态,经过研究发现在Cacti数据库中,host表记录着交换机的相关信息,如状态(status),最近宕机时间(status_fail_date),最近恢复正常时间(status_rec_date)。
要实现飞信监控交换机状态,交换机down了就发短信到指定的手机号上,而且宕机的交换机信息不能重复发。
思路:
判断交换机状态(宕机只发送一次信息),是否发送短信。
在host表中添加交换机当前状态(status_now)和默认交换机状态(status_default)两列,其默认值都为1表示正常,用于与上一次交换机状态比对从而不重复发短信。
上为测试时本机的snmp协议关闭时的截图。
以上只是Cacti监测网络设备状态的一个功能,它更强大的是它可以将数字转化成图表还有流量监测。
下面两幅图片分别是校园网计费服务器某时刻的在线用户数(6000人)和宿舍网核心交换机RG—S6506的CPU利用率。
通过Cacti我们可以监测某个设备某时刻的流量,下图是校园网某时刻的出口路由流量图和出口线路利用率。
博学楼一层某时刻接入交换机的流量:
4.3总结与收获
通过本次的课程设计,经过对代理服务器的数据流量进行分析,我们对代理服务器的工作原理有所了解。
其功能就是代理网络用户去取得网络信息。
形象地说,它是网络信息的中转站。
在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,需送出请求信号来得到回答,然后对方再把信息以数据流方式传送回来。
代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,请求信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给终端用户的浏览器。
其次我们学会了使用科来网络分析系统来对网络中所有传输的数据进行检测、分析、诊断,把平时所做的实验应用到实际当中。
同时,我们还对监控软件Catci有所了解,有了它的全面监控,对于网管员来说是一个非常有利的助手工具。
本次课程设计的大部分都来自于实际,大家可以任选一个方向继续进行深入研究。
5.参考文献
[1]梁峰.代理服务器及NAT网关检测技术的研究[D].山东大学2009
[2]翁冠男,王慧强.WWW代理服务器的研究与实现[J].计算机工程.2000(07)
[3]孙元军,童磊.MRTG在校园网中的应用[J].电脑知识与技术.2006(20)
[4]刘万顺.试析反向代理服务器在高校校园网络中的应用[J].湖北警官学院学报.2005(05)
[5]兰建明,陈行益.构建基于SNMP的智能网网管系统[A].第六届全国计算机应用联合学术会议论文集[C].2002