[转帖]LVS入门篇(四)之LVS实战

lvs,入门篇,实战 · 浏览次数 : 0

小编点评

**内容生成步骤:** 1. **创建排版格式:**使用**````python`****创建一个**``**的**``****格式**。例如,**````python`****创建一个**``**的**``****格式**的**``****格式**。 2. ****将排版格式****添加到**``**的**``****格式**中。例如,**````python`****添加**````python`****格式**的**``******格式**的**````python`******格式**。 3. ****生成内容**:**使用**````python`******创建**``**的**``****格式**的**````python`******格式**。例如,**````python`****创建一个**``**的**``****格式**的**````python`******格式**的**````python`******格式**的**````python`******格式**: ```python print("L", end="") print("S", end="") print("E", end="") print("G", end="") print("E", end="") print("S", end="") print("E", end="") print("L", end="") print("V", end="") print("S", end="") print("E", end="") print("S", end="") print("E", end="") print("E", end="") ``` 4. ****格式化内容**:**使用**````python`******格式化******内容**。例如,**````python`****格式化******内容**的**````python`******格式**: ```python print("L", end="") print("S", end="") print("E", end="") print("G", end="") print("E", end="") print("S", end="") print("E", end="") print("L", end="") print("V", end="") print("S", end="") print("E", end="") print("S", end="") print("E", end="") print("E", end="") ``` ****注意:****内容生成步骤****可能需要**````python`******创建**``**的**``****格式****。

正文

LVS入门篇(四)之LVS实战

 
https://www.cnblogs.com/linuxk/p/9360922.html

 

  • 一、LVS的NAT模式实战

1、环境说明:

HOST OS role remask
192.168.56.12 Centos 7.4 LVS调度器(1.2.7) VIP:192.168.0.104
192.168.56.11 Centos 7.4  RS1 LNMP
192.168.56.13 Centos 7.4 RS2 LNMP

2、LVS调度器环境配置

(1)增加一块外网网卡eth1

(2)拷贝eth0配置文件为eth1,并修改网卡配置

[root@lb01 ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1
[root@lb01 ~]# vim !$
vim /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
NAME="eth1"
DEVICE="eth1"
ONBOOT="yes"
IPADDR=192.168.0.104
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8
DNS2=114.114.114.114
[root@lb01 ~]# systemctl restart network
[root@lb01 ~]# ifconfig eth1
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.104  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::20c:29ff:fe95:2993  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:95:29:93  txqueuelen 1000  (Ethernet)
        RX packets 2383  bytes 271561 (265.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 43  bytes 5606 (5.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

(3)YUM安装ipvsadm,并对ipvsadm规则进行配置

1、开启调度器上的路由转发功能
[root@lb01 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward 

2、关闭ICMP重定向  [root@lb01 ~]# echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects    [root@lb01 ~]# echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects [root@lb01 ~]# echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects [root@lb01 ~]# echo 0 > /proc/sys/net/ipv4/conf/eth1/send_redirects

3、配置防火墙的NAT规则 [root@lb01 ~]# iptables -t nat -F   [root@lb01 ~]# iptables -t nat -X [root@lb01 ~]# iptables -t nat -A POSTROUTING -s 192.168.56.0/24 -j MASQUERADE

4、配置ipvsadm并查看调度器状态信息 [root@lb01 ~]# ipvsadm -C [root@lb01 ~]# ipvsadm -A -t 192.168.0.104:80 -s rr [root@lb01 ~]# ipvsadm -a -t 192.168.0.104:80 -r 192.168.56.11:80 -m -w 1 [root@lb01 ~]# ipvsadm -a -t 192.168.0.104:80 -r 192.168.56.13:80 -m -w 1 [root@lb01 ~]# ipvsadm -L -n IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.0.104:80 rr -> 192.168.56.11:80 Masq 1 0 0 -> 192.168.56.13:80 Masq 1 0 0

参数说明:

-A:表示增加一个虚拟服务

-a:表示增加一个real server

-t:表示TCP服务

-r:指定real server的ip地址

-s:指定调度算法

-m:选择NAT方式调度

-w:指定权重

(3)修改real server:RS1和RS2的网关

[root@rs1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 
GATEWAY=192.168.56.12
[root@rs2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 
GATEWAY=192.168.56.12

(4)测试访问

[root@lb01 ~]# curl 192.168.0.104
<h1>welcome to RS1 192.168.56.11</h1>
[root@lb01 ~]# curl 192.168.0.104
<h1> welcome to use RS2 192.168.56.13</h1>
[root@lb01 ~]# watch -n 1 ipvsadm -L -n  #动态查看访问记录
Every 1.0s: ipvsadm -L -n                                                                                                                                            Tue Jul 24 04:40:59 2018

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.0.104:80 rr
  -> 192.168.56.11:80             Masq    1     0          2
  -> 192.168.56.13:80             Masq    1     0          3

  • 二、LVS的DR模式实战

1、环境准备和说明

HOST OS ROLE REMASK
192.168.56.12 Centos 7.4 LVS调度器 VIP:192.168.56.200
192.168.56.11 Centos 7.4 RS1 LNMP
192.168.56.13 Centos 7.4 RS2 LNMP

 

[root@lb01 ~]# ipvsadm -ln  #查看NAT模式下的ipvsadm规则
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.0.104:80 rr
  -> 192.168.56.11:80             Masq    1      0          0         
  -> 192.168.56.13:80             Masq    1      0          0         
[root@lb01 ~]# ipvsadm -C  #清空NAT模式下的规则
[root@lb01 ~]# ipvsadm -ln  #确认规则是否清空
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
[root@lb01 ~]# iptables -t nat -F  #情况防火墙的nat表规则
[root@rs1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0   #修改rs1网卡网关
GATEWAY=192.168.56.2
[root@rs2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0   #修改rs2网卡网关
GATEWAY=192.168.56.2
[root@rs1 ~]# systemctl restart network  #重启网络服务
[root@rs2 ~]# systemctl restart network

 [root@lb01 ~]# ifdown eth1  #DR模式调度器用不到eth1网卡,down掉
  Device 'eth1' successfully disconnected.

2、在LVS调度节点上配置vip

[root@lb01 ~]# ifconfig eth0:1 192.168.56.200/24 up
[root@lb01 ~]# ifconfig eth0:1
eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.56.200  netmask 255.255.255.0  broadcast 192.168.56.255
        ether 00:0c:29:95:29:89  txqueuelen 1000  (Ethernet)

3、在lvs调度节点上配置LVS服务并增加2台节点服务器

[root@lb01 ~]# ipvsadm -C  #清空LVS配置
[root@lb01 ~]# ipvsadm --set 30 5 60  #设置连接超时时间
[root@lb01 ~]# ipvsadm -A -t 192.168.56.200:80 -s rr -p 20  #新增lvs服务
[root@lb01 ~]# ipvsadm -a -t 192.168.56.200:80 -r 192.168.56.11 -g -w 1
[root@lb01 ~]# ipvsadm -a -t 192.168.56.200:80 -r 192.168.56.13 -g -w 1
[root@lb01 ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.56.200:80 rr persistent 20
  -> 192.168.56.11:80             Route   1      0          0         
  -> 192.168.56.13:80             Route   1      0          0 

4、在RS节点上的lo(网卡的回环接口)接口上配置vip(192.168.56.200)

[root@rs1 ~]# ifconfig lo:1 192.168.56.200/32 up
[root@localhost ~]# ifconfig lo:1
lo:1: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 192.168.56.200  netmask 0.0.0.0
        loop  txqueuelen 1  (Local Loopback)
[root@rs2 ~]# ifconfig lo:1 192.168.56.200/32 up
[root@localhost ~]# ifconfig lo:1
lo:1: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 192.168.56.200  netmask 0.0.0.0
        loop  txqueuelen 1  (Local Loopback)

5、在RS节点上抑制ARP响应 (RS1和RS2上分别执行)

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

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

6、测试LVS调度

访问:http://192.168.56.200 ,如图:

[root@lb01 ~]# watch -n 1 ipvsadm -L -n   #查看访问状态
Every 1.0s: ipvsadm -L -n                                                                                                                                            Tue Jul 24 05:11:25 2018

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.56.200:80 rr persistent 20
  -> 192.168.56.11:80             Route   1     0          0
  -> 192.168.56.13:80             Route   1     3          1

7、删除节点和服务

[root@lb01 ~]# ipvsadm -d -t 192.168.56.200:80 -r 192.168.56.13   #删除RS2节点
[root@lb01 ~]# ipvsadm -Ln  #查看是否已删除RS2
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.56.200:80 rr persistent 20
  -> 192.168.56.11:80             Route   1      0          0    
[root@lb01 ~]# ipvsadm -D -t 192.168.56.200:80    #直接删除LVS服务

 8、LVS脚本配置(设置为开机启动,确保长期生效)

(1)Server端脚本

[root@lb01 ~]# vim /scripts/ipvs_server.sh
#!/bin/sh
. /etc/init.d/functions
VIP=192.168.56.200
PORT=80
RIP=(
   192.168.56.11
   192.168.56.13
)
start(){
ifconfig eth0:1 $VIP/24 up
route add -host $VIP dev eth0
ipvsadm -C
ipvsadm --set 30 5 60
ipvsadm -A -t $VIP:$PORT -s rr -p 20 
for ((i=0;i<${#RIP[*]};i++))
do
ipvsadm -a -t $VIP:$PORT -r ${RIP[$i]} -g -w 1
done
echo "ipvs is started"
}
stop(){
ipvsadm -C
ifconfig eth0:1  down
route del -host $VIP dev eth0
echo "ipvs is stopped"
}
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        start
        ;;
    *)
        echo "UASGE: $0  {start|stop|restart}"
esac
[root@lb01 ~]# cp /scripts/ipvs_server.sh /usr/local/sbin/ipvs
[root@lb01 ~]# cd /usr/local/sbin/
[root@lb01 ~]# chmod +x ipvs

(2)Client端脚本

[root@rs1 ~]# vi /scripts/ipvs_client.sh
#!/bin/sh
. /etc/init.d/functions
VIP=(
    192.168.56.200
)

case "$1" in
    start)
        echo "start LVS of RealServer IP"
        for ((i=0;i<`echo ${#VIP[*]}`;i++))
        do
            interface="lo:`echo ${VIP[$i]}|awk -F . '{print $4}'`"
            /sbin/ifconfig $interface ${VIP[$i]} broadcast ${VIP[$i]} netmask 255.255.255.255 up
            route add -host ${VIP[$i]} dev $interface
        done
        echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore 
        echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce 
        echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore     
        echo "1" >/proc/sys/net/ipv4/conf/all/arp_announce
        ;;
    stop)
        for ((i=0;i<`echo ${#VIP[*]}`;i++))
        do
            interface="lo:`echo ${VIP[$i]}|awk -F . '{print $4}'`"
            /sbin/ifconfig $interface ${VIP[$i]} broadcast ${VIP[$i]} netmask 255.255.255.255 down
            route del -host ${VIP[$i]} dev $interface
        done
        echo "stOP LVS of RealServer IP"
        echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore 
        echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce 
        echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore     
        echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
        ;;                
    *)
        echo "Usage: $0 {start | stop}"
        exit 1
