基于网络功能虚拟化的校园网接入及其负载均衡
2021-06-15李轶
李轶
摘 要:随着校园网接入方式由传统静态IP向宽带远程接入服务(BRAS)的迁移,通过实施基于MacVlan的网络功能虚拟化(NFV)技术应用,实现了在实验室环境下多PPPoE连接的校园网接入;并配合以策略路由技术,达成了多PPPoE出口的均衡负载。其不仅为师生提供了无缝的网络访问体验,同时还达到了带宽叠加的效果,有效提高了网络服务质量。
关键词:宽带远程接入服务器 网络功能虚拟化 MacVlan 策略路由
中图分类号:TP393.1 文献标识码:A 文章编号:1674-098X(2021)01(a)-0094-08
Abstract:With the migration of campus network access mode from traditional static IP to broadband remote access service (BRAS), by applying MacVlan based network function virtualization technology, a multiple PPPoE connected campus network access is implemented in BRAS environment. Aided with policy-based routing technology, network load-balancing is implemented among these PPPoE exports. It not only provides users with a seamless network access experience, but also realized bandwidth superposition and load-balancing, which improved network service quality effectively.
Key Words:Broadband remote access server; Network function virtualization; MacVlan; Policy-based routing
传统上,校园网用户是以静态IP的方式接入校园网。近年来,随着园区网接入技术的发展。各个大型机构、企业及大学院校纷纷采用了基于BRAS(Broadband Remote Access Server,即:宽带远程接入服务器)的接入方式。而在BRAS环境下,用户若要接入校园网,需要手动建立一个PPPoE拨号连接,并完成相应的用户名和密码认证,而后再由BRAS分配IP地址并接入校園网。因此,在接入方式发送改变后,如何在实验室环境下为师生提供一个无缝的校园网服务,并在此基础上充分利用网络的物理带宽,为师生提供较好的网络服务质量,成为需要解决的问题。
1 BRAS与PPPoE协议
BRAS(Broadband Remote Access Server)又称为宽带远程接入服务器[1]是面向宽带网络应用的新型接入网关。它位于骨干网的边缘层,是宽带接入网与骨干网之间的桥梁。BRAS主要完成两方面功能:一是网络承载功能,其负责响应用户的PPPoE连接,汇聚用户流量以及路由转发;二是控制实现功能,其与认证系统、计费系统和客户管理系统及服务策略控制系统相配合,实现用户接入的认证、计费和管理。
PPPoE(Point-to-Point Protocol Over Ethernet)[2-3],又称为以太网上的点对点协议。该协议是一种将PPP协议(Point-to-Point Protocol)封装在以太网帧中的一种网络隧道协议。由于该协议中集成了PPP协议,所以提供了传统以太网不能提供的身份验证、加密以及压缩等功能。因此,其最常被应用于终端用户的接入中。比如,在采用BRAS技术的校园网和园区网的用户接入中。由于该协议已经是一个成熟,且被应用已久的技术。因此,本文只做简要介绍,不再赘述。
2 网络功能虚拟化与MacVlan
2.1 网络功能虚拟化
网络功能虚拟化(Network Function Virtualization,简称NFV)[4]是近年来兴起的一种新兴技术,其是指利用虚拟化技术,将不同的功能网络节点以软件方式实现,而不再局限于硬件架构。它将以往由硬件实现的网络功能(如路由器、防火墙、CDN等)转而使用软件实现,并部署到网络服务器上,从而降低采购和维护成本,提高生产效率。
2.2 MacVlan
作为网络功能虚拟化的具体技术之一,MacVlan[5]是Linux系统内核(Linux kernel v3.09—v3.19 及 v4.0以上)提供的一种网卡虚拟化技术。它能够在一块物理网卡上构造出多块虚拟网卡,且每块虚拟网卡都具有独立的MAC地址。在用户看来,就如同多块真实的物理网卡。MacVlan有四种操作模式[6],分别是:私有(Private)、虚拟端口聚合(VEPA)、桥接(Bridge)模式和直通(Passthru)。在Private模式下,虚拟网卡之间不可相互通信;在VEPA模式下,虚拟网卡间的通信依赖于外部的交换机,且交换机需要支持802.1Qbg边缘虚拟网桥协议;Bridge模式与VEPA模式相同,只不过MacVlan本身就提供了虚拟网桥,而无需外部交换机支持;在Passthru模式下,虚拟网卡将直接与外部网络连接,且初始具有物理网卡的MAC地址,用户可根据需要变更其MAC地址,也可将其置于杂收(promiscuous)模式。
2.3 结合MacVlan与PPPoE
通常,为保证服务质量网管机构都会对每条接入的PPPoE链路,配置一定的流量及带宽控制策略。为充分利用网络物理带宽,可考虑运用MacVlan网络虚拟化技术,创建多块虚拟以太网卡;然后将其作为PPPoE的拨号设备,这样就得到了多条PPPoE链路,进而还可将网络流量分摊到这些链路上,从而达到带宽叠加及负载均衡的目的。
3 案例实践
3.1 案例拓扑
本案例的网络拓扑结构如图1所示。其中,交换机B为实验楼楼层核心交换机,交换机A为校园网接入交换机。二者之间,挂接了一台双网卡服务器作为网关,其内网网卡eth0(IP地址为:192.168.1.253/30)与交换机B的Fa0/23号三层端口连接(IP地址为:192.168.1.254/30);外网网卡eth1与交换机A连接,用于实现到校园网的PPPoE拨号连接。
楼层核心交换机B共划分了5个VLAN,分别对应实验室1到实验室4和服务器区。其VLAN ID及本地IP分配如表1所示。
3.2 创建MacVlan虚拟网卡
本案例中,采用一台运行CentOS7.0的部门级服务器作为PPPoE网关。在此环境下,可使用“ip link”命令创建MacVlan的虚拟网卡。其命令格式为:ip link add <虚拟网卡设备名> link <物理网卡设备名> type macvlan mode
其中MacVlan的模式“mode”可以是Private、VEPA、Passthru、bridge四种之一。在本案例中,根据实际需要选择了“bridge”模式。
创建的虚拟网卡可通过不带参数的ip link命令查看。如图2所示,本案例中共创建了四块虚拟网卡,其设备名分别为:macvlan1、macvlan2、macvlan3和macvlan4。
3.3 创建多个基于虚拟网卡的PPPoE连接
在虚拟网卡创建好后,还要针对每块虚拟网卡,创建对应的PPPoE拨号配置文件,设置拨号用户和密码。其具体格式和配置过程可参考相关手册,因此不在此赘述。在正确配置拨号配置文件后,就可通过ifup 命令拨号,在用户认证成功后,PPPoE网关服务器将获得对应的校园网IP地址。本例中获得的4个校园网IP地址如图3所示(出于地址安全原因,图中已将IP地址的前24位隐去)。
3.4 配置策略路由
为实现均衡负载,需要一定的负载策略。基于多路由表的策略路由[7],是一种灵活而简单的分配方法。
(1)配置交换机B的默认路由。
交换机B是本案例中的楼层核心交换机,其各个VLan间属于直连网络,无需单独配置路由,需要进行配置的是其默認路由。也正是由于默认路由的存在,楼内用户才可访问外部网络。在本案例中,需要将交换机B的默认路由指向PPPoE网关服务器,即默认路由下一跳地址为:192.168.1.253/30。具体的交换机配置命令,因各种设备差异格式各有不同,可查阅相关手册,因此不在此赘述。
(2)配置PPPoE网关服务器的本地路由。
除配置楼层核心交换机的默认路由外,还要为PPPoE网关服务器的主路由表(名称为“main”,表号为254)添加本地网络间的路由。配置本地路由的目的,是为了让其能在之后的NAT过程中,正确地将来自外网的IP包转发到不同内网中。如表2中所示,前往本地的不同网络,其下一跳地址为192.168.1.254/30;即楼层核心交换机(交换机B)的Fa0/23号三层端口的IP地址。
(3)配置PPPoE网关服务器的策略路由表。
配置策略路由的第一步,是要创建多张路由表以对应不同的策略路由规则。在本案例中,需要将流量分担到4条PPPoE链路上,因此需要创建4张具有默认路由的路由表。可使用ip route命令创建路由表,具体参数和格式不在此赘述。本案例中,创建的四张策略路由表表号分别为:10,11,12,13;其默认路由出口,分别为ppp0、ppp1、ppp2、ppp3(如表3所示)。
(4)创建策略路由规则。
策略路由的最后一步,是定义策略规则。路由策略的依据灵活多变,可按照IP包的源地址、目的地址、端口号、协议或报文长度等信息来制定策略进行IP包的转发。在本案例中,将依据IP包的源地址制定路由策略规则。其具体规则如表4所示。
可使用ip rule命令创建策略规则,其具体参数及格式不在此赘述。依据内网源地址的类别数量,本例中共创建了4条规则,规则号从100到103(如图5所示)。
(5)定义NAT规则。
在策略路由配置完成后,还有最后一个步骤,即:配置NAT(Network Address Translation)网络地址转换[8]。这是因为,当来自楼层内网的某个IP包依据路由策略规则经由网关转发时,其IP包源地址仍旧为楼内私有地址,这样的IP包是无法在校园网及公网上传输的。因此,内网的IP包在最后交付校园网前,还需要进行NAT地址转换。被路由分配给某一PPPoE出口的IP包,其源地址要被转换为该出口对应的外部IP地址。
使用iptables命令定义NAT规则。其具体命令格式为:
iptables -t nat -A POSTROUTING -o <转发设备名> -j SNAT --to-source <外部ip地址>
其中,“转发设备名”就是拨号之后得到的PPPoE连接名,如:ppp0,ppp1等。“外部ip地址”就是该PPPoE连接具有的校园网IP地址。
以上全部五个步骤,在实际运用中可通过bash脚本实现,以便于维护和管理。其具体编写过程,则不在此赘述。
3.5 性能测试及结果分析
为验证上述配置是否起到了流量分摊及均衡负载的作用,需要进行有效的性能测试及结果分析。
3.5.1 测试目标
由于Web服务是当前互联网的主要服务形式,因此以Web站点的首页响应时间作为主要的测试指标依据。具体指标包括:(1)Web首页的平均响应时间;(2)Web首页响应时间的用户百分比分布;(3)平均网络吞吐率。
3.5.2 测试方案
测试采用HP LoadRunner 8.0[9,10,11]作为测试工具;为使测试更具有真实性和一般性,选取了一定数量的国内主流门户站点作为目标集合。在测试运行时,每个Vuser的每次Web请求将从目标集合中随机选择一个。测试分为四个等级,分别模拟每个实验室在25、50、75和100并发请求(本案例中共四个实验室,故并發请求总数分别为:100、200、300、400)下的负载情况。
作为对比,测试分为两个步骤。首先,在单条PPPoE连接下的情况下,分别测试四个并发等级下的测试目标;然后,在4条PPPoE连接及配置了均衡负载的情况下,再次测试四个并发等级下的测试指标。
3.5.3 结果分析
(1)Web首页平均响应时间。
如表5所示,当并发用户数在200及以下时,单PPPoE连接与4PPPoE连接间差异不大,平均响应时间均在2秒左右;但当并发用户达到300及以上时,单连接与多连接的差异明显,单连接的平均响应时间达到5s以上,而4连接的平均响应时间仍旧保持在2s左右。
(2)Web首页响应时间的百分比分布。
如下所示,图5~8分别展示了在100、200、300和400并发请求下Web首页响应时间的百分比分布。可以发现,在100并发请求下,单连接和4连接的差异并不明显,二者90%请求的响应时间均在3s以下;在200并发请求下,二者之间出现明显差异,单连接下90%请求的响应时间已经近乎5s,而4连接下90%请求的响应时间仍保持在3s以下;在300并发请求下,二者差距进一步拉大。单连接90%请求的响应时间已经达到10s以上,而4连接下90%请求的响应时间则只在5s以下;在400并发请求下,二者差距显著,单连接下90%请求的响应时间达到了11s以上,而4连接下90%请求的响应时间则继续保持在5s以下。
(3)平均网络吞吐率。
如图9所示,在不同并发数请求下,单连接和4连接在平均网络吞吐率的提升上也有明显差异。随着并发数的增加,单连接平均网络吞吐率从253kbyte/s,提高到479kbytes/s;而4连接的平均网络吞吐率从327kbyte/s,提高到1150kbytes/s。可以看到,4连接下的平均网络吞吐率提升非常显著。
从测试结果的分析来看,在高并发请求负载下,使用多条PPPoE连接能有效保障Web请求响应时间,显著提升网络吞吐率。在提供无缝网络接入的同时,也提高了网络带宽的利用率,改善了用户浏览体验,达到了带宽叠加和负载均衡的目的。
4 结语
综上,通过MacVlan虚拟化技术的应用,实现了BRAS环境下的多PPPoE链路校园网接入。其不仅为用户提供了无缝的网络访问体验,同时还实现了带宽叠加及负载均衡,有效提高了网络服务质量。此外,本案例只是一个简单的技术验证性案例。在实际应用中,还可依据网关服务器的硬件水平和网络带宽容量,进一步增加虚拟网卡及PPPoE连接的数量,并配合以不同的负载均衡策略,以期获得更大的网络性能提升。
参考文献
[1] 王怀滨,王延松.BRAS SDN&NFV的演进思路[J].中兴通讯技术,2017,23(4):60-62.
[2] 冯振.PPPoE技术在宽带城域网应用研究[J].工程技术 (引文版),2016(2):244.
[3] 萧斌.PPPOE在校园网升级改造中的应用[J].电脑知识与技术:学术交流,2017,13(3):59-60.
[4] 周伟林,杨芫,徐明伟.网络功能虚拟化技术研究综述[J].计算机研究与发展,2018,55(4):675-688.
[5] Struye J, Spinnewyn B, Spaey K, et al. Assessing the value of containers for NFVs: A detailed network performance study[C]//2017 13th International Conference on Network and Service Management (CNSM). IEEE, 2017: 1-7.
[6] Claassen J, Koning R, Grosso P. Linux containers networking: Performance and scalability of kernel modules[C]//Network Operations and Management Symposium (NOMS), 2016 IEEE/IFIP. IEEE, 2016: 713-717.
[7] 孙光懿.基于策略路由和NAT的多出口校园网仿真实验设计[J].西北民族大学学报:自然科学版,2017,38(2):14-20.
[8] 孙宇,嵩天.网络地址转换环境下的隐蔽通道构建方法[J].信息网络安全,2019(7):59-66.
[9] 李娟.基于LoadRunner的Web系统性能测试的研究和应用[J].信息技术与信息化,2019(12):226-228.
[10] Abbas R, Sultan Z, Bhatti S N. Comparative analysis of automated load testing tools: Apache jmeter, microsoft visual studio (tfs), loadrunner, siege[C]//2017 International Conference on Communication Technologies (ComTech). IEEE, 2017: 39-44.
[11] Khan R, Amjad M. Web application's performance testing using HP LoadRunner and CA Wily introscope tools[C]//2016 International Conference on Computing, Communication and Automation (ICCCA). IEEE, 2016: 802-806.