码迷,mamicode.com
首页 > 其他好文 > 详细

LVS之我见

时间:2014-09-06 18:51:14      阅读:364      评论:0      收藏:0      [点我收藏+]

标签:lvs dr nat arp_ignore arp_announce

                              LVS之我见


 

lvs第一种工作模型 NAT 原理图如下:

bubuko.com,布布扣


 

首先客户端发送请求报文当报文到达Director后,Director将请求按照指定的调度算法,从后端挑选一个服务器进行响应,所用到的方法是将目标IP地址改写为一个后端真正服务器的IP地址,并用一定的方法记录下来此次的转发记录。当后端服务器处理完请求后,发送相应报文,送至Director此时根据事先的记录将相应报文改写源地址,并将其发送至客户端。


因此NAT模型的特性:


1R-server应当使用私有地址网关必须指向Director的地址DIP,一方面可以达到隐藏真实服务器的目的,提高安全性,另一方面降低成本


2,请求和响应都会经过Director,在高负载场景下Director容易成为整个系统的性能瓶颈


3,支持端口映射


4R-server可以是任意类型的OS


实验拓扑如下:


bubuko.com,布布扣

首先打开Dirctor转发功能


[root@www ~]# echo "1" > /proc/sys/net/ipv4/ip_forward 


[root@www ~]# cat !$


cat /proc/sys/net/ipv4/ip_forward


1


配置Dirctor IP地址


[root@www ~]# ifconfig eth0 172.16.101.34


[root@www ~]# ifconfig eth1 10.0.0.1


查看


[root@www ~]# ifconfig


eth0      Link encap:Ethernet  HWaddr 08:00:27:0F:E9:CF  


          inet addr:172.16.101.34  Bcast:172.16.255.255  Mask:255.255.0.0


          inet6 addr: fe80::a00:27ff:fe0f:e9cf/64 Scope:Link


          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1


          RX packets:334 errors:0 dropped:0 overruns:0 frame:0


          TX packets:199 errors:0 dropped:0 overruns:0 carrier:0


          collisions:0 txqueuelen:1000 


          RX bytes:29569 (28.8 KiB)  TX bytes:21519 (21.0 KiB)


 

eth1      Link encap:Ethernet  HWaddr 08:00:27:79:86:58  


          inet addr:10.0.0.1  Bcast:10.255.255.255  Mask:255.0.0.0


          inet6 addr: fe80::a00:27ff:fe79:8658/64 Scope:Link


          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1


          RX packets:0 errors:0 dropped:0 overruns:0 frame:0


          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0


          collisions:0 txqueuelen:1000 


          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)



配置lvs


bubuko.com,布布扣

配置server1


bubuko.com,布布扣

安装LAMP,在此不再赘述


为了测试方便设置主页文件


vim /var/www/html/index.html


server1





配置server2


bubuko.com,布布扣

同样安装LAMP


为了测试方便设置主页文件


vim /var/www/html/index.html


server2


客户端测试


bubuko.com,布布扣

bubuko.com,布布扣


查看Dirctor连接状态


ipvsadm -l  -n  -c


bubuko.com,布布扣

lvs 第二种模型DR


bubuko.com,布布扣

客户端请求到达Dirctor后,调度器仅仅修改MAC地址为后端的r-server,基于arp协议请求会被发送至后端的服务器,注意此时的真实服务器上的网卡上配置的ip地址为和DIp一个物理网段的地址因此可以基于mac进行通信。但是会有一个问题那就是为了保持回的响应的源IPVIP那么就要在r-server上配置VIP才行,这样就会造成一个问题,就是同一个网段上会出现3个主机都会使用VIP怎样才能保证请求会被发送至Director上呢。这就需要在r-server上调整两个内核参数


arp_ignore=1


apr_announce=2


到底这两个参数是什么含义请看下图


bubuko.com,布布扣

这两个参数是用来定义linux系统是如何来响应(apr_ignore)和通告(apr_announceMAC地址的。默认情况下apr_ignore的值为零他表示的含义是只要网络中有arp请求的广播假设是从eth0所在的网络来的arp请求那么eth0这时会毫无保留的将此主机的所有的网卡的MAC地址统统都予以回应也就是说,此次请求的到三个网卡的MAC,但是当此选项的值设为1时那么,eth0仅仅告诉对方自己的MAC地址其他两块网卡的MAC对方是不会知道的。而apr_annouce的作用是:就算没有arp请求到来 网卡也会自己向网络中通告这台主机的MAC地址只不过值为0时,通告此台主机所有网卡的MAc地址,而当此选项为2时仅仅通告自己的MAC地址。也就是说这两个选项的值设置是用来告诉eth0只管好自己的事就行,不要多管闲事。。


所以此时将VIP设置在lo0上就不会被得知它上面也有此地址了,达到隐藏的目的,但是当Director将请求转发到R-server上时拆开数据包看到目标地址是VIP而自己的主机上就有这个地址,就予以接受处理请求。


实验拓扑如下,并且此次会以共享NFS共享存储的方式安装Discuz论坛程序并且实现lvs会话保持的功能:


bubuko.com,布布扣

首先配置Director


bubuko.com,布布扣

配置server1


bubuko.com,布布扣

配置server2


bubuko.com,布布扣

准备数据库服务器


安装就不再赘述


bubuko.com,布布扣


server1创建nfs服务器


vim /etc/exports


/var/www/html 172.16.101.37(rw,no_root_squash)


启动服务


bubuko.com,布布扣

 

server2挂载此目录到相应目录


 bubuko.com,布布扣



discuz上传到server1/var/www/html


然后客户端浏览器启动安装


bubuko.com,布布扣

过程不再赘述


bubuko.com,布布扣


安装成功


bubuko.com,布布扣


注册后输入密码登录同一主机会话不会丢失如何刷新都会转发至172.16.101.36


bubuko.com,布布扣


现在更换客户端ip地址


bubuko.com,布布扣


lvs第三种模型tun很少用到这里不再详述 只不过是在转发时将ip报文再封装一层ip首部在发送。




LVS之我见

标签:lvs dr nat arp_ignore arp_announce

原文地址:http://centod.blog.51cto.com/9108378/1549641

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!