fenghzy 发表于 2019-1-3 10:52:03

LVS之我见

LVS之我见
  


lvs第一种工作模型 NAT 原理图如下:
http://s3.运维网.com/wyfs02/M02/48/AF/wKiom1QKqqzyxcOvAAGVA72UUV0899.jpg

  


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

因此NAT模型的特性:
  

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

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

3,支持端口映射
  

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

实验拓扑如下:
  

http://s3.运维网.com/wyfs02/M02/48/B0/wKioL1QKqt3BxJuVAAEiGLbLt48701.jpg
首先打开Dirctor转发功能
  

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

# cat !$
  

cat /proc/sys/net/ipv4/ip_forward
  

1
  

配置Dirctor IP地址
  

# ifconfig eth0 172.16.101.34
  

# ifconfig eth1 10.0.0.1
  

查看
  

# ifconfig
  

eth0      Link encap:EthernetHWaddr 08:00:27:0F:E9:CF
  

          inet addr:172.16.101.34Bcast:172.16.255.255Mask:255.255.0.0
  

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

          UP BROADCAST RUNNING MULTICASTMTU:1500Metric: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:EthernetHWaddr 08:00:27:79:86:58
  

          inet addr:10.0.0.1Bcast:10.255.255.255Mask:255.0.0.0
  

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

          UP BROADCAST RUNNING MULTICASTMTU:1500Metric: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
  

http://s3.运维网.com/wyfs02/M00/48/AF/wKiom1QKqv_wQCQlAAHJPBqim-w806.jpg
配置server1
  

http://s3.运维网.com/wyfs02/M00/48/B1/wKioL1QKqy6DXgztAAHg1OzmLPU884.jpg
安装LAMP,在此不再赘述
  

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

vim /var/www/html/index.html
  

server1
  




  

  

配置server2
  

http://s3.运维网.com/wyfs02/M02/48/AF/wKiom1QKsVjBQttfAAGJT2eBRVA924.jpg
同样安装LAMP
  

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

vim /var/www/html/index.html
  

server2
  

客户端测试
  

http://s3.运维网.com/wyfs02/M01/48/AF/wKiom1QKq6KT2MxWAACynUcQ1Ag790.jpg
http://s3.运维网.com/wyfs02/M02/48/B1/wKioL1QKq6migJnGAACkHOEUdTc922.jpg
  

查看Dirctor连接状态
  

ipvsadm -l-n-c
  

http://s3.运维网.com/wyfs02/M02/48/AF/wKiom1QKq8jCTu0dAAKLN_9K9qo879.jpg
lvs 第二种模型DR
  

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

arp_ignore=1
  

apr_announce=2
  

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

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

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

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

http://s3.运维网.com/wyfs02/M02/48/AF/wKiom1QKrDWTzfTnAAJGdm91tWM605.jpg
首先配置Director
  

http://s3.运维网.com/wyfs02/M00/48/AF/wKiom1QKrFOwPaxoAAIh6It8Tes234.jpg
配置server1
  

http://s3.运维网.com/wyfs02/M01/48/B1/wKioL1QKrkCTC0IJAAGh4oR0Nkw037.jpg
配置server2
  

http://s3.运维网.com/wyfs02/M00/48/AF/wKiom1QKrl7CYRsTAAG3cIVLFxU028.jpg
准备数据库服务器
  

安装就不再赘述
  

http://s3.运维网.com/wyfs02/M01/48/B1/wKioL1QKrpjjazyGAAGR-Dn94VU929.jpg
  

在server1创建nfs服务器
  

vim /etc/exports
  

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

启动服务
  

http://s3.运维网.com/wyfs02/M02/48/B1/wKioL1QKrr6Cl4D4AAFS71PI6qQ364.jpg

server2挂载此目录到相应目录
  


http://s3.运维网.com/wyfs02/M02/48/B1/wKioL1QKrujRgyTQAAHNRd7gPVs817.jpg

  


  

将discuz上传到server1的/var/www/html
  

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

http://s3.运维网.com/wyfs02/M02/48/AF/wKiom1QKrwnwov56AAOyQvfmz4s758.jpg
过程不再赘述
  

http://s3.运维网.com/wyfs02/M00/48/B1/wKioL1QKryzCQfM8AAJ-bFDvbF8893.jpg


安装成功
  

http://s3.运维网.com/wyfs02/M01/48/B1/wKioL1QKr03CVW5wAANolHoiL0Q639.jpg


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

http://s3.运维网.com/wyfs02/M02/48/B1/wKioL1QKr3KQr9anAAWXVijRSaA518.jpg


现在更换客户端ip地址
  

http://s3.运维网.com/wyfs02/M02/48/AF/wKiom1QKr4rTGdpwAAW0Q9_xkRw747.jpg


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


  

  




页: [1]
查看完整版本: LVS之我见