zoukankan      html  css  js  c++  java
  • LVS上DR和NAT模式的缺陷

    引言

            相信一般的小公司用的最多的还是DR和NAT模式,关于DR和NAT模式的原理请看看下图,我们先从lvs的DR和NAT模式特性聊聊一些问题。
    图片描述
    图片描述

    问题1、lvs的DR模式和NAT模式核心缺陷有哪些?

    DR模式的缺陷

            1:Realserver和 lvs的vip提供服务的端口必须一致。也就是说:vip的端口对外端口为 80,但后端服务的真实端口为8080,通过lvs的DR模式是实现不了的。
            2:Realserver和LVS不能在同一台机器上
            3: Realserver 和LVS需要在同一个vlan或者局域网下。

    NAT模式的缺陷

            1:NAT模式流量的入和出都需要通过LVS服务器。
            2: 效率相比DR模式,性能和效率上会差一些。

            为什么呢?别着急如果你不太了解,下面来解释为什么?

    问题2、为什么Realserver和 lvs,vip提供服务的端口必须一致?

            原因:因为LVS的DR模式,改写的就是数据包的目的MAC地址,并不会对数据报文IP和端口地址层修改,所以就作不到端口改写了。

    问题3、为什么DR模式下,Realserver和LVS不能在同一台机器上?

            原因:假设lvs主服务器上的数据包发送给自己备份节点(也是realserver) eth0 接口。备lv不能正常的被监听指定端口的程序所接收,因为数据包会首先先经过 ip_vs()来接受处理了.
    不仅如此,备份节点还会将50%的机率将数据包转发给lvs主,这样一直主和备一直转发,就形成死循环了。所以客户端会发现,一次正常能请求,一次会出现
    超时的情况。

    问题4、为什么DR模式下,Realserver 和LVS需要在同一个vlan或者局域网下?

            原因:LVS的是改写mac地址的,基于mac地址的通讯方式是2层的,所以需要限制在一个vlan或者局域网下。

    问题5、为什么NAT模式下,NAT模式流量的入和出都需要通过LVS服务器?

            原因:NAT模式修改的目的端的IP地址,对公网的VIP,并不会下放到realserver上,所以后端的realserver的网关必须指向lvs地址。

    问题6、为什么效率相比DR模式,性能和效率上会差一些?

            原因:原因和NAT模式的特性一样,出入的数据包都需要通过lvs,必然导致数量大了后,成为性能瓶颈。

    博客搬运地址

  • 相关阅读:
    linux整理
    C++ 11 多线程--线程管理
    VS2013 配置全局 VC++目录
    visual studio运行时库MT、MTd、MD、MDd的研究
    C++(vs)多线程调试 (转)
    VS工程和Qt工程转换
    Qt 读写XML文件
    win32开发中多字节(ANSI)和宽字符(UNICODE)字符串处理函数参考
    QMenu----QT鼠标右键弹出菜单
    C++ 单例模式析构函数的运用,析构函数的线程安全
  • 原文地址:https://www.cnblogs.com/clement-jiao/p/9293166.html
Copyright © 2011-2022 走看看