Nginx实现IPv4与IPv6资源共享的研究

2019-11-01 09:10孙晓林
数字技术与应用 2019年7期
关键词:资源共享

摘要:IPv4地址的枯竭,加快了IPv6取代IPv4的进程。在漫长的取代过程中,IPv4与IPv6将长期共存,如何IPv4和IPv6间网络应用的相互访问、实现资源共享成为重要的问题。使用Nginx正向代理和反向代理功能实现不同过渡时期IPv4与IPv6资源共享。

关键词:IPv6;Nginx;资源共享;正向代理;反向代理

中图分类号:TP393 文献标识码:A 文章编号:1007-9416(2019)07-0034-02

0 引言

世界范围内可用的IPv4地址已经枯竭,IPv4向IPv6的过渡变得更加紧迫。2018年7月,工信部宣布中国基础电信运营商4G LTE网络启用IPv6,中国互联网正式进入IPv6时代[1]。同年9月,教育部发布《推进IPv6规模部署行动计划》,要求到2020年底,教育系统的各类网络、门户网站和应用系统完成IPv4向IPv6的升级改造[2]。

IPv6取代IPv4是必然趋势,但是在IPv6没有完全启用之前,将始终处于IPv4与IPv6共存时期。因此,如何实现IPv4环境下用户对IPv6资源的访问、IPv6用户对IPv4资源的访问以及IPv4与IPv6共存期间资源的互访与共享问题都成为研究的重点。本文使用Nginx作为代理服务器,利用正向代理和反向代理的功能解决不同环境中资源共享问题。

1 Nginx

Nginx是一个高性能代理服务器,具有很多优越的特征,如:反向代理、支持FastCGI、并发性、稳定性、内存消耗等方面都具有明显的优势,国内外很多大型网站等用此技术部署网站,如百度、新浪、腾讯等[3]。

本文主要使用Nginx的代理功能,其中代理分为正向代理和反向代理[4]。

(1)正向代理。Nginx作为正向代理服务器,位于服务器和内网客户端之间,用于代理用户对Internet的连接请求。用户必须指定代理服务器,并将原本直接发送到Web服务器上的HTTP请求发送到代理服务器上。代理服务器再将从Internet上获得的内容返回给用户。通常该功能被用于实现翻墙功能,用来访问国内无法访问的外国网站如google。正向代理服务器还具有缓存加速、上网认证、上网行为管理等功能。

(2)反向代理。Nginx作为反向代理服务器,多架设在服务器端,将客户端请求转发给内部网络上的目标服务器,并将从服务器上得到的结果返回给请求连接的客户端,此时代理服务器与目标服务器一起对外表现为一个服务器,用户不知道该服务器的存在,该服务器对用户透明。因此,反向代理功能可以阻止网络攻击,增强内网安全。除此之外,反向代理功能也常用于负载均衡、页面缓存等功能。

2 IPv4环境中对IPv6资源的访问

由于IPv4地址紧缺,对于未能申请到IPv4地址的网站及应用只能使用IPv6对外提供服务。对于该类应用,通过Nginx正向代理功能,实现IPv4用户对IPv4“海洋”中IPv6资源的访问。具体代理配置方法如下:

server {

resolver 8.8.8.8;      #配置DNS服务器地址,必须设置,与反向代理不同

resolver_timeout 5s;  #配置解析超时时间

listen 8080;          #配置监听端口

location / {

proxy_pass http://$host$request_uri;    #設置做正向代理的IPv6网址或IPv6地址

……

}

3 IPv6环境中对IPv4资源的访问

目前网络中的大部分网站规划、应用开发都基于IPv4,若直接由IPv4迁移至IPv6环境,可能会出现网站或网络应用无法提供服务的情况。另外,IPv4向IPv6的转换也需要网络结构改造、设备的软硬件升级以及对网络应用代码的重新编译、测试等[5]。对高校来说,普通的内容类网站短时间内升级比较容易实现,然而对于财务、教务、资产等应用系统来说,升级为IPv6则需要较长时间。即使IPv6已经完全取代IPv4,仍有部分基于IPv4的应用。对于这类应用,IPv6用户无法直接访问,使用Nginx正向代理进行部署,对IPv4资源的访问,还起到保护真实服务器的作用。具体配置方法如下:

server {

resolver 2001:4860:4860::8888; #配置DNS服务器地址,必须设置,与反向代理不同

resolver_timeout 5s;            #配置解析超时时间

listen 8080 default ipv6only=on;   #配置监听端口,设置只监听IPv6

location / {

proxy_pass http://$host$request_uri;    #设置做正向代理的IPv4网址或IPv4地址

……

}

4 IPv4向IPv6过渡时期IPv4和IPv6资源相互访问

在IPv4向IPv6过渡时期,使用“双协议栈技术” 实现IPv4和IPv6节点的通信,这是一种常用的过渡方法。但是该技术需要客户端和服务器同时配置IPv4和IPv6地址,不仅没有从根本上解决IPv4地址紧缺的问题,而且要求通信对端及其中间设备都支持双栈协议,部署复杂,实现比较困难[6]。本文采用Nginx反向代理技术实现IPv4或IPv6用户对另一协议中网络资源的访问。

Nginx反向代理服务器部署在双栈环境中,同时监听IPv4和IPv6请求,而服务器端只需要接入IPv4或IPv6网络,不需要支持两种协议,也不需要改变网络结构和设备配置。对于IPv4用户来说,代理服务器将IPv4数据分组发送给IPv6的WEB服务器;对IPv6用户来说,代理服务器将IPv6用户的请求代理至IPv6服务器。Nginx反向代理配置方法如下:

server {

listen  80 ;

server_name  www.test.com;

location / {

proxy_pass http://$host$request_uri;  #設置需要代理的IPv4、IPv6地址或URL

proxy_redirect default;

}

}

5 结语

针对IPv4向IPv6过渡的不同时期,设计不同的跨协议资源访问方案。利用Nginx正向代理功能实现对另一协议中少量资源的访问,利用Nginx反向代理功能实现IPv4向IPv6过渡时期IPv4或IPv6用户对另一协议中网络资源的访问。这些方案都不需要修改网络配置和网络结构,容易实现,方便管理和维护。由于缺乏IPv6部署经验,尤其是网络安全方面的经验, IPv6网络必然成为攻击的热点,IPv6网络安全成为下一步研究的重点。

参考文献

[1] 赵肃波.中国IPv6发展与网络安全挑战[J].信息安全研究,2019,5(03):79-90.

[2] 教育部印发通知贯彻落实推进IPv6规模部署[J].中国教育网络,2018,(9):8-9.

[3] 孙晓林,张新刚.基于Nginx的网站安全优化方案[J].网络安全技术与应用,2017(11):43+45.

[4] 高群凯.深入剖析Nginx[M].人民邮电出版社,2013.

[5] 吴金堂,耿方方.IPv6环境下反向代理IPv4网站及安全防护的研究与实现[J].中小企业管理与科技(下旬刊),2019,564(01):113-116.

[6] 邓庚盛,鄢志辉,邹伟平,等.IPv6过渡阶段基于双栈反向代理技术的应用研究[J].中国教育网络,2018(01).

猜你喜欢
资源共享
交通运输数据资源共享交换体系探究与实现
福建省交通运输信息资源共享平台
卫康与九天绿资源共享
教育部第一批“国家级精品资源共享课”公布
政府部门间G2G信息资源共享的演化博弈分析
精品课程资源共享建设问题的探索与思考