esac

与[转帖]LVS入门篇(四)之LVS实战相似的内容:

[转帖]LVS入门篇(四)之LVS实战

LVS入门篇(四)之LVS实战 https://www.cnblogs.com/linuxk/p/9360922.html 一、LVS的NAT模式实战 1、环境说明: HOST OS role remask 192.168.56.12 Centos 7.4 LVS调度器(1.2.7) VIP:192

[转帖]LVS入门篇(五)之LVS+Keepalived实战

LVS入门篇(五)之LVS+Keepalived实战 https://www.cnblogs.com/linuxk/p/9365189.html 一、实验架构和环境说明 (1)本次基于VMware Workstation搭建一个四台Linux(CentOS 7.4)系统所构成的一个服务器集群,其中两

[转帖]LVS入门篇(三)之LVS的工作模式和调度算法

LVS入门篇(三)之LVS的工作模式和调度算法 https://www.cnblogs.com/linuxk/p/9358512.html 1、NAT模型 (1)原理图: ①.客户端(200.10.10.1)将请求发往前端的负载均衡器(114.100.80.10),请求报文源地址是CIP(客户端IP

[转帖]LVS 20倍的负载不均衡,原来是内核的这个Bug

https://plantegg.github.io/2019/07/19/%E5%B0%B1%E6%98%AF%E8%A6%81%E4%BD%A0%E6%87%82%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1--%E8%B4%9F%E8%BD%BD%E5%9D%87%E

