作为程序员一定要保持良好的睡眠,才能好编程

LVS配置说明 nat Br以及隧道

发布时间:2017-12-20


LVS虚拟服务器


实现原理:


基于DNS域名轮询解析的方法

基于客户端调度访问的方法

基础应用层系统负载的调度方法

基础IP地址的调度方法    这种方式是最高效的。

 


IP负载均衡技术是通过ipvs内核模块来实现的,ipvs是LVS集群系统的核心软件。


安装在Director Server上,同时在Director Server上虚拟出一个IP (VIP Virtual IP)地址


我们的域名解析到 VIP 上  ,virtual IP 去寻找  Director Server  然后进行分发。


然后 有负载调度器 从 Real Server 列表看选取一个服务节点 处理用户的请求。


Real Server 节点如何返回数据给用户,是ipvs 实现的重点技术,


ipvs 实现负载均衡机制有三种方式:



NAT  TUN  DR


NAT 地址转发

TUN  IP隧道

DR 直接路由


FullNat 淘宝?



好的,如何要使用 LVS 那么必须配置  有三台服务器

截图08.png


192.168.61.103  Director Server   转发服务器

192.168.61.104  Real Server  接收服务器

192.168.61.105  Real Server  接收服务器



那么安装 ipvs 的话,网址是:http://www.linuxvirtualserver.org/


然后 点击 Software ,网址:http://www.linuxvirtualserver.org/software/index.html

截图10.png


那么这里有这么多的版本,我如何选择呢?

使用 uname -r 进行内核版本的查看:如图

截图09.png


然后我们下载 2.6 的版本。


截图11.png



还有一种方式,就是通过 yum 进行安装 


 yum install -y ipvsadm


如何进行检测ipvsadm 是否安装呢?

ipvsadm -h   如果显示出信息来,就证明可以正常使用。







NAT 模式 Director Server 设置


如果是虚拟机直接添加一个网卡即可,如果是真实的服务器,需要添加一块真实的网卡。


好的,那我们来走一遍 NAT模式 的负载均衡


Director Server 上必须需要两块网卡。


使用vm 添加一块网卡的步骤:

截图12.png



然后在windows下查看一下网卡情况:

截图13.png



那么我们 linux服务器上 设置的网卡,IP地址 可以是 192.168.31.2 或其他 ,只要不是与31.1 重复即可。


给eth1 设置网卡IP

ifconfig eth1 192.168.31.2


截图14.png


切记啊  eth1 以后使用的公网IP


也就是所有的解析全部解析到 这个IP   ,将来通过VIP 来访问。


访问eth1 的时候  轮询到  Real Server



NAT 模式 Real Server 设置



注意  这个默认网关  不是我们联网的网关 ,而是 Director Server 配置的网关。


route del default   删除 Real Server 默认网关


添加新的网关


route add default gw 192.168.61.103


gw 后面的这个IP地址是谁呢? 就是 Director Server 的IP地址。



再次配置 Director Server 服务器 192.168.61.103


网关怎么配置?


1、首先开启 ipvsadm 的IP转发

   怎么开启呢?

   我们要把一个文件改成1 即可

   echo 1 > /proc/sys/net/ipv4/ip_forward

2、配置ipvsadm

   ipvsadm -C  清除之前的规则

   添加一条新的规则

   ipvsadm -A -t 192.168.31.129:80 -s rr

   

    解释说明:192.168.31.129 是Director Server 新添加 eth1 网卡的IP地址

              :80 监听的端口是 80

              -s rr 轮询  一次到 192.168.61.104  一次到192.168.61.105 再一次到 192.168.61.104 


    添加新的真实IP地址  

    ipvsadm -a -t 192.168.31.129:80 -r 192.168.61.104:80 -m

    ipvsadm -a -t 192.168.31.129:80 -r 192.168.61.105:80 -m

    

    什么意思呢?  就是 192.168.31.129 所有的80 业务 就转接到 192.168.61.104 或 105 的 80 端口上。


    ipvsadm -l  查看 添加的Real Server

    截图15.png

     生产环境下 是不能直接访问 Real Server 服务器的。

     

     

访问测试 结果:

在浏览器中输入 190.168.31.129  进行查看  


一会是 192.168.61.104


一会是 192.168.61.105 


这两个服务器做轮询处理。






---------------------------------DR模式-------------------------------------



DR的效率要比  NAT 模式效率高  直接返回 到 Client IP


说明: DR 模式的话 只需要 一块网卡即可  Director Server


把eth1  删除掉   把设备删除即可。 这个就是与NAT模式不一样的。


删除设备的话,直接通过 vm 软件 硬件管理  把nat 模式的网卡 移除 即可。

保留这个页面:


截图16.png


 


设置 Real Server



记住:删除默认网关   (删除NAT 模式设置的网关)

      route del default 

# route del default
# ifconfig lo:0 192.168.61.222 netmask 255.255.255.255 broadcast 192.168.61.222


然后通过ifconfig 进行查看 :


就会看到多了一个IP,就是 192.168.61.222  添加这个IP地址目的就是为了不让直接访问真实的服务器。



添加一个外部的路由  

# route add -host 192.168.61.222 dev lo:0



这是配置广播:

仅向与本地接口与地址匹配的网络进行通告

# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
# #向eth0也加进来
# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce


我们只改目标IP为本地的地址的时候,并且在配置进来接口上的时候,才会响应


# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore


可以使用 ifconfig  进行查看。


好的 ,以上 Real Server 的配置就是这样,



看看 DR 模式下 Director Server是怎么配置的

# # 添加一个新的IP
# ifconfig eth0:0 192.168.61.222/24


1、删除所有ipvs的规则

   ipvsadm -C  

2、添加路由规则  

   ipvsadm -A -t 192.168.61.222:80 -s rr

   以轮询的方式监听 192.168.61.222 这个IP的80端口  

3、添加真实的服务器

    ipvsadm -a -t 192.168.61.222:80 -r 192.168.61.104:80 -g

    ipvsadm -a -t 192.168.61.222:80 -r 192.168.61.105:80 -g

    -g 代表的是DR 模式

到现在呢 ipvsadm 已经配置完毕。


ipvsadm -l   进行查看


Director Server 设置附图:

截图17.png



以上都配置完成后,进行测试访问


192.168.61.222 


11.gif


打开这个窗口,不断的进行刷新 ,就能看到轮询的结果。



---------------------------------DR模式-------------------------------------






---------------------------------IP Tunnening 模式-------------------------------------






现在绑定的是 tunl0   最后是 up  启动

# ifconfig tunl0 192.168.61.222 broadcast 192.168.61.222 netmask 255.255.255.0 up

# #指向出去

#route add -host 192.168.61.222 dev tunl0


通过ifconfig 进行查看

截图18.png


三台服务器都是通过 上面的这个命令做的。



不能让外边直接范问,这里做的限制


# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
# echo 2 > /proc/sys/net/ipv4/conf/tunl0/arp_announce


好的,到这里Real Server 已经配置完毕


配置Director Server服务器

ipvsadm -C
ipvsadm -A -t 192.168.61.222:80 -s rr
ipvsadm -a -t 192.168.61.222:80 -r 192.168.61.104 -i
ipvsadm -a -t 192.168.61.222:80 -r 192.168.61.105 -i

















网上有一篇详细的文章在说:负载均衡

https://www.cnblogs.com/lin3615/p/5653234.html