晓风博客

一片荒芜的地方

剖析校园网(以文理为例)

先说下今天到手的四本书吧,第一本是《腾云:云计算和大数据时代网络技术揭秘》,一本关于云计算的书。封面设计的十分好看,一本专业、有深度的云计算丛书配上这样一幅可爱的封面,顿时感觉云计算离我们近了好多!第二本书是《JavaScript高级程序设计(第3版)》还没有详细去看,翻了翻,印象就是大块头。700+的页数足以拍死一只蚂蚁。从目录上来看都不是很生疏,应该可以啃下。第三本书是《php和mysql web开发(原书第4版)》,被称为PHP、MySQL的圣经。其他都还好,就是纸质一般般,希望内容能适合我。最后一本就是O’Reilly的《Head First 深入浅出 Python(中文版)》了,O’Reilly的Head First系列丛书真的很好,幽默的话语、启发式的学习方式去引导你学习。感觉和很多只是阐述步骤或生硬的讲解各种规范、协议、语法的书相比人性化很多。国内很缺这样的书,希望国内各位大牛们给力给力,多出一些好书。

言归正传,说说校园网。校园网从地理范围的维度来分属于局域网。不过比我们一般的局域网大很多。从传输效率的维度上来看应该属于千兆链路级别。目测咱们学校的校园网已经快扛不住这么多人的使用了,需要增加带宽了。其实刚刚开始接触校园网感觉这玩意挺抽象的,感觉离我们似远似近。其实她并不神秘,她也是由一层一层的交换机、一些物理线路或是光纤或是普通的网线连接起来的,最后再加上各种服务器、协议、客户端,整个校园网就组成了。这里只是说说我自己的理解,如果有不对的希望各位看官能理解。说到这个,首先应该说的是校园网的总体架构了。根据我的理解,咱们学校的校网总体架构如图所示:

这一排排的服务器都能干嘛呢?其中有核心交换机、Web服务器、DHCP服务器、DNS服务器、FTP服务器、Window Share服务器、认证服务器、数据库服务器、P2P服务器等等…他们分别负责分发网络资源、对网页程序PHP、ASP、JSP等解释等、以及给客户端分配IP地址、提供文件下载、电影下载等服务。还有就是对锐捷认证做出响应并分析客户端信息同服务器端信息进行校验的认证服务器以及存储数据的数据库服务器。除此之外还有供刷饭卡的相关服务器等。正式因为这些服务器的组成,你才能打开所谓的文理影院、以及各个院系的网站(web服务器)、才能使用锐捷进行上网,以及浏览Internet等。这里着重要说的是校园网的认证机制以及其原理。

首先整个校园网分为二层准入、三层准入、以及客户端方式。事实上,客户端,也就是我们的锐捷客户端中包含了二层准入。那什么是二层准入呢?

二层准入,是根据OSI(Open System Interconnect——开放系统互联网络模型),网络行为从上到下可划分为七个层次,其中数据链路层和网络层分别是OSI模型中的第二层和第三层,网络设备在接受到一个数据包时首先处理数据包最外面的二层包头,然后再读取内层的三层包头。那么二层准入就是在数据链路层上完成的准入认证方式,三层准入则是在IP层上完成的认证。我们的校园网是根据DHCP(Dynamic Host Configuration Protocol——动态主机配置协议)进行IP地址的分发的。我们的电脑无需配置IP地址,只需要选择自动获取IP地址。那么网络中心的DHCP服务器就会给我们每个电脑分配类似10.100.*.的IP地址。那么为什么是10.100..呢?懂点网络的人都知道这属于A类IP地址,一般是大公司才能申请到的。其实不然,10..*.、172.16..至172.31..、192.168..*都属于内网IP地址。一般我们在宿舍组成的局域网都是192.168.1.但是校网里网络设备众多,所以在IP上使用了可以容纳更多电脑的10..*.IP段。这就是为什么我们的IP地址是10.100..*因为这个是校园的内网IP,不是Internet上的公网IP。而我们的公网IP是61.150.127.244或者教育网IP段218.195.112.这个才是公网IP。是Internet上都可以访问的。如果你想要在公网访问我们的10.100..*这样的内网IP,那么就需要在交换机上进行NAT映射了。扯远了,继续回到二层准入。二层准入的代表实现方式就是802.1X,802.1X是IEEE 802.1协议集的一部分,定义了EAP(Extensible Authentication Protocol——可扩展验证协议)在以太网环境中实现的方式。802.1X的认证流程可以分为以下四步:

