网络虚拟化,顾名思义,就是让我们的网络服务虚拟化。举个例子:当我们访问一个网页的时候,我们并不知道为我们显示该网页的到底是哪台服务器,是我们所访问域名对应的机器吗?其实,这也不一定。这种不透明的访问,就是所谓的虚拟化网络的访问。
提到网络虚拟化,我们就可以联想到负载均衡技术,该技术通过构建一个虚拟化的访问地址,将我们的请求均衡的分配到多个服务器上去,实现虚拟化后端网络服务,同时,还达到了均衡服务器负载的作用。负载均衡示意图如下:
目前负载均衡主要分为四层和七层负载均衡技术(根据OSI七层模型划分,OSI模型示意图如下)。四层负载均衡工作在传输层上(对应协议:TCP和UDP),该技术由IP地址及端口号来决定负载均衡路径,之后将需要转发的流量转发至后端服务器(Real Server)。同时记录下该流量是由哪台服务器处理的,后续该连接对应流量均转发至该服务器。七层负载均衡技术则是在应用层上,根据接收到的应用层数据进行转发或其他相关处理,该技术需要在完成前面的握手和接受请求之后才能做相应的转发相关处理。为了更好地实现负载均衡,目前很多网络服务采用的是四层+七层负载均衡共用的模式。
负载均衡技术分为硬件和软件两种实现方式,硬件通常是经由嵌入式设备实现转发逻辑,软件则一般通过服务器路由等方案来实现。目前四层的硬件实现方案主要有:F5,软件实现方案主要有Nginx