xiu12 发表于 2015-11-20 14:57:14

LVS小试

1.LVS/NAT
原理:
Java代码
[*]客户端—>LVS外网IP(VIP)—>RS服务器(处理请求后通过网关返回结果)—>LVS的LB地址—>客户端

配置LVS/NAT模式时外网IP不要和LoadBalance(LB)的IP同一网段(使用VMWare时两个网卡不要设置同一网段,可以一个是NAT一个是HOST)
Java代码
[*]LVS外网IP:192.168.142.131
[*]LVS_LB的IP:192.168.254.128
[*]RS_1:192.168.254.129 GW 192.168.254.128
[*]RS_2:192.168.254.130 GW 192.168.254.128

配置LVS:
Java代码
[*]iptables -F
[*]echo "1">/proc/sys/net/ipv4/ip_forward
[*]ipvsadm -C
[*]ipvsadm -A -t 192.168.142.131:80 -s rr
[*]ipvsadm -a -t 192.168.142.131:80 -r 192.168.254.129 -m -w 1
[*]ipvsadm -a -t 192.168.142.131:80 -r 192.168.254.130 -m -w 1

LVS的网卡信息大约如下:
Java代码
[*]eth0      Link encap:EthernetHWaddr 00:0C:29:76:38:6B   
[*]          inet addr:192.168.142.131Bcast:192.168.142.255Mask:255.255.255.0
[*]          ......
[*]   
[*]eth1      Link encap:EthernetHWaddr 00:0C:29:76:38:75   
[*]          inet addr:192.168.254.128Bcast:192.168.254.255Mask:255.255.255.0
[*]          ......

配置RS,其实RS的配置就只需要设置网关:
RS_1:
Java代码
[*]vi /etc/sysconfig/network-scripts/ifcfg-eth0
[*]      DEVICE=eth0
[*]      BOOTPROTO=static
[*]      ONBOOT=yes
[*]      HWADDR=00:0c:29:3d:fe:c5
[*]      IPADDR=192.168.254.129
[*]      NETMASK=255.255.255.0
[*]      GATEWAY=192.168.254.128
[*]service network restart
[*]cd /var/www/html/
[*]echo "129">index.html
[*]apachectl start
[*]iptables -F

RS_2:
Java代码
[*]vi /etc/sysconfig/network-scripts/ifcfg-eth0
[*]      DEVICE=eth0
[*]      BOOTPROTO=static
[*]      ONBOOT=yes
[*]      HWADDR=00:0c:29:3d:fe:c5
[*]      IPADDR=192.168.254.130
[*]      NETMASK=255.255.255.0
[*]      GATEWAY=192.168.254.128
[*]service network restart
[*]cd /var/www/html/
[*]echo "130">index.html
[*]apachectl start
[*]iptables -F


2.LVS/DR
原理:
Java代码
[*]客户端—>LVS的VIP—>RS服务器(处理请求后直接返回结果给客户端)—>客户端

LVS端的网卡需要有一个IP地址段与RS同一网段
Java代码
[*]LVS的IP:192.168.254.128
[*]LVS的VIP:192.168.254.100
[*]RS_1的IP:192.168.254.129
[*]RS_1的VIP(lo:0):192.168.254.100
[*]RS_2的IP:192.168.254.130
[*]RS_2的VIP(lo:0):192.168.254.100

配置LVS:
Java代码
[*]vi /etc/sysctl.conf   
[*]      # Controls IP packet forwarding
[*]      net.ipv4.ip_forward = 1
[*]      net.ipv4.conf.all.send_redirects = 1
[*]      net.ipv4.conf.default.send_redirects = 1
[*]      net.ipv4.conf.eth1.send_redirects = 1
[*]sysctl -p
[*]ifconfig eth1:0 192.168.254.100 netmask 255.255.255.255 broadcast 192.168.254.100 up
[*]route add -host 192.168.254.100 dev eth1:0
[*]ipvsadm -C
[*]ipvsadm -A -t 192.168.254.100:80 -s rr
[*]ipvsadm -a -t 192.168.254.100:80 -r 192.168.254.129 -g -w 1
[*]ipvsadm -a -t 192.168.254.100:80 -r 192.168.254.130 -g -w 1
[*]iptables -F

配置RS_1:
Java代码
[*] vi /etc/sysctl.conf   
[*]         # Controls IP packet forwarding
[*]      net.ipv4.ip_forward = 0
[*]      net.ipv4.conf.lo.arp_ignore = 1
[*]      net.ipv4.conf.lo.arp_announce = 2
[*]      net.ipv4.conf.all.arp_ignore = 1
[*]      net.ipv4.conf.all.arp_announce = 2
[*]sysctl -p
[*]ifconfig lo:0 192.168.254.100 netmask 255.255.255.255 broadcast 192.168.254.100 up
[*]route add -host 192.168.254.100 dev lo:0
[*]cd /var/www/html/
[*]echo "129">index.html
[*]apachectl start
[*] iptables -F

配置RS_2:
Java代码
[*]vi /etc/sysctl.conf   
[*]   # Controls IP packet forwarding
[*]   net.ipv4.ip_forward = 0
[*]   net.ipv4.conf.lo.arp_ignore = 1
[*]   net.ipv4.conf.lo.arp_announce = 2
[*]   net.ipv4.conf.all.arp_ignore = 1
[*]   net.ipv4.conf.all.arp_announce = 2
[*]sysctl -p
[*]ifconfig lo:0 192.168.254.100 netmask 255.255.255.255 broadcast 192.168.254.100 up
[*]route add -host 192.168.254.100 dev lo:0
[*]cd /var/www/html/
[*]echo "130">index.html
[*]apachectl start
[*]iptables -F

3.LVS/TUN
原理:
Java代码
[*]客户端—>LVS的VIP(通过IP Tunneling)—>RS服务器(处理请求后直接返回结果给客户端)—>客户端

RS服务器需要与外网直接通信
Java代码
[*]LVS的IP:192.168.254.128
[*]LVS的VIP:192.168.254.100
[*]RS_1的IP:192.168.254.129
[*]RS_1的TUN IP(tunl0):192.168.254.100
[*]RS_2的IP:192.168.254.129
[*]RS_2的TUN IP(tunl0):192.168.254.100

配置LVS:
Java代码
[*]iptables -F
[*]echo "0">/proc/sys/net/ipv4/ip_forward   
[*]ifconfig eth1:0 192.168.254.100 netmask 255.255.255.255 broadcast 192.168.254.100 up
[*]route add -host 192.168.254.100 dev eth1:0
[*]ipvsadm -C
[*]ipvsadm -A -t 192.168.254.100:80 -s rr
[*]ipvsadm -a -t 192.168.254.100:80 -r 192.168.254.129 -i -w 1
[*]ipvsadm -a -t 192.168.254.100:80 -r 192.168.254.130 -i -w 1


配置RS_1:
Java代码
[*]iptables -F
[*]ifconfig tunl0 192.168.254.100 netmask 255.255.255.255 broadcast 192.168.254.100 up
[*]route add -host 192.168.254.100 dev tunl0
[*]cd /var/www/html/
[*]echo "129">index.html
[*]apachectl start


配置RS_2:
Java代码
[*]iptables -F
[*]ifconfig tunl0 192.168.254.100 netmask 255.255.255.255 broadcast 192.168.254.100 up
[*]route add -host 192.168.254.100 dev tunl0
[*]cd /var/www/html/
[*]echo "130">index.html
[*]apachectl start
页: [1]
查看完整版本: LVS小试