1、端口初始化:作为认证方的接入交换机探测到有一个客户端连接到一个端口后,它会马上将这个端口置于“未授权”状态,处于“未授权”状态的端口除了802.1X报文不会转发其他任何流量,包括DHCP和HTTP流量。这就是我们没有连接锐捷的时候为什么连IP都分配不到,即使你更改了自己的IP地址为10.100.*.*仍然无法访问校园的内网设备。因为在你们宿舍的上层网络设备即学校的楼层交换机里你的端口被802.1X协议设置为“未授权”状态。

2、EAP初始化:交换机定时向一个二层广播地址发出EAP请求信令,开启了802.1X功能的客户端在连上交换机后会保持侦听发往这个二层地址的信号,一旦捕捉到交换机发出的EAP请求,客户端便马上回复一个包含自己ID的EAP应答。交换机收到应答后会通知后台的认证服务器,告诉它有一个心的客户端需要进行EAP认证。

3、EAP协商,EAP认证成功后,双方握手,然后保持某种默契的通信。当通信不“默契”的时候就断开认证。

4、用户身份认证:当客户端和认证服务器约定了一种EAP方式后,客户端就可以同交换机开始真正的验证过程。代表用户身份的信息被发送给交换机,交换机又将这个信息转发给认证服务器。根据认证服务器判断的结果,返回“认证成功”或“认证失败”。在咱们学校发送的这些信息则包括:你的学号、密码、端口绑定地址、MAC网卡地址等。

一次二层准入就这样完成了,目前的锐捷客户端便是采用了这样一种安全、可靠的二层认证来进行认证的。这种二层认证已经发展了很长时间,在而成认证之前,客户端与交换机之间不会进行IP层面的信令交互,在通过认证前,它甚至无法通过DHCP获得IP地址。因此其十分安全,深受企业的亲睐。

那么三层准入又是什么呢?由于802.1X的接入比较繁琐,可能需要客户端,同时如果有新的机器想要认证必须得调整相应的802.1X策略才能进行认证。尤其在目前多种终端(pad、Android、PC、Mac)这样的多种混合情况下,802.1X显的力不从心。于是发展处了三层认证。三层认证又称为web认证,当二层认证失败的时候系统自动进入三层认证的阶段。那么三层认证又是如何工作的呢?

1、交换机端口进入有限连接状态:在接入之前,交换机不会完全屏蔽端口,因为完全屏蔽端口后只能接受到802.1X的信令了,连DHCP、DNS等都收不到,何谈web认证?目测咱们学校的认证方式就是手动输入一个合法的内网IP段,然后打开网页进行web认证。目测学校里的交换机策略上有点小小的漏洞,在未认证之前,是可以进行UDP协议的通信的。啥玩意是通过UDP协议进行通讯的?没错,就是QQ。因此在未认证之下可以登录QQ。除此之外,还可以通过一些手段绕过这个认证。因为交换机没有完全屏蔽端口,那么你可以通过Proxy代理的方式来绕过Web认证,客户端的数据首先发送到代理服务器上。然后又代理服务器发送HTTP信息到Internet上,最后返回信息到客户端上。这样就成功的绕过了三层准入的Web认证机制了。

2、客户端触发认证流程:当设备接入有限转发后,交换机开始监听来自客户端的DHCP和ARP,听到后便记录在册,并通过周期性的对其发送ARP探针,确保其在线状态。与此同时,它还会启动一个Web认证的计时器,客户端设备必须在计时器超时前发成功通过交换机的认证,否则此次认证作废,客户端必须重新发起一个新的认证。

3、用户身份验证:当客户端发送一个HTTP请求的时候,交换机会截取这个HTTP请求并对其进行重定向,重定向到一个IP可达的web服务器上进行认证。这个认证界面包含用户名、密码之类的信息,输入后极客认证成功。就像大家使用的无线认证一样。

三层准入的优点是方便、兼容性强。但是同时也不方便,每次都要认证,同时你必须得打开一个网页来保持在线,这是因为网络侧的服务器会周期性的同这个页面交换心跳信息,如果这个页面没有响应,则服务器端则会认证用户下线,停止计费及流量。而二层准入的优点是安全性好,但是也有其他的一些不便之处,因此很多机构、企业采用混合认证接入的方式,目测咱们学校就是了。

侃了这么多,术语比较多,不知道你有木有看懂,但是我觉得真个校园网大致就是这个样子了,当然还有很多的东西,例如锐捷认证的详细剖析以及其他的一些东西没有涉及,因为时间和技术能力不足等等原因。还待以后再进行剖析了,今天就到这,晚安。