效率评估和性能对比测试
隧道传输时,原有的数据包外增加一组UDP、IP、以太网数据包头,会导致传输效率的降低。
对于1G以太网链路,不启用TIME_STAMP选项的TCP连接,以128字节的有效TCP载荷为例,在以太网传输时需要添加TCP头、IP头、以太网头、帧间隔、帧开始、尾部CRC分别20、20、14、12、8、4字节(合计78字节)后为206字节。最大有效传输速率是1000*128/206=621Mbps。
使用不加密不压缩的UDP隧道时,增加UDP头、IP头、以太网头分别8、20、14字节(合计42字节)后,在以太网传输合计206+42=248字节,最大有效传输速率是1000*128/248=516Mbps。当使用AES-128-CBC或AES-256-CBC算法加密时,有效载荷、TCP头、IP头、以太网头分别是128、20、20、14字节合计182字节需要加密,加密填充后变为192字节,增加了10字节,最终在以太网传输时合计为258字节,最大有效传输速率是1000*128/258=496Mbps。
为了测试有效传输速率,按照图2搭建了效率评估测试环境。4台虚拟机(VMware虚拟机VPN1和VPN2的网卡eth1连接的网络需修改安全选项允许修改源地址)通过1G线路互连。每台虚拟机有4个IntelE5-2640v2@2.00GHzCPU核心,安装CentOS6.9系统,测试用的iperf版本为2.0.5。VPN1和VPN2上运行EthUDP程序,分别使用不加密、AES-128-CBC加密和AES-256-CBC加密方式,在192.168.1.1上执行iperf-s作为服务器端,在192.168.1.2上执行iperf-c192.168.1.1-t10-m-MMSS(其中MSS依次使用128、256、512、1024等值)测试有效传输速率。每个MSS值测试5次取平均值,测试的结果如图3所示(其中测试速率是直接在VPN1和VPN2之间直接通信的速率)。


测试结果表明:不做任何隧道时MSS256字节逐步接近理论最大速率;不加密的隧道时MSS512字节逐步接近理论最大值,而无论是AES-128-CBC或AES-256-CBC加密时MSS1024字节才逐步接近理论最大速率。
为了与Vtun、Tinc等可以实现类功能的程序对比测试,按照图4搭建了测试环境。其中VPN1位于合肥,VPN2位于上海,两者之间通过1G的以太网线路互连,ping延迟10ms。

4台虚拟机通过1G线路互连,虚拟机的配置与上述测试相同,其中192.168.1.1和192.168.1.2的内核升级到4.11.6并启用TCPBBR拥塞控制算法。在VPN1和VPN2之间分别运行EthUDP、VTun和Tinc不压缩不加密、仅启用压缩、同时启用压缩和加密三种模式,使用iperf测试从192.168.1.2向192.168.1.1的实际传输速率。
测试时共使用四种数据负载:第一种是iperf默认的数据负载(字符序列0-9的重复);第二种是长度为408MB的CentOS6.9x86_64最小系统安装光盘镜像文件centos.iso;第三种是下载news.sina.com.cn和news.163.com页面镜像文件复制若干份后用tar打包成417MB的icp.tar文件;第四种是从https://cs.fit.edu/~mmahoney/compression/textdata.html下载enwik8.zip解压获取文件复制4份后用tar打包成382MB的enwik8.tar文件。
Vtun在启用加密功能时会出现异常中断无法完成测试过程,因此仅仅测试了不压缩不加密和仅压缩两种模式。传输速率测试结果如图5所示。测试结果表明EthUDP性能最优,Tinc性能最差。即便启用压缩和加密功能,EthUDP也可以达到700Mbps以上的带宽。而一旦启用压缩功能,Vtun和Tinc的性能急剧下降到100Mbps附近。

每次测试时记录VPN2上eth0和eth1网卡的发送和接收字节数,计算隧道传输效率(eth1接收字节/eth0发送字节,越大传输效率越高)。各种测试的传输效率对比结果如图6所示。