[转帖]LVS负载均衡的三种方式

1.VS-NAT(基于网络地址转换,network address translation ,NAT) VS-NAT是LVS最基本的方法,如果想要设置一个用于测试的LVS,这是一个最简单的方法。 当客户发出请求,lvs负载均衡中的director会将接受到的包的目标地址重写为某个real-serve

[转帖]图解LVS

https://www.jianshu.com/p/89c6f27771a4 LVS (linux virtual server)是 Linux标准内核的一部分。基于TCP/IP的负载均衡技术,转发效率极高,具有处理百万计并发连接请求的能力。由于工作在linux内核层,转发效率比工作在应用层的ngi

[转帖]Nginx/LVS/HAProxy负载均衡软件的优缺点详解

转载:http://www.ha97.com/5646.html PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下。 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术。具体的应

[转帖]

Linux ubuntu20.04 网络配置(图文教程) 因为我是刚装好的最小系统,所以很多东西都没有,在开始配置之前需要做下准备 环境准备 系统:ubuntu20.04网卡:双网卡 网卡一:供连接互联网使用网卡二:供连接内网使用(看情况,如果一张网卡足够,没必要做第二张网卡) 工具: net-to

[转帖]

https://cloud.tencent.com/developer/article/2168105?areaSource=104001.13&traceId=zcVNsKTUApF9rNJSkcCbB 前言 Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻

[转帖]ISV 、OSV、 SIG 概念

ISV 、OSV、 SIG 概念 2022-10-14 12:29530原创大杂烩 本文链接:https://www.cndba.cn/dave/article/108699 1. ISV: Independent Software Vendors “独立软件开发商”,特指专门从事软件的开发、生产、