LVS常见的类型实现方式

前言

 由于lvs的基础知识已经在第一篇lvs中讲解了,所以在这里只做实验,包括lvs-nat,lvs-dr,以及基于Freiwall标记和实现会话绑定实验。

一、lvs-nat:也是MASQERADING,简称为m(masquerading) 

  实验图:  2015-06-21_122212.png

  地址规划:

    VIP: 172.16.2.13/24

    DIP: 192.168.10.203/24

    RIP1:192.168.10.120/24

    RIP2:192.168.10.103/24

    CIP: 172.16.2.176/24

  

 实验步骤:

 (1)在Director上配置ntp服务,RS同步Director时间;

[root@Director ~]# date
Sun Jun 21 12:46:46 CST 2015

[root@RS1 ~]# date
Sun Jun 21 12:46:50 CST 2015

[root@RS2 ~]# date
Sun Jun 21 12:46:53 CST 2015

 (2)开启Director的转发功能,清空iptables的filter,nat规则

[root@Director ~]# vim /etc/sysctl.conf 
    net.ipv4.ip_forward = 1  \\修改为1

[root@Director ~]# sysctl -p \\重新读取systcl.conf配置文件

[root@Director ~]# iptables -F;iptables -F -t nat \\清除防火墙规则

 (3)将RS的网关指向Director的DIP

