【LVS实战】02 搭建一个LVS-NAT实验

一、网络结构

用虚拟机搭建如下的几台机器,并配置如下的ip
【LVS实战】02 搭建一个LVS-NAT实验_第1张图片

关于虚拟机网卡和网络的配置,可以参考 iptables章节,05节:网络转发实验

主机A模拟外网的机器
B为负载均衡的机器
C和D为 RealServer

二、C和D主机的网关设置

C和D机器要设置B为网关,这样C和D的数据,才能通过B,返回到C
【LVS实战】02 搭建一个LVS-NAT实验_第2张图片
【LVS实战】02 搭建一个LVS-NAT实验_第3张图片

三、C和D上安装上nginx

本实验为C和D安装好的docker应用:nginx。安装过程,略。启动好后,占用暴露为80端口。
修改一下nginx的首页,输出其IP,如:

cd /usr/share/nginx/html/
cat > index.html << EOF



Welcome to nginx!



10.1.0.9

EOF

四、ipvsadm命令设置LVS

如果我们想要配置一个LVS-NAT集群,可以在角色为调度器的主机上执行如下ipvsadm命令。

ipvsadm -A -t VIP:port -s rr
ipvsadm -a -t VIP:port -r RIP1 -m
ipvsadm -a -t VIP:port -r RIP2 -m
ipvsadm -a -t VIP:port -r RIPN -m

在机器B上执行下面的命令

[root@localhost ~]# ipvsadm -A -t 192.168.56.106:80 -s rr
[root@localhost ~]# ipvsadm -a -t 192.168.56.106:80 -r 10.1.0.9 -m
[root@localhost ~]# ipvsadm -a -t 192.168.56.106:80 -r 10.1.0.10 -m

[root@localhost ~]# ipvsadm -Ln
[root@localhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.56.106:80 rr
  -> 10.1.0.9:80                  Masq    1      0          0         
  -> 10.1.0.10:80                 Masq    1      0          0 

注意:上面的设置会在重启系统后失效

五、负载均衡请求效果

在主机A上执行curl命令,可以看到,是轮循访问两台主机

[root@localhost ~]# curl -X GET http://192.168.56.106
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>10.1.0.9 </h1>
</body>
</html>
[root@localhost ~]# curl -X GET http://192.168.56.106
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>10.1.0.10 </h1>
</body>
</html>

六、常用命令

  1. ipvsadm管理工具介绍(操作均基于centos6操作系统)

6.1 安装

ipvsadm可以直接使用yum安装

yum -y install ipvsadm

6.2 基本命令格式

虚拟服务器:

ipvsadm 选项 虚拟服务器地址 -s 算法

真实服务器:

ipvsadm 选项 虚拟服务器地址 -r 真实服务器地址 -w 权重值工作模式

6.3 常用参数


```text
-A 添加一个虚拟服务器,可跟ip或者ip:80(端口)
-E  编辑一个虚拟服务器
-D 删除一个虚拟服务器
-C 清空虚拟服务器
-R 还原规则-s保存规则
-a  添加一个真实服务器(RS)
-e  编辑一个真实服务器
-d  删除一个真实服务器
-t   使用tcp
-u   使用udp
-L  list 查看虚拟服务器列表
-s   指定算法
-r   指定真实服务器RIP
-g   指定工作模式为DR模式
-i   指定工作模式为tunl模式
-m  指定工作模式为NAT模式
-w  指定RS权重不能超过100
-c   查看连接状态可与L使用
-n   以数字的形式显示输出结果

6.4 实例

6.4.1 添加虚拟服务器

添加一个虚拟服务器IP地址为192.168.153.188,tcp服务,端口为80,算法为rr

[root@localhost ~]# ipvsadm -A -t 192.168.153.188:80 -s rr

6.4.2 添加真实服务器

添加一个真实服务器地址为192.168.153.163,端口为80,权重为1,工作模式为nat模式

[root@localhost ~]# ipvsadm -a -t 192.168.153.188:80 -r 192.168.153.163:80  -w 1 -m

添加一个真实服务器地址为192.168.153.167,端口为80,权重为1,工作模式为nat模式

[root@localhost ~]# ipvsadm -a -t 192.168.153.188:80 -r 192.168.153.167:80  -w 1 -m

6.4.3 使用 ipvsadm -Ln 命令查看添加结果

[root@localhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.153.188:80 rr
  -> 192.168.153.163:80           Local   1      0          0         
  -> 192.168.153.167:80           Masq    1      0          0        

6.4.4 保存配置结果(不然重启之后配置会丢失)

ipvsadm -S > 保存的文件
 
或
 
ipvsadm-save > 保存的文件
[root@localhost ~]# ipvsadm -S > lvs.cfg
[root@localhost ~]# cat lvs.cfg 
-A -t localhost.localdomain:http -s rr
-a -t localhost.localdomain:http -r 10.1.0.9:http -m -w 1
-a -t localhost.localdomain:http -r 10.1.0.10:http -m -w 1

6.4.5 查看保存配置的文件

[root@localhost ~]# cat /etc/sysconfig/ipvsadm
-A -t 192.168.153.188:80 -s rr
-a -t 192.168.153.188:80 -r 192.168.153.163:80 -g -w 1
-a -t 192.168.153.188:80 -r 192.168.153.167:80 -m -w 1

6.4.6 删除真实服务器

删除上面添加的163真实服务器

[root@localhost ~]# ipvsadm -d -t 192.168.153.188:80 -r 192.168.153.163:80

6.4.7 使用 ipvsadm -Ln 命令查看删除结果

163真实服务器已经被删除

[root@localhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.153.188:80 rr
  -> 192.168.153.167:80           Masq    1      0          0  

6.4.8 删除虚拟服务器

[root@localhost ~]# ipvsadm -D -t 192.168.153.188:80

6.4.9 清空虚拟服务器

[root@localhost ~]# ipvsadm -C

6.4.10 重新读取保存的配置文件并查看

所有的配置已经恢复(上面的删除操作并没有保存)

[root@localhost ~]# service ipvsadm restart
ipvsadm: Clearing the current IPVS table:                  [  OK  ]
ipvsadm: Unloading modules:                                [  OK  ]
ipvsadm: Clearing the current IPVS table:                  [  OK  ]
ipvsadm: Applying IPVS configuration:                      [  OK  ]

[root@localhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.153.188:80 rr
  -> 192.168.153.163:80           Local   1      0          0         
  -> 192.168.153.167:80           Masq    1      0          0   

你可能感兴趣的:(LVS实战,lvs,网络)