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

一、网络结构

用虚拟机搭建如下的几台机器,并配置如下的ip

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

主机A模拟外网的机器

B为负载均衡的机器

C和D为 RealServer

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

C和D机器要设置B为网关 ,这样C和D的数据,才能通过B,返回到C

三、C和D上安装上nginx

本实验为C和D安装好的docker应用:nginx。安装过程,略。启动好后,占用暴露为80端口。

修改一下nginx的首页,输出其IP,如:

bash 复制代码
cd /usr/share/nginx/html/
cat > index.html << EOF
<!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>
EOF

四、ipvsadm命令设置LVS

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

bash 复制代码
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上执行下面的命令

-m表示nat模式

bash 复制代码
[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命令,可以看到,是轮循访问两台主机

bash 复制代码
[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安装

bash 复制代码
yum -y install ipvsadm

6.2 基本命令格式

虚拟服务器:

bash 复制代码
ipvsadm 选项 虚拟服务器地址 -s 算法

真实服务器:

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

6.3 常用参数

bash 复制代码
```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

bash 复制代码
[root@localhost ~]# ipvsadm -A -t 192.168.153.188:80 -s rr

6.4.2 添加真实服务器

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

bash 复制代码
[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模式

bash 复制代码
[root@localhost ~]# ipvsadm -a -t 192.168.153.188:80 -r 192.168.153.167:80  -w 1 -m

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

bash 复制代码
[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 保存配置结果(不然重启之后配置会丢失)

text 复制代码
ipvsadm -S > 保存的文件
 
或
 
ipvsadm-save > 保存的文件
bash 复制代码
[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 查看保存配置的文件

bash 复制代码
[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真实服务器

bash 复制代码
[root@localhost ~]# ipvsadm -d -t 192.168.153.188:80 -r 192.168.153.163:80

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

163真实服务器已经被删除

bash 复制代码
[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 清空虚拟服务器 ```bash [root@localhost ~]# ipvsadm -C ``` #### 6.4.10 重新读取保存的配置文件并查看 所有的配置已经恢复(上面的删除操作并没有保存) ```bash [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 ```

相关推荐
christine-rr17 小时前
linux常用命令(6)——网络管理
linux·服务器·网络·ubuntu·网络安全
微信api接口介绍18 小时前
微信社群管理开发
java·开发语言·网络·微信
星哥说事19 小时前
网络设备配置:交换机、路由器OSPF和BGP、防火墙策略管理
网络·智能路由器
一只栖枝19 小时前
华为数通认证学习难吗?需掌握哪些核心知识点?
网络·智能路由器·华为认证·hcia·数通·考证·datacom
ARM+FPGA+AI工业主板定制专家19 小时前
【JETSON+FPGA+GMSL+AI】自动驾驶与移动机器人的摄像头如何实现高精度时间同步?
网络·人工智能·机器学习·fpga开发·cnn·自动驾驶
咕噜签名分发冰淇淋19 小时前
App中分发中的防盗链开发是做什么的?
运维·服务器·网络
huluang19 小时前
网络安全等级保护要求(10+4 层面)记忆总结
服务器·网络·web安全
无妄无望20 小时前
docker学习 (3)网络与防火墙
网络·学习·docker
梓沂21 小时前
旧电脑变废为宝:打造低成本网络打印机服务器全记录
服务器·网络·php
K_i1341 天前
OSI七层模型:从原理到实战
运维·服务器·网络