[root@RS1 ~]# route add default gw 192.168.10.203
[root@RS1 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.10.0     0.0.0.0         255.255.255.0      U   0   0     0 eth0
169.254.0.0     0.0.0.0         255.255.0.0        U   1002  0     0 eth0
0.0.0.0       192.168.10.203      0.0.0.0         UG   0   0     0 eth0
[root@RS2 ~]# route add default gw 192.168.10.203
[root@RS2 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.10.0    0.0.0.0         255.255.255.0       U   0    0      0 eth0
169.254.0.0     0.0.0.0         255.255.0.0        U   1002  0      0 eth0
0.0.0.0      192.168.10.203      0.0.0.0          UG   0   0      0 eth0

 (4)在Director上创建集群服务

[root@Director ~]# ipvsadm -A -t 172.16.2.13:80 -s rr
[root@Director ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.2.13:80 rr

 (5)在Director创建的集群服务添加RS

[root@Director ~]# ipvsadm -a -t 172.16.2.13:80 -r 192.168.10.120:80 -m -w 1
[root@Director ~]# ipvsadm -a -t 172.16.2.13:80 -r 192.168.10.103:80 -m -w 1
[root@Director ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.2.13:80 rr
  -> 192.168.10.103:80            Masq    1      0          0         
  -> 192.168.10.120:80            Masq    1      0          0

 (6)在RS中添加默认网页

[root@RS1 ~]# echo "<h1>RS1</h1>" > /var/www/html/index.html 
[root@RS2 ~]# echo "<h1>RS2</h1>" > /var/www/html/index.html

 (7)启动httpd服务

[root@RS1 ~]# service httpd start
Starting httpd:                                            [  OK  ]

[root@RS2 ~]# service httpd start
Starting httpd:                                            [  OK  ]

 (7)打开浏览器,输入地址:http://172.16.2.13 刷新网页,查看测试结果

 3.png  2.png

 (8)到此lvs-nat类型已经搭建完成,可以自己更改调度方法,查看状态

二、lvs-dr类型:也称direct routing,简称为g(gatewaying)

 实验图:

1.png

 地址规划:

   VIP: 172.16.2.100

   DIP: 172.16.2.13

   RIP1:172.16.2.12

   RIP2:172.16.2.14

 配置步骤

 (1)同步时间,以Director为时间服务器,RS以Director为时间服务器,同步时间

[root@Director ~]# date 
Sun Jun 21 13:24:02 CST 2015

[root@RS1 htdocs]# date
Sun Jun 21 13:24:06 CST 2015

[root@RS2 html]# date
Sun Jun 21 13:24:08 CST 2015

 (2)修改RS的内核参数,禁止响应路由器查询VIP的arp请求

[root@RS1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
[root@RS1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce 
[root@RS1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore 
[root@RS1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@RS2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
[root@RS2 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce 
[root@RS2 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore 
[root@RS2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

 (3)修改Director的防火墙规则,开启转发功能

[root@Director ~]# iptables -F;iptables -F -t nat
[root@Director ~]# vim /etc/sysctl.conf 
    net.ipv4.ip_forward = 1  
[root@Director ~]# sysctl -p

 (4)在Director、RS服务器上配置VIP地址

[root@Director ~]# ifconfig eth1:0 172.16.2.100 broadcast 172.16.2.100 netmask 255.255.255.255
[root@Director ~]# ifconfig 
eth1      Link encap:Ethernet  HWaddr 00:0C:29:5A:4F:52  
          inet addr:172.16.2.13  Bcast:172.16.2.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe5a:4f52/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:34718 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12253 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:14209969 (13.5 MiB)  TX bytes:1351338 (1.2 MiB)

eth1:0    Link encap:Ethernet  HWaddr 00:0C:29:5A:4F:52  
          inet addr:172.16.2.100  Bcast:172.16.2.100  Mask:255.255.255.255
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:80 errors:0 dropped:0 overruns:0 frame:0
          TX packets:80 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:7266 (7.0 KiB)  TX bytes:7266 (7.0 KiB)
[root@RS1 ~]# ifconfig lo:0 172.16.2.100 broadcast 172.16.2.100 netmask 255.255.255.255
[root@RS1 ~]# ifconfig
eth1      Link encap:Ethernet  HWaddr 00:0C:29:0E:C4:33  
          inet addr:172.16.2.12  Bcast:172.16.2.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe0e:c433/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9328 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3795 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:8278339 (7.8 MiB)  TX bytes:337391 (329.4 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:59 errors:0 dropped:0 overruns:0 frame:0
          TX packets:59 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:5699 (5.5 KiB)  TX bytes:5699 (5.5 KiB)

lo:0      Link encap:Local Loopback  
          inet addr:172.16.2.100  Mask:255.255.255.255
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
[root@RS2 ~]# ifconfig lo:0 172.16.2.100 broadcast 172.16.2.100 netmask 255.255.255.255
[root@RS2 ~]# ifconfig 
eth1      Link encap:Ethernet  HWaddr 00:0C:29:F8:D4:92  
          inet addr:172.16.2.14  Bcast:172.16.2.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fef8:d492/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:161326 errors:0 dropped:0 overruns:0 frame:0
          TX packets:132169 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:25610678 (24.4 MiB)  TX bytes:16331857 (15.5 MiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1935 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1935 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:197004 (192.3 KiB)  TX bytes:197004 (192.3 KiB)

lo:0      Link encap:Local Loopback  
          inet addr:172.16.2.100  Mask:255.255.255.255
          UP LOOPBACK RUNNING  MTU:65536  Metric:1

 (5)在Director、RS上添加去往172.16.2.100的主机路由(目的是RS构建响应报文的时候以VIP为源IP封装数据包)

[root@Director ~]# route add -host 172.16.2.100 dev eth1:0
[root@Director ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.2.100    0.0.0.0         255.255.255.255       UH   0   0      0 eth1
172.16.2.0     0.0.0.0         255.255.255.0        U    0   0      0 eth1
0.0.0.0      172.16.2.1          0.0.0.0         UG   0   0      0 eth1
[root@RS1 ~]# route  add -host 172.16.2.100 dev lo:0
[root@RS1 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.2.100    0.0.0.0         255.255.255.255      UH   0   0      0 lo
172.16.2.0     0.0.0.0         255.255.255.0       U    0   0      0 eth1
0.0.0.0      172.16.2.1        0.0.0.0          UG   0   0      0 eth1
[root@RS2 ~]# route add  -host 172.16.2.100 dev lo:0
[root@RS2 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.2.100    0.0.0.0         255.255.255.255      UH   0   0     0   lo
172.16.2.0     0.0.0.0         255.255.255.0        U    0   0     0  eth1
0.0.0.0       172.16.2.1       0.0.0.0           UG   0   0     0  eth1

 (6)在Director上创建服务集群

[root@Director ~]# ipvsadm -A -t 172.16.2.100:80 -s rr
[root@Director ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.2.100:80 rr

 (7)在Director创建的集群中添加RS

[root@Director ~]# ipvsadm -a -t 172.16.2.100:80 -r 172.16.2.12:80 -g -w 1
[root@Director ~]# ipvsadm -a -t 172.16.2.100:80 -r 172.16.2.14:80 -g -w 1
[root@Director ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.2.100:80 rr
  -> 172.16.2.12:80               Route   1      0          0         
  -> 172.16.2.14:80               Route   1      0          0

 (8)在RS上添加默认网页

[root@RS1 ~]# echo "<h1>RS1</h1>" > /var/www/html/index.html 
[root@RS2 ~]# echo "<h1>RS2</h1>" > /var/www/html/index.html

 (9)启动httpd服务

[root@RS1 ~]# service httpd start
Starting httpd:                                            [  OK  ]

[root@RS2 ~]# service httpd start
Starting httpd:                                            [  OK  ]

 (10)打开浏览器,输入地址:http://172.16.2.100,刷新页面查看变化

4.png 5.png 

 (11)到此lvs-dr类型搭建完成,可以更改调度算法查看页面变化。

原创文章,作者:马行空,如若转载,请注明出处:http://www.178linux.com/5500

(0)
马行空马行空
上一篇 2015-06-26 16:39
下一篇 2015-06-30 13:11

相关推荐

  • N26-博客作业-week13

    1、建立samba共享,共享目录为/data,要求:(描述完整的过程)  1)共享名为shared,工作组为magedu;  2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;  3)添加samb…

    Linux干货 2017-06-15
  • 马哥教育网络班22期第六周课程练习1

    1、1,$s/^\s\+/#/g 2、1,$s/^\s\+$//g 3、1,$s/^#\s//g 4、1,3s/^/#/g 5、sed -e s/gpgcheck=1/gpgcheck=0/g -e s/enabled=0/enabled=1/g /etc/yum.repos.d/CentOS-Media.repo  6、0 /4 * * * cp…

    Linux干货 2016-09-26
  • vsftpd 配置文件的一些设置

    ftp:File Transfer protocol 文件传输协议 两个连接: tcp:命令连接 tcp:数据连接 主动模式:服务器端通过20端口主动连接客户端,客户端监听在于服务器端的建立连接的端口+1上,服务器工作在tcp/20 被动模式:客户端使用自己与服务器端建立端口+1上连接客户端的随机端口 防火墙上连接追踪 数据要流失化文本:文件流二进制 c/s…

    Linux干货 2017-09-10
  • 学习宣言

    生命太过于短暂,今天放弃了明天不一定能得到。

    Linux干货 2016-10-27
  • RPM总结(一)

    软件包基础软件包运行环境硬件、内核、应用程序的关系包管理器程序包管理器Linux不同系统上的包管理器RPM的优点rpm包命名方式一般源代码的命名rpm包的命名rpm包的分类与拆包包管理工具RPM包管理器:程序包管理器:获取程序包的途径:rpm包管理CentOS系统上使用rpm命令管理程序包:安装升级:降级降级实例more 软件包基础 包管理过程中,最常用的操…

    Linux干货 2016-08-24
  • Buffer和Cache的区别

    1、buffer(缓冲) 是为了提高内存和硬盘(或其他I/O设备)之间的数据交换的速度而设计的。 2、cache(缓存) 从CPU角度考虑,是为了提高cpu和内存之间的数据交换速度而设计的,例如平常见到的一级缓存、二级缓存、三级缓存。 cpu在执行程序所用的指令和读数据都是针对内存的,也就是从内存中取得的。由于内存读写速度慢,为了提高cpu和内存之间数据交换…

    Linux干货 2018-01-02

评论列表(2条)

  • 黑白子
    黑白子 2015-12-08 21:30

    你好,怎么做dr模型时,轮询不起作用啊?

    • 马行空
      马行空 2015-12-25 10:32

      @黑白子把浏览器缓存清理一下,在访问的时候查看访问日志,看看日志里有没有访问记录。