测试结果表明大数据包传输时,对于iperf默认负载的字符0-9序列内容,一旦启用压缩均可以实现10倍的传输效率;
对于已经充分压缩过的内容,传输效率在0.95-0.99之间;对于测试的文本内容,Vtun和Tinc可以实现1.40的传输效率,而EthUDP仅可以实现1.20的传输效率(但传输速率并未显著降低)。
应用环境和效果
EthUDP已应用在如下环境:
1.跨国互连的未来网络试验用透明以太网隧道
2013年9月,中国科学技术大学未来网络实验室使用EthUDP利用Internet通道建立透明以太网隧道与美国西北大学的iGENI网络互连,通过透明以太网隧道开展广域范围的内容中心网络(contentcentricnetworking)实验。
2.安徽省教育和科研计算机主干网备份线路
安徽省教育和科研计算机主干网中心设在合肥,连接安徽省的16个城市。从合肥至各个城市的设备间租用了运营商的1G以太网专线作为主用线路。
从合肥到各个城市间使用EthUDP利用另一个运营商的Internet通道建立的透明以太网隧道作为备用线路,可以支持主用线路上所使用的所有协议。
从2014年5月建成至今,备用线路工作正常,网络主干未出现过单线路中断引起的断网情况,大大提高了网络可用性。
3.中国科学技术大学校园网延伸至中科大上海研究院
中国科学技术大学主要校区位于安徽省合肥市,同时位于上海市浦东新区的中科大上海研究院有使用校园网的需求。
2017年6月,使用EthUDP利用1G线路和电信100MInternet线路作为主备连接建立透明以太网隧道,将位于合肥市主校区的若干VLAN直接传送到位于上海浦东的研究院。位于上海浦东的用户可以直接使用主校区VLANIP地址上网;无线AP可以直接连接主校区的AC,从而提供与主校区相同的无线网络环境,极大地方便了网络管理和用户使用。
4.兰州交通大学校园财务专网的便捷扩展
兰州交通大学校园财务系统建立有相对独立于校园网的专用局域网。在某些场景下,如距离几十公里分校区的财务系统接入、公共迎新场所的短期临时财务办公,兰州交通大学采用
EthUDP在校园网上建立透明以太网隧道的方式实现财务专网扩展。一端固定安放在财务中心,另一端随时可移动到需要扩展财务专网的位置。EthUDP通过加密传输实现专网的扩展,对财务人员使用无任何变化感知,也避免了财务软件因网络变化而对配置调整的要求,在保障学校要求财务处随时随地办公中发挥了重要作用。EthUDP使用rawsocket机制接收和发送以太网数据包,将以太网数据包经过压缩、加密后利用UDP传送,实现了一种直接在以太网层将园区网通过Internet或其他网络扩展的L2VPN功能。
通过使用多个线程处理不同方向的数据包,并使用高速的LZ4压缩算法,EthUDP相比能提供类似功能的Vtun和Tinc运行更快,在高带宽时对性能影响少。使用PING/PONG机制在主备2个UDP连接间实现自动故障发现和主备自动切换,简化了配置并能提高系统运行稳定性。EthUDP可以支持一方处于NAT环境,并且支持VLAN编号的重新映射以避免VLAN冲突,适应更加灵活的应用场景。
参考文献:
[1]Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks [EB/OL]. https://tools.ietf.org/html/rfc7348
[2]VTun - Virtual Tunnels over TCP/IP networks[EB/OL]. http://vtun.sourceforge.net/
[3]Tinc VPN[EB/OL]. https://www.tinc-vpn.org/
[4]OpenVPN - Open Source VPN[EB/OL]. https://openvpn.net/ [5]Ethernet Over UDP [EB/OL]. http://github.com/bg6cq/ethudp
[6]A Guide to Using Raw Sockets[EB/OL]. http://opensourceforu.com/2015/03/a-guide-to-using-raw- sockets/
[7]LZ4 - Extremely fast compression[EB/OL]. http://lz4.github.io/lz4/
[8]openssl[EB/OL]. https://www.openssl.org/
(作者单位 张焕杰 陈蕾为中国科学技术大学网络信息中心;武凌为兰州交通大学信息中心)